Определите каждый символ как команду в LaTeX - PullRequest
4 голосов
/ 24 июня 2009

Я работаю над большим проектом, включающим несколько наборов документов в LaTeX. Я хочу быть последовательным в использовании символов, поэтому было бы неплохо определить команду для каждого символа, который имеет конкретное значение во всем проекте. У кого-нибудь есть опыт с этим? Есть ли вопросы, на которые я должен обратить внимание?

Немного конкретнее. Скажем, что во всем документе я бы обозначил что-то, называемое проницаемостью, сценарием P, будет ли идея определить

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

или это больше похоже на случай "определения команды для $ n $"?

Ответы [ 2 ]

3 голосов
/ 25 июня 2009

Несколько советов:

  • Использование \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}}}
    
3 голосов
/ 24 июня 2009

Я делал это для всего, что имеет определенное значение и длиннее одного символа, в основном для сохранения ввода:

\newcommand{\objId}{\mbox{$\mathit{objId}$}\xspace} 
\newcommand{\insOp}[1]{#1\mbox{$^+$}\xspace} 
\newcommand{\delOp}[1]{#1\mbox{$^-$}\xspace}

Однако потом я заметил, что перестал делать ошибки несоответствия (objId vsObjId против ObjID), поэтому я согласен, что это хорошая идея.

Однако я не уверен, что это хорошая идея, если символы в выходных данных, ну, в общем, одиночные латинские символы, например:

\newcommand{\numOfObjs}{$n$}

Слишком легко набрать один символ и забыть о нем, даже если для него была определена команда.

РЕДАКТИРОВАТЬ: используя ваш пример ИМХО, было бы неплохоопределить \permeability, потому что это больше, чем один P, который вы должны ввести без команды.Но это близкий звонок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...