根据布局是一列还是两列自动设置图形宽度

根据布局是一列还是两列自动设置图形宽度

我想知道您在写论文时通常如何处理图形宽度。(使用\linewidth\textwidth?其他?)

也许我们可以定义一个“开关”并将其与ifelse包一起使用?

(假设你正在编写一个onecolumn版本,并且你还想twocolumn同时了解布局,而又不需要过于\witdh频繁地手动调整。)

编辑。LaTeX 在格式化文本内容方面相当“智能”。我们可以让它以同样的方式处理图形吗?

也就是说,当我们添加一个图形时,我们不只是设置width=...,还添加了一个标签,用于告知 LaTeX“我width根据A4论文进行了这样的设置twocolumn”。

然后,当我们将布局更改为时onecolumn,LaTeX 就知道如何处理(重新缩放)。

编辑

\usepackage{ifthen}
\newboolean{figColumnTrueOneFalseTwo}
\setboolean{figColumnTrueOneFalseTwo}{false}
%\setboolean{figColumnTrueOneFalseTwo}{true}

% in main.tex
\ifthenelse {\boolean{figColumnTrueOneFalseTwo}}{
% for onecolumn here
}{
% for twocolumn here
}

答案1

由于这个问题在评论中得到了解决,为了从 未答复, 这是一个社区维基回答。

排序答案:通常\includegraphics[width=\linewidth]{}在大多数情况下都能自动很好地适应。

长答案:

\textwidth、\linewidth 和 \hsize 之间的区别(和\columnwidth)在上面的链接中有很好的解释。实际上,在单列文档中,\textwidth\columnwidth\linewidth长度相同(当您不在任何特殊环境中时),因此您可以使用以下任何长度来固定图像的宽度:

\documentclass{article}
\begin {document} 
\the\textwidth   % this length is 345.0pt
\the\linewidth   % this is  also  345.0pt
\the\columnwidth % this is again  345.0pt
\end{document} 

但是,如果从一列改为两列,则\textwidth宽度将是一列宽度的两倍多,并且对于必须容纳在一列中的数字来说非常不合适:

\documentclass[twocolumn]{article}
\begin {document} 
\the\textwidth   % this is now 469.0pt
\the\linewidth   % this is now 229.5pt
\the\columnwidth % this is now 229.5pt
\end{document} 

因此,人们可能会认为,一般来说,这样做更安全 \columnwidth,因为这在两种格式中都有效。尽管如此,在两列文档中,数字通常延伸到两列(带星号的浮动\begin{figure*} ...),而(一列)\columnwidth是错误的选择。相反,\linewidth在带星号和不带星号的浮动以及没有浮动的图像中,在单列或双列文档中,都按预期填充空间。

对于没有浮动且在某些环境中位于内部的图像,一般规则是不可能的,但\linewidth在大多数情况下可能是选择。例如,在itemize比列宽窄 20pt 的环境中,这可能是您想要的“分项”图片(...也可能不是,这取决于您想要什么)。

相关内容