Umgebung zum Ändern der Schriftgröße auf einen bestimmten Wert

Umgebung zum Ändern der Schriftgröße auf einen bestimmten Wert

Ich möchte eine Umgebung erstellen, die die Schriftgröße auf einen bestimmten Wert einstellt (sagen wir 12 pt, mit 53 pt Baselineskip in diesem Beispiel. Ziel ist, sie später als Argumente übergeben zu können, aber vorerst mache ich es so einfach wie möglich, um den Fehler zu finden.)

Zur Zeit habe ich folgendes

\usepackage{fifo-stack}

\makeatletter
\FSCreate{setfs@oldfontsize}{\f@size}
\FSCreate{setfs@oldbaselineskip}{\baselineskip}


\newenvironment{setfs}{%
\FSPush{setfs@oldfontsize}{\f@size}
\FSPush{setfs@oldbaselineskip}{\the\baselineskip}
\fontsize{12pt}{53pt}\selectfont
}{%
\FSShowTop{setfs@oldfontsize}
\FSShowTop{setfs@oldbaselineskip}
\fontsize{\FSPop{hiddentext@oldfontsize}pt}{\FSPop{hiddentext@oldbaselineskip}}
}

\makeatother

Derzeit erhalte ich einen seltsamen Fehler:

! Illegal unit of measure (pt inserted).
<to be read again>
l. 137 \end{setfs}

Die Show-Anweisungen geben

The top of hiddentext@oldfontsize: 10.95
The top of hiddentext@oldbaselineskip: 13.6pt

Ich habe Probleme herauszufinden, warum die Einheit fehlt. Ich dachte, ich müsste ptnach der Schriftgröße hinzufügen, aber es hat nicht geholfen.

Antwort1

Reicht nicht einfach eine Umgebung mit aus \fontsize{#1}{#2}\selectfont?

\documentclass[twocolumn]{article}
\usepackage{lipsum,parskip}
\usepackage{dejavu,xcolor}
\newenvironment{fsize}[2]{\par\fontsize{#1}{#2}\selectfont\color{blue}}{\par} 
\begin{document}
\lipsum[1][1-2]
\begin{fsize}{14}{18}  \lipsum[1][1-2] \end{fsize} 
\lipsum[1][1-2]
\begin{fsize}{8}{18}  \lipsum[1][1-2] \end{fsize} 
\lipsum[1][1-2]
\begin{fsize}{22}{34}  \lipsum[1][1] \end{fsize} 
\end{document}

mwe

verwandte Informationen