将每个符号定义为LaTeX中的命令

时间:2009-06-24 06:39:21

标签: latex code-formatting

我正在开发一个涉及LaTeX中多个文档排版的大型项目。我希望在使用符号时保持一致,因此为整个项目中具有特定含义的每个符号定义命令可能是个不错的主意。有人对这个有经验么?我应该注意哪些问题?

更具体一点。比方说,在整个文档中,我将用脚本P表示一种称为permability的东西,这是一个定义的想法

\providecommand{\permeability}{\mathscr{P}}

或者这更像是“为$ n $定义命令”的情况?

2 个答案:

答案 0 :(得分:3)

我一直在为具有特定含义且长于单个符号的任何内容执行此操作,主要是为了节省输入:

\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,你必须在没有命令的情况下输入。但这是一个非常接近的电话。

答案 1 :(得分:3)

一些提示:

  • 使用\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}}}