Я хочу рассчитать идеальный размер рисунков, которые я экспортирую из 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
то \columnwidth
, что составляет половину \textwidth
после вычитания столбца sep (10pt в классе article).
\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