TEX による日本語縦組と化学構造式の組版

藤田眞作 (Fujita, Shinsaku) 京都工芸繊維大学工芸学部物質工学科

2000/10/06

研究集会「非欧文言語における TEX」 (2000/10/06，東京，於東京大学大学院数理科学研究科大講義室) で一部報告．\begin{matrix}c \\ ◯ \end{matrix} 2000 by Shinsaku Fujita (藤田眞作)．

1 はじめに

1.1 自己紹介にかえて—演者の TEX/L^{A}TEX 歴

自己紹介にかえて，筆者の TEX/L^{A}TEX 歴を図 1 に示します．筆者は，もともと有機合成化学者で， 25 年間，写真会社 (富士写真フイルム) でインスタントカラー写真の有機材料の開発研究に携わっていました (この間の研究の成果は，「フォトラマ」という商品になっており，昭和 57 年度の有機合成化学協会賞を受賞しています)． 1980 年代の後半に，有機反応のデータベースシステムの構築に興味をもちました．その発展として，有機反応の列挙 (数え上げ) をおこなう必要がでてきて，泥縄式に「組み合わせ論」という数学の一分野に首を突っ込むことになりました．

化学と数学の接点で仕事をするようになって，困ったのが論文作成の道具です．それまで，電動タイプライター (ワードスターというソフトウェアと連結したシステム) で論文を書いていたのですが，数式はどうしても手書きになってしまい，能率があがらないことおびただしい状況でした．そのころ， TEX/L^{A}TEX の風聞はきいていたのですが，過去の資産もあるし，ロートルには UNIX ベースのソフトウェアは敷居が高く，なかなか踏ん切りのつかない状態でした．そんな折りしも， 1989 年に「日本語 MicroTEX 」という PC98 用のソフトウェアがアスキー社から発売されました．ちょうどよい機会とこれに飛びついたわけです．このときに TEX/L^{A}TEX を使い始めたわけで，本日講演の機会をいただいてますが，たかだか 10 年程度の経験しかないのです．

そんなわけで，最初は， TEX/L^{A}TEX を数理有機化学の論文の作成に使っていました．この分野の仕事がまとまってきましたので， 1991 年に Springer-Verlag というドイツの出版社から単行本を出版することになりました．この版下の作成に L^{A}TEX を使いました．このときは，お仕着せの book スタイルをそのまま使うという程度でしたが， TEX/L^{A}TEX の実力を実感しました．

当時， TEX/L^{A}TEX は，物理や数学の分野の研究者が主なユーザーでした．筆者が携わっている化学の分野にも普及させたいと思い，東京化学同人という出版社から「化学者・生化学者のための L^{A}TEX」を出版しました．「化学者・生化学者」とありますが，これらの分野に限らず広い範囲の読者をえたようで，のちに増し刷りをおこなうことができるまでになりました．この本を執筆する過程で，有機化学に必要な構造式の描画機能がないことを痛感しました．例年あれやこれやで夏休みはたいてい忙しいものですが，たまたまなにも用事がない夏休みがとれたので，その夏休みの前後で， XΥMTEX (キュムテック) という構造式描画システムを完成させました． XΥMTEX システムのマニュアルの出版は 1997 年で，私事になりますが，この年に現在の職場 (京都工芸繊維大学) に転職しました．このシステムは， 1999 年にバージョン 2.00 を公表しており，順調に発展しています．

一方，日本語の縦組については，「L^{A}TEX 本づくりの八衢」を書いたころ (1996 年) に興味をもちました．この書物に縦組の記述をいれる必要性を感じたのですが，紙数の関係から除外せざるをえず，結局，本格的に取り組むところまでにはいたりませんでした．当時は，金水先生 (現在，大阪大学) の経典翻刻の仕事があるものの， TEX/L^{A}TEX 1989 日本語 MicroTEX (アスキー) PC-9800 用入手．論文作成に使い始める． 1991 S. Fujita, “Symmetry and Combinatorial Enumeration in Chemistry,” Springer-

Verlag を L^{A}TEX 組版で出版． 1993 藤田眞作，「化学者・生化学者のための L^{A}TEX—パソコンによる論文作成の手引」，東

京化学同人．

XΥMTEX Version 1.00 公表． 1995 藤田眞作，「L^{A}TEX まくろの八衢」，アジソン・ウェスレイ． 1996 藤田眞作，「L^{A}TEX 本づくりの八衢」，アジソン・ウェスレイ．

XΥMTEX Version 1.01 公表．

藤田眞作，「L^{A}TEX 2ε階梯」，アジソン・ウェスレイ． 1997 藤田眞作，「XΥMTEX—Typesetting Chemical Structural Formulas」，アジソン・ウェ

スレイ． 1998 藤田眞作，「続 L^{A}TEX 2ε階梯・縦組編」，アジソン・ウェスレイ (1998)． 1999 XΥMNotation & XΥMTEX Version 2.00 公表． 2000 藤田眞作，「pL^{A}TEX 2ε入門・縦横文書術」，ピアソン・エデュケーション．

図 1: 演者の L^{A}TEX 歴

による縦組が一般に広まっているとはいえない状況でした． pTEX から pL^{A}TEX，さらに pL^{A}TEX 2εへと縦組の機能は強化されていたのですが，本格的に使いこなそうという「酔狂な」人がいなかったのでしょう．もともと，古典文学は好きなほうでしたので，これを素材に縦組を試みることにしました．すでに横組のルビ (ふりがな) について詳しく検討していたので，これを縦にするところから始めました．この成果が，「続 L^{A}TEX 2ε階梯・縦組編」です．コンピューター関係の書物を pL^{A}TEX 2εの縦組で作ったということで，めずらしい試みではないかと思っています．また，この書物によって， pL^{A}TEX 2εの縦組の実力を広く示すことができましたので，国文学関係の TEX/L^{A}TEX ユーザーを広く開拓することができたのではないかと思っています．

1.2 組版材料をどのように配置するのか

この講演のタイトルには，「日本語の縦組」と「構造式組版」という関係のなさそうな項目をつなげました．これは外見上のことで，組版という目でみると，じつは同じ仕事をおこなっているということになります．図 2 をご覧ください．「日本語の縦組」の例として，ルビをあげました．大きい四角が親文字で，その右の小さい四角がルビです．組版の立場からは，要するに，親文字の右側にルビを配置することです．一方，右側の図は XΥMTEX による構造式です．六角形のベンゼン核があって，その回りに OH などの置換基 (この場合は文字列) を配置しています．両者の外見は異なりますが，煎じ詰めれば，組版材料をどのように配置するのかという課題になるわけです．したがって， TEX のマクロの段階では，共通要素がたくさんあります．以上が，「日本語の縦組」と「構造式組版」を並べて，題材に選んだ理由です．時間の関係もありますので，「日本語の縦組」を主にし，「構造式組版」を時間が残ればお話したいとおもいます．

2 日本語組版

2.1 組版ルールと版面設計

さて，本題にはいることにしましょう．この講演では，文字主体の日本語書籍の組版をどうするかを考えることにします．特に，縦組について検討します．図 3 に示すように，日本語組版を考える場合には，二つの局面に分け

[figure: OH; NO_{2}; F; Cl; Br; HO]
日本語組版 (ルビ)  XΥMTEX

図 2: 日本語組版 (ルビ) と構造式

