
Estoy usando una tabla dentro de un marco, algo como:
\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}
Resultados en el siguiente diseño:
Esto es casi lo que quiero, pero observe cómo lo estoy usando 0.2\textwidth
para especificar el tamaño de cada miembro tabular. En cambio, me gustaría poder especificar la mitad del ancho del marco, sin tener que definir mi propia longitud para ese propósito. Algo parecido a 0.4\framewidth
sería perfecto. ¿Existe algún mecanismo dentro del flowfram
paquete que me permita consultar el ancho del marco actual?
Respuesta1
Es \textwidth
el ancho de la página menos los márgenes principales, mientras que \columnwidth
es solo el ancho de una columna de texto (por lo tanto, igual que \textwidth
en las páginas de una columna, pero algo menos de la mitad de \textwidth
las páginas de dos columnas).
Pero en otros contextos (la celda de una tabla, una minipágina, una lista anidada, etc.) el ancho del texto puede ser menor que \textwidth
o \columnwidth
. Aquí lo que desea es el ancho de la línea (es decir, \linewidth
) que funcionará igualmente bien también en textos de una o dos columnas (es decir, podría ser igual a \textwidth
y/o \columnwidth
, ..o no).
Por lo tanto, lo "más seguro" es utilizar columnas de tabla con anchos siempre relativos a \linewidth
. Si desea una p{}
columna de aproximadamente el 50% del marco, entonces p{0.5\linewidth}
está cerca de su objetivo,pero:
Debes tener en cuenta también las separaciones entre columnas (
\tabcolsep
).La tabla se coloca como un gran carácter alfabético. Es decir, después de una línea en blanco hay como la primera letra grande de un párrafo, por lo que tiene sangría de forma predeterminada. Por lo tanto, debe utilizar
\noindent
o, alternativamente, establecer\parindent
en0pt
para evitar la sangría de la tabla.
El 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}
Nota:
Los tabulares han sido "encarcelados" sólo para comprobar mejor las anchuras de las cuatro celdas. No todo es una sugerencia de estilo...
Nota: Es posible que desee echar un vistazo al tabularx
paquete para simplificar las tablas a algo como:
\noindent
\begin{tabularx}{\linewidth}{XX}
First thing & Second thing \\
\end{tabularx}