Как очистить вход LaTeX?

Я хотел бы использовать пользовательский ввод (иногда это будут большие абзацы) и создать документ LaTeX. Я рассматриваю пару простых регулярных выражений, которые заменяют все экземпляры \ на \textbackslash и все экземпляры { или } на \} или \{.

Я сомневаюсь, что этого достаточно. Что еще мне нужно сделать? Примечание. Если для этого создана специальная библиотека, я использую python.

Чтобы прояснить, я не хочу, чтобы что-либо анализировалось как синтаксис LaTeX: $a$ следует заменить на \$a\$.

Ответ 1

Если ваш ввод является простым текстом, и вы находитесь в обычном режиме кодового кодирования, вы должны выполнить следующие замены:

  • \\textbackslash{} (обратите внимание на пустую группу!)
  • {\{
  • }\}
  • $\$
  • &\&
  • #\#
  • ^\textasciicircum{} (требуется пакет textcomp)
  • _\_
  • ~\textasciitilde{}
  • %\%

Кроме того, следующие замены полезны, по крайней мере, при использовании OT1-кодирования (и безвредности в любом случае):

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

И эти три отключить фигурные кавычки:

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