Неправильный межстрочный интервал внутри новой среды

Неправильный межстрочный интервал внутри новой среды

Мне нужна новая среда с другим размером шрифта, например \large. Я делаю что-то вроде этогоМВЭ:

\documentclass{article}
\usepackage{lipsum}   % dummy text
\usepackage{setspace} % for a 'forced' solution

\NewDocumentEnvironment{mynewenv}{}{\large}{}
\NewDocumentEnvironment{myotherenv}{}{\begin{spacing}{1}\large}{\end{spacing}}

\begin{document}
\begin{mynewenv}
\lipsum[1][1-4]

\lipsum[1][1-4]
\end{mynewenv}

Text outside environments and with normal size.
% 'forced' solution:
\begin{myotherenv}
\lipsum[1][1-4]

\lipsum[1][1-4]
\end{myotherenv}
\end{document}

который производитвыход: введите описание изображения здесь

Кажется, во втором абзаце не такой же межстрочный интервал, как в первом, поэтому я предполагаю, что я что-то делаю неправильно.

Последние два абзаца — это попытка навязать решение с помощью setspaceпакета. Работает отлично, но, как я уже сказал, я уверен, что я что-то делаю не так, и должно быть более простое решение. Есть помощь?

решение1

Если вы посмотрите на определение spacingby, setspace.styто увидите (комментарии удалены)

\newenvironment{spacing}[1]{%
  \par
  \begingroup
  \setstretch {#1}%
}{%
  \restore@spacing
}

и теперь вы видите, что

\newcommand{\restore@spacing}{%
  \par
  \vskip \parskip
  \vskip \baselineskip
  \endgroup
  \vskip -\parskip
  \vskip -\baselineskip
}

Вам почти ничего не нужно из пакета, кроме самого главного, а именно \parв начале и в конце.

\NewDocumentEnvironment{mynewenv}{}{\par\large}{\par}

В чем причина \parв конце? Если у вас его нет, область действия \largeзаканчивается перед абзацем, и TeX будет использовать базовый интервал, действительный при \parего появлении, поэтому обычно из \normalsize.

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