gpt4 book ai didi

Latex\newcommand for\end{verbatim} et.al 不工作

转载 作者:行者123 更新时间:2023-12-01 09:00:55 27 4
gpt4 key购买 nike

我试图通过引入一些节省时间的方法使 Latex 可用,但我在定义完全随机终止环境的新命令时遇到了麻烦。

这个有效:
\newcommand{\bcv}{\ensuremath{\begin{smallmatrix}}}
\newcommand{\ecv}{\ensuremath{\end{smallmatrix}}}
\newcommand{\be}{\begin{enumerate}}<br/>
\newcommand{\ee}{\end{enumerate}}

这不起作用:
\newcommand{\bal}{\begin{align*}}<br/>
\newcommand{\eal}{\end{align*}}

\newcommand{\verbass}[1]{\begin{verbatim} #1 \end {verbatim}}

具体来说,我认为\end 值只是被忽略了?

当我尝试使用 \verbass{Halp} 时我得到一个错误:!File ended while scanning use of \@xverbatim.

显然,我可以根据需要在所有位置使用\begin{foo} ...\end{foo},但实际上,这应该可行!

最佳答案

\begin{verbatim} 是如何工作的。简短粗略。

  1. \begin{verbatim} 扩展为 \verbatim
  2. 然后\verbatim将每个字符的类别代码设置为11。现在所有的字符都是字母。
  3. 然后\verbatim 设置字体、parindent 并调用\@xverbatim
  4. \@xverbatim 使用以下技巧捕捉逐字结尾:

    \def\@xverbatim#1\end{#1\end}
  5. 然后\end{verbatim} 完成工作。

\newcommand{\verbass}[1]{\begin{verbatim} #1\end {verbatim}} 是如何工作的。

  1. 首先 \verbass{Halp} 读取它的参数。
  2. #1 --> 停止
  3. \verbass 扩展为 \begin{verbatim} Halp\end {verbatim}重要提示 \end 的反斜杠属于类别 0 而不是 11。 此外 {} 有类别 1 和 2 而不是 11。
  4. 然后 \begin{verbatim} 扩展为 \varbatim\varbatim 更改所有类别和字体。但是(重要) 反斜杠的类别(在 \end 中)保持为 0。
  5. 然后 \verbatim 调用 \@xverbatim
  6. \@xverbatim 尝试使用以下技巧捕捉您的论点:

    \def\@xverbatim#1\end{#1\end}

    但这是不可能的,因为 \@xverbatim 试图捕捉 \end 其中所有字母 (\,e,n,d) 都有类别 11。 但实际上有四个字母带有其他类别代码: \ 为类别 0 和 e,n,d 为类别 11。

  7. \@xverbatim 正在尝试并尝试找到 \end 反斜杠 (\) 具有类别 11 但是...... 扫描使用\@xverbatim 时文件结束

关于Latex\newcommand for\end{verbatim} et.al 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3883789/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com