\begin{matrix}この講演では，文字主体の日本語書籍の組版をどうするかを考える．特に，縦組について \\ 考えることにする． \\ \{ & \begin{aligned}行と段落の整形 & ⟹ & ■組版ルール \\ ページの整形 & ⟹ & ■版面設計 \end{aligned} \end{matrix}^{図 3: 組版ルールと版面設計}

ると便利です．一つは，「組版ルール」が重要になる段階で，具体的にいえば，行の整形と段落の整形です．もう一つは，「版面設計」が重要になるところで，具体的には，ページの整形の段階です．

2.2 基本的な組版ルール

まず，行の整形と段落の整形についてみましょう．ここでは，「組版ルール」が重要です．「組版ルール」は，出版社や印刷会社の個別のもの (いわゆるハウスルール) があり，さまざまです．しかしながら，共通項というべきものがいくつかあります．強調したいのは，基本的な組版ルールは， pTEX の中に織り込まれているということです．正確にいうと，基本的な組版ルールを実現するための枠組がそなわっています．具体的にいうならば， pTEX には，日本語組版に必要な概念が追加され， TEX にないプリミティブ命令が組み込まれているのです．図 4 には，これらの項目を参考文献とともにあげておきました．

1. 図 4 の第一の項目の「文字の寸法」は，文字の前後の空きなどを規定するものです． pTEX では， TEX のフォントメトリックファイル (tfm ファイル) を拡張して， min10.tfm (10pt の明朝) などの jfm ファイル (拡張子は同じ.tfm) を設計しています．

2. 日本語の「ベタ組，詰め処理，延ばし処理」を制御するために， Ykanjiskip と Yxkanjiskip がプリミティブ命令として追加されています．

3. 日本語特有の「禁則処理」は， kinsoku.tex にこまごまとした設定が記述されています．この制御のために，

    Yxspcode， Yinhibitxspcode などの命令が新たに作成されています．

4. 日本語には縦組と横組がありますが，基準線の位置が異なります．それぞれを制御するために， Ytbaselineshift および Yybaselineshift がプリミティブ命令として追加されています． ■基本的な組版ルールは， pTEX の段階で実現されている．

文字の寸法 jfm (min10.tfm など) の設計

ベタ組，詰め処理，延ばし処理

                                            Ykanjiskip とYxkanjiskip

禁則処理 kinsoku.tex の設定． Yxspcode，

                                            Yinhibitxspcode など．
                基準線  Ytbaselineshift， Yybaselineshift

■参考文献

• 倉沢良一， TEX システムの日本語化，オンラインマニュアル (jtex.tex)，昭和 62 年 3 月付

• アスキー出版技術部編，「日本語 TEX テクニカルブック I」，アスキー出版局 (1990)．

• H. Hamano, Vertical typesetting with TeX, TUGboat, 11 (3), 346 (1990).

• 濱野尚人，田村明史，倉沢良一， TEX の出版への応用— 縦組み機能の組み込み — オンラインマニュアル (ptexdoc.tex)， (日付不詳)．

図 4: pTEX の組版ルール

このように，日本語の組版をおこなうための枠組は， pTEX の段階で用意されています．ユーザーが容易にしかも便利に使えるというところまでもっていくというのが，この講演の眼目になります．

一方， JIS X 4051-1995 として，「日本語文書の行組版方法」が公開されています (図 5)．この規格は，活版・写真植字時代の組版ルールをコンピューター組版に継承する目的をもっていると考えられます．拙著「L^{A}TEX 本づくりの八衢」で検証していますが，ほとんどの JIS 規格の組版ルールは pTEX で実現されており，実現されていないものも，パラメーターを変更すれば実現可能です．ただ， JIS 規格では「読点」を終わり括弧と同じ分類に入れ，「句点」と区別しています．これは，おもしろい観点で， pTEX にも取り入れると，可能性がひらけます． TEX では，コンマとピリオドを Yspacefactor で区別していますが，これにかわるメカニズムになりうるのではないかとおもいます．

ここで注意しなければならないのは，図 6 に示すように， JIS 規格と pTEX の根本的な違いです． JIS 規格では，和字と和字の間は必ずベタ (詰めも延ばしもしない) であるのに対して， pTEX では，和字と和字の間は必ずしもベタではなく，詰めも延ばしも，もちろんベタも，設定次第だということです．この違いをもう少し詳しくしらべてみましょう．

JIS 規格では，和字と和字の間は必ずベタであることを前提に，行整形の際にでた半端を調整する優先順位が，詰め処理と延ばし処理に分けて掲載されています．図 7 に概略を示します．右の図では，ベタでは調整できない例をあげてあります (ただし，四角で示したのが漢字のみということはないので，現実的には，行に含まれるかなの間を割るという調整をおこなうことになります)．

一方， pTEX では，和字と和字の間は必ずしもベタではなく，詰めも延ばしも設定次第です．図 8 に概略を示します．左の図 (一行目) では，文字の間を空けて調整しています．図 7 の左の図と比較してください．

活版の組版では，行末やかなの部分に八分アキなどを挿入して調整する方法が行われていました．調整をかなの部分に限るのは，漢字と漢字の間に空きを入れると目立つので避けるためといわれています． pTEX では，行全体に均等に空きを入れる方法をとっています．筆者の経験から，漢字と漢字の間に空きも気にならない程度に収まるので，かなの部分を特別扱いにする必要はないと判断しています．

■ JIS 規格

JIS X 4051-1995 「日本語文書の行組版方法」，日本規格協会 (1995)

• ほとんどの JIS ルールは pTEX で実現されている． (検証)

– 藤田眞作，「L^{A}TEX 本づくりの八衢」，アジソン・ウェスレイ (1996)

(取り入れるべきところ) – 「句点」と「読点」の重みづけ

– ( 「半角括弧類とカギ」 )

図 5: JIS 規格と pTEX の組版

■ JIS 規格と pTEX の根本的な違い

• JIS 規格和字と和字の間は必ずベタ (詰めも延ばしもしない)

• pTEX 和字と和字の間は必ずしもベタではない．詰めも延ばしも設定次第．

図 6: JIS 規格と pTEX の組版の違い (JIS 規格と pTEX の根本的な違い)

■ JIS 規格

和字と和字の間は必ずベタ (詰めも延ばしもしない)

• JIS 規格での詰め処理欧文間隔 — 中点類 — 始め括弧の前，終わり括弧の後 — 和文と欧文の空き

• JIS 規格での延ばし処理欧文間隔 — 和文と欧文の空き — 延ばし可能箇所 (表あり) — 分割可能箇所 (表あり)

(破綻) 「 。」 (調整可) 「 」「 。」

図 7: JIS 規格の組版ルールの例

(JIS 規格と pTEX の根本的な違い)

■ pTEX では

和字と和字の間は必ずしもベタではない．詰めも延ばしも設定次第．

   • Ykanjiskip とYxkanjiskip に，延び分と縮み分を設定．

(調整) 「 。」 (調整) 「 」「 。」

図 8: pTEX の組版ルールの例組版ルールの適用—より便利に行を組みあげること，段落の形成まで．

■活版・写真植字時代の資産の継承

• 西島九州男監修，「校正技術，エディター講座」，上・下巻，日本エディタースクール出版部 (1972)

• 日本エディタースクール編，「新編校正技術」，上・下巻，日本エディタースクール出版部 (1998)

• 日本エディタースクール編，「標準校正必携」 (第七版)，日本エディタースクール出版部 (1995)

■ TEX/L^{A}TEX での取組

• 藤田眞作，「L^{A}TEX 本づくりの八衢」，アジソン・ウェスレイ (1996)

• 藤田眞作，「続 L^{A}TEX 2ε階梯・縦組編」，アジソン・ウェスレイ (1998)

• 藤田眞作，「pL^{A}TEX 2ε入門・縦横文書術」，ピアソン・エデュケーション (2000)

図 9: 活版・写真植字時代の資産の継承

3 組版ルールの適用—より便利に

以上述べたことでわかるように， pTEX で基本的な組版ルールが実現されています．また pL^{A}TEX 2εのマクロ群により，基本的な縦組の文書が作成できるようになっています．

あとは，縦組の際の「組版ルールの適用」に関して，ノウハウを積み重ねることと，縦組のマクロを整備してより便利に組版できるようにすることが残されています．

3.1 活版・写真植字時代の資産の継承

縦組の際の「組版ルールの適用」に関して，ノウハウを積み重ねる場合に考慮すべきことがあります．それは，活版・写真植字時代の資産をもう一度吟味することです．取り入れるべきところがあれば，取り入れる必要があります．拠り所にすべきなのは，組版の道具に依存しない公平な立場からの記述です．筆者は，図 9 の上段に示した書物がこのような役割をもつとおもっています．

下段には， TEX/L^{A}TEX での筆者の取組を示しています．ここではとりあげませんが， DTP (Desktop Publishing) の立場からのアプローチもおこなわれています．

3.2 本質的なものの継承

活版・写真植字時代の資産をもう一度吟味して継承するものは，外面的なものではありません．なぜ，そのようなルールができてきたのかを検討した上で，その本質的な事項を継承しなければなりません．

1. 組版にとって本質的なものの継承．

2. 新しい革袋に入れる．外面的な継承は，不可．

組版にとって本質的なものとは

■何が変化したのか．

1. コンピューター組版によって，技術的に可能になったことは何か．

(a) 文字と文字の間隔を自由に調整できるようになったこと．

(b) 調整のための演算が容易にできるようになったこと．

■組版ルールの吟味．

1. 継承すべきことがら．

(a) 読みやすい字面．

(b) 行頭禁則．行末禁則．分離禁則．

2. 改変すべきことがら．

(a) ベタ組は金科玉条か．

(b) 「調整箇所をできるだけ少なく」という調整原理を維持すべきか．

(c) 調整の優先順位を固定的に考えること (ペナルティーを使う TEX の方法の合理性を考えるべき)．

(d) 句読点のぶら下げは本当に必要なのか．

図 10: 組版にとって本質的なものとは

図 10 に，若干の私見をまとめてみました．コンピューター組版によって，技術的に可能になったことは何かを考えると，二つのことがらをあげることができます．すなわち，「文字と文字の間隔を自由に調整できるようになったこと」と「調整のための演算が容易にできるようになったこと」です．

活版の組版では，行末やかなの部分に八分アキなどを挿入して調整する方法が行われていたことは，すでに触れました．この調整方法は，よく考えてみれば，すべての文字と文字の間隔を調整するのを避けているということです．すべてを調整すると手間がかかるので，合理的に一部を調整することにしたということでしょう． JIS 規格の組版ルールの優先順位 (図 7) もできるなら調整を一部に留めたいということにほかなりません．「調整する個所をできるだけ少なくして手間を最小限にすること」と「できるだけ調整が目立たないようにすること」の妥協点が， JIS 規格としてまとめられた優先順位 (図 7) に他ならないといえます．この調整方法は，優先順位の高いところで調整できたならば，そこで調整を止めるということです．その結果，調整が特定の個所 (優先順位の高いところ) に集中することになります．

コンピューター組版によって，技術的に可能になった二つのことを考慮すると，別の道があることが明らかです．すなわち，すべての調整候補個所について，半端の分を，ある割合 (優先順位に応じた割合) で按分して調整するという道です．これは， TEX/pTEX が採用したペナルティーに基づく調整に他なりません．図 10 の改変すべきことがらに列挙したことは，もう一度検討してみる価値があります．ペナルティーに基づく TEX/pTEX の調整方法との得失を考える必要があります．

3.3 具体的な事例

写研という会社の写植システムでは， SAPCOL という言語でタグ付けをして，バッチ処理をしていました．筆者は， SAPCOL の詳細はわかりませんが，ちょうどよい具合に， SAPCOL のコードについての記事がありましたので，図 11 に引用します．課題は，「暑さ」のカギ括弧の前後の空きを削除するというものです．この記事によると， SAPCOL には半オというファンクションがあって，これを直前に宣言すると所望の結果がえられるということです．

南国特有の「暑さ」に参った ⟹ 南国特有の「暑さ」に参った

Windows DTP Rress Vol 8. pp. 46–61 「写研の SAPCOL について語ろう!」 (2000) の p. 53 の発言

■ SAPCOL (写研の写植プログラム) のコード

(半角送り)

南国特有の半オ「暑さ半オ」に参った

L^{A}TEX でも，この書式風に書ける．

[figure]

                YdefY半オ {YdefYnext##1{Ymbox{##1}}Ynext}

南国特有のY半オ「暑さY半オ」に参った

[figure]

出力 ⟶ 南国特有の「暑さ」に参った

図 11: SAPCOL (写研の写植プログラム) のコード

同じ記事に，同等のことをおこなうための， QuarkXpress (代表的な DTP ソフトウェア) のコードが載っていましたので，図 12 に引用します．トラッキングと戻しのタグを使っています．

この記事の論旨は，図 11 のコードと図 12 のコードを比較して， SAPCOL のほうが QuarkXpress のよりもタグが少ないので，優れているというものです．この論旨は，筆者の意見では，大きな部分を忘れているとおもいます．大きな部分とは，活版・写真植字時代の資産の何を継承すべきかということです．タグが少ないというのは，この観点からみるとむしろ小さい問題です．要するに，両者は方法が違うだけで，同じ効果をもたらしています．この意味で， QuarkXpress は，立派に活版・写真植字時代の資産の継承しているといえます．

同じものを pL^{A}TEX 2εで組版してみたのが，図 13 です． Ymbox 命令を使えば，簡単に同等の効果をうることができます．また， Y 「命令と Y」命令を作って使うという別解もあります．さらに，図 11 には， SAPCOL 風の半オ命令を定義して pL^{A}TEX 2εで組版したものを載せました．図 12 には， QuarkXpress 風に，トラッキングのタグ YTrc と戻しのタグ YeTrc を作って，同等の効果を出した例を載せてあります．

カギ括弧の前後の空きを削除することが，活版・写真植字時代の組版ルールならば (必ずしもそうではないようにおもいますが)，図 11， 12，および 13 で示したように， SAPCOL でも， QuarkXpress でも， pL^{A}TEX 2εでも，実現可能であるということになります．要するに，組版の「道具」ですから，「よい組版とはどういうものか」という問題意識をもって組版すれば，なにを使っても同じ結果がえられます．

ところで，図 11， 12，および 13 をよくみると，際立っていることが一つあります．それは， pL^{A}TEX 2εの柔軟性です．図 11 の SAPCOL 風の pL^{A}TEX 2εコード，図 12 の QuarkXpress 風の pL^{A}TEX 2εコード，さらには，より簡単な図 13 の pL^{A}TEX 2ε固有のコードをご覧ください．このように，マクロ命令を書けば，いかようにも表現できるのは， pL^{A}TEX 2εのもとになっている TEX のプログラム言語としての実力を示しています．この点が，筆者が pL^{A}TEX 2εによる組版を推している理由です．

同じ記事に，同行見出しの SAPCOL コードが載っていましたので，図 14 および図 15 に引用します．図 14 に載せた SAPCOL のファンクションの説明を，同じ記事から引用して，図 15 に載せてあります．

南国特有の「暑さ」に参った ⟹ 南国特有の「暑さ」に参った

Windows DTP Press Vol 8. pp. 46–61 「写研の SAPCOL について語ろう!」 (2000) の p. 53 の発言

■ QuarkXpress (代表的な DTP ソフトウェア) のコード

(トラッキングと戻しのタグ)

南国特有⟨$t-100⟩の⟨$t$⟩ 「暑さ⟨$t-100⟩」 ⟨$t$⟩に参った

L^{A}TEX でも，この書式風に書ける．

[figure]

       YdefYTrc#1YeTrc{Yhbox to0.5zw{#1Yhss}}
       南国特有YTrc のYeTrc 「暑さYTrc 」 YeTrc に参った

[figure]

出力 ⟶ 南国特有の「暑さ」に参った

図 12: QuarkXpress (代表的な DTP ソフトウェア) のコード

南国特有の「暑さ」に参った ⟹ 南国特有の「暑さ」に参った

■ L^{A}TEX のコード

[figure]

南国特有のYmbox{ 「暑さ」 }に参った

[figure]

出力 ⟶ 南国特有の「暑さ」に参った

(別解)

YdefY 「{Ymbox{ 「}Ynobreak}
YdefY」 {YnobreakYmbox{」 }}

[figure]

南国特有のY 「暑さY」に参った

[figure]

出力 ⟶ 南国特有の「暑さ」に参った

図 13: L^{A}TEX のコード

同行見出し

Windows DTP Press Vol 8. pp. 46–61 「写研の SAPCOL について語ろう!」 (2000) の p. 53 の発言

■ SAPCOL (写研の写植プログラム) のコード

[figure]

縦 11Q 字オ 1 0 EM 1 8 倍行オ 1 7 ・ 5 漢 / DGKL / 仮 / / 全それを

嘆いたデサイナーや編集者、写植オペレーターは星の数ほどいたはずです。段見 1 — 2 — 6 0 級 ( 13Q 漢 / SMH / 仮 / / さすがに ) 現在では「Ｍａｃで作ったから」という理由だけで一刀両断に「読みづらい」という人は時代遅れと呼ばれるでしょう。しかし、一方で

[figure]

図 14: 同行見出し (二行どり) の SAPCOL コード

縦 11Q  縦組，文字 11 級
字オ 1 0  字送り 10 歯
EM 1 8 倍ベタ，行 18 文字
行オ 1 7 ・ 5 行送り 17.5 歯
漢 / DGKL /  書体を石井中太ゴチック
仮 / /  仮名を従属書体 (デフォルト) に
全全角アキ
段段落
見 1  見出しの大きさ固定
— 2  見出しの幅．二行分
— 6 0 級見出しの高さを 60 級に
(  見出し始め
13Q  文字の大きさ
漢 / SMH /  書体を秀英明朝
仮 / /  仮名を従属書体 (デフォルト) に
)  見出し終わり

図 15: 同行見出し (二行どり) の SAPCOL コード (つづき)

■ L^{A}TEX のコード (daijihng パッケージ)

[figure]

それを嘆いたデサイナーや編集者、写植オペレーターは星の数ほどいたはずです。

    Ybegin{hngmdsi}{ さすがに }

現在では「Ｍａｃで作ったから」という理由だけで一刀両断に「読みづらい」という人は時代遅れと呼ばれるでしょう。しかし、一方で

    Yend{hngmdsi}

[figure]

それを嘆いたデサイナーや編集者、写 植オペレーターは星の数ほどいたはず です。 さすがに現在では「Ｍａｃで作っ たから」という理由だけ で一刀両断に「読みづらい」という人は 時代遅れと呼ばれるでしょう。しかし、 一方で

図 16: 同行見出し (二行どり) の pL^{A}TEX 2εコード

同行見出しの「さすがに」のところで，前後にある四角で囲んだものが SAPCOL のファンクションです．同行見出しを指定しているコードは，見から ) までの部分です．ここで，見出しの大きさ，見出しの幅 (二行どり)，見出しの高さ，見出しの文字の大きさ，見出しの書体を指定しています．この部分は，要するに，同行見出しのタグ付けをおこなっているということが本質です．このことをはずさなければ，技術の継承はおこなわれたということになるでしょう．

同行見出しは， pL^{A}TEX 2εでは， hngmdsi 環境 (ハンギング見出し環境) を使うと簡単に実現することができます (この環境は，筆者のホームページから入手できる daijihng パッケージに格納されています)．同じ例文を，この環境で実現した入力コードと出力結果を図 14 に示します．同行見出しのタグ付けをおこなっているという本質は，みごとに継承されているといえます．

写植に関する参考書に，ルビの SAPCOL コードが載っていましたので，図 17 に引用します．ルビの宣言をしたのち，親文字を通常の文字で入力し，ルビを小さな文字で入力しています．これも文字の大きさを変えるということで，タグ付けと同等のことをおこなっています．繰り返しますが，この本質をはずさなければ，技術の継承はおこなわれたということになるでしょう．

pL^{A}TEX 2εでは，中ツキルビ用の furikana パッケージと肩ツキルビ用の furiknkt パッケージがあります．いずれも筆者の開発したもので，筆者のホームページから入手することができます．これらのパッケージを手にいれれば， Ykana 命令などを使うことができます．図 18 に，入力コードと出力結果を示します．この入力コードは，形は違いますが, 親文字とルビ文字を区別するという点で，まさにタグ付けをおこなっていることになります．

■ SAPCOL (写研の写植コード) のルビ

野村保惠、「〈電算植字〉本づくり入門」、日本エディタースクール出版部 (1995)、 p. 131

[figure]

{体 5 — 1 13Q 背せには書しよ名めいなどの背せ文も字じ全偏へんや旁つくりのほか \atop に冠かんむりなどが行間 20 段}

[figure]

図 17: ルビの SAPCOL コード

■ L^{A}TEX のルビ (furikana パッケージ)

[figure]

Ykana{背}{せ}にはYKana{書, 名}{しよ, めい}などの
YKana{背, 文, 字}{せ, も, じ}  Ykana{偏}{へん}や
Ykana{旁}{つくり}のほかにYkana{冠}{かんむり}などが

[figure]

出力 ⟶ 背^{せ} には 書^{しよ} 名^{めい} などの 背^{せ} 文^{も} 字^{じ} 偏^{へん} や 旁^{つくり} のほかに 冠^{かんむり} などが

図 18: ルビの pL^{A}TEX 2εコード

3.4 ぶら下げの可否

ぶら下げとは，行末に句読点がはみ出したとき，句読点の行末禁則を避ける方便です．図 19 の左側の例は，「ぶら下げなし」です．通常のベタ組にすると，一行目の行末に「る。」がきて句点がはみ出します． pL^{A}TEX 2εでは，

     Ykanjiskip=0pt plus .125zw minus 0.03125zw

のように設定して，延ばし処理優先にしておくと，「る。」が二行目に送り出されます．一行目の文字の間には，送り出された一文字分 (全角) が均等に按分されて， Ykanjiskip の空きがはいります．

「ぶら下げあり」にしますと，行末に句読点がはみ出した形が許容されることになります．図 19 の真ん中が，その例です．一行目と二行目に注目してご覧ください．これは，筆者が開発した burasage パッケージの中の Y。命令を用いて実現したものです．ただし，二行目は pL^{A}TEX 2εの標準では，行末の半角アキが除去されます．ここでは，一般的な組版に揃えるため，行末の半角アキが除去されない手だてをしてあります (読点のかわりに Yhbox

to1zw{、 }Ybreak を使用)．

(ぶら下げなし) ぶら下げ組とは、句読点が版面からはみ出した組み方であ る。行の末尾の禁則処理をおこなわなくともよいということか ら、使われることもある。しかし、この前の二行のように、句 読点が禁則に触れる行と禁則に触れない行がとなりあうと、そ のままでは、行の末尾の句読点の位置が揃わないことになる。 (ぶら下げ一部) ぶら下げ組とは、句読点が版面からはみ出した組み方である。 行の末尾の禁則処理をおこなわなくともよいということから、 使われることもある。しかし、この前の二行のように、句読点 が禁則に触れる行と禁則に触れない行がとなりあうと、そのま までは、行の末尾の句読点の位置が揃わないことになる。 (ぶら下げ) ぶら下げ組とは、句読点が版面からはみ出した組み方である。 行の末尾の禁則処理をおこなわなくともよいということから、 使われることもある。しかし、この前の二行のように、句読点 が禁則に触れる行と禁則に触れない行がとなりあうと、そのま までは、行の末尾の句読点の位置が揃わないことになる。図 19: ぶら下げなしとぶら下げあり

図 19 の真ん中の例では，一行目がぶら下げ，二行目が通常の行末の読点になっており，行末に全角分の違いがでています．この違いを許容すると問題は霧消しますが，全角分の違いをそのまま放置することになります．真ん中の例のように隣りあう場合には，行末の凸凹がとくに目立つことになります．そこで，こだわる場合には，図 19 の右側の例のように，二行目の読点もぶら下げにすることがよくおこなわれます．この出力は，次のソースリストに示すように， burasage パッケージの中の Y。命令および Y、命令を用いて実現したものです．

     Ybegin{minipage}<t>{28zw}
     Yparindent=1zw
     YletYswindent=Ynoindent

(ぶら下げ)

     YWajikei{28}

ぶら下げ組とはY、句読点が版面からはみ出した組み方であるY。行の末尾の禁則処理をおこなわなくともよいということからY、使われることもあるY。しかしY、この前の二行のようにY、句読点が禁則に触れる行と禁則に触れない行がとなりあうとY、そのままではY、行の末尾の句読点の位置が揃わないことになるY。

     Ywajikei{28}
     Yend{minipage}

ここで，図 19 の右端の出力と左端の出力を比べてみましょう．右端の出力に二行目は，読点をぶら下げにするために，全角分の調整が必要です．一方，ぶら下げなしの左端の出力の一行目の調節も全角分です．ぶら下げありで調整した結果，調整の手間はまったく同じになってしまいます．両者を比較すると，同じ手間ですから，「る。」を送り出した左側の組版のほうが優ります．この例であきらかなように，ぶら下げを正当化するため従来の理由付けは，コンピューター環境の変化 (図 10 参照) によって，根拠を失ったといえます．

ここで，筆者の考えている段落途中の行末の句読点や約物の処理をまとめておきます．

1. 行末の句読点は，ベタ組 (二分どり) を原則とする．

2. 行末の終わり括弧類は，ベタ組 (二分どり) を原則とする．

3. ぶら下げはおこなわない．

4. 半端は，その行に含まれる文字の間で按分して調整する．この際隣り合った文字の組み合わせに応じて，延び分・縮み分を (段落全体で) 加減する．

これは，要するに pL^{A}TEX 2εの標準 (デフォルト) を採用することにほかなりません．

3.5 詰め処理と延ばし処理

図 20 に示すように， Ykanjiskip の延び分と縮み分の設定を変えると，出力結果が大きく異なります．一番目の例は pL^{A}TEX 2εの標準に近いものです．詰め処理がやや優先になっています．二番目は，延ばし処理が優先されるように Ykanjiskip の延び分を増やしたものです．三番目は，拙著「pL^{A}TEX 2ε入門・縦横文書術」での設定値です．

3.6 二分アキ，三分アキ，四分アキ，八分アキ

括弧の前後は特に注意する必要があります．全角の丸括弧は，二分で二分の空きが付属しています．これを詰めるためには， Ymbox や Yhbox で囲むテクニックが使えます (図 21 の右上)．

一方，半角の丸括弧を使ったときは，和字との間に Yxkanjiskip による四分アキが挿入されます (図 21 の左下)．ここでは， Yxkanjiskip を次のように設定してあります．

     Yxkanjiskip=0.25zw plus1pt minus1pt

半角アルファベットと漢字の間も同じ四分アキがはいります (図 21 の右下)． (pL_{A}TEX 2ε 詰め優先

  Ykanjiskip=0pt plus 0.4pt
  minus 0.5pt)

毎月二十一日の東寺の縁日は、弘法さんとして親しまれている。この日、境内には、骨董、道具、古着、駄菓子などの露天が所狭しと立ち並ぶ。特に、十二月の縁日は、『終まい弘法』と呼ばれる。「なにはともあれ、終まい弘法。」と善男善女が詰めかける。

(延ばしを極端に優先

  Ykanjiskip=0pt plus 0.5zw
  minus 0.05zw)

毎月二十一日の東寺の縁日は、弘法さんとして親しまれている。この日、境内には、骨董、道具、古着、駄菓子などの露天が所狭しと立ち並ぶ。特に、十二月の縁日は、『終まい弘法』と呼ばれる。「なにはともあれ、終まい弘法。」と善男善女が詰めかける。 (pL_{A}TEX 2ε入門・縦横文書術．延ばし優先

                                      minus 0.03125zw)

毎月二十一日の東寺の縁日は、弘法さんとして親しまれている。この日、境内には、骨董、道具、古着、駄菓子などの露天が所狭しと立ち並ぶ。特に、十二月の縁日は、『終まい弘法』と呼ばれる。「なにはともあれ、終まい弘法。」と善男善女が詰めかける。

図 20: 詰め処理と延ばし処理

括弧（全角）の 括弧（全角）の全角括弧では二分アキ 入力コード: 括弧（全角）の括弧（全角）の 括弧（全角）の{入力コード: \atop 括弧Yhbox\{ （全角） \} の}

括弧 (半角) の 括弧 (半角) の

半角括弧では四分アキ入力コード: 括弧 (半角) の

和文と alphabet の間

和文と alphabet の間

四分アキ入力コード:

和文と alphabet の間

図 21: 括弧の前後の空き

3.7 句読点のうしろの空き

3.7.1 行の調整に使う

図 22 の三つの例は，同じ例文の禁則処理の仕方を変えたものです．この例文は，調整なしでは，一行目の「ぴしゃっと」の「ゃ」と「っ」の間が行の切れ目になります．そこで改行するのは，行末の禁則に違反しますので，詰め処理か延ばし処理をおこなって調整することになります．

図 22 の左端に示すのは，行の半端を吸収するために句読点のうしろの空きを調整に使ったものです． Ykanjiskip の延び分を八分アキまで許すように設定していますが， pL^{A}TEX 2εの処理では，詰め処理がおこなわれます．その結果，「ぴしゃっ」までが一行に配置され，一文字分の半端が一行目で吸収されます．

この Ykanjiskip の設定で，句点のうしろの空きを調整に使わないという原則をたてたのが，図 22 の真ん中の例です．「ぴしゃっ」までが一行に配置されるのは，左端の例文とおなじですが，句点のうしろの空きが詰まっていないことが異なります．

詰め処理を許さないという立場で組版すると，図 22 の右端のようになります．この場合は，「しゃ」の二字分を次の行に送り出すことになります． pL^{A}TEX 2εでこの調整をおこなうには， Ybreak で強制改行します．

                    Ykanjiskip=0pt plus0.125zw minus0.025zw

設定によっては、句読点のうしろの空きが調整に使われる。

、 _{10} 。 _{20} _{26} ぴしゃっと、句点のうしろの空きを調整に使わないという原則を立てると、

                                             「Yhbox to1zw{。 Yhss}」

、 _{10} 。 _{20} _{26} ぴしゃっと、

{延ばし処理 \atop 「ぴYbreak しゃっと、」} 、 _{10} 。 _{20} _{26} ぴ しゃっと、

図 22: 句読点のうしろの空き

3.7.2 空きを調整に使わない工夫

図 22 の真ん中の例では，句点のかわりに Yhbox to1zw{。 Yhss}を使って，句点のうしろの空きを調整に使わないようにしています．句点のうしろの空きを調整に使わないことを原則にした場合，このような個別的な指定をおこなうのは面倒です．そこで， Y。と Y、を定義して句点のうしろの空きを調整に使わないようにします．次にその定義を示します．このように定義した Y。命令と Y、命令を使用した例を図 23 に示します．

     YnewifYifburasageYburasagefalse
     YnewdimenYtenhang YnewdimenYtenhangspace
     YdefY。 {Ysetbox0=Yhbox{。 }%
     Ytenhang=Ywd0Ytenhangspace=1zw%
     YadvanceYtenhangspace-Ytenhang
     YburasagetrueYpenalty10000
     Ybox0YhskipYtenhangspace}
     YnewskipYtenhangskip
     YdefY、 {Ysetbox0=Yhbox{、 }%
     Ytenhang=Ywd0Ytenhangspace=1zw%
     YadvanceYtenhangspace-Ytenhang
     Ytenhangskip=Ytenhangspace plus0pt minus.125zw
     YburasagetrueYpenalty10000
     Ybox0YhskipYtenhangskip}

{ 、 _{10} 。 _{20} _{25} _{29} 。 \atop } 、 _{10} 。 _{20} _{26} ぴしゃっ と、 図 23: 句読点のうしろの空き

3.7.3 文字コード

ここで付けたりですが， Y。命令などについて補足をしておきます． Y。命令と Y、命令をわざわざ指定するのは面倒なので，句読点を書けばそのままで図 23 のような仕上がりになるようにしたいとします．実現するための一つのアプローチは，句読点の分類コード (カテゴリーコード, category code) を変更することです．残念ながら，現状の pTEX ではまだ実現されていません．要望を兼ねて，この間の事情についてふれておきましょう．

もともとの TEX では，アルファベット・数字など 256 文字 (一組のフォント) に文字コード (0–255) が与えられています．これらの文字のそれぞれに，番号 0–15 の分類コードが付与されます．

0 エスケープ文字 (escape character)．制御綴 (コントロールシーケンス control sequence) の始めをあらわす文字である． TEX (IniTEX) では，バックスラッシュ\ (ASCII コード 92) をあてている．日本語のパーソナルコンピューターでは，同じ文字コードが円マークYに振られている (本書の方式)． 1 グループ開始文字 (beginning of group)． TEX (plain TEX) では，始め中括弧{をグループ開始文字としている． 2 グループ終了文字 (end of group)． TEX (plain TEX) では，終わり中括弧}をグループ開始文字としている． 3 数式モードの切換え文字 (math shift)． TEX (plain TEX) では，ドル記号$をあてている． 4 整列 (アラインメント) タブ (alignment tab)． TEX (plain TEX) では，アンパサンド&をあてている． 5 行の終了文字 (end of line)． TEX (IniTEX) では，このコードに⟨改行⟩ (ASCII コード 13) をあてている

 (Yendlinechar の項を参照)．

6 パラメーター文字 (parameter)． TEX (plain TEX) では，ハッシュ記号#をあてている． 7 上ツキ文字 (superscript)． TEX (plain TEX) では，サーカムフレックス^をあてている． 8 下ツキ文字 (subscript)． TEX (plain TEX) では，アンダースコアをあてている． 9 無視する文字 (ignored character)． TEX (plain TEX) では， ⟨無効⟩ (ASCII コード 0) をあてている． 10 空白 (space)． TEX (plain TEX) では， ␣ (ASCII コード 32) をあてている． 11 通常の文字 (letter)．大文字小文字のアルファベット． 12 その他の文字 (other character)．ほかの分類に含まれないものすべて．数字や句読点が含まれる． 13 アクティブ文字 (active character)．それ自身で (エスケープ文字をともなわずに) 命令となる文字． TEX

(plain TEX) では，チルデ (˜ ) のみ． 14 注釈文字 (comment character)． TEX (IniTEX) では， %である．これよりうしろの行末は無視される． 15 不正文字 (invalid character)． TEX (plain TEX) では， ⟨削除⟩ (ASCII コード 127) をあてている．

各文字の分類コードは，変更することができます．これは，マクロを作るときの重要なテクニックとなっています．たとえば， Ymakeatletter 命令をよく使いますが，これは，内部で文字 @ の分類コード (通常は 12) を 11 に変更しています． Ymakeatother 命令は，分類コードを 12 に戻す命令です．

3.7.4 和字の文字コード

pTEX では，和字に番号 16–18 の分類コード (カテゴリーコード category code) が付与されています．

16 漢字．第一，第二水準の漢字 (16 区–84 区の文字)． 17 かななど．かな，アルファベットなど (3 区–6 区の文字)． 18 和文記号．その他の和文記号 (1， 2， 7， 8 区の文字)．

文字コード 16–18 の文字は，分類コードを変更することができません (JIS， EUC， Shift JIS の並立のため)．このため，次のように指定して、句読点がそのまま使えるようにしたいのですが，現在はできません．この点は，将来改良されることを期待しています．

   Ycatcode`。 =Yactive
   Ycatcode`、 =Yactive

4 版面設計

次に，ページの形に組みあげる段階を検討しましょう．この場合には，版面設計が重要です．

4.1 活版・写真植字時代の資産の継承

版面設計についても，活版・写真植字時代の資産の継承する必要があります．図 24 には，参考書をあげました．

■活版・写真植字時代の資産の継承

• 藤森善貢，「出版編集技術，エディター講座」 (第二版)，上・下巻，日本エディタースクール出版部 (1978)．

• 「新編校正技術」 上下 日本エディタースクール編，日本エディタースクール (1998)．

• 日本エディタースクール編，「標準編集必携」，日本エディタースクール出版部 (1987)．

• 野村保惠，「〈電算植字〉本づくり入門」，日本エディタースクール出版部 (1995)．

■ TEX/L^{A}TEX での取組

• 藤田眞作，「L^{A}TEX 本づくりの八衢」，アジソン・ウェスレイ (1996)

図 24: 活版・写真植字時代の資産の継承

ここで，活版時代の最高到達点といわれている岩波古典文学体系の組版について例をあげておきましょう (図 25)．この叢書の出版に関しては，武川武雄著「日本古典文学出版に関する覚書」 (日本エディタースクール， 1993) に詳しい記述があります．例に示したのは，その叢書の中の「方丈記・徒然草」の冒頭です．「ゆく河の流れは， ⋯」のところを 2 ページにわたって示します (本ドキュメントでは省略)．全体として頭注形式で，通し柱とノンブルが小口に印刷されます．行間に注番号とルビが二行に出力されています (奥書によると，版下・印刷は精興社です)．

■岩波古典文学体系の組版 ; • 武川武雄，「日本古典文学出版に関する覚書」 , 日本エディタースクール出版部 (1993) ; 古典の版面設計について貴重な記述がある．^{図 25: 古典文学の組版 (活版) の例}

このような複雑な組版も pL^{A}TEX 2εに， tochu パッケージや furikana パッケージを読み込めば簡単におこなうことができます．図 26 に，このようにしてえた出力結果を示します (ただし，この図は，本ドキュメントに取り込むために，命令などを若干変更してあります)．本文は，句読点をぶら下げなしで組んでいます．原本は中ツキルビと肩ツキルビが混在していますが，図 26 では，中ツキルビに変更してあります．

和書の版面には，いろいろな変種があります．縦組の例として，拙著「続 L^{A}TEX 2ε階梯・縦組編」 (アジソン・ウェスレイ， 1998) のもの (見開きの 2 ページ) をあげます (本ドキュメントでは省略)．これは，天に柱とノンブルを出力するようにしています．ノンブルは小口寄せ，柱はノド寄せになっています．もう一つの例として，拙著「pL^{A}TEX 2ε入門・縦横文書術」 (ピアソン・エデュケーション， 2000) の組版をあげます (本ドキュメントでは省略)．これは，小口に柱とノンブルを出力する様式です．一 一流水の暫らく滞っている所。 二水の上に浮くあわ。 三一方では消え、一方ではできて。消えたりでき たりして。 四美しくりっぱな。 五棟を並べ、甍の高さを競うかのように、ぎっし りと立ち並んでいる、貴賎さまざまの人の住居。 「甍」は棟瓦。 六幾時代を経てもなくなるこのとないものだが。 七それが真実昔のままに存しているのかとただし てみるとゆく河の 流^{なが} れは 絶^{た} えずして、しかも、もとの水にあらず。^{一} 淀^{よど} みに 浮^{うか} ぶ^{二}うたかたは、^{三}かつ 消^{き} えかつ 結^{むす} びて、 久^{ひさ} しくとゞまりたる 例^{ためし} なし。 世中^{（よのなか）} にある人と 栖^{（すみか）} と、またかくのごとし。 ^{四}たましきの 都^{みやこ} のうちに、^{五} 棟^{（むね）} を 並^{なら} べ、 甍^{いらか} を 争^{あらそ} へる、 高^{たか} き、いやしき、 人の 住^{すま} ひは、^{六}世々を 経^{へ} て 尽^{つ} きせぬものなれど、^{七}これをまことかと尋 （ぬ）れば、 昔^{（むか）} しありし家は 稀^{まれ} なり。 或^{（あるい）} は 去^{こ} 年^{ぞ} 焼^{や} けて 今^{こ} 年^{とし} 作^{つく} れり。或 は 大家^{（おほいへ）} 亡^{ほろ} びて 小家^{（こいへ）} となる。 住^{す} む人もこれに同じ。 所^{ところ} も 変^{かは} らず、人も 多^{おほ} かれど、いにしへ見し人は、二三十人が中に、わづかにひとりふ たりなり。 朝^{（あした）} に死に、 夕^{（ゆふべ）} に生まるゝならひ、たゞ水の 泡^{あわ} にぞ似（た） りける。 不知^{（しらず）} 、 生^{うま} れ死（ぬ）る人、 何方^{いづかた} より 来^{き} たりて、 何方^{いづかた} へか去る。 方 丈 記二三 ; 図 26: 縦組パッケージを読み込んだ pL^{A}TEX 2εによる古典の組版

22

4.2 版面をまもる

和書，とくに縦組の和書では，版面をまもることが重要です．具体的には，縦組の場合は，次のようになります (図 27 参照)．

1. 上下上は必ず揃える．下も揃えるが，ぶら下げのときは例外． pL^{A}TEX 2εでは，ぶら下げなしが標準なので，上下が揃う．

2. 左右右端の行の中心線と左端の行の中心線が，各ページの一定位置にくるように配置する．

図 27 に示した太い枠が，上の 2 項目を図示した概念図です．通常版面と言っているのは，左右端の文字の端のことですが，ルビなどで必ずしも一定していません．したがって，上の第 2 項のように中心線で考えると，守るべき領域がわかりやすくなります．

図 27 の左に示したコードが，版面をまもる調整のための設定です (地の分の文字は 10pt)．文書のプリアンブ

ルなどで， Yflushbottom を宣言しておきます．その上で， Ytextheight=16Ybaselineskip の宣言で，枠の左

右の太線の距離を 16 行にしています (90^{∘} 回転してみると TEX 本来の組み方向になります)．これに，左右にはみ出した文字の分を加えることによって (YadvanceYtextheight by10pt)，版面を幅が設定されます．そののち Ytopskip=5pt (右端の文字の半分) として，ページ開始点を最初の行の中心線に設定します．この結果，都合 17 行が 1 ページに収まることにになります．

、 。「 。」 、 。

                                                   Ytopskip=5pt
                                                   Ytextheight16Ybaselineskip
                                                   YadvanceYtextheight by10pt

%版面を守るために微調整

                                                   Y@settopointYtextheight
                                                   Ymaxdepth=0pt

図 27: 版面を守るための調整

4.3 ページ禁則

ウィドウとオーファンを避けるというのがページ禁則です (図 28)．和文の縦組では，題目と本文の泣き別れを嫌うことが多いようです (見開きになる場合は，許容することもあります)．

■ページ禁則

• 題目と本文の泣き別れ． Ypenalty で対処できる．あるいは強引にYclearpage とする．

            • Yclubpenalty

段落の最初の行で分割すること．

            • Ywidowpenalty

段落の最後の行の前で分割すること (とくに、段落の最後の一行が一字だけで，偶数ページに送られることは避ける)． (widow) 、 ■ 。 。 (club line, orphan)

、

。 ■ ■ ■ ■ ■ ■ ■ ■ ■

。

図 28: ページ禁則

4.4 各行を一定位置におく

活版のような凸版印刷の時代には，裏表のページの行位置を揃えることがおこなわれていました．というのは，あるページの行間に裏のページの行がくると，裏の行が透けてみえ，極端な場合は，文字の部分がふくらんで (凸になって) しまいます．このような裏うつりを防ぐため，裏表のページの行位置を揃えたのです．平版が主流になった現在では，この現象は目立たなくなっていますので，厳密にまもらなくてもよい事項になりました．しかしながら，裏表のページの行位置が揃っているほうがいないよりもきれいにみえることは事実です．

途中で文字の大きさを変えたときや，別行立ての数式などを挿入したときに，裏表のページで地の文の行位置を揃えるにはちょっとしたテクニックが必要です．ここでは，詳細は省略しますが， TEX の行整形のアルゴリズムを理解すれば，比較的簡単に実現することができます．

5 縦組でのいろいろな様式

この節では，拙著「pL^{A}TEX 2ε入門・縦横文書術」にあげた例を中心にして，縦組でのいろいろな様式を例示することにします．詳しくは，拙著をご覧ください．

5.1 ルビあるいは振りがな

図 29 にの例文は， pL^{A}TEX 2ε に furikana パッケージを読み込んで作成したものです． furikana パッケージの出現によって，図 29 に示すようなルビ付きの文章がきわめて容易に作成できるようになっています．

魯の 卞^{べん} の游侠の徒、 仲由^{ちゆうゆう} 、字は子路といふ者が、近頃賢者の噂も 高い學匠・ 陬人^{すうひと} 孔丘^{こうきう} を辱しめて呉れようと、思ひ立つた。 似而非^{えせ} 賢 者何程のことやあらんと、 蓬頭^{ほうとう} 突鬢^{とつぴん} ・垂冠・ 短後^{たんこう} の衣という 服装^{いでたち} で、 左手に雄鶏、右手に牡豚を引提げ、 勢^{いきほひ} 猛^{まう} に、孔丘が家を指して出 掛ける。 (中島敦「 弟子^{ていし} 」の冒頭)

Ybegin{minipage}<t>{30zw}
Yparindent=1zw

魯のYkana{ 卞 }{ べん } の游侠の徒、 Ykana{ 仲由 }{ ちゆうゆう }、字は子路といふ者が、近頃賢者の噂も高い學匠・ Ykana{ 陬人 }{ すうひと }Ykana{ 孔丘 }{ こうきう } を辱しめて呉れようと、思ひ立つた。 Ykana{ 似而非 }{ えせ } 賢者何程のことやあらんと、 Ykana{ 蓬頭 }{ ほうとう }Ykana{ 突鬢 }{ とつぴん } ・垂冠・ Ykana{ 短後 }{ たんこう } の衣というYkana{ 服装 }{ いでたち } で、左手に雄鶏、右手に牡豚を引提げ、 Ykana[3]{ 勢 }{ いきほひ }Ykana{ 猛 }{ まう } に、孔丘が家を指して出掛ける。 (中島敦「Ykana{ 弟子 }{ ていし }」の冒頭)

Yend{minipage}

図 29: ルビ

5.2 和歌

図 30 は， pL^{A}TEX 2ε に shiika パッケージを読み込んで作成したものです．地の文はベタです．和歌の部分は，いわゆる 字^{じ} 割^{わり} 処理で，四分アキ流しです (文字間隔は四分アキ—全角の四分の一の空き).

5.3 俳句

図 31 は，俳句の十九倍どりです．俳句全体を全角十九字の組幅に均等に配置したものです．これは、 pL^{A}TEX 2ε に shiika パッケージを読み込み，自作の均等割のマクロを使用して作成したものです．

5.4 漢文の訓点文

図 32 は，漢文の訓点文です． pL^{A}TEX 2ε に sfkanbun パッケージを読み込んで作成しています．大江挙周はじめて殿上ゆるされて、草ふかき庭にをりて拝し けるを見侍て赤染衛門 草わけて立ゐる袖のうれしさにたへず涙の露ぞこ ぼる ゝ 新古今和歌集巻第十八、雑歌下一七三一

Ybegin{minipage}<t>{30zw}
Yparindent=1zw

Ykotobagaki{ 大江挙周はじめて殿上ゆるされて、草ふかき庭にをりて拝しけるを見侍て }{ 赤染衛門 }

Ybegin{shiika}

草わけて立ゐる袖のうれしさにたへず涙の露ぞこぼる

Ykanjiatukai{ ゝ }
Yend{shiika}
Ymbox{}Yhfill 新古今和歌集%
巻第十八、雑歌下Ykanji1731 Yend{minipage}

図 30: 和歌の字割国破れて山河あり、城春にして草青みたりと、笠 打^{うち} 敷^{しき} て、時のう つるまで 泪^{なみだ} を落し侍りぬ。 夏草や 兵^{つわもの} どもが夢の跡 卯の花に 兼^{かね} 房^{ふさ} みゆる 白^{しら} 毛^{が} かな曾良 おくのほそ道、岩波文庫

Ybegin{minipage}<t>{30zw}
Yparindent=1zw

国破れて山河あり、城春にして草青みたりと、笠YKanakt{ 打, 敷 }{ うち, しき } て、時のうつるまでYkanakt{ 泪 }{ な

みだ } を落し侍りぬ。 Ybegin{shiika}
YleavevmodeYkintou{19zw}{ 夏草やYkanakt{ 兵 }{ つわも

の } どもが夢の跡 } Ypar

YleavevmodeYkintou{19zw}{ 卯の花にYKanakt{ 兼, 房 }{

かね, ふさ } みゆる YKanakt{ 白, 毛 }{ しら, が } かな }

Yhfill Ykintou{4zw}{ 曾良 } Yhskip 2zw Ymbox{}Ypar
Yend{shiika}

Ymbox{}Yhfill おくのほそ道、岩波文庫

Yend{minipage}

図 31: 俳句の字どり顔淵・季路 ス 。 侍 子 ハク 、 曰 なんゾ ルト 盍_{三} 各 ^{ゝヽ} 言_{二}^{ハ} 爾^{{なんぢ \atop ノ}} ヲ 。 志_{一} 子路 ハク 、 曰 願^{ハクハ} 車馬 衣 軽^{けい} きゆう 、 裘 與_{二} 朋 友_{一} ニシ 、 共 敝_{レ}^{やぶルモ} 之^{ヲ} 而 無_{レ}^{カラント} うらミ 。 憾 顔淵 ハク 、 曰 願^{ハクハ} 無_{レ}^{ク} 伐^{ほこル} ニ 、 _{レ}善 無_{レ}^{カラント} 施_{レ}^{スコト} ヲ 。 勞 子路 ハク 、 曰 願^{ハクハ} 聞_{二}^{カント} 子之 ヲ 。 志_{一} 子 ハク 、 曰 老 者^{ハ} 安^{ンゼシメ} ヲ 、 _{レ}之 朋 友^{ハ} 信_{レ}^{ゼシメ} ヲ 、 之 少 者^{ハ} 懐_{レ}^{なつケシメント} ヲ 。 之 (論語「公冶長編」より)

Ybegin{minipage}<t>{30zw}
Yparindent=1zw
Ybaselineskip=1.2Ynormalbaselineskip

顔淵・季路Ykundoku{ 侍 }{}{ ス }{}(。 ) 子Ykundoku{ 曰 }{}{ ハク }{}(、 ) Ykundoku{ 盍 }{ なん }{ ゾ }{ 三 }< ルト > 各 ^{ゝヽ} Ykundoku{ 言 }{}{ ハ }{ 二 } Ykundoku{ 爾 }{ なんぢ }{ ノ }{} Ykundoku{ 志 }{}{ ヲ }{ 一 }(。 ) 子路 Ykundoku{ 曰 }{}{ ハク }{}(、 ) Ykundoku{ 願 }{}{ ハクハ }{} 車馬衣Ykundoku{ 軽 }{ けい }{}{} Ykundoku{ 裘 }{ きゆう }{}{}(、 ) Ykundoku{ 與 }{}{}{ 二 } 朋Ykundoku{ 友 }{}{}{ 一 } Ykundoku{ 共 }{}{ ニシ }{}(、 ) Ykundoku{ 敝 }{ やぶ }{ ルモ }{ レ } Ykundoku{ 之 }{}{ ヲ }{} 而 Ykundoku{ 無 }{}{ カラント }{ レ } Ykundoku{ 憾 }{ うら }{ ミ }{}(。 )

(中略)

子Ykundoku{ 曰 }{}{ ハク }{}(、 ) 老 Ykundoku{ 者 }{}{ ハ }{}

Ykundoku{ 安 }{}{ ンゼシメ }{}Ybreak

Ykundoku{ 之 }{}{ ヲ }{}[レ](、 ) 朋 Ykundoku{ 友 }{}{ ハ }{} Ykundoku{ 信 }{}{ ゼシメ }{ レ } Ykundoku{ 之 }{}{ ヲ }{}(、 ) 少Ykundoku{ 者 }{}{ ハ }{} Ykundoku{ 懐 }{ なつ }{ ケシメント }{ レ } Ykundoku{ 之 }{}{ ヲ }{}(。 ) Yhfill (論語「公冶長編」より)

Yend{minipage}

図 32: 漢文の訓点文

5.5 声点

図 33 の例文は，築島裕著「大慈恩寺三蔵法師傳古点の国語学的研究・訳文編」 (東京大学出版会， 1965) から引用したものです．筆者のホームページにあるsfsyoten パッケージを使用して組版しました．声点を YSyoten で出力し (注釈あり)，反点を Ykaeri で指定して，「反」を出力しています．

故に諸の聖 衆_{（反）} を 召^{メ} シて 微_{∘}_{（平）} 言_{∘}_{（平）} _{（反）} ヲ 集ー_{ } 結す、 シヨウ六 ; ○^{F}「シヨウ ; 縄^{∘} _{（去）} 墨^{∘}_{（入軽）} ^{ホク」} を 考^{カムカ（「□ムカへ」虫損）} へて以 ; （テ） 定_{∘}_{（平）} 門^{∘} _{（去）} _{（反）} を立て、 貫_{∘}_{（平か）} 花_{∘}_{（上）} _{（反）} に 即^{ツ} イて［而］律 部_{（反）} を開 ク^{(虫損)} 。優波提 ; 舎_{（反）} に 據^{ヨ} リて以て 之_{（反）} か為に論す《_{○^{B}}「 之^{コレ} ヲ 論_{（反）} ト 為^{ス} 」》。空 有_{（反）} を ホウ六○^{F}「サキワカテ」 ; サキ ; 剖^{∘} ; セチ ; ワカチテ ; 拆^{∘}_{（入軽か）} シ断 常_{（反）} を分別す、 之_{（反）} を示（ス）に因 修_{（反）} を以てし 之_{（反）} を明（ス）に ; 果 證_{（反）} を以てし以（テ） 範^{ノリ} を 當_{∘}_{（平）} 代^{∘} _{（去）} _{（反）} に 貽^{ノコ} シ 軌^{アトヲ} を 将^{∘} _{（去）} 来_{∘}_{（上）} _{（反）} ニ^{に} 訓_{（待）} ^{サト} ラシ ; ムルニ 足^{タ} レリ《_{○^{F}}「 訓^{オシヘヲ} ヲ将 来_{一} （ニ） 軌_{（待）} _{二} ^{ノリ} とスルニ 足_{三}^{タ} レリ」》、図 33: 書き下し文の例

図 33 の出力をえた入力コードを次に示します．おのおの命令については，筆者のホームページから sfsyoten パッケージを入手し，付属のマニュアルを参照してください．

     Ybegin{minipage}<t>{32zw}
     Ybaselineskip=22pt
     Yfboxsep=0pt

故に諸の聖

     Yhanten{衆}{9==Ykaeri}を
     Yfurichu{召}{メ}{}シて
     YSyoten{微}{6==Ymaruten}
     Yhanten{YSyoten{言}{6==Ymaruten}}{9==Ykaeri}
     ヲYkundoku{集}{}{}{Yongofuno}結す、
     Yfurichu{YSyoten{縄}{1==Ymaruten}}%
     {~~シヨウ六}{YmaruF 「シヨウ}
     Yfurichu{YSyoten{墨}{2==Ymaruten}}{}{ホク」 }を
     Yfurichu{考}{%
     Yllap{カムカ} （「□Yrlap{ムカへ」虫損） }}{}へて
     以（テ） YSyoten{定}{6==Ymaruten}
     Yhanten{YSyoten{門}{1==Ymaruten}}{9==Ykaeri}を
     立て、 YSyoten{貫}{6==Ymaruten}[平か]
     Yhanten{YSyoten{花}{4==Ymaruten}}{9==Ykaeri}に

Ykanakt{即}{ツ}イて［而］律
Yhanten{部}{9==Ykaeri}を開
Yfurichu{{Yfboxsep=0ptYfbox{ク}}}{(虫損)}{}。
優波提Yhanten{舎}{9==Ykaeri}に
Ykanakt{據}{ヨ}リて以て
Yhanten{之}{9==Ykaeri}か為に論す
 《YmaruB
 「Yfurichu{之}{}{コレ}ヲYhanten{論}{9==Ykaeri}ト
Yfurichu{為}{}{ス}」》。
空Yhanten{有}{9==Ykaeri}を
Yfurichu{Ysyotenvi{剖}{1==Ymaruten}}%
{~~ホウ六 YmaruF 「サキワカテ」 }{~~サキ}
Yfurichu{YSyoten{拆}{2==Ymaruten}[入軽か]}%
{セチ}{ワカチテ}シ断Yhanten{常}{9==Ykaeri}を

分別す、

Yhanten{之}{9==Ykaeri}を示（ス）に因
Yhanten{修}{9==Ykaeri}を以てし
Yhanten{之}{9==Ykaeri}を明（ス）に果
Yhanten{證}{9==Ykaeri}を以てし以（テ）
Ykanakt{範}{ノリ}をYSyoten{當}{6==Ymaruten}
Yhanten{YSyoten{代}{1==Ymaruten}}{9==Ykaeri}
にYkanakt{貽}{ノコ}シYkanakt{軌}{アトヲ}を
YSyoten{将}{1==Ymaruten}
Yhanten{YSyoten{来}{4==Ymaruten}}{9==Ykaeri}
Ykanakt{ニ}{に}
Yfurichu{Yhanten{訓}{8==Y （待Y） }}{サト}{}
ラシムルニYkanakt{足}{タ}レリ
 《YmaruF 「Yfurichu{訓}{}{オシヘヲ}ヲ
将Ykundoku{来}{}{}{一} （ニ）
Yfurichu{Ykundoku{Yhanten{軌}{%
8==Yrlap{Ykern1.5zwYmatsu}}}{}{}{二}}{}{ノリ}%
とスルニYkundoku{足}{タ}{}{三}レリ」》、
Yend{minipage}

5.6 そのほか

そのほかにも，割書，割注，角書などの形式を整えるためのパッケージを作成して公開しています．詳細は，拙著「pL^{A}TEX 2ε入門・縦横文書術」，ピアソン・エデュケーション (2000) をご覧ください．これらのパッケージも筆者のホームページから入手することができます．

6 化学構造式の組版

当日 (2000/10/6) は， XΥMTEX バージョン 2.00 によるいくつかの描画例を示したのちに，入れ子構造を幾重にも宣言しうるように拡張したことを述べ，次のような説明で締め括りました．

XΥMTEX は，バージョン 1.01 (1996) を経て，現在バージョン 2.00 (1998) に進化しています． XΥMTEX の命令を抽象化して，化学構造式を記述する線型表現 (linear notation) として， XΥMNotation (キュム記法) を提案しています (S. Fujita and N. Tanaka, J. Chem. Inf. Comput. Sci., 39, 903–914 (1999))．この観点から，バージョン 2.00 は， XΥMNotation の版下作成用アプリケーションという位置づけになります．現在， XΥMNotation をインターネットブラウザーに表示するためのアプリケーションとして， XΥMJava を開発しておりインターネット用に着実に対処しています．別に， XΥM Markup Language (XΥMML) の開発をおこなっています (S. Fujita, J. Chem. Inf. Comput. Sci., 39, 915–927 (1999))．これは， SGML (Standard Generalized Markup Language) のに基づいた仕様になっており， XΥMNotation に変換して版下作成をおこなえるようになっています．今後は， XML (eXtensible Markup Language) に準拠するように展開したいと考えています．

7 今後の課題

TEX/L^{A}TEX を 10 年来使っていますので，「pL^{A}TEX 2εによる縦組は，活版・写真植字時代の資産を継承をしうる」という期待が筆者にはありました．しかしながら，一般には， TEX/L^{A}TEX による初期の組版をみて，大きな誤解が生まれていました．「どの技術でも初期の段階には完全なものではないということ」と「どの技術でも，下手がやれば，うまい結果にはならないこと」は自明です．初期の達成段階を声高にあげつらうはよくあることで，大人が「今時の子供はなっていない」というようなものです．これまでの話でおわかりのように，各種の縦組みパッケージにより，「pL^{A}TEX 2εによる縦組は，活版・写真植字時代の資産を継承をしえた」と考えています．この講演の内容は，煎じ詰めれば，このことに尽きます．

縦組について，さらに便利なパッケージ類を整備してゆくことが重要です．当面の課題として，次の二つを設定しています．

1. 日本語組版ルールの再吟味

2. 縦組の各種フォーマットのクラスファイル化

8 情報入手

筆者のホームページをご覧ください．

     http://www.chem.kit.ac.jp/fujita/fujitas/fujita.html

参考文献

[1] 藤田眞作，「化学者・生化学者のための L^{A}TEX—パソコンによる論文作成の手引」，東京化学同人 (1993)．

[2] 藤田眞作，「L^{A}TEX まくろの八衢」，アジソン・ウェスレイ (1995)．

[3] 藤田眞作，「L^{A}TEX 本づくりの八衢」，アジソン・ウェスレイ (1996)．

[4] 藤田眞作，「L^{A}TEX 2ε階梯」，アジソン・ウェスレイ (1996); 第 2 版，ピアソン・エデュケーション (2000)．

[5] 藤田眞作，「XΥMTEX—Typesetting Chemical Structural Formulas」，アジソン・ウェスレイ (1997)．

[6] 藤田眞作，「続 L^{A}TEX 2ε階梯・縦組編」，アジソン・ウェスレイ (1998)．

[7] 藤田眞作，「pL^{A}TEX 2ε入門・縦横文書術」，ピアソン・エデュケーション (2000)．