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{}
)。我認爲解決方案會一步步完成所有的替換,但我不知道該怎麼做。