pandas to_latex () экранирует "\\ newline" для использования в LaTex - PullRequest
0 голосов
/ 28 октября 2018

Я борюсь с необъяснимыми различиями в поведении между Windows и Mac, обрабатывающими \ newline в строке шаблона jinja.

У меня есть строка mystring = '123 \\newline 456', которая находится внутри фрейма данных.Когда я использую pandas to_latex () на Mac, это преобразуется в 123 \textbackslashnewline.Но в Windows он преобразуется в 123 \textbackslash newline

. Разница между ними усложняет обходной путь, который заключается в замене \textbackslash пустой строкой.В версии Windows мне нужно включить пробел, а в версии Mac мне не нужно включать пробел.

Есть ли лучший способ включить \newline в таблицу?Я попытался r'\newline', и я попытался просто '\newline', и ни одна из них не работает.Причина, по которой последний не работает, заключается в том, что используемая мной IDE (PyCharm) интерпретирует одиночную косую черту как разрыв строки, а не как часть строки.Двойная косая черта, которую я использую, просто предназначена для того, чтобы обойти это, но тогда to_latex () интерпретирует двойную косую черту как \textblackslash.

1 Ответ

0 голосов
/ 28 октября 2018

Я обнаружил, что проблема действительно связана с командой pandas to_latex (), и отредактировал исходный вопрос.

В версии для Windows, pandas заменял \\newline на «\ textbackslash newline».Но на Mac он заменял его на '\ textbackslashnewline' без пробела.Затем я использовал:

.replace('textbackslash', '')

, который работал на Mac, но не работал в Windows из-за дополнительного места.Однако я не могу понять, почему существует разница между функциями to_latex () Mac и Windows.

Обратите внимание, что мне известна опция escape=False в to_latex (), однако в ней запутаны случаи, когда я хочу экранировать части строки (например, \$).

...