†逆襲のOS/2†
作成開始日 2013.04.24
最終更新日 2015.12.19
【注意】LaTeX2eの文書は\documentclassから始まる。\documentstyleから始めると、旧バージョン(2.09)互換モードで動作するが、2.09モードでは使用できない機能も多いので 注意。
@段落頭での文字下げはせず、段落間に1行分のスペースを空ける(欧州スタイル?)。
A写真を使った手順説明が大量にある(ページの左半分に写真、右半分に説明文)。
B罫線囲みのコラムが大量にある。
具体的には、次のようなイメージの紙面を想定している。
![]() |
|
まず、マージンは天地各20mm、左右各15mmとする。すると、用紙サイズとマージンから、版面が必然的に決まる。天地は257mm−20mm×2=217mm、左右は182mm−15mm×2=152mmとなる。しかし、LaTeXではこのように用紙サイズとマージンから版面を決めるのではない。明示的に指定するのは、用紙サイズ、片方のマージン(天とノド)、版面サイズで、 これらの値から残りのマージン(地と小口)が自動的に決まる。以上を踏まえて、プリアンブル部でサイズ指定をすると、
\documentclass[10pt,b5paper]{jbook} %JIS B5判の書籍スタイル \setlength{\oddsidemargin}{15mm} %奇数ページのノド \setlength{\evensidemargin}{15mm} %偶数ページのノド \setlength{\topmargin}{20mm} %天 \setlength{\textwidth}{152mm} %版面(左右) \setlength{\textheight}{217mm} %版面(天地)で良さそうなものだが、実はこれでは全然ダメ。まず、何と言っても
つまり、上記の設定では、ノドは15mmではなく40.4mmになってしまうわけだ。15mmにしたければ、15−25.4=-9.6mmを設定しなくてはならない。が、それも判りにくいので、15mmに設定したあと\addtolength命令で1インチ引くことにする。
また、天(\topmargin)は版面までの長さではなく、ヘッダまでの長さである。したがって、ヘッダ領域の長さ(このスタイルでは11mm)を差し引く必要がある。もちろん、天にも1インチのオフセットが設定されているので、1インチと11mm引かなくてはならない。
さらに、版面の天地は、所定の長さよりも1mm程度長くしておくことを推奨する。基本的にTeXは垂直サイズがわずかでもオーバーすると改ページをしてしまうため。その場合、最下行が丸々1行抜けたように見えてしまう。もちろん、1mm伸ばしても本質的な解決になるわけではないが、それなりに効果は実感できる。
以上をまとめると:
\documentclass[10pt,b5paper]{jbook} %JIS B5判の書籍スタイル \setlength{\oddsidemargin}{15mm} %奇数ページのノド \addtolength{\oddsidemargin}{-1in} %オフセット分引く \setlength{\evensidemargin}{15mm} %偶数ページのノド \addtolength{\evensidemargin}{-1in} %オフセット分引く \setlength{\topmargin}{20mm} %天 \addtolength{\topmargin}{-1in} %オフセット分引く \addtolength{\topmargin}{-11mm} %ハシラスペース分引く \setlength{\textwidth}{152mm} %版面(左右) \setlength{\textheight}{218mm} %版面(天地)+1mm用紙とマージンの設定にこれだけ掛かる。
なお、dvipsでdviファイルをPSファイルに変換するときにも、-tオプションでB5判指定が必要。たとえば、testというdviファイルをPSに変換する場合は、以下のようにする。無指定だとA4判になる。
dvips -t b5 test.dviちなみに、このB5判はISO規格のため、地と小口のマージンにサイズのしわ寄せが来る。JISのB5判にしたければ、/texmf/dvips/config/config.psの中でサイズ指定を変更すればよい。
@ b5 182mm 257mm *176mm 250mmをJIS B5に変更ただし、結局私はこの変更をしないことにした。GSViewのB5もISO B5であるため、いじらない方がサイズや位置の確認の際に便利だった。無論、GSViewのB5もJIS B5に書き換えてしまえば良いのだろうが、変更方法が今一つ判らなかった(printer.iniをいじれば良さそうなのだが)。
たとえば、ヘッダは左ページが章タイトル、右ページが節タイトルとし、フッタ部にラインを引いてその下にノンブルを出力する場合には;
\usepackage{fancyhdr} \pagestyle{fancy} \fancyfoot{} \fancyhead[LE]{第1章 レンズマウントの基礎知識} \fancyhead[RO]{1-1 レンズマウントと絞り制御の変遷} \fancyfoot[LE]{\thepage} \fancyfoot[RO]{\thepage} \renewcommand{\footrulewidth}{0.4pt} \renewcommand{\headrulewidth}{0.0pt}
基本構文は簡単。\begin{multicols}{2}と\end{multicols}で挟めばよい。
\begin{multicols}{2} なんたらかんたら… \end{multicols}ただし、この命令はデフォルトでは使えない。先頭の\documentclass行のすぐ下あたりに、
\usepackage{multicol}として、multicolパッケージを読み込んでおく必要がある。また、右段と左段のスペースや、中心線の設定はプリアンブル部で次のようにする(左右の段間7mm、罫線0.2mm)。
\setlength{\columnsep}{7mm} \setlength{\columnseprule}{0.2mm}ただし、今回は中心線は入れないことにしたので、columnsepruleの設定行は先頭に%を付けてコメントアウトしておいた。
【参考】見出しに段組み横断で水平線を付けるときは\hruleを使う。太さ(高さ)は \hrule height 0.5mmのように指定する。
\setlength{\parindent}{0mm} %頭下げなし \setlength{\parskip}{\baselineskip} %段落間1行なお、\baselineskipは本文の1行分の高さ(行間スペースを含む)を意味する。この指定の仕方ならば、左段と右段の行が不揃いになるのを防ぐことができる(もちろん、途中に図表等の要素が挟まれば別だが)。
また、段落間にはある程度の幅を持たせることができる。たとえば、
\setlength{\parskip}{5.2mm plus 2mm minus 2mm}とすると、他の要素との兼合いを勘案しながら、段落間を5.2mm±2mmの幅で自動的に加減する。ただ、これもゲラ段階では不要な機能だろう。また、\baselineskipで指定する場合は、このplus/minus表記は使えないようだ。
\vspace{5mm} \vbox{ \noindent \fbox{\vbox to 50mm{\vfill \hbox to 72mm{\hfill 《図表入る》 \hfill} \vfill}} ■図1 キャプション }【参考】vbox/hboxのサイズ指定は \vbox to XXmm / \hbox to XXmm。また、\vbox{\hsize=XXmm…という指定の仕方もある。
あるいは、frameboxを使えばずっとすっきり書けるが、本来この使い方はpicture環境用。そのためか、プリアンブル部で単位指定をしておく必要がある。逆に、frameboxのサイズ指定に単位を書いてはいけない。ちょっと異和感のある使用方法だ。
\setlength{\unitlength}{1mm} \begin{document} ………… \vspace{5mm} \vbox{\noindent\framebox(72,50){《図表入る》} %mmを指定してはいけない ■図1 キャプション}
まず、貼り込むEPS画像を用意する。私が使用する標準的な画像はXGAサイズ(1024×768)のJpeg形式だが、これを適当な画像ツール(たとえばPMView)を使って、320×240程度に縮小したEPS画像に変換する。ゲラ出しにフルサイズの画像を挿入するのは無駄だし、JPGをEPSに変換するとサイズが10倍くらいになるので、ディスクスペースの圧迫や動作の鈍重化が問題になる。現実的には縮小は必須と言ってもよいだろう。変換したEPS画像は適当なディレクトリにまとめて置いておくとよい。
【参考】EPSのファイルサイズは、1024×768で約4MB、320×240で400KB台。
EPS画像の読み込みにはgraphicxパッケージを使用する。また、画像の読み込みコマンドは\includegraphicsである。たとえば、カレントディレクトリ直下のphotoディレクトリに入っている001.epsという画像を貼り込むには;
\documentclass{jbook} \usepackage{graphicx} \begin{document} ……… \includegraphics[width=72mm]{photo/001.eps} ……… \end{document}のようにする。これで、001.epsが横72mmのサイズで貼り込まれる。縦サイズはアスペクト比に応じて自動的に決まる(heightオプションで指定することもできる)。
さらに、\includegraphicsで読み込む際に、bb=というオプションを付けて、画像のサイズを指定すること。どうやら、graphicxパッケージはJpegの画像サイズを自動判別できないらしい。そこで、bbオプションで画像サイズを指定するのだが、下記のようにソースに埋め込むのではなく、外部ファイルで指定することもできる。その場合、ebbというツールを使うと便利。たとえば、
ebb mypic.jpgとすると、mypic.bbというファイルが作成され、その中にサイズ情報が書き込まれる。ワイルドカードも使える。このbbファイルが画像と同じディレクトリにあれば、サイズは自動的に参照される。どちらの方法を使ってもよい。
ただし、少し疑問なのは、画像サイズの単位。単純なピクセル単位だと思っていたのだが、bbファイルの中を見ると、どうもそうではないらしい。試してみた限りでは、実際のサイズではなくアスペクト比が合っていれば問題ないようだ。下記の例でも、「bb=0 0 4 3」として試してみたが、結果は同じだった。
\documentclass{jbook} \usepackage[dvipdfm]{graphicx} \begin{document} ……… \includegraphics[width=72mm, bb=0 0 1024 768]{001.jpg} ……… \end{document}なお、前述のようにJpeg→EPS変換を行うとファイルサイズが極端に肥大化するが、このようにJpegをそのまま読み込む方法ならば肥大化現象は起こらない。最終的にはPS/EPSよりも、PDF/JPGに統一する方が良いかも知れない。
\framebox{\vbox{【参考】なんたらかんたら……}}でもよい。この場合、\vboxは必須。直接frameboxの中に長い文章を入れると、改行されずに長〜い罫線囲みになってしまう。ただし、vboxとframeboxの間には若干のスペースがあるため、vboxの横幅は少し小さめ(-5mm程度)に指定する必要がある。さらに、コラムの中は文字サイズを1段下げてsmallとし、行間をデフォルトのsmallよりも広めに設定し、ついでに先頭の「【」が見栄え良く収まるようにparindentを調整すると…
\framebox{ \vbox{\hsize=67mm \small \baselineskip=4.5mm \parindent=-1.5mm 【参考】なんちゃらかんちゃら…… } }と言った感じになる。
しかし、最終的には単なる罫線囲みだけではなく、多少デザイン的にも凝る可能性が高い。その場合、必要なスペースはこうした単純な罫線囲みよりも、かなり大きくなる。また、LaTeXには各種の囲み機能が用意されているので、これを使う方が賢明かも知れない。たとえば、見出し付きで角丸の罫線囲み(itembox)は、次のようになる。
\usepackage{ascmac} \begin{document} ……… \begin{itembox}[l]{【参考】} \small \baselineskip=4.5mm なんちゃらかんちゃら…… \end{itembox}
\begin{multicols}{2} \includegraphics[width=72mm]{photo/001.eps} @なんたらかんたら…\\ Aなんたらかんたら…\\ Bほんならどうたら… \end{multicols}ただし、この方法には問題が二つある。一つは、機種依存の丸囲み数字(@AB…)で、これが直接扱えないのはTeXの大きな問題点。もちろん、方法はある。○と数字を重ね打ちするマクロなどが用意されているのでそれを使えばよい。一番単純なのは、
\textcircled{3}ほんならどうたら…ただし、テキストの表記自体にTeXのマクロを使うのはかなり抵抗がある。あくまでも、このTeX組みはゲラ出しレベルで、最終的にはプレーンテキストが必要になる(MacのDTPソフトに流し込むことになるはず)。したがって、レイアウト要素にTeXのタグを使うのは何の問題もないが、文字レベルでTeXのタグが出てくるのは相当に困るのだ。仕方がないので、当面、(1)(2)(3)…で代用することにする。
以前、某出版社からもらったスタイルファイルで、機種依存の丸囲み数字がそのままま通るものがあったような気がするが、今となってはひっぱり出すのも一苦労。そもそも機種依存性が高いので、プレビューアが対応できるかどうかもわからない。そのときは確か、丸囲み数字のグリフを自作(と言うか、DOS/V Super Driversのフォントの移植)した覚えがある。 |
もう一つの問題点は、この方法だとOverfull \vboxのワーニングが大量に発生すること。実害はないようだが、非常に気持ちが悪い。これは要するに、左段の写真と右段の説明の分量がうまく釣り合っていないときに発生する。そして、たいていは釣り合わないから実質的には常時発生する。そこで、説明文を写真と同じ高さのvboxの中に入れてしまえばよい。写真が72mm×54mmならば、
\begin{multicols}{2} \includegraphics[width=72mm]{photo/001.eps} \vbox to 54mm{ (1)うんちゃらかんちゃら\\ (2)なんたらかんたら\\ (3)それそれふにゃふにゃ } \end{multicols}といった具合になる。これでワーニングは激減した。
【参考】強制改行は「\\」または「\newline」
%%% パッケージの読み込み %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{multicol} \usepackage{graphicx} \usepackage{ascmac} %%% 版面設定 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \setlength{\oddsidemargin}{15mm} \addtolength{\oddsidemargin}{-1in} \setlength{\evensidemargin}{15mm} \addtolength{\evensidemargin}{-1in} \setlength{\topmargin}{20mm} \addtolength{\topmargin}{-1in} \addtolength{\topmargin}{-11mm} %ハシラのスペース \setlength{\textwidth}{152mm} \setlength{\textheight}{218mm} %本来は217mm、1mmはギリギリの場合のアソビ \setlength{\columnsep}{7mm} %\setlength{\columnseprule}{0.2mm} \setlength{\parindent}{0mm} \setlength{\parskip}{\baselineskip} %\setlength{\parskip}{5.2mm plus 2mm minus 2mm} \setlength{\unitlength}{1mm} %%% マクロ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\コラム#1#2{ \begin{itembox}[l]{#1}\small \baselineskip=4.5mm #2 \end{itembox} } \def\手順#1#2{ \begin{multicols}{2} \includegraphics[width=72mm]{#1} \vbox to 54mm{#2} \end{multicols} } \def\図#1#2#3{ \vspace{\baselineskip} \vbox{ \noindent \framebox(#2,#3){《図表入る》} #1} }