逐語的な環境といくつかのインデントでパラメーターを使用して新しいコマンドを作成することは可能ですか?
\newcommand{codeblock}[1]{\begin{quote}\begin{verbatim}#1\end{verbatim}\end{quote}}
これは動作しません。他の方法はありますか?
どのように\begin{verbatim}
動作します。簡潔に、そして大まかに。
\begin{verbatim}
に展開され\verbatim
ます。\verbatim
、各特殊文字のカテゴリ コードを 12 に設定します。これで、すべての文字が数字または句読点のようになります。\verbatim
font、parindent、calls を設定します\@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 {}$&%^_
注: {
, }
, $
, &
, %
,^
には、11 または 12 ではなく、_
1、2、3、4、6、7、8 のカテゴリがあります!!! )
\codeblock
に展開し\begin{quote}\begin{verbatim} Some {}$&%^_\end {verbatim}\end {quote}
ます。
重要:のバックスラッシュは\end
11 ではなくカテゴリ 0 です。さらに、 and は 11では{
なくカテゴリ}
1 と 2 を持ちます。そして、、、、、はカテゴリ 3、4、6、7、8 を持ちます。$
&
%
^
_
\begin{quote}
に展開し\quote
て\quote
実行します。\begin{verbatim}
に展開し\varbatim
ます
。\varbatim
すべてのカテゴリとフォントを変更します。しかし、(重要) バックスラッシュ (in \end
) のカテゴリは 0 のままです。また、「引数の読み取り」がすべてのカテゴリを変更する前に実行されるため、後に入力された{
, }
, , ,$
の&
カテゴリが残ります。ただし、すべての char のカテゴリが 11 または 12 である必要があります。%
^
_
Some
\verbatim
\verbatim
を呼び出します\@xverbatim
。\@xverbatim
次のトリックを使用して、引数をキャッチしようとします。
\def\@xverbatim#1\end{#1\end}
しかし、すべての文字 ( , , , )がカテゴリ 12 と 11 を持っている
場所を\@xverbatim
キャッチしようとする
ため、それは不可能です。\end
\
e
n
d
\
e
n
d
トリックがより巧妙である可能性があります(私にはわかりません):
赤色の文字はカテゴリ 12 です。緑色の文字はカテゴリ 11
です。 \def
、\@xverbatim
、(カテゴリ 0) と文字 (カテゴリ 11)\end
を持つマクロです。\
\@xverbatim
\end
バックスラッシュ ( \
) がカテゴリ 11 を持っている場所を見つけようとしていますが....File ended while scanning use of \@xverbatim
新しいマクロを作成したい場合は\codeblock
、上記のテキストのようなことをしなければなりません。
ドキュメントにコードを入れたいようです。その場合は、逐語的にではなく、パッケージの一覧を表示した方がよいでしょう。Listings は、多くの一般的な言語の行番号付けや構文の強調表示などの優れた機能も提供します。LaTeX ディストリビューションにまだインストールされていない場合は、 http://www.ctan.org/tex-archive/macros/latex/contrib/listings/を参照してください。