我想计算从 R 导出并包含在 LaTeX 文档中的图形的理想大小(因此图形标签的文本大小与结果文档的字体大小成已知比例)。但是,对于双列文档,我不知道 LaTeX 如何计算 \linewidth。有没有计算公式?我需要类似的东西:
(paperwidth - margins)/2 - distance_of_the_columns_as_a_function_of_font_size
当然,我可以编译 pdf 并包含
\the\linewidth
获取当前文档的线宽(然后我可以手动将其提供给 R),但我想编写一个可以“盲目”运行的 R 脚本,并自动从纯 .tex 文件中计算所需的值。
编辑:我测试过了
\the\columnsep
对于 8pt、10pt、11pt 和 12pt 文章和 scrartcl 文档,总是得到10 点,因此我假设该值对于常规情况是恒定的。这将使事情变得相当简单,因为\columnwidth
将为:
(\paperwidth - margins - 10pt)/2```
答案1
计算如下
\def \twocolumn {%
\clearpage
\global\columnwidth\textwidth
\global\advance\columnwidth-\columnsep
\global\divide\columnwidth\tw@
\global\hsize\columnwidth
\global\linewidth\columnwidth
也就是\linewidth
减去列 sep 后\columnwidth
的一半(文章类中为 10pt)。\textwidth
\textwidth
在每个文档类中以不同的方式设置(并且通常由诸如 之类的包重新设置geometry
),默认情况下,在article
类中10pt
使用默认选项设置
\if@compatibility
\if@twocolumn
\setlength\textwidth{410\p@}
\else
\setlength\textwidth{345\p@}
\fi
\else
\setlength\@tempdima{\paperwidth}
\addtolength\@tempdima{-2in}
\setlength\@tempdimb{345\p@}
\if@twocolumn
\ifdim\@tempdima>2\@tempdimb\relax
\setlength\textwidth{2\@tempdimb}
\else
\setlength\textwidth{\@tempdima}
\fi
\else
\ifdim\@tempdima>\@tempdimb\relax
\setlength\textwidth{\@tempdimb}
\else
\setlength\textwidth{\@tempdima}
\fi
\fi
\fi
\if@compatibility\else
\@settopoint\textwidth
\fi
大于或小于 345pt 或 2in\paperwidth