Почему изменение \baselinestretch не меняет межстрочный интервал?

Почему изменение \baselinestretch не меняет межстрочный интервал?

Я читал, что межстрочный интервал в документе LaTeX контролируется макросом \baselinestretch, напримерздесь. Установка \baselinestretchв преамбуле фактически изменяет межстрочный интервал. \baselinestretchОднако, когда я переопределяю внутри документа, межстрочный интервал не изменяется.

Очевидно, что можно изменить межстрочный интервал в середине документа, как показано ниже.продемонстрированопо setspaceпакету, но почему простое переопределение \baselinestretchне делает этого?


Например, я ожидаю, что следующий код будет содержать один абзац шрифта lorem ipsum с интервалом 1,5, за которым последует тот же абзац с интервалом 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}

Связанный контент