LuaTeX-ja がなくても,fontspec だけで起こるみたいです.
\documentclass{article}
\usepackage{fontspec} % (A)
%\normalsize % (B)
\usepackage[centering,lines=20]{geometry}
\begin{document}
\noindent
1\\2\\3\\4\\5\\6\\7\\8\\9\\10\\11\\12\\13\\14\\15\\16\\17\\18\\19\\20\\
\the\textwidth, \the\textheight
\end{document}
fontspec 読み込み直後に \baselineskip の値を見てみると 10pt になっています. 正しくは 12pt のようです.これが原因?
fontspec 読み込み直後に \baselineskip の値を見てみると 10pt になっています. 正しくは 12pt のようです.これが原因?
確認しました.
fontspec-bs.tex によって調査してみましたが,
ようです.
以下に latex.ltx にある \DeclareErrorFont の定義を載せますが,なぜ global に変更するのかがちょっと不可解です.
\def\DeclareErrorFont#1#2#3#4#5{%
\xdef\error@fontshape{%
\noexpand\expandafter\noexpand\split@name\noexpand\string
\expandafter\noexpand\csname#1/#2/#3/#4/#5\endcsname
\noexpand\@nil}%
\gdef\default@family{#2}%
\gdef\default@series{#3}%
\gdef\default@shape{#4}%
\global\let\f@family\default@family
\global\let\f@series\default@series
\global\let\f@shape\default@shape
\gdef\f@size{#5}%
\gdef\f@baselineskip{#5pt}%
}
LuaTeX-ja 自体にはあまり関係のない話なので,ここでは完了にしておきます.
以下のソースを走らせると,\textheight が 200 pt となり, 1ページに 20 行入るはずが実際には 12 行しか入らなくなります:
\documentclass[a4j]{ltjsarticle} \usepackage{luatexja-fontspec} % (A) %\normalsize % (B) \usepackage[width=20\zw,centering, lines=20]{geometry} \begin{document} \noindent ABCDEFGHIJKLMNOPQRST 2\\3\\4\\5\\6\\7\\8\\9\\0\\1\\2\\3\\4\\5\\6\\7\\8\\9\\0 \the\textwidth, \the\textheight \end{document}luatexja-fontspec を読み込まなければうまく 20 行 (315.2 pt) になります.とりあえずの解決策として,(B) のように直前で \normalsize を置く,というのがありますが, 上の症状の原因はわかりますでしょうか?