Как я санирую ЛАТЕКСНЫЙ вход?

Я хотел бы взять ввод данных пользователем (иногда, это будет большими абзацами), и генерируйте ЛАТЕКСНЫЙ документ. Я рассматриваю несколько простых регулярных выражений, который заменяет все экземпляры \ с \textbackslash и все экземпляры { или } с \} или \{.

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

Для разъяснения мне не жаль, что что-либо, чтобы быть проанализированным не рассматривало как ЛАТЕКСНЫЙ синтаксис: $a$ должен быть заменен \$a\$.

10
задан TRiG 15 June 2017 в 08:50
поделиться

1 ответ

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

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

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

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

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

  • "textquotedbl{}
  • 'textquotesingle{}
  • 'textasciigrave{}
14
ответ дан 3 December 2019 в 23:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: