用户在逐字环境中定义的命令

时间:2010-12-14 14:13:16

标签: latex verbatim

是否可以在逐字环境中创建一个带有参数的新命令和一些缩进?

\newcommand{codeblock}[1]{\begin{quote}\begin{verbatim}#1\end{verbatim}\end{quote}}

这不起作用。还有其他方法吗?

2 个答案:

答案 0 :(得分:5)

\begin{verbatim}如何运作。简要而粗略地说。

  1. \begin{verbatim}已扩展为\verbatim
  2. 然后\verbatim将每个特殊字符的类别代码设置为12。 现在所有的字符都像数字或字符。
  3. 然后\verbatim设置字体,parindent并调用\@xverbatim
  4. \@xverbatim使用以下技巧捕获逐字结尾:

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

  6. \newcommand{\codeblock}[1]{\begin{quote}\begin{verbatim}#1\end{verbatim}\end{quote}}如何运作。

    1. 首先\codeblock{Some {}$&%^_}读取其论点。
    2. #1 --> Some code {}$&%^_

      注意: {}$&%^,{{ 1}}类别1,2,3,4,6,7,8 而不是11或12 !!!

    3. _扩展为\codeblock。  重要提示: \begin{quote}\begin{verbatim} Some {}$&%^_\end {verbatim}\end {quote}的反斜杠有0类而不是11。  此外,\end{的类别为1和2,而不是11。  }$&%^的类别为3,4,6,7,8。
    4. _扩展为\begin{quote}\quote执行。
    5. 然后\quote展开为\begin{verbatim}。  \varbatim更改所有类别和字体。但是(重要)  反斜杠的类别(在\varbatim中)保持等于0.而\end{}$&的类别,%^_之后输入,因为“参数读取”在Some更改所有类别之前执行。但是你需要所有的char都有类别11 o 12。
    6. 然后\verbatim拨打\verbatim
    7. \@xverbatim尝试使用以下技巧捕捉您的论点:

      \@xverbatim

      但由于\def\@xverbatim#1\end{#1\end} 试图抓住,这是不可能的   \@xverbatim所有字母(\end\en)都有类别12和11。   但实际上有四个字母与其他类别代码:   {0}的d和类别11的\en

      有可能(我不确定)这个技巧更精通:

      alt text

      红色字符属于第12类。绿色字符属于第11类。  d\def\@xverbatim是包含\end(类别0)和字母(类别11)的宏。

    8. \正在尝试查找\@xverbatim,其中反斜杠(\end)的类别为11,但.... \

    9. 如果您想创建新的宏File ended while scanning use of \@xverbatim,您必须执行类似上述内容的操作。

答案 1 :(得分:2)

看起来您希望在文档中包含代码,在这种情况下,您可能更好地通过软件包列表提供服务而不是逐字提供服务。清单还为您提供了许多常用语言的行编号和语法突出显示等很好的功能。如果您的LaTeX发行版尚未安装,请参阅http://www.ctan.org/tex-archive/macros/latex/contrib/listings/