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 pt
nach 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}