Определите каждый символ как команду в LaTeX

StackOverflow https://stackoverflow.com/questions/1036727

  •  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}}}
    
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top