Определите каждый символ как команду в LaTeX
-
10-07-2019 - |
Вопрос
Я работаю над большим проектом, включающим несколько документов, набранных в LaTeX.Я хочу быть последовательным в использовании символов, поэтому было бы неплохо определить команду для каждого символа, который имеет определенное значение во всем проекте.Есть ли у кого-нибудь какой-нибудь опыт в этом?Есть ли проблемы, на которые я должен обратить внимание?
Немного более конкретно.Допустим, что на протяжении всего документа я бы обозначал нечто, называемое permability, с помощью скрипта P, было бы неплохо определить
\providecommand{\permeability}{\mathscr{P}}
или это было бы больше похоже на случай "определение команды для $ n $"?
Решение
Я делал это для всего, что имеет конкретное значение и длиннее одного символа, в основном для экономии ввода:
\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, который вы должны ввести без команды. Но это близкий звонок.
Другие советы
Несколько советов:
- Используя
\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}}}