以编程方式将纯文本转换为乳胶代码

Noa*_*oah 2 cocoa latex

我想要一些用户输入文本并快速解析它以生成一些乳胶代码.目前,我更换%\%\n\n\n,但如果有其他的替代品,我应该就取得从纯文本到乳胶转换我不知道.

我不是非常担心这里的安全性(你甚至可以编写恶意乳胶代码吗?),因为这只应该被用户用来将他们自己的文本转换成乳胶,所以他们应该被允许使用他们自己的乳胶标记在预转换的文本中,但我想确保输出不包括偶然的乳胶命令,如果可能的话.如果有一个很好的库来进行这样的转换,我会看看.

Hei*_*nzi 6

显然,以下字符

\ { } $ ^ _ % ~ # &
Run Code Online (Sandbox Code Playgroud)

是特殊的LaTeX,所以你应该确保逃脱它们(前缀为反斜杠将为其中一些做,请参阅Thomas的特殊情况的答案)或告诉用户不要使用它们除非他们故意想要使用LaTeX命令(或两者的混合,取决于角色).

一些额外的陷阱:

  • 并非文本中的每个换行符都可以作为新段落.
  • 如果您的用户使用的语言不是英语(或拉丁语),您将需要\ usepackage处理编码的内容(如utf8)或自己转换字符(例如ä -> \"a).
  • 正如dmckee指出的那样,报价也需要单独处理.

编辑:由于这已成为公认的答案,我还在其他答案中添加了积分,所以这是一个总结.