3
我写一个Python脚本,需要纯文本输入,并产生 LaTeX的代码作为输出。在某些时候脚本必须引用所有在TeX中具有特殊含义的 字符,例如%
,&
,\
等 。引号的字符串为TeX输入
这比我预期的更困难。目前我有这样的:
def ltx_quote(s):
s = re.sub(r'[\\]', r'\\textbackslash{}', s)
# s = re.sub(r'[{]', r'\\{{}', s)
# s = re.sub(r'[}]', r'\\}{}', s)
s = re.sub(r'[&]', r'\\&{}', s)
s = re.sub(r'[$]', r'\\${}', s)
s = re.sub(r'[%]', r'\\%{}', s)
s = re.sub(r'[_]', r'\\_{}', s)
s = re.sub(r'[\^]', r'\\^{}', s)
s = re.sub(r'[~]', r'\\~{}', s)
s = re.sub(r'[|]', r'\\textbar{}', s)
s = re.sub(r'[#]', r'\\#{}', s)
s = re.sub(r'[<]', r'\\textless{}', s)
s = re.sub(r'[>]', r'\\textgreater{}', s)
return s
的问题是{
和}
字符,因为它们潜在地通过对较早制备的取代 - 在这种情况下不应该被取代的(\
>\textbackslash{}
)。我认为解决方案会一步步完成所有的替换,但我不知道该怎么做。