数学运算符在LaTeX中指定图形宽度

时间:2009-03-07 21:04:03

标签: latex

在LaTeX数据中,可以使用\textwidth\columnwidth来指定图形相对于周围文本大小的大小,例如: \includegraphics[width=.5\textwidth]{myimage}

我希望能够轻松地从一个列切换到两个列模板(并返回),而不会使一个列模板的数字变得太大。对于twocolumn模板(其中\columnwidth大约是\textwidth的一半),我希望有类似的东西: \includegraphics[width=.9\columnwidth]{myimage}。 对于onecolumn模板(\columnwidth\textwidth相等):
\includegraphics[width=.5\textwidth]{myimage}

现在,我想我可以使用某种min运算符来限制它: \includegraphics[width=min(.5\textwidth,.9\columnwidth)]{myimage}但这是无效的语法。是否有类似的东西来解决这个问题,可能是通过使用LaTeX宏系统?

4 个答案:

答案 0 :(得分:17)

虽然可以编写这种宏,但我不想将其硬编码到每个图中;怎么样这样

\makeatletter
\newlength \figwidth
\if@twocolumn
  \setlength \figwidth {0.9\columnwidth}
\else
  \setlength \figwidth {0.5\textwidth}
\fi
\makeatother

然后使用

\includegraphics[width=\figwidth]{myimage}

插入图片。

答案 1 :(得分:4)

\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}

答案 2 :(得分:1)

嗯......上面的代码(\ if @ twocolumn等)对我来说根本不起作用。不知道为什么不。 :( tetex在osX上使用fink。尝试使用revtex4,所以也许这就是问题。我真的很喜欢这种改变的想法,因为我将为我的论文和各种期刊文章做宽度等等,并且使用宏指定这些距离可能有助于这些类型的转换。

任何评论都非常感谢! -Allen

答案 3 :(得分:0)

对此更熟悉的其他人可能会回答,但请注意,如果你要进行两列,你还需要将你的数字类型更改为数字*。