¿Cómo calcula LaTex \linewidth en un documento de dos columnas?

¿Cómo calcula LaTex \linewidth en un documento de dos columnas?

Quiero calcular el tamaño ideal de las figuras que exporto desde R e incluyo en documentos LaTeX (de modo que el tamaño del texto de las etiquetas de las figuras esté en una proporción conocida con el tamaño de fuente del documento resultante). Sin embargo, para documentos de dos columnas no sé cómo calcula LaTeX \linewidth. ¿Existe una fórmula sobre cómo calcular esto? Necesitaría algo como:

(paperwidth - margins)/2 - distance_of_the_columns_as_a_function_of_font_size

Por supuesto, podría compilar el pdf e incluirlo.

\the\linewidth

para obtener el ancho de línea del documento actual (que luego podría proporcionar manualmente a R), pero quiero escribir un script de R que pueda ejecutar "a ciegas" y que calcule los valores requeridos a partir del archivo .tex simple automáticamente.

Editar: probé

\the\columnsep

para artículos de 8 puntos, 10 puntos, 11 puntos y 12 puntos y documentos scrartcl y siempre obtuve10 puntosPor tanto, supongo que el valor es constante para los casos normales. Esto facilitará bastante las cosas, ya que \columnwidthentonces será:

(\paperwidth - margins - 10pt)/2```

Respuesta1

El cálculo es

\def \twocolumn {%
  \clearpage
  \global\columnwidth\textwidth
  \global\advance\columnwidth-\columnsep
  \global\divide\columnwidth\tw@
  \global\hsize\columnwidth
  \global\linewidth\columnwidth

Es decir, lo que \linewidthes \columnwidthla mitad \textwidthdespués de restar la columna sep (10 puntos en la clase de artículo).

\textwidthse establece en cada clase de documento de diferentes maneras (y a menudo se restablece mediante paquetes como geometry) de forma predeterminada, en articlela clase con la opción predeterminada 10ptse establece mediante

\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 es más o menos 345 puntos o 2 pulgadas menos que\paperwidth

información relacionada