あまりにも素敵なので、よい子のみなさんはマネしないように。入力漢字コードがシフト JIS である pLaTeX 限定。
% 文字コードはシフトJIS \documentclass[a4paper]{article} \usepackage[ascii]{inputenc} % おまじないっ! %↓↓↓素敵な定義: オワタ を end に変換する. \def オワタ{end} %↑↑↑素敵な定義おわり \begin{document} You can use \verb|verbatim| environment as follows: \begin{quote}\small % end の代わりに オワタ と書けばよい! \begin{verbatim} Some text\ldots. \begin{verbatim} \expandafter\expandafter\expandafter!! \オワタ{verbatim} Some other text\ldots. \end{verbatim} \end{quote} \end{document}
大事なのは「オワタ
」を半角カナで書くことである。((別に「オワタ
」でなくても半角カナの文字列であれば何でもよい。))ちなみに、欧文 LaTeX であれば、「オワタ
」をシフトJIS/EUC-JP/UTF-8 の何れで書いても上手くいく。((種明かし。「オワタ
」はシフトJIS(或いは EUC-JP/UTF-8)で高位バイトのみからなる列である。inputenc パッケージを読むと、高位バイトが全てアクティブ(カテゴリコード 13)になるので、「\def オワタ
」が「オワタ
」の先頭のアクティブ文字(バイト)に対するマクロ定義として通用するのである。verbatim 環境に入っても、高位バイトのカテゴリコードは全く変わらないので、「オワタ
」のマクロは有効であり続ける、というのが欧文 TeX で動作する理由。また、シフト JIS 入力の pTeX は半角カナの領域(A0h〜DFh)のバイトを和文文字と見做さないので欧文 TeX と同様に正常動作する。EUC-JP/UTF-8 の場合は pTeX の和文入力処理と干渉して失敗するようである。))
真面目な解決法
verbatim パッケージを使うとか。
\documentclass[a4paper]{article} \usepackage{verbatim} \newenvironment{myverbatim} {\verbatim}{\endverbatim} \begin{document} You can use \verb|verbatim| environment as follows: \begin{quote}\small \begin{myverbatim} Some text\ldots. \begin{verbatim} \expandafter\expandafter\expandafter!! \end{verbatim} Some other text\ldots. \end{myverbatim} \end{quote} \end{document}
「verbatim を中に含むユーザ定義環境を作る」のは LaTeX で「何故か上手くいかない」ことの有名な例の一つである。しかし、verbatim パッケージを利用すると、上記のコードのようにして「上手くいく」ようになる。((\begin{verbatim}
/\end{verbatim}
でなくて \verbatim
/\endverbatim
とする必要がある。詳しくはマニュアルを参照。))新しく定義した myverbatim 環境の終端は当然 \end{myverbatim}
なので、そこには「\end{verbatim}
」が入れられるというわけである。
他の手段として、同じく verbatim パッケージを利用して、\verbatiminput
を使うという手もある。