
我在框架內使用表格,大致如下:
\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}
接近你的目標了,但:
您還必須考慮列之間的間隔 (
\tabcolsep
)。表格的放置方式就像一個大字母字元。也就是說,空行後面就像一個段落的第一個大字母,因此預設會縮排。因此,您應該使用
\noindent
或設定\parindent
為0pt
以避免表格縮排。
氣象局:
\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}