LaTex는 두 열 문서에서 \linewidth를 어떻게 계산합니까?

LaTex는 두 열 문서에서 \linewidth를 어떻게 계산합니까?

R에서 내보내고 LaTeX 문서에 포함하는 그림의 이상적인 크기를 계산하고 싶습니다. 따라서 그림 레이블의 텍스트 크기는 결과 문서의 글꼴 크기에 알려진 비율입니다. 그러나 두 개의 열로 구성된 문서의 경우 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 기사 및 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

즉, sep 열(기사 클래스의 10pt)을 뺀 후의 절반입니다 \linewidth.\columnwidth\textwidth

\textwidthgeometry기본적으로 각 문서 클래스에서 서로 다른 방식으로 설정되며(종종 과 같은 패키지에 의해 재설정됨 ), 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 또는 2in 미만입니다.\paperwidth

관련 정보