Ich möchte die ideale Größe von Abbildungen berechnen, die ich aus R exportiere und in LaTeX-Dokumente einbinde (sodass die Textgröße der Abbildungsbeschriftungen in einem bekannten Verhältnis zur Schriftgröße des resultierenden Dokuments steht). Bei zweispaltigen Dokumenten weiß ich jedoch nicht, wie LaTeX die Zeilenbreite berechnet. Gibt es eine Formel, wie man das berechnet? Ich bräuchte so etwas wie:
(paperwidth - margins)/2 - distance_of_the_columns_as_a_function_of_font_size
Natürlich könnte ich das PDF kompilieren und einbinden
\the\linewidth
um die Linienbreite des aktuellen Dokuments zu erhalten (die ich dann manuell an R weitergeben könnte), aber ich möchte ein R-Skript schreiben, das ich „blind“ ausführen kann und das die erforderlichen Werte automatisch aus der einfachen .tex-Datei berechnet.
Edit: Ich habe es getestet
\the\columnsep
für 8pt, 10pt, 11pt und 12pt Artikel und Scrartcl Dokumente und bekam immer10 Punkte, daher gehe ich davon aus, dass der Wert in normalen Fällen konstant ist. Dies macht die Sache ziemlich einfach, da \columnwidth
dann gilt:
(\paperwidth - margins - 10pt)/2```
Antwort1
Die Berechnung ist
\def \twocolumn {%
\clearpage
\global\columnwidth\textwidth
\global\advance\columnwidth-\columnsep
\global\divide\columnwidth\tw@
\global\hsize\columnwidth
\global\linewidth\columnwidth
Das ist \linewidth
die \columnwidth
Hälfte von \textwidth
„sep“ nach Abzug der Spalte „10pt“ in der Artikelklasse.
\textwidth
wird in jeder Dokumentklasse auf unterschiedliche Weise gesetzt (und wird oft von Paketen wie neu gesetzt geometry
). Standardmäßig wird es in article
der Klasse mit der Standardoption gesetzt durch10pt
\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
Das sind mehr oder weniger 345pt oder 2in weniger als\paperwidth