\baselinestretch を変更しても行間隔が変更されないのはなぜですか?

\baselinestretch を変更しても行間隔が変更されないのはなぜですか?

LaTeX文書の行間隔はマクロによって制御されると読んだことがあります\baselinestretch。たとえば、ここ\baselinestretchプリアンブルで設定すると、実際に行間隔が変更されます。\baselinestretchただし、ドキュメント内で再定義すると、行間隔は影響を受けません。

文書の途中で行間を変更することは明らかに可能です。実証されたパッケージによってsetspace、しかし、単純に再定義するだけではなぜ\baselinestretchこれが行われないのでしょうか?


たとえば、次のコードでは、1.5 間隔の lorem ipsum の段落が 1 つあり、その後に 1.0 間隔の同じ段落が続くと予想されますが、両方とも 1.5​​ 間隔として出力されます。

\documentclass{article}
\usepackage{lipsum}
\def\baselinestretch{1.5}

\begin{document}
\lipsum[1]
\hrule
\def\baselinestretch{1}
\lipsum[1]
\end{document}

答え1

\baselinestretch次のフォント選択時に使用する乗数を設定するだけなので、 が必要です\selectfont

\documentclass{article}
\usepackage{lipsum}
\def\baselinestretch{1.5}

\begin{document}
\lipsum[1]
\hrule
\def\baselinestretch{1}\selectfont
\lipsum[1]
\end{document}

関連情報