
Ich verwende eine Tabelle innerhalb eines Rahmens, etwa so:
\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}
Das ist fast das, was ich will, aber beachten Sie, wie ich 0.2\textwidth
die Größe jedes Tabellenelements spezifiziere. Stattdessen möchte ich die Hälfte der Breite des Rahmens angeben können, ohne dafür meine eigene Länge definieren zu müssen. Etwas in der Art 0.4\framewidth
wäre perfekt. Gibt es innerhalb des flowfram
Pakets einen Mechanismus, der es mir ermöglicht, die Breite des aktuellen Rahmens abzufragen?
Antwort1
Dies \textwidth
ist die Breite der Seite abzüglich der Hauptränder, wobei 1 \columnwidth
lediglich die Breite einer Textspalte ist (also dasselbe wie \textwidth
bei einspaltigen Seiten, aber etwas weniger als die Hälfte von \textwidth
zweispaltigen Seiten).
Aber in anderen Kontexten (der Zelle einer Tabelle, einer Miniseite, einer verschachtelten Liste usw.) kann die Textbreite kleiner als \textwidth
oder sein \columnwidth
. Hier ist die Breite der Zeile (also ) gefragt, die genauso gut in ein- oder zweispaltigen Texten funktioniert (also gleich und/oder \linewidth
sein kann , … oder auch nicht).\textwidth
\columnwidth
Daher ist es am „sichersten“, Tabellenspalten mit Breiten zu verwenden, die immer relativ zu sind \linewidth
. Wenn Sie eine p{}
Spalte von etwa 50 % des Rahmens wünschen, dann p{0.5\linewidth}
ist es nahe an Ihrem Ziel,Aber:
Dabei müssen auch die Spaltenabstände (
\tabcolsep
) berücksichtigt werden.Die Tabelle wird wie ein großes Alphabetzeichen platziert. Das heißt, nach einer Leerzeile steht sie wie ein großer Anfangsbuchstabe eines Absatzes und wird daher standardmäßig eingerückt. Daher sollten Sie verwenden
\noindent
oder alternativ\parindent
auf setzen,0pt
um die Einrückung der Tabelle zu vermeiden.
Das 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}
Notiz:
Die Tabellen wurden nur „eingesperrt“, um die Breite der vier Zellen besser überprüfen zu können. Nicht unbedingt ein Stilvorschlag ...
Hinweis: Möglicherweise möchten Sie einen Blick auf das tabularx
Paket werfen, um die Tabellen wie folgt zu vereinfachen:
\noindent
\begin{tabularx}{\linewidth}{XX}
First thing & Second thing \\
\end{tabularx}