Я хочу создать среду, которая устанавливает размер шрифта на определенное значение (например, 12pt, с 53pt baselineskip для этого примера, цель состоит в том, чтобы позже иметь возможность передавать их в качестве аргументов, но на данный момент я делаю это максимально простым способом, чтобы найти ошибку)
На данный момент у меня есть следующее
\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
В настоящее время я получаю странную ошибку:
! Illegal unit of measure (pt inserted).
<to be read again>
l. 137 \end{setfs}
В заявлениях о шоу указано
The top of hiddentext@oldfontsize: 10.95
The top of hiddentext@oldbaselineskip: 13.6pt
У меня возникли проблемы с поиском того, почему отсутствует единица измерения. Я думал, что мне нужно добавить pt
после размера шрифта, но это не помогло.
решение1
Разве недостаточно просто среды \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}