R からエクスポートして LaTeX ドキュメントに含める図の理想的なサイズを計算したい (つまり、図のラベルのテキスト サイズが、結果のドキュメントのフォント サイズと既知の比率になるようにしたい)。ただし、2 列のドキュメントの場合、LaTeX が \linewidth をどのように計算するかがわかりません。これを計算する式はありますか? 次のような式が必要です。
(paperwidth - margins)/2 - distance_of_the_columns_as_a_function_of_font_size
もちろん、PDFをコンパイルして含めることもできます
\the\linewidth
現在のドキュメントの線幅を取得するには (これを手動で R に提供できます)、"盲目的に" 実行でき、プレーンな .tex ファイルから必要な値を自動的に計算する R スクリプトを作成したいと考えています。
編集:テストしました
\the\columnsep
8pt、10pt、11pt、12ptの記事とscratchcl文書で常に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 (記事クラスでは 10pt) を減算した後の\columnwidth
半分になります。\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または2インチ小さい\paperwidth