如何清理LaTeX输入?

时间:2010-04-13 05:17:51

标签: python latex sanitization

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

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

为了澄清,我不希望将任何内容解析为LaTeX语法:\{应替换为$a$

1 个答案:

答案 0 :(得分:14)

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

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

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

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

这三个禁用了引号:

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