如何清理LaTeX输入?

Con*_*ens 10 python latex sanitization

我想接受用户输入(有时这将是大段落)并生成LaTeX文档.我正在考虑一些简单的正则表达式来替换\with的\textbackslash所有实例{或者}\}或的所有实例\{.

我怀疑这是否足够.我还需要做什么?注意:如果有一个特殊的库,我正在使用python.

为了澄清,我不希望任何东西被解析为LaTeX语法:$a$应该替换为\$a\$.

Phi*_*ipp 14

如果您的输入是纯文本并且您处于正常的catcode状态,则必须执行以下替换:

  • \\textbackslash{}(注意空组!)
  • {\{
  • }\}
  • $\$
  • &\&
  • #\#
  • ^\textasciicircum{}(需要textcomp包裹)
  • _\_
  • ~\textasciitilde{}
  • %\%

此外,以下替换至少在使用OT1编码时是有用的(在任何情况下都是无害的):

  • <\textless{}
  • >\textgreater{}
  • |\textbar{}

这三个禁用卷曲引号:

  • "\textquotedbl{}
  • '\textquotesingle{}
  • `\textasciigrave{}