我想知道您在写论文时通常如何处理图形宽度。(使用\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 的环境中,这可能是您想要的“分项”图片(...也可能不是,这取决于您想要什么)。