是否可以在逐字环境中创建一个带有参数的新命令和一些缩进?
\newcommand{codeblock}[1]{\begin{quote}\begin{verbatim}#1\end{verbatim}\end{quote}}
这不起作用。还有其他方法吗?
答案 0 :(得分:5)
\begin{verbatim}
如何运作。简要而粗略地说。
\begin{verbatim}
已扩展为\verbatim
。 \verbatim
将每个特殊字符的类别代码设置为12。
现在所有的字符都像数字或字符。\verbatim
设置字体,parindent并调用\@xverbatim
。 \@xverbatim
使用以下技巧捕获逐字结尾:
\def\@xverbatim#1\end{#1\end}
然后\end{verbatim}
完成工作。
\newcommand{\codeblock}[1]{\begin{quote}\begin{verbatim}#1\end{verbatim}\end{quote}}
如何运作。
\codeblock{Some {}$&%^_}
读取其论点。 #1 --> Some code {}$&%^_
注意: {
,}
,$
,&
,%
,^
,{{ 1}}类别1,2,3,4,6,7,8 而不是11或12 !!! )
_
扩展为\codeblock
。
重要提示: \begin{quote}\begin{verbatim} Some {}$&%^_\end {verbatim}\end {quote}
的反斜杠有0类而不是11。
此外,\end
和{
的类别为1和2,而不是11。
}
,$
,&
,%
,^
的类别为3,4,6,7,8。_
扩展为\begin{quote}
,\quote
执行。\quote
展开为\begin{verbatim}
。
\varbatim
更改所有类别和字体。但是(重要)
反斜杠的类别(在\varbatim
中)保持等于0.而\end
,{
,}
,$
,&
的类别,%
,^
在_
之后输入,因为“参数读取”在Some
更改所有类别之前执行。但是你需要所有的char都有类别11 o 12。\verbatim
拨打\verbatim
。 \@xverbatim
尝试使用以下技巧捕捉您的论点:
\@xverbatim
但由于\def\@xverbatim#1\end{#1\end}
试图抓住,这是不可能的
\@xverbatim
所有字母(\end
,\
,e
,n
)都有类别12和11。
但实际上有四个字母与其他类别代码:
{0}的d
和类别11的\
,e
,n
。
有可能(我不确定)这个技巧更精通:
红色字符属于第12类。绿色字符属于第11类。
d
,\def
,\@xverbatim
是包含\end
(类别0)和字母(类别11)的宏。
\
正在尝试查找\@xverbatim
,其中反斜杠(\end
)的类别为11,但.... \
如果您想创建新的宏File ended while scanning use of \@xverbatim
,您必须执行类似上述内容的操作。
答案 1 :(得分:2)
看起来您希望在文档中包含代码,在这种情况下,您可能更好地通过软件包列表提供服务而不是逐字提供服务。清单还为您提供了许多常用语言的行编号和语法突出显示等很好的功能。如果您的LaTeX发行版尚未安装,请参阅http://www.ctan.org/tex-archive/macros/latex/contrib/listings/。