我正在为我的数据库编写一个 LaTeX 导出功能。为此,我正在将 latin-1 文本字段中的特殊字符逐个符号转换为 LaTeX 宏,例如_
to \_
、~
to\textasciitilde
等等。执行此操作时,许多宏命令需要与紧随其后的文本分开,否则我最终会得到错误,例如将“ ~user
”转换为“ \textasciitildeuser
”。
通过 Google,我想到了许多不同的方法来实现这种分离,例如:
- 在宏的末尾放置一个空格,例如“
\textasciitilde
” - 在末尾放置一对空括号,例如 '
\textasciitilde{}
' - 将宏放入括号中,例如“
{\textasciitilde}
”
将 LaTeX 宏命令与紧随其后的文本分开的正确方法是什么?例如,第三种方法对我来说似乎有点问题,因为将内容放在括号中可能会产生额外的效果,例如当文本用作 BibTeX 字段的内容时。
任何建议都值得感激。
答案1
使用空格特别是在数学模式下,{\foo}
和\foo{}
都会对间距产生不利影响,并且正如您在命令周围注释的那样,可能会完全否定它,例如{\small}
什么也不做,因为字体更改会在 处被丢弃}
。