Quero calcular o tamanho ideal das figuras que exporto do R e incluo em documentos LaTeX (para que o tamanho do texto dos rótulos das figuras esteja em uma proporção conhecida com o tamanho da fonte do documento resultante). Entretanto, para documentos de duas colunas eu não sei como o LaTeX calcula \linewidth. Existe uma fórmula sobre como calcular isso? Eu precisaria de algo como:
(paperwidth - margins)/2 - distance_of_the_columns_as_a_function_of_font_size
Claro, eu poderia compilar o pdf e incluir
\the\linewidth
para obter a largura de linha do documento atual (que eu poderia fornecer manualmente para R), mas quero escrever um script R que possa ser executado "às cegas" e que calcule automaticamente os valores necessários do arquivo .tex simples.
Editar: eu testei
\the\columnsep
para artigos de 8pt, 10pt, 11pt e 12pt e documentos scartcl e sempre obtive10 pontos, portanto, presumo que o valor seja constante para casos regulares. Isso tornará as coisas bastante fáceis, pois \columnwidth
será:
(\paperwidth - margins - 10pt)/2```
Responder1
O cálculo é
\def \twocolumn {%
\clearpage
\global\columnwidth\textwidth
\global\advance\columnwidth-\columnsep
\global\divide\columnwidth\tw@
\global\hsize\columnwidth
\global\linewidth\columnwidth
Isto é, \linewidth
a \columnwidth
metade \textwidth
depois de subtrair a coluna sep (10pt na classe do artigo).
\textwidth
é definido em cada classe de documento de maneiras diferentes (e muitas vezes é redefinido por pacotes como geometry
) por padrão, na article
classe com a opção padrão 10pt
ele é definido por
\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
que é mais ou menos 345pt ou 2in menor que\paperwidth