是否可以在逐字环境和一些缩进中创建带有参数的新命令?
\newcommand{codeblock}[1]{\begin{quote}\begin{verbatim}#1\end{verbatim}\end{quote}}
这不起作用。还有其他方法吗?
如何\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,2,3,4,6,7,8而不是 11 或 12!!!)
\codeblock
扩展到\begin{quote}\begin{verbatim} Some {}$&%^_\end {verbatim}\end {quote}
.
重要提示:反斜杠的\end
类别为 0 而不是 11。此外{
,和}
的类别为 1 和 2 而不是 11。而$
, &
, %
,^
的_
类别为 3,4,6,7,8。\begin{quote}
扩展到\quote
并\quote
执行。\begin{verbatim}
扩展为\varbatim
。
\varbatim
更改所有类别和字体。但是(重要)反斜杠(in \end
)的类别仍然等于0。并且由于“参数阅读”在更改所有类别之前执行,因此键入的{
类别仍然存在。但是您需要所有 char 都具有 11 o 12 类别。}
$
&
%
^
_
Some
\verbatim
\verbatim
调用\@xverbatim
.\@xverbatim
尝试使用以下技巧抓住你的论点:
\def\@xverbatim#1\end{#1\end}
但这是不可能的,因为\@xverbatim
试图捕捉
\end
所有字母(\
, e
, n
, d
)的类别 12 和 11。但实际上有四个字母具有其他类别代码:
\
类别 0 和e
, n
,d
类别 11。
有可能(我不确定)这个技巧更熟练:
红色字符的类别为 12。绿色字符的类别为 11。
\def
, \@xverbatim
,是带有(类别 0)和字母(类别 11)\end
的宏。\
\@xverbatim
正在尝试并尝试找到\end
反斜杠 ( \
) 的类别 11 但是....File ended while scanning use of \@xverbatim
如果要创建新宏\codeblock
,则必须执行上述文本之类的操作。
看起来您希望在文档中包含代码,在这种情况下,包列表可能比逐字记录更好。清单还为您提供了许多常用语言的行号和语法突出显示等不错的功能。如果您的 LaTeX 发行版尚未安装,请参阅http://www.ctan.org/tex-archive/macros/latex/contrib/listings/ 。