Как мне получить код LaTeX, который будет храниться буквально в Python? - PullRequest
1 голос
/ 21 сентября 2011

Я использую python и sqlite3 для создания базы данных физических решений. У меня есть много кода LaTeX, который я хотел бы сохранить, но у меня возникла проблема. Во многих кодах LaTeX есть символы, которые Python интерпретирует вместо того, чтобы воспринимать их как буквальный текст. Например, я попробовал следующее для хранения \ frac {} {}:

foo = "\frac{}{}"
foo2 = """\frac{}{}"""
foo3 = '''\frac{}{}'''
print foo
rac{}{}
foo
Out[10]: '\x0crac{}{}'

Мне бы очень хотелось, чтобы он просто сохранялся дословно, как оригинальные символы ascii. Есть ли способ сделать это?

Ответы [ 4 ]

5 голосов
/ 21 сентября 2011

Я бы просто использовал необработанные строки :

foo = r"\frac{}{}"

Это помешает Python интерпретировать обратные слэши как escape-последовательности и будет включать их как есть.

4 голосов
/ 21 сентября 2011

Попробуйте сохранить их, добавив к строке префикс r:

In [1]: foo = r"\frac{}{}"

In [2]: foo
Out[2]: '\\frac{}{}'
2 голосов
/ 21 сентября 2011
1 голос
/ 21 сентября 2011

Просто для того, чтобы быть полным: вы также можете написать '\\frac{}{}'.

Или вы можете написать функцию

def latex_command(cmd, *args):
    return "\\" + cmd + "".join('{' + a + '}' for a in args)
latex_command('frac', '', '') # -> \frac{}{}
latex_command('frac', '3', '4') # -> \frac{3}{4}
latex_command('section', 'About') # -> \section{About}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...