Espaçamento entre linhas incorreto dentro do novo ambiente

Espaçamento entre linhas incorreto dentro do novo ambiente

Preciso de um novo ambiente com tamanho de fonte diferente, por exemplo \large. Estou fazendo algo assimMWE:

\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}

que produz osaída: insira a descrição da imagem aqui

Parece que o segundo parágrafo não tem o mesmo espaçamento entre linhas do primeiro, então presumo que estou fazendo algo errado.

Os dois últimos parágrafos são uma tentativa de forçar uma solução com a ajuda do setspacepacote. Funciona bem, mas como eu disse, tenho certeza de que há algo que não estou fazendo corretamente e deve haver uma solução mais simples. Qualquer ajuda?

Responder1

Se você olhar a definição de spacingby setspace.styvocê verá (comentários removidos)

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

e agora você vê isso

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

Você não precisa de quase nada do pacote, exceto o principal, ou seja, \parno início e no final.

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

Qual é o motivo \parno final? Se você não tiver, o escopo de \largetermina antes de um parágrafo ser composto e o TeX usará o espaçamento de linha de base válido quando \parfor encontrado, então geralmente from \normalsize.

informação relacionada