别名(至 \begin{pmatrix}?

别名(至 \begin{pmatrix}?

我想知道是否有任何方法可以将()按钮别名为\begin{pmatrix}\end{pmatrix},以便当我在数学模式下输入这些字符时,LaTeX 会神奇地用正确的命令替换它们。

据我所知,没有理由使用“愚蠢”的版本,而且它可以节省我很多时间。这可能吗?

我实际上并不是在问如何重新定义。我是要求 LaTeX 将数学模式中的(所有 s 替换为。(\begin{pmatrix}

答案1

编辑

我看到的原始问题要求\( ... \)扩展为\begin{pmatrix} ... \end{pmatrix},但实际上,OP希望( ... )自动扩展为\begin{pmatrix} ... \end{pmatrix}。我投票关闭此问题,因为它与自动左右命令(参见 LSpice 的回答),然后问题被关闭并重新打开。所以,我重新回答。

实现 OP 要求的诀窍是创建(活跃)角色。完成此操作后,可以随意重新定义它们:

\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,在这个环境之外它们表现正常。在环境内重新定义 catcode 需要更多的技巧(参见如何改变环境定义中的 catcodes?):

\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)我对上面的道德陈述表示怀疑,认为你不应该这样做!]

相关内容