
Necesito un nuevo entorno con diferente tamaño de fuente, por ejemplo \large
. estoy haciendo algo como estoMWE:
\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 el segundo párrafo no tiene el mismo interlineado que el primero, así que supongo que estoy haciendo algo mal.
Los dos últimos párrafos son un intento de forzar una solución con la ayuda de setspace
un paquete. Funciona bien, pero como dije, estoy seguro de que hay algo que no estoy haciendo correctamente y debe haber una solución más sencilla. ¿Alguna ayuda?
Respuesta1
Si miras la definición de spacing
por setspace.sty
, verás (comentarios eliminados)
\newenvironment{spacing}[1]{%
\par
\begingroup
\setstretch {#1}%
}{%
\restore@spacing
}
y ahora ves eso
\newcommand{\restore@spacing}{%
\par
\vskip \parskip
\vskip \baselineskip
\endgroup
\vskip -\parskip
\vskip -\baselineskip
}
No necesita casi nada del paquete, excepto lo principal, es decir, \par
al principio y al final.
\NewDocumentEnvironment{mynewenv}{}{\par\large}{\par}
¿Cuál es el motivo \par
al final? Si no lo tiene, el alcance de \large
los extremos antes de un párrafo se compone y TeX utilizará el espaciado de línea de base válido cuando \par
se encuentre, por lo que generalmente desde \normalsize
.