OSDN Git Service

Merge branch 'kitagawa_test' into cjascale
[luatex-ja/luatexja.git] / doc / lltjp-geometry.tex
index 20e11c4..f2064cb 100644 (file)
@@ -33,7 +33,7 @@
 
 \title{\textsf{lltjp-geometry}パッケージ}
 \author{\LuaTeX-jaプロジェクト%
-  \thanks{\url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage}}}
+  \thanks{\url{http://osdn.jp/projects/luatex-ja/wiki/FrontPage}}}
 \begin{document}
 \maketitle
 
@@ -46,7 +46,7 @@
 
 \section{利用方法}
 \textsf{lltjp-geometry}パッケージは,\LuaTeX-jaに標準で含まれている.
-本パッケージの動作には\href{http://www.ctan.org/pkg/ifluatex}{\textsf{ifluatex}}, 
+本パッケージの動作には\href{http://www.ctan.org/pkg/ifluatex}{\textsf{ifluatex}},
 \href{http://www.ctan.org/pkg/filehook}{\textsf{filehook}}パッケージが必要である.
 
 \subsection{\LuaTeX-ja}
 
 パッケージオプションは存在しない.
 
-\section{注意事項}
+\section{\textsf{lltjp-geometry}使用時の注意事項}
+
 \subsection{\texttt{twoside}指定時}
 縦組の本は通常右綴じである.これを反映し,
-\textsf{lltjp-geometry}では,\texttt{twoside} オプション指定時には
+\texttt{twoside} オプション指定時には
 \begin{itemize}
 \item \texttt{left}, \texttt{lmargin} は小口側の余白,
 \texttt{right}, \texttt{rmargin} はノド側の余白を指す.
 \end{itemize}
 と変更している.
 
+\subsection{widthとheight}
+\cs{textwidth}が字送り方向の長さ(縦)を表すのと同様に,
+\texttt{width}, \texttt{totalwidth}, \texttt{textwidth}キーの値も字送り方向を,また
+\texttt{height}, \texttt{totalheight}, \texttt{textheight}キーの値も行送り方向(横)を表すようになっている.
+
+しかし,\emph{用紙サイズについては例外}であり,物理的な意味での幅・高さを表す.
+\texttt{paperwidth}, \texttt{layoutwidth}はそれぞれ紙の横幅,レイアウトの横幅を,
+\texttt{paperheight}, \texttt{layoutheight}はそれぞれ紙の高さ,レイアウトの高さを表している.
+
+
+
 \subsection{傍注}
 縦組の場合,傍注は本文の上下に配置される\footnote{%
   二段組の場合は上下共に,一段組の場合は標準では下側だが,
 (二段組の場合は両方)を$\cs{marginparwidth} + \cs{marginparsep}$だけ
 増加させる.
 
-\subsection{\texttt{lines}オプション指定時の \cs{maxdepth} 調整}
+\section{\texttt{lines}オプションに関する注意事項}
+本節の内容は,\textsf{lltjp-geometry}パッケージを読み込まない場合,
+つまり,横組クラスで\textsf{geometry}パッケージを普通に使用した場合にも
+当てはまる注意事項である.
+
+\subsection{\textsf{fontspec}パッケージとの干渉}
+\pTeX 系列では,次のように\textsf{fontenc}パッケージ読み込み直後に
+\textsf{geometry}パッケージを用いてレイアウトを設定すると,
+\texttt{lines} による指定が正しく働かないという症状が生じる:
+\begin{lstlisting}
+\documentclass{article}
+\usepackage{geometry}
+\usepackage{fontspec}
+\geometry{lines=20}
+\begin{document}
+hoge\typeout{\the\topskip, \the\baselineskip, \the\textheight}
+\end{document}
+\end{lstlisting}
+\cs{typeout} で \cs{topskip}, \cs{baselineskip}, \cs{textheight} の値を調べると
+\[
+ \frac{\cs{textheight} - \cs{topskip}}{\cs{baselineskip}} = 15.8\dot 3
+\]
+となることがわかるから,1ページには16行分入らないことがわかる.
+
+これは,\textsf{fontspec} の読み込みによって \cs{baselineskip} がなぜか
+10\,ptに変えられてしまい,\cs{geometry} 命令はその値に従って本文領域の高さを計算するためで
+ある.とりあえずの対策は,
+\cs{normalsize} によって \cs{baselineskip} を正しい値に再設定し,その後
+レイアウトを設定すれば良い:
+\begin{lstlisting}
+\usepackage{geometry}
+\usepackage{fontspec}
+\normalsize\geometry{lines=20}
+\end{lstlisting}
+
+なお,同様の症状は\textsf{newtxtext}パッケージなどでも発生するようなので,
+\pTeX 系列といえども無縁ではない.
+
+
+\subsection{\cs{maxdepth} の調整}
 \LaTeX では,
 最後の行の深さ\rensuji{$d$}と
 本文領域の上端から最後の行のベースラインまでの距離\rensuji{$f$}に対し,
@@ -155,7 +206,7 @@ $5\,\textrm{pt} + 3.41666\,\textrm{pt}=8.41666\,\textrm{pt}$である.}
 行われない.
 
 
-\subsection{\texttt{lines} オプション指定時の見かけ上の基本版面の位置}
+\subsection{見かけ上の基本版面の位置}
 \LaTeX では,
 本文の一行目のベースラインは,本文領域の「上端」から
  \ \cs{topskip}\ だけ「下がった」ところに来ることになっている.
@@ -193,7 +244,7 @@ $5\,\textrm{pt} + 3.41666\,\textrm{pt}=8.41666\,\textrm{pt}$である.}
 と指定すると,実際には以下のように設定される.
 \begin{itemize}
  \item \cs{topskip} は \cs{tstrutbox} の高さ8.5\,ptに設定される.
- \item 本文領域の「高さ」 \cs{textheight} は 
+ \item 本文領域の「高さ」 \cs{textheight} は
 \[
  \cs{topskip} + (30-1)\cs{baselineskip} = 530.5\,\textrm{pt}.
 \]