我已将该\def
命令用于几个较长的科学术语,这样我就可以轻松快速地引用它们,而不必每次都将它们输入出来,例如\carb
for $\delta$$^{13}$C
(full code \def\carb{$\delta$$^{13}$C }
)。但是,如果我不在 C 后面加上最后一个空格,输出就会进入下一个单词。如果我在句号或 ) 之前使用定义,就会出现问题,因为它会添加一个额外的空格,例如 (δ13C ) 或 [δ13C .]。
我尝试了xspace
可以解决标点符号问题的软件包,但它没有在我想要斜体的单词后添加空格。我{}
在我的文档中添加了它,这确实解决了问题,但我想知道是否有更简单的方法?我有一个有此问题的 define 命令示例:\def\geog{\textit{geography\xspace}}
–
谢谢你!
答案1
我不会使用像 \carb 这样的大量命令。在我看来,这种方法最终会变得相当混乱,而且很多时候好的命令名已经被其他包占用。我会使用一个命令,例如 \sh(简写),并带有一个参数。除了解决空格问题之外,它还允许您使用数字和标点符号。这是一种简单的方法,但您也可以使用词汇表或 acro。
\documentclass{article}
\makeatletter
\@namedef{myshorthand@carb}{$\delta$$^{13}$C}
\@namedef{myshorthand@carb-12}{$\delta$$^{12}$C}
\@namedef{myshorthand@carb-n}{$\delta$$^{n}$C}
\newcommand\sh[1]{\csname myshorthand@#1\endcsname}
\makeatother
\begin{document}
\sh{carb}, \sh{carb} blblb
\sh{carb-12}, \sh{carb-n}
\end{document}
答案2
我不会用\xspace
,但如果你使用它,语法是
\newcommand\geog{\textit{geography}\xspace}