一行字数調整
レンダリング結果



先頭3ページのみプレビューしています。
PDFを開くHTML変換
鉄TeX の組版品質の向上のため,鉄TeXの \余白設定 のデフォルト挙動やデフォルト値を,次のように変更することにしました。
既存書類のコンパイル結果に影響を及ぼす大きな変更となりますので,注意を喚起しておきます。
一行字数調整
前から気になっていたこの問題についてです。
hoge.png
(出典:http://oku.edu.mie-u.ac.jp/ okumura/documents/texconf11.pdf の38ページ)
鉄TeXの \余白設定 は,名前通り「余白量」から長さを定めてゆくため,結果として一行字数が整数zwにならなくなります。
しかし,和文組版では一行字数を整数zwにすることが原則です。
そうでないと,全ての行に原則として \kanjiskip による伸縮(行長調整)が入ってしまい,上図のように全角文字のグリッドが揃わない,見苦しい組版になってしまいます。
そこで,\余白設定 の挙動を次のように調整しました。
- 従来通り余白から長さを決める。
- その結果定まる
\textwidthが,最も近い整数zwになるように四捨五入し,ユーザーから指定された余白量に対して微調整をかける。 - 微調整にあたっては,(傍注領域のサイズも考慮した上での)左右対称性を維持しながら調整する。
段間隔=対称に指定されているときには,段組の各段の一行字数も整数になるように,段間隔を関数 \(y = 2\left[\bun x2\right]\)(\(x\)はzw単位で表したときの\columnsepの大きさ,\([\ ]\) はガウス記号)によって変換し,最も近い偶数zwとなるよう調整する。
これにより,ユーザーが指定した余白量に極力近いレイアウトで,かつ一行字数が整数zwとなるレイアウトが実現できます。
\余白設定*,\余白設定**
上記の調整法の場合,四捨五入の結果,(確率\(\slashbun12\)で)行長が縮む方向に調整される場合があります。
すると,既存書類をコンパイルしたとき,一行字数が減る方向にレイアウトが変わります。その結果,行あふれがおこったり,行数が増えてページ数が増えたりする影響が起こり得ます。
それを避けるために,\余白設定*,\余白設定** というオプションを用意しました。
\余白設定* は,一行字数を切り上げで整数zwに調整します。
すなわち,必ず余白量を減らし一行字数を増やす方向に調整することで,一行字数を整数zwに調整します。
一行字数が伸びる方向に作用しますので,既存書類をコンパイルしたときに,ページ数が減ることはあるかもしれませんが,「収まっていたものが収まらなくなる」という動きはしないはずです。
\余白設定** は,一行字数調整を一切行いません。
ユーザーから指示された余白量を厳守し,一行字数は小数zwのまま放置します。(これが従来の \余白設定 の挙動です。)
一行字数の画面表示
\余白設定 を用いたときに,一行字数が何文字になったのか(段間隔=対称 のときには段間隔も)を,コンソールウィンドウ上に表示するようにしました。
また,調整が行われた場合には,どのように調整したかの説明を表示します。これにより,伸びる方向・縮む方向のどちらに調整されているかが確認できますので,レイアウトチェック時に役立つでしょう。
なお,tetsuryoku.sty ロード時にデフォルトで \余白設定 が一回実行されます。それによるログ出力が一度あり,ユーザーが明示的に \余白設定 を記した場合は,その値で再度ログ出力されます。\余白設定 を何度も実行すれば,その都度ログが出力されますので,どの出力が最終的に有効な値かを見間違えないようご注意ください。
「文書作成初期処理」および \余白設定 のエスケープ補完のデフォルト値変更
従来,TeXShopの「文書作成初期処理」および \余白設定 のエスケープ補完で入力される \余白設定 のデフォルトは,従来次のようになっていました。
\余白設定[
上余白=1truecm,
下余白=上余白,
左余白=1.414truecm,
左右差=0truecm,
段間隔=対称,
段組の仕切り線の太さ=.5truept,
ヘッダの縦幅=16truept,
ヘッダ下端と本文上端の縦間隔=10truept,
ヘッダと本文を仕切る線の太さ=0truept,
本文下端とフッタ下端の縦間隔=20truept,
本文とフッタを仕切る線の太さ=0truept,
傍注領域の幅=0truept,
本文端と傍注領域との間隔=0truept,
傍注同士の縦間隔=\baselineskip,
奇数ページの傍注位置=右,
偶数ページの傍注位置=左,
]
これには次のような問題がありました。
- 傍注領域の幅 が
0trueptと指定されています。これ自体は値が 0 なので問題ありませんが,ユーザーがこの値を変更するときに,zw 単位ではなく truept 単位で指定するように導いてしまいます。ですが,上記と同じ理由で,傍注領域の幅も整数zwであるべきです。したがってこのデフォルト値は 0zw と書いておくべきです。 - 段間隔 のデフォルト値が「対称」になっています。「対称」とは,B4横用紙を2段組にしたときにあたかもB5縦を2枚並べたように見えるように,2段の間を左右余白の2倍分に設定するという意味です。しかし,それ以外の状況で「対称」を指定すると,段間隔が左右余白の2倍なので,非常に広い段間隔が空くことになってしまいます。
そこで, 「文書作成初期処理」および \余白設定 のエスケープ補完のデフォルト値を,次のような形に変更しました。
\余白設定[% デフォルトでは一行字数を四捨五入により整数zwに調整する。\余白設定* だと一行字数を切り上げで整数zwに調整,\余白設定** だと調整しない。
上余白=1truecm,
下余白=上余白,
左余白=1.414truecm,
左右差=0truecm,
段間隔=4zw,% B4横を2段組にしてB5縦を2枚並べたように見せるときには 段間隔=対称 とする。
段組の仕切り線の太さ=.5truept,
ヘッダの縦幅=16truept,
ヘッダ下端と本文上端の縦間隔=10truept,
ヘッダと本文を仕切る線の太さ=0truept,
本文下端とフッタ下端の縦間隔=20truept,
本文とフッタを仕切る線の太さ=0truept,
傍注領域の幅=0zw,
本文端と傍注領域との間隔=0truept,
傍注同士の縦間隔=\baselineskip,
奇数ページの傍注位置=右,
偶数ページの傍注位置=左,
]
このように,
\余白設定*,\余白設定**の説明をコメントで加えました。- 段間隔 のデフォルト値は
4zwにした上で,コメントで「対称」の存在を説明しました。 - 傍注領域の幅 のデフォルト値は
0zwと,zw単位で記しました。
TeXソース
\documentclass[b5j]{tetsujsarticle}
\usepackage{tetsuchem}
\usepackage{tetsuhyperref}
\begin{document}
鉄\TeX の組版品質の向上のため,鉄TeXの \verb/\余白設定/ のデフォルト挙動やデフォルト値を,次のように変更することにしました。
既存書類のコンパイル結果に影響を及ぼす大きな変更となりますので,注意を喚起しておきます。
\section{一行字数調整}
前から気になっていたこの問題についてです。
\begin{枠囲み}{}
\img*(.9\linewidth,*)[c]{hoge.png}
\noindent \hfil(出典:\url{http://oku.edu.mie-u.ac.jp/~okumura/documents/texconf11.pdf} の38ページ)
\end{枠囲み}
\br1
鉄TeXの \verb/\余白設定/ は,名前通り「余白量」から長さを定めてゆくため,結果として一行字数が整数zwにならなくなります。
しかし,和文組版では一行字数を整数zwにすることが原則です。
そうでないと,全ての行に原則として \verb/\kanjiskip/ による伸縮(行長調整)が入ってしまい,上図のように全角文字のグリッドが揃わない,見苦しい組版になってしまいます。
そこで,\verb/\余白設定/ の挙動を次のように調整しました。
\begin{枠囲み}{}
\begin{箇条書き}<2zw>
\item 従来通り余白から長さを決める。
\item その結果定まる \verb/\textwidth/ が,最も近い整数zwになるように四捨五入し,ユーザーから指定された余白量に対して微調整をかける。
\item 微調整にあたっては,(傍注領域のサイズも考慮した上での)左右対称性を維持しながら調整する。
\item \verb/段間隔=対称/ に指定されているときには,段組の各段の一行字数も整数になるように,段間隔を関数 $y = 2\left[\bun x2\right]$($x$はzw単位で表したときの \verb/\columnsep/ の大きさ,$[\ ]$ はガウス記号)によって変換し,最も近い偶数zwとなるよう調整する。
\end{箇条書き}
\end{枠囲み}
これにより,ユーザーが指定した余白量に極力近いレイアウトで,かつ一行字数が整数zwとなるレイアウトが実現できます。
\section{\mtt{\\余白設定*},\mtt{\\余白設定**}}
上記の調整法の場合,四捨五入の結果,(確率$\slashbun12$で)行長が縮む方向に調整される場合があります。
すると,既存書類をコンパイルしたとき,一行字数が減る方向にレイアウトが変わります。その結果,行あふれがおこったり,行数が増えてページ数が増えたりする影響が起こり得ます。
それを避けるために,\verb/\余白設定*/,\verb/\余白設定**/ というオプションを用意しました。
\verb/\余白設定*/ は,一行字数を切り上げで整数zwに調整します。
すなわち,必ず余白量を減らし一行字数を増やす方向に調整することで,一行字数を整数zwに調整します。
一行字数が伸びる方向に作用しますので,既存書類をコンパイルしたときに,ページ数が減ることはあるかもしれませんが,「収まっていたものが収まらなくなる」という動きはしないはずです。
\verb/\余白設定**/ は,一行字数調整を一切行いません。
ユーザーから指示された余白量を厳守し,一行字数は小数zwのまま放置します。(これが従来の \verb/\余白設定/ の挙動です。)
\section{一行字数の画面表示}
\verb/\余白設定/ を用いたときに,一行字数が何文字になったのか(\verb/段間隔=対称/ のときには段間隔も)を,コンソールウィンドウ上に表示するようにしました。
また,調整が行われた場合には,どのように調整したかの説明を表示します。これにより,伸びる方向・縮む方向のどちらに調整されているかが確認できますので,レイアウトチェック時に役立つでしょう。
なお,\verb/tetsuryoku.sty/ ロード時にデフォルトで \verb/\余白設定/ が一回実行されます。それによるログ出力が一度あり,ユーザーが明示的に \verb/\余白設定/ を記した場合は,その値で再度ログ出力されます。\verb/\余白設定/ を何度も実行すれば,その都度ログが出力されますので,どの出力が最終的に有効な値かを見間違えないようご注意ください。
\section{「文書作成初期処理」および \mtt{\\余白設定} のエスケープ補完のデフォルト値変更}
従来,TeXShopの「文書作成初期処理」および \verb/\余白設定/ のエスケープ補完で入力される \verb/\余白設定/ のデフォルトは,従来次のようになっていました。
\begin{同ページに収める}
\begin{verbatim}
\余白設定[
上余白=1truecm,
下余白=上余白,
左余白=1.414truecm,
左右差=0truecm,
段間隔=対称,
段組の仕切り線の太さ=.5truept,
ヘッダの縦幅=16truept,
ヘッダ下端と本文上端の縦間隔=10truept,
ヘッダと本文を仕切る線の太さ=0truept,
本文下端とフッタ下端の縦間隔=20truept,
本文とフッタを仕切る線の太さ=0truept,
傍注領域の幅=0truept,
本文端と傍注領域との間隔=0truept,
傍注同士の縦間隔=\baselineskip,
奇数ページの傍注位置=右,
偶数ページの傍注位置=左,
]
\end{verbatim}
\end{同ページに収める}
これには次のような問題がありました。
\begin{枠囲み}{}
\begin{箇条書き}<2zw>
\item \gb{傍注領域の幅} が \mtt{0truept} と指定されています。これ自体は値が 0 なので問題ありませんが,ユーザーがこの値を変更するときに,zw 単位ではなく truept 単位で指定するように導いてしまいます。ですが,上記と同じ理由で,傍注領域の幅も整数zwであるべきです。したがってこのデフォルト値は 0zw と書いておくべきです。
\item \gb{段間隔} のデフォルト値が「\gb{対称}」になっています。「\gb{対称}」とは,B4横用紙を2段組にしたときにあたかもB5縦を2枚並べたように見えるように,2段の間を左右余白の2倍分に設定するという意味です。しかし,それ以外の状況で「\gb{対称}」を指定すると,段間隔が左右余白の2倍なので,非常に広い段間隔が空くことになってしまいます。
\end{箇条書き}
\end{枠囲み}
そこで, 「文書作成初期処理」および \verb/\余白設定/ のエスケープ補完のデフォルト値を,次のような形に変更しました。
\begin{同ページに収める}
\begin{verbatim}
\余白設定[% デフォルトでは一行字数を四捨五入により整数zwに調整する。\余白設定* だと一行字数を切り上げで整数zwに調整,\余白設定** だと調整しない。
上余白=1truecm,
下余白=上余白,
左余白=1.414truecm,
左右差=0truecm,
段間隔=4zw,% B4横を2段組にしてB5縦を2枚並べたように見せるときには 段間隔=対称 とする。
段組の仕切り線の太さ=.5truept,
ヘッダの縦幅=16truept,
ヘッダ下端と本文上端の縦間隔=10truept,
ヘッダと本文を仕切る線の太さ=0truept,
本文下端とフッタ下端の縦間隔=20truept,
本文とフッタを仕切る線の太さ=0truept,
傍注領域の幅=0zw,
本文端と傍注領域との間隔=0truept,
傍注同士の縦間隔=\baselineskip,
奇数ページの傍注位置=右,
偶数ページの傍注位置=左,
]
\end{verbatim}
\end{同ページに収める}
このように,
\begin{枠囲み}{}
\begin{箇条書き}<2zw>
\item \verb/\余白設定*/,\verb/\余白設定**/ の説明をコメントで加えました。
\item \gb{段間隔} のデフォルト値は \mtt{4zw} にした上で,コメントで「対称」の存在を説明しました。
\item \gb{傍注領域の幅} のデフォルト値は \mtt{0zw} と,zw単位で記しました。
\end{箇条書き}
\end{枠囲み}
\end{document}