Ответ 1
\begin{equation}
\resizebox{.9\hsize}{!}{$A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z$}
\end{equation}
или
\begin{equation}
\resizebox{.8\hsize}{!}{$A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z$}
\end{equation}
У меня есть уравнение, которое слишком мало для одной строки. Мне бы очень хотелось, чтобы на следующей строке не было номера уравнения. Как вы этого добиваетесь? В настоящее время я использую \small
, но это излишне.
Пожалуйста, обратите внимание. Я пробовал scalebox
и fittowidth
но получаю ошибки об отсутствии \endgroup
. Я также использовал \!
в полной мере. Я надеюсь на решение, которое позволит мне масштабировать правильное однострочное уравнение по ширине страницы.
Вот пример (не мое фактическое уравнение):
\begin{equation}
\resizebox{.9\hsize}{!}{$A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z$}
\end{equation}
или
\begin{equation}
\resizebox{.8\hsize}{!}{$A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z$}
\end{equation}
graphicx
package предоставляет команду \resizebox{width}{height}{object}
:
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\hrule
%%%
\makeatletter%
\setlength{\@tempdima}{\the\columnwidth}% the, well columnwidth
\settowidth{\@tempdimb}{(\ref{Equ:TooLong})}% the width of the "(1)"
\addtolength{\@tempdima}{-\the\@tempdimb}% which cannot be used for the math
\addtolength{\@tempdima}{-1em}%
% There is probably some variable giving the required minimal distance
% between math and label, but because I do not know it I used 1em instead.
\addtolength{\@tempdima}{-1pt}% distance must be greater than "1em"
\xdef\[email protected]{\the\@tempdima}% space remaining for math
\begin{equation}%
\resizebox{\[email protected]}{!}{$\displaystyle{% to get everything inside "big"
A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z}$}%
\label{Equ:TooLong}%
\end{equation}%
\makeatother%
%%%
\hrule
\end{document}
У меня просто была ситуация, что я хотел это только для строк, превышающих \linewidth
, то есть: Слегка сжимая длинные строки. Поскольку мне потребовались часы, чтобы понять это, я хотел бы добавить это здесь.
Хочу подчеркнуть, что масштабирование шрифтов в LaTeX - смертельный грех! Почти любой ситуации, есть лучший способ (например,
multline
изmathtools
пакета). Так что используйте это сознательно.
В этом конкретном случае я не имел никакого влияния на базу кода, за исключением преамбулы и некоторых строк, которые слегка выходили за границы страницы, когда я компилировал ее в формате PDF, масштабированном для электронной книги.
\usepackage{environ} % provides \BODY command
\usepackage{etoolbox} % provides ifdimcomp
\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
}