逐語的な環境でいくつかのインデントをパラメータとして新しいコマンドを作成することは可能ですか?ユーザ定義のコマンドを逐語的な環境で使用する
\newcommand{codeblock}[1]{\begin{quote}\begin{verbatim}#1\end{verbatim}\end{quote}}
これは機能しません。別の方法がありますか?
逐語的な環境でいくつかのインデントをパラメータとして新しいコマンドを作成することは可能ですか?ユーザ定義のコマンドを逐語的な環境で使用する
\newcommand{codeblock}[1]{\begin{quote}\begin{verbatim}#1\end{verbatim}\end{quote}}
これは機能しません。別の方法がありますか?
あなたはおそらくより良い逐語的にするよりも、パッケージのリストによって提供していた場合には、ドキュメント、内のコードを持つようにしたいように見えます。リストには、多くの共通言語の行番号付けや構文ハイライトなどの優れた機能もあります。 LaTeXディストリビューションにまだインストールされていない場合は、http://www.ctan.org/tex-archive/macros/latex/contrib/listings/を参照してください。
ありがとうございます、リストパッケージは正常に動作します。 – sschaef
どのように\begin{verbatim}
が機能しますか。短く大まかに。
\begin{verbatim}
が\verbatim
に拡張されています。\verbatim
組のカテゴリコードは、数字またはpunctsのようなものです。\verbatim
は、font、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
はすべてのカテゴリとフォントを変更します。しかし、(重要) バックスラッシュ(\end
)のカテゴリは0のままです。そしてSome
後に入力{
、}
、$
、&
、%
、^
、_
のカテゴリがあるため、「引数の読み取り」のまま\verbatim
は、すべてのカテゴリを変更する前に実行されます。しかし、あなたはすべての文字がカテゴリー11の12を持っている必要があります。\verbatim
は\@xverbatim
と呼ばれます。\@xverbatim
は、以下のトリック使って引数をキャッチしようとします:
\def\@xverbatim#1\end{#1\end}
をしかし、それはすべての文字(\
、e
、n
、d
)は、カテゴリ12を持っている \end
をキャッチするため\@xverbatim
試行は不可能です実際には他のカテゴリコードには4つの文字があります: \
カテゴリ0、e
,n
、カテゴリー11.
と210それが可能である(私はわからない)というトリックがもっと見事です:
赤文字は、カテゴリ12グリーン文字は、カテゴリ11 \def
、\@xverbatim
を持ってい\end
は\
(カテゴリ0)と文字(カテゴリ11)のマクロです。
\@xverbatim
しようとバックスラッシュ(\
)は、新しいマクロ\codeblock
を作成したい場合は、テキストの上のような何かをしなければなりませんカテゴリ11しかし.... File ended while scanning use of \@xverbatim
を持って\end
を見つけようとしています。
+1私はすべてを理解していませんでしたが説明のために。 – sschaef
[TeX StackExchange](http://tex.stackexchange.com/)にコミュニティ全体があります。TeX関連の質問は小さすぎません。あなたに役立つかもしれない多くの[リストパッケージに関する質問](http://tex.stackexchange.com/questions/tagged/listings)があります。 –