Подтвердить что ты не робот

Масштабируйте уравнение, чтобы он соответствовал точной ширине страницы

У меня есть уравнение, которое слишком мало для одной строки. Мне бы очень хотелось, чтобы на следующей строке не было номера уравнения. Как вы этого добиваетесь? В настоящее время я использую \small, но это излишне.

Пожалуйста, обратите внимание. Я пробовал scalebox и fittowidth но получаю ошибки об отсутствии \endgroup. Я также использовал \! в полной мере. Я надеюсь на решение, которое позволит мне масштабировать правильное однострочное уравнение по ширине страницы.

Вот пример (не мое фактическое уравнение): Long equation

4b9b3361

Ответ 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}

Ответ 2

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}

Ответ 3

У меня просто была ситуация, что я хотел это только для строк, превышающих \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
}

До before После after