
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}
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 setspace
pacote. 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 spacing
by setspace.sty
você 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, \par
no início e no final.
\NewDocumentEnvironment{mynewenv}{}{\par\large}{\par}
Qual é o motivo \par
no final? Se você não tiver, o escopo de \large
termina antes de um parágrafo ser composto e o TeX usará o espaçamento de linha de base válido quando \par
for encontrado, então geralmente from \normalsize
.