Псевдоним (для \begin{pmatrix}?

Псевдоним (для \begin{pmatrix}?

Мне интересно, есть ли способ присвоить кнопкам (и )псевдонимы \begin{pmatrix}и \end{pmatrix}, чтобы при вводе этих символов в математическом режиме LaTeX волшебным образом заменял их правильными командами.

Насколько я могу судить, нет смысла использовать "тупые" версии, и это сэкономило бы мне кучу времени. Возможно ли это?

На самом деле я не спрашиваю, как переопределить (. Я прошу LaTeX заменить все (s в математическом режиме на \begin{pmatrix}.

решение1

Редактировать

Оригинальный вопрос, который я видел, просили \( ... \)расширить до \begin{pmatrix} ... \end{pmatrix}, но на самом деле OP хочет ( ... )автоматически расширить до \begin{pmatrix} ... \end{pmatrix}. Я проголосовал за закрытие этого, потому что это дубликатАвтоматические команды влево и вправо(см. ответ LSpice), а затем вопрос был закрыт и снова открыт. Поэтому я отвечаю повторно.

Хитрость в том, чтобы сделать то, что хочет ОП, заключается в создании (и )активных персонажей. Как только это будет сделано, их можно будет переопределять по желанию:

\documentclass{amsart}

\let\lparen=(\let\rparen=)           % save parentheses
\catcode`(=\active\catcode`)=\active % make them active
\def({\begin{pmatrix}}               % redefine them
\def){\end{pmatrix}}

\begin{document}

  \[    ( 1 & 0  & 1 \\ 0 & 1 & 0\\ 0 & 0 & 1 ) \]

\end{document}

В этом коде, если вы хотите ввести (или , )то вам нужно использовать \lparenи \rparen. Вполне вероятно, что это будет иметь странные и не очень приятные побочные эффекты.

Немного лучшим подходом было бы определить среду, где (и )расширить, чтобы дать pmatrixи вне этого они ведут себя нормально. Переопределение коткодов внутри среды требует немного больше гимнастики (см.Как можно изменить коды котов в определении среды?):

\documentclass{amsart}

\let\lparen=(\let\rparen=)% save parentheses

\catcode`(=\active\catcode`)=\active% change catcode for newenvironment
\newenvironment{pequation}{%
  \catcode`(=\active\catcode`)=\active% make them active in environment
  \def({\begin{pmatrix}}% redefine them
  \def){\end{pmatrix}}%
  \equation%
}{\endequation}
\catcode`(=12\catcode`)=12% restore to original catcodes

\begin{document}

  \begin{pequation}
   ( 1 & 0  & 1 \\ 0 & 1 & 0\\ 0 & 0 & 1 )
  \end{pequation}

  $\sin(x)$
\end{document}

Оригинальный ответ

Вы можете сделать это, если выДействительнохочу, но, как показывают комментарии, большинство людей не рекомендовали бы этого делать. Основная проблема в том, что по умолчанию LaTeX использует \( ... \)для набора математики, поэтому он (почти) эквивалентен $ ... $--- на самом деле, поЯвляются ли \( и \) предпочтительнее знаков доллара для математического режима?, \(...\)обеспечивает более качественные сообщения об ошибках. Эта \(...\)команда является противоположностью тому, как LaTeX призывает нас набирать отображаемые уравнения с помощью \[ ... \]. Обратите внимание, \[ ... \]чтонетэквивалентно $$ ... $$! См.Почему \[ ... \] предпочтительнее, чем $$ ... $$?.

При этом вы можете переопределить определение любой команды с помощью \renewcommand(или \def). Переопределение определения команды следует выполнять с осторожностью, поскольку это может что-то сломать.

Оставив эти оговорки в стороне, следующее сделает то, что вам нужно:

\documentclass{amsart}

\renewcommand\({\begin{pmatrix}}
\renewcommand\){\end{pmatrix}}

\begin{document}

Here is a wonderful matrix
\[    \( 1 & 0 & 1 \\ 0 & 1 & 0\\ 0 & 0 & 1\) \]

\end{document}

Могут быть непредвиденные последствия, но я думаю, что это должно быть нормально, хотя это может сбить с толку ваших соавторов! По моему мнению, лучший способ сделать это — правильно настроить ваш редактор:)

[Должен признаться, что раньше я переопределял понятия \(«быть \bigl(» и \)«быть» \bigr), поэтому у меня есть сомнения относительно моральных утверждений выше о том, что этого делать не следует!]

Связанный контент