Математический оператор в определении ширины фигуры в LaTeX
-
05-07-2019 - |
Вопрос
На рисунках LaTeX можно использовать \ textwidth
и \ columnwidth
, чтобы указать размеры графики относительно размера окружающего текста, например,
<Код> \ includegraphics [ширина = 0,5 \ TextWidth] {myimage} код>. Р>
Я хотел бы легко переключиться с шаблона с одним столбцом на шаблон с двумя столбцами (и обратно), чтобы рисунок не становился слишком большим для шаблона с одним столбцом. Для шаблона с двумя столбцами (где \ columnwidth
составляет примерно половину от \ textwidth
), я хотел бы получить что-то вроде:
<Код> \ includegraphics [ширина = 0,9 \ ColumnWidth] {myimage} код>.
и для шаблона с одним столбцом (где \ columnwidth
и \ textwidth
равны):
<Код> \ includegraphics [ширина = 0,5 \ TextWidth] {myimage} код>. Р>
Теперь я решил, что могу ограничить это с помощью некоторого оператора min:
\ includegraphics [width = min (.5 \ textwidth, .9 \ columnwidth)] {myimage}
, но это неверный синтаксис. Есть ли что-то подобное для решения этой проблемы, возможно, с помощью макросистемы LaTeX?
Решение
Хотя такой макрос можно написать, я не хотел бы жестко кодировать его на каждом рисунке; как насчет чего-то вроде этого
\makeatletter
\newlength \figwidth
\if@twocolumn
\setlength \figwidth {0.9\columnwidth}
\else
\setlength \figwidth {0.5\textwidth}
\fi
\makeatother
, а затем используйте
\includegraphics[width=\figwidth]{myimage}
чтобы вставить рисунок.
Другие советы
\ textwidth
- это горизонтальная ширина тела страницы, которая не совсем подходит для ваших целей.
\ linewidth
- ширина текущей строки; оно будет обновлено в соответствии со столбцами, отступами и т. д.
В следующем абзаце создается изображение, которое должно точно соответствовать всей ширине линии (то есть, без чрезмерного предупреждения):
\noindent\includegraphics[width=\linewidth]{myimage}
Если вы предпочитаете небольшие поля слева и справа, вы можете использовать:
\begin{center}
\includegraphics[width=.9\linewidth]{myimage}
\end{center}
Или, если вы хотите указать поля в абсолютном размере:
\usepackage{calc}
...
\begin{center}
\includegraphics[width=\linewidth-20pt]{myimage}
\end{center}
Хм ... код выше (\ if @ twocolumn и т. д.) у меня вообще не работает. Не знаю, почему нет. :( tetex на osX с использованием fink. Попытка использовать revtex4, так что, возможно, в этом проблема. Мне очень нравится идея такого типа изменений, потому что я собираюсь использовать ширину и т. д. для моей диссертации и различных статей в журналах, и указание этих расстояний с помощью макроса может быть полезно для преобразований такого типа.
Любые комментарии с благодарностью! Аллен р>
Кто-то, кто более знаком с этим, вероятно, ответит, но учтите, что вам также нужно изменить тип фигуры, чтобы он стал цифрой *, если вы собираетесь использовать два столбца. Р>