0番染色体

科学は全世界を照らす光である

\relax の使い方 12連発

今回は TeX & LaTeX Advent Calendar 2015 の2日目の記事として投稿しています.初日の昨日は ZR氏 でした.明日は p_typo氏 の予定です.

\relax はその名の通り「TeX をリラックスさせる」命令です [1] .もう少し具体的に言うと,\relax は「何もしない」命令です.そのため,(La)TeX のソース中の適当な箇所に \relax を書き込んでも,多くの場合何も起こりません.例えば

\relax ああ,\relax とても\relax 緊張\relax する.\relax

などと書いたとしても,まるで \relax など存在しないかのように「ああ,とても緊張する.」と出力されるだけです.

ここで初めて \relax の機能を知った方は「そんな命令が何の役に立つというのだ」と思われることでしょう.しかし,実際にはこれが大いに役立ちます.TeX 言語のコード中では \expandafter と並んでよく用いられているぐらいです(当社調べ).したがって,\relax は今年の Advent Calendar のテーマ「今さら人に聞けない "TeX" のキホン」にまさしく適合する話題です.

「TeX 言語? いやいや,私は普通の LaTeX ユーザなので……」と思ったそこのあなた! このページを閉じるのはまだ早いです.本稿のすべての項目とは言いませんが,いくつかの項目は(TeX 言語を扱わない)一般の LaTeX ユーザでも知っておいて損のない話です.特に,今後「簡単かつ実用的なマクロ」を書く可能性のある人にとっては是非知っておいて欲しい内容と言えます.いずれにせよ,本稿は「TeX 言語を一切使ったことのない人」でもわかるようになるべく丁寧な説明を心がけたので,最後までお付き合い願えると幸いです.

なお,本稿では「一般的な \relax の使用法」のみならず「\relax である必然性はないが,しばしば \relax が用いられる事例」や「絶対にこういう使い方をすべきでない」ものまでリストアップしています.こうした注意はその都度指摘していきますが,読者諸氏におかれましても,すべてを鵜呑みにすることのないよう注意してお読みいただければと思います.

続きを読む