我想接受用户输入(有时这将是大段落)并生成LaTeX文档。我正在考虑一些简单的正则表达式,用\
替换\textbackslash
的所有实例,用{
或{{替换}
或\}
的所有实例1}}。
我怀疑这已经足够了。我还需要做什么?注意:如果有一个特殊的库,我正在使用python。
为了澄清,我不希望将任何内容解析为LaTeX语法:\{
应替换为$a$
。
答案 0 :(得分:14)
如果您的输入是纯文本并且您处于正常的catcode状态,则必须执行以下替换:
\
→\textbackslash{}
(请注意空组!){
→\{
}
→\}
$
→\$
&
→\&
#
→\#
^
→\textasciicircum{}
(需要textcomp
包)_
→\_
~
→\textasciitilde{}
%
→\%
此外,以下替换在使用OT1编码时至少有用(在任何情况下都无害):
<
→\textless{}
>
→\textgreater{}
|
→\textbar{}
这三个禁用了引号:
"
→\textquotedbl{}
'
→\textquotesingle{}
`
→\textasciigrave{}