패키지 `flowfram` - 현재 프레임의 너비를 어떻게 쿼리합니까?

패키지 `flowfram` - 현재 프레임의 너비를 어떻게 쿼리합니까?

나는 프레임 내에서 다음과 같은 표 형식을 사용하고 있습니다.

\documentclass{article}

\usepackage{flowfram}
\usepackage[showframe]{geometry}

\newflowframe{0.5\textwidth}{\textheight}{0pt}{0pt}
\newflowframe{0.5\textwidth}{\textheight}{0.5\textwidth}{0pt}

\begin{document}
\begin{tabular}{p{0.2\textwidth}p{0.2\textwidth}}
    First thing & Second thing
\end{tabular}
\framebreak
\begin{tabular}{p{0.2\textwidth}p{0.2\textwidth}}
    Third thing & Fourth thing
\end{tabular}
\end{document}

결과는 다음과 같습니다. 여기에 이미지 설명을 입력하세요

이것이 내가 원하는 것과 거의 비슷하지만 0.2\textwidth각 테이블 형식 멤버의 크기를 지정하는 데 어떻게 사용하고 있는지 주목하세요. 대신, 목적에 맞게 길이를 직접 정의할 필요 없이 프레임 너비의 절반을 지정할 수 있기를 바랍니다. 의 라인을 따라 뭔가가 0.4\framewidth완벽할 것입니다. flowfram현재 프레임의 너비를 쿼리할 수 있는 메커니즘이 패키지 내에 있습니까 ?

답변1

\textwidth페이지 너비에서 기본 여백을 뺀 값인 반면, 은 \columnwidth텍스트 열의 너비와 같습니다(따라서 \textwidth한 열 페이지의 너비와 동일하지만 두 열 페이지의 절반보다 약간 작습니다 \textwidth).

그러나 다른 컨텍스트(테이블의 테이블 셀, 미니페이지, 중첩 목록 등)에서는 텍스트 너비가 \textwidth또는 \columnwidth. 여기서 원하는 것은 \linewidth하나 또는 두 개의 열 텍스트에서도 똑같이 잘 작동하는 선 너비(즉, )입니다(즉, \textwidth및/또는 \columnwidth, ..또는 동일하지 않을 수 있음).

따라서 "가장 안전한" 방법은 항상 너비를 기준으로 하는 테이블 열을 사용하는 것입니다 \linewidth. p{}프레임의 약 50%에 해당하는 열을 원한다면 p{0.5\linewidth}목표에 가깝습니다.하지만:

  1. 열 사이의 분리( )도 고려해야 합니다 \tabcolsep.

  2. 표 형식은 큰 알파벳 문자처럼 배치됩니다. 즉, 빈 줄 뒤는 단락의 큰 첫 글자와 같아서 기본적으로 들여쓰기됩니다. 따라서 테이블의 들여쓰기를 방지하려면 을 사용 \noindent하거나 로 설정 \parindent해야 합니다.0pt

MWE:

음

\documentclass{article}

\usepackage{flowfram}
\usepackage[showframe]{geometry}

\newflowframe{0.5\textwidth}{\textheight}{0pt}{0pt}
\newflowframe{0.5\textwidth}{\textheight}{0.5\textwidth}{0pt}

\begin{document}

\tabcolsep1em

\noindent\begin{tabular}{|p{\dimexpr 0.5\linewidth-2\tabcolsep}|p{\dimexpr 0.5\linewidth-2\tabcolsep}|}
    First thing & Second thing \\\hline
\end{tabular}

\framebreak

\noindent\begin{tabular}{|p{\dimexpr 0.5\linewidth-2\tabcolsep}|p{\dimexpr 0.5\linewidth-2\tabcolsep}|}
    Third thing & Fourth thing \\\hline
\end{tabular}


\end{document}

메모:

표 형식은 네 개의 셀 너비를 더 잘 확인하기 위해 "감옥"되었습니다. 스타일에 대한 모든 제안은 아닙니다 ...

tabularx참고: 표 형식을 다음과 같이 단순화하려면 패키지를 살펴볼 수 있습니다 .

\noindent
\begin{tabularx}{\linewidth}{XX}
    First thing & Second thing \\
\end{tabularx}

관련 정보