熊猫to_latex()转义“ \\ newline”以用于LaTex

时间:2018-10-28 11:12:48

标签: pandas escaping latex

我在Windows和Mac的Jinja模板字符串中处理\ newline的行为之间存在莫名其妙的差异。

我有一个字符串C #1 #2 #3 #4 #5 dimensionsType arg: [UNSD] dimensionsType arg: [WB] dimension.agencyId [FREQ] - [WB] - [WB] - [42] - [Str] dimension.agencyId [SERIES] - [WB] - [WB] - [42] - [Str] dimension.agencyId [REF_AREA] - [WB] - [WB] - [42] - [Str] dimension.agencyId [FREQ111] - [UNSD] - [WB] - [42] - [Str] ,位于数据帧内。当我在Mac上使用pandas to_latex()时,它将转换为mystring = '123 \\newline 456'。但是在Windows上,它会转换为123 \textbackslashnewline

两者之间的区别使变通方法变复杂,即用空字符串替换123 \textbackslash newline。在Windows版本上,我需要包含空格,在Mac版本上,我不需要包含空格。

是否有更好的方法将\textbackslash合并到表中?我尝试了\newline,而我只是尝试了r'\newline',但都没有用。后者不起作用的原因是我正在使用的IDE(PyCharm)将单个斜杠解释为换行符而不是字符串的一部分。我使用的双斜杠只是为了解决这个问题,但是to_latex()然后将双斜杠解释为'\newline'

1 个答案:

答案 0 :(得分:0)

我发现问题确实出在熊猫to_latex()命令上,并编辑了原始问题。

对于Windows版本,pandas将\\newline替换为'\ textbackslash newline'。但是在Mac上,它用'\ textbackslashnewline'代替,没有空格。然后我在使用:

.replace('textbackslash', '')

在Mac上可以运行,但在Windows上由于空间不足而失败。我无法弄清楚的是为什么Mac和Windows to_latex()函数之间存在差异。

请注意,我知道to_latex()中的escape=False选项,但是这弄乱了我希望转义字符串部分的实例(例如\$)。