在LaTeX图中,可以使用 \ textwidth \ columnwidth 来指定图形相对于周围文本大小的大小,例如: <代码> \ includegraphics [宽度= 0.5 \文本宽度] {MYIMAGE}

我希望能够轻松地从一个列切换到两个列模板(并返回),而不会使一个列模板的数字变得太大。对于twocolumn模板(其中 \ columnwidth 大约是 \ textwidth 的一半),我希望有类似的东西: <代码> \ includegraphics [宽度= 0.9 \ columnWidth时] {MYIMAGE} 。 和onecolumn模板(其中 \ columnwidth \ textwidth 相同):
<代码> \ includegraphics [宽度= 0.5 \文本宽度] {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,所以也许这就是问题。我真的很喜欢这种改变的想法,因为我将为我的论文和各种期刊文章做宽度等等,并且使用宏指定这些距离可能有助于这些类型的转换。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top