最終更新:2007-08-08 (水) 15:50:20 (4024d)

TeXマクロ

dirty tricks

詳しくは TeXbook Appendix を参照.

変数を表すために

普通は

<variable>

とか適当に書くようですが,もうちょっと

$\langle$variable$\rangle$

とかやりましょうよ、という事なんですが,

\def\save@less{<}
\def\save@great{>}
`<' のカテゴリコードをアクティブにする
\def<{\ifmmode \save@less\else $\rangle$\fi}
`'> のカテゴリコードをアクティブにする
\def>{\ifmmode \save@great\else $\rangle$\fi}

とかやると 文中では <variable> が angle brackets になる訳ですが, なんか危険そうで怖いです.そこである程度,ユーザの意志を反映し, 且つ原稿の可読性を高めるために

\def\<#1>{$\langle$#1$\rangle$}

と \< を定義した方がスマートでしょう.和文を混在させたければ

\def\<#1>{$\langle$\hbox{}{#1}\hbox{}$\rangle$}

などとします.これで入力の手間も少ないでしょうし,原稿も読みやすくなります.

一件落着.

タイプライタ体を適当に出力する

べた書きの \verb とか verbatim とか裏でナニをごにょごにょしているのか、 ちょっと気になりませんか.

\ ` ' { } ~   _ & 

とか結構うざいので、

\font\hoge=cmtex10
\def\VERB#1{{\hoge
   \let\\=\BS % backslash
   \let\'=\RQ % rigth quote
   \let\`=\LQ % left quote
   \let\{=\LB % left brace
   \let\}=\RB % rigth brace
   \let\~=\TL % tilde
   \let\ =\SP % space
   \let\_=\UL % underline
   \let\&=\AM % ampersand
 #1}}

とか、変な事をやる訳ですが.

\chardef\AM=`\& % ampersand 
\chardef\BS=`\\ % backslash
\chardef\LB=`\{ % left brace
\def\LQ{{\ttfamily\char'22}} % left quote 
\chardef\RB=`\} % right brace 
\def\RQ{{\ttfamily\char'23}} % right quote 
\def\SP{{\ttfamily\char`\ }} % (visible) space 
\chardef\TL=`\~ % tilde 
\chardef\UL=`\_ % underline