Математический оператор в определении ширины фигуры в LaTeX

StackOverflow https://stackoverflow.com/questions/622502

  •  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, так что, возможно, в этом проблема. Мне очень нравится идея такого типа изменений, потому что я собираюсь использовать ширину и т. д. для моей диссертации и различных статей в журналах, и указание этих расстояний с помощью макроса может быть полезно для преобразований такого типа.

Любые комментарии с благодарностью! Аллен

Кто-то, кто более знаком с этим, вероятно, ответит, но учтите, что вам также нужно изменить тип фигуры, чтобы он стал цифрой *, если вы собираетесь использовать два столбца.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top