У меня просто была ситуация, когда я хотел этого только для строк, превышающих \linewidth
, то есть: слегка сжимая длинные строки.Поскольку мне потребовались часы, чтобы понять это, я хотел бы добавить это сюда.
Я хочу подчеркнуть, что масштабирование шрифтов в LaTeX - смертельный грех!Почти в каждой ситуации есть лучший способ (например, multline
из пакета mathtools
).Так что используйте его в сознании.
В этом конкретном случае я не имел никакого влияния на базу кода, кроме преамбулы и некоторых строк, слегка выходящих за границы страницы, когда я компилировал ее как масштабированный по электронной почтеpdf.
\usepackage{environ} % provides \BODY
\usepackage{etoolbox} % provides \ifdimcomp
\usepackage{graphicx} % provides \resizebox
\newlength{\myl}
\let\origequation=\equation
\let\origendequation=\endequation
\RenewEnviron{equation}{
\settowidth{\myl}{$\BODY$} % calculate width and save as \myl
\origequation
\ifdimcomp{\the\linewidth}{>}{\the\myl}
{\ensuremath{\BODY}} % True
{\resizebox{\linewidth}{!}{\ensuremath{\BODY}}} % False
\origendequation
}
До После