From e42e97064a6666f10a8314db21555d50ae835d71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mika=C3=ABl=20Capelle?= Date: Fri, 1 Nov 2019 18:41:52 +0100 Subject: [PATCH] [simplex] Fix display of variables like x_12 in latex. --- simplex/simplex_dictionary.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/simplex/simplex_dictionary.py b/simplex/simplex_dictionary.py index fe98ea0..f3eb4fa 100644 --- a/simplex/simplex_dictionary.py +++ b/simplex/simplex_dictionary.py @@ -110,6 +110,18 @@ class simplex_dictionary: return super().__setattr__(key, value) + def name_latex(self, name): + """ Convert the given variable name. """ + name = str(name) + + s = name.split('_') + + # We only handle special case: + if len(s) == 1 or len(s) > 2: + return name + + return s[0] + '_{' + s[1] + '}' + def value_latex(self, value): if value.denominator == 1: return str(value) @@ -125,10 +137,10 @@ class simplex_dictionary: """ d = (r'\begin{{array}}{{r||{}}}'.format( 'r|' * (1 + len(self.B))) - + r' & b & ' + ' & '.join(str(v) for v in self.N) + r'\\\hline ' + + r' & b & ' + ' & '.join(self.name_latex(v) for v in self.N) + r'\\\hline ' + r'\\'.join( '{} & {} &'.format( - b, + self.name_latex(b), self.value_latex(self.b[b]) ) + ' & '.join(self.value_latex(-self.a[b][n]) for n in self.N)