2009春 夢束本LaTeX2ε組版まとめ (5)-柱を出力するための姑息な裏技(笑)
(LaTeX2ε組版まとめ (4)から続く)[ プロジェクト遺産へ]
LaTeXと生TeXの違い
LaTeX2ε組版まとめ (1)で、「取りあえずTeX=LaTeX2εと思って結構です」と書きましたが、ちょっとここで両者がどう違うのか書いておきます。
TeXを開発したのはスタンフォード大学元教授のDr.クヌースという数学者の人です。これは俗に「生TeX(なまてふ)」とか「裸のTeX」などと呼ばれます。生TeXでは、紙に記述する事に関する限り文章から図表まで、ほとんどありとあらゆることができます。ページの端から何ミリの場所に何ポイントの文字を入れるか、というような事を非常に繊細に指定できます。ですから、本を作るときに章の文字をきわめて細かく指示することができます。
しかし、これは逆にやっかいな問題を引き起こすことがあります。たとえば章の題字をもう少し大きくしたいというようなとき、10章からなる本だったら10箇所に渡って文字サイズを書き換えなければなりません。ミスを犯しやすいですし、作業が繁雑になります。
そこで生TeXの一連の命令群を一まとめのマクロにし、マクロのパッケージとセットで配布して使いやすくするということが、有志によって行われてきました。
そのマクロ・パッケージによって種類が分かれますが、中でも一番普及しているのがレスリー・ランポートによって実装されたLaTeXです。LaTeXはおよそ十年前に大きな改良がなされて、それを境に旧LaTeX(LaTeX 2.09)と新LaTeX(LaTeX2ε)と区別されるようになりました。したがって、今は普通LaTeXと言えば自動的にLaTeX2εの事を指します。
LaTeXになって何が便利になったかというと、たとえば上に書いた章の文字の出力の例で言えば、生TeXでは直接位置やサイズや前後の空白を指定するところを、LaTeXでは\chapter命令というものが用意されていて、
TeXを開発したのはスタンフォード大学元教授のDr.クヌースという数学者の人です。これは俗に「生TeX(なまてふ)」とか「裸のTeX」などと呼ばれます。生TeXでは、紙に記述する事に関する限り文章から図表まで、ほとんどありとあらゆることができます。ページの端から何ミリの場所に何ポイントの文字を入れるか、というような事を非常に繊細に指定できます。ですから、本を作るときに章の文字をきわめて細かく指示することができます。
しかし、これは逆にやっかいな問題を引き起こすことがあります。たとえば章の題字をもう少し大きくしたいというようなとき、10章からなる本だったら10箇所に渡って文字サイズを書き換えなければなりません。ミスを犯しやすいですし、作業が繁雑になります。
そこで生TeXの一連の命令群を一まとめのマクロにし、マクロのパッケージとセットで配布して使いやすくするということが、有志によって行われてきました。
そのマクロ・パッケージによって種類が分かれますが、中でも一番普及しているのがレスリー・ランポートによって実装されたLaTeXです。LaTeXはおよそ十年前に大きな改良がなされて、それを境に旧LaTeX(LaTeX 2.09)と新LaTeX(LaTeX2ε)と区別されるようになりました。したがって、今は普通LaTeXと言えば自動的にLaTeX2εの事を指します。
LaTeXになって何が便利になったかというと、たとえば上に書いた章の文字の出力の例で言えば、生TeXでは直接位置やサイズや前後の空白を指定するところを、LaTeXでは\chapter命令というものが用意されていて、
\chapter{出会い}
などと書けば、あらかじめ\chapterで定義されている生TeXのコマンド群に従って、サイズや前後の空白が自動調整されます。それが気に入らない場合は、\chapterを定義しているパッケージに手を入れて生TeXで微調整すればいいのです。これなら章が何カ所あろうが、一気に好みの調整をすることができます。
縦書きとLaTeXの間にある微妙な問題点
LaTeXを縦書きにすることも有志の手で実装されて、これにより小説などもLaTeXで書けるようになりました。今回のSSE本もその恩恵で原稿作成ができたわけです。
現在ではほとんど問題がなく縦書きの原稿が作れるわけですが、美観にこだわる人にとっては、まだ完璧とは言えない点がいくつかあって、その一例が上記の\chapter命令などです。LaTeXでは、
現在ではほとんど問題がなく縦書きの原稿が作れるわけですが、美観にこだわる人にとっては、まだ完璧とは言えない点がいくつかあって、その一例が上記の\chapter命令などです。LaTeXでは、
章 → \chapter
節 → \section
項 → \subsection
節 → \section
項 → \subsection
という風に命令が用意されていて縦書きでもこれらが使えるわけですが、元々は横書きの論文を書くために作られているマクロであるため、小説などでこれを使うと、\chapterなどはちょっと大げさなくらい大きな文字で、さらに前後の空白もたっぷりと空けられます。
このため、たとえば木本さんが過去の夢束本を組版したときはこれらの文章構造に関する命令は使わず、手動で制御されていました。
このため、たとえば木本さんが過去の夢束本を組版したときはこれらの文章構造に関する命令は使わず、手動で制御されていました。
柱に出力したい!
ぼくは今回、組版でどうしてもやりたいことがありました。それが柱への出力です。企画名と作品名と著者名をページの上部に出したかったのです。具体的には下図に示すような感じです。
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。
見ての通り、偶数ページの上部には企画名、奇数ページの上部には作品名と著者名が載っています。こうすれば本を開いたときに、いまどこを見ているのかが分かり、見通しが良くなります。
最初、これを生TeXでやろうとしました。しかし、どうやってもうまくいきません。元々柱はLaTeXが場所を確保してくれているものなので、そこに生TeXで文字を流し込もうとすると、めちゃくちゃになってしまうようです。
最初、これを生TeXでやろうとしました。しかし、どうやってもうまくいきません。元々柱はLaTeXが場所を確保してくれているものなので、そこに生TeXで文字を流し込もうとすると、めちゃくちゃになってしまうようです。
ジレンマ……節と項を使わなければ実現できない
もちろんLaTeXで柱に出力する命令は用意されています。しかし、それは節と項を出力するためのものなので、それらを本文中に挿入しなければなりません。
そうすると下記のような見苦しい体裁になります。
そうすると下記のような見苦しい体裁になります。
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。
こうなってしまったのは、\section命令を下のように素直に書いたからです。
●LaTeX原版
----ここから----
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。
----ここまで----
ここで出てくる\input{jisen-interview}というのは、インタビュー記事を記述したjisen-interview.texという別のLaTeXファイルで、ここにその内容を流し込んでくれ、という意味です。
いずれにせよ、柱に目的の内容を記述したければ、本文にこのように\section{}や\subsection{}をまともに書くしかありません。しかし、本文を読むのにはこれらは不格好で余計です。
生TeXを自在に使いこなすスキルのある人なら、きっとこんなことをせずに柱をきっちり記述できるのだと思いますが、ぼくには方法が見つかりませんでした。
いずれにせよ、柱に目的の内容を記述したければ、本文にこのように\section{}や\subsection{}をまともに書くしかありません。しかし、本文を読むのにはこれらは不格好で余計です。
生TeXを自在に使いこなすスキルのある人なら、きっとこんなことをせずに柱をきっちり記述できるのだと思いますが、ぼくには方法が見つかりませんでした。
姑息な逃げ……節と項を隠す!(笑)
仕方なく次善の策を考えました。たぶんLaTeXの腕前の達者な人が見たら「こいつバカか」と失笑すると思います(笑) 本当はこんな舞台裏は明かしたくないのですが、今後、組版を担当する人の参考になればと、恥を忍んで書きます。
- 柱にタイトルや著者名を書きたければ、本文中に節や項(\section{}, \subsection{})を書くしかない。
- しかし、それらは勝手に場所も取るし、そもそも余計な情報である
↓↓↓
- せめて、\section{} や \subsection{} が極小サイズで、しかも前後の空白が無く、さらに色が透明だったらいいのに……(無能なくせに欲張りw)
★まず文字サイズを極小にして、ついでに前後の空白も消す
LaTeXには \renewcommand という特殊な命令があります。すでにLaTeXで決められている色々な命令を、生TeXを使って、自分の都合の良いように書き換える命令です。
これを使って、プリアンブル(LaTeX2ε組版まとめ (2)参照)で\section命令と\subsection命令を次のように書き換えました。
これを使って、プリアンブル(LaTeX2ε組版まとめ (2)参照)で\section命令と\subsection命令を次のように書き換えました。
●LaTeX原版
----ここから----
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。
----ここまで----
なんだか、おまじないみたいですよね。これが生TeXです。ちなみに「%」より後ろは注釈で、LaTeXはこれらを無視します。
これにより、以後、\sectionと\subsectionは場所も取らず、サイズも小さくなります。
これにより、以後、\sectionと\subsectionは場所も取らず、サイズも小さくなります。
★次に\sectionおよび\subsection命令自体の姿を消す(笑)
LaTeXでは\textcolorという、文字に色を付ける命令があります。これを利用して文字色を「白」にすれば、紙も白ですから、見た目上は消えるはずです。
●LaTeX原版
----ここから----
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。
----ここまで----
- \input命令は上で説明したので省略します
- \newpage命令は、改ページを指示するコマンドです。これで企画先頭のインタビューから改ページされて本文へ入っていきます。
- \textcolor[gray]{1.0}{\section{ショートストーリーイベント自薦作品} は、「\section{ショートストーリーイベント自薦作品」という文字、つまり節の見出しをグレイスケールで1.0すなわち白色で印字せよという命令になります。これで印刷してもそこには何も写らなくなります。
これで柱への出力だけが実現!!(笑)
最後にもう一度上に示した、完成品の版下を載せます。\sectionも\subsectionも無いのに(いや、ほんとはあるけどw)柱にだけ、企画名、作品名、著者名が記載されていますね。めでたし、めでたし。
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。