我正在做一个涉及在 LaTeX 中排版的多个文档的大型项目。我希望在使用符号时保持一致,因此为整个项目中具有特定含义的每个符号定义一个命令可能是一个好主意。有人对这个有经验么?有我需要注意的问题吗?
更具体一点。说,在整个文档中,我会用脚本 P 来表示称为 permability 的东西,是否可以定义
\providecommand{\permeability}{\mathscr{P}}
或者这更像是“为 $n$ 定义命令”的情况?
我正在做一个涉及在 LaTeX 中排版的多个文档的大型项目。我希望在使用符号时保持一致,因此为整个项目中具有特定含义的每个符号定义一个命令可能是一个好主意。有人对这个有经验么?有我需要注意的问题吗?
更具体一点。说,在整个文档中,我会用脚本 P 来表示称为 permability 的东西,是否可以定义
\providecommand{\permeability}{\mathscr{P}}
或者这更像是“为 $n$ 定义命令”的情况?
一些提示:
\providecommand
仅当先前未定义该命令时,使用才会定义该命令。因此,如果您没有得到预期的结果,您可能正在尝试定义在其他地方定义的命令。如果你在你的命令中用 包裹数学,\ensuremath
无论你在发出命令时是否处于数学模式,它都会做正确的事情:
\providecommand{\permeability}{\ensuremath{\mathscr{P}}}
Now I can easily use \permeability in text or $\permeability$ in math mode.
使用您自己的命令可以让您在以后轻松更改某些内容的印刷表示。例如:
\newcommand{\vect}[1]{\ensuremath{\mathbf{#1}}}
将打印\vect{x}
为粗体x。如果您后来决定更喜欢矢量上方的箭头,则可以将命令更改为:
\newcommand{\vect}[1]{\ensuremath{\vec{#1}}}
我一直在为任何具有特定含义且比单个符号长的东西这样做,主要是为了节省打字:
\newcommand{\objId}{\mbox{$\mathit{objId}$}\xspace}
\newcommand{\insOp}[1]{#1\mbox{$^+$}\xspace}
\newcommand{\delOp}[1]{#1\mbox{$^-$}\xspace}
但是后来我注意到我不再犯不一致的错误(objId vs ObjId vs ObjID),所以我同意这是一个好主意。
但是,我不确定如果输出中的符号是单个拉丁符号是否是个好主意,例如:
\newcommand{\numOfObjs}{$n$}
即使为它定义了一个命令,输入单个符号并忘记它也太容易了。
编辑:使用您的示例恕我直言,定义它是一个好主意,\permeability
因为它不仅仅是一个 P ,您必须在没有命令的情况下输入。但这是一个近距离的电话。