我怎样才能制作类似的文档,但使中间列仅占用其所需的空间(而不是明确指定宽度),以便左右列有尽可能多的空间?
\documentclass{article}
\begin{document}
\noindent
\fbox{\parbox{0.333\textwidth}{\centering Left content centered \\ between margin and title }}
\fbox{\parbox{0.333\textwidth}{\centering \Huge Title }}
\fbox{\parbox{0.333\textwidth}{\centering Right content \\ also centered }}
\end{document}
答案1
您可以计算内容的宽度并将其存储在辅助长度中;然后您可以使用该值计算另外两个宽度(您还需要考虑\fboxsep
和\fboxrule
):
\documentclass{article}
\newlength\mylen
\newcommand\MyCont{\Huge Title}
\settowidth\mylen{\MyCont}
\begin{document}
\noindent
\fbox{\parbox{\dimexpr0.5\textwidth-0.5\mylen-3\fboxsep-3\fboxrule\relax}{\centering Left content centered \\ between margin and title }}%
\fbox{\parbox{\mylen}{\centering\MyCont}}%
\fbox{\parbox{\dimexpr0.5\textwidth-0.5\mylen-3\fboxsep-3\fboxrule\relax}{\centering Right content \\ also centered }}
\end{document}
当然,如果你对制作表格材料感兴趣,最好的方法是使用包tabularx
(如第零个的答案),或者tabu
包。后者的一个小例子:
\documentclass{article}
\usepackage{tabu}
\begin{document}
\noindent
\begin{tabu}{|X[c]|c|X[c]|}
Left content centered between margin and title & \Huge Title &
Right content also centered
\end{tabu}
\end{document}
答案2
你可以使用的包是tabularx
。这允许您指定需要宽度参数的表格环境。此外,还X
引入了新的列说明符。
这新的列类型将占据剩余的可用空间,并将该空间划分到各X
列之间。
就你的情况来说,这相当于:
% \usepackage{tabularx}
\begin{tabularx}{\textwidth}{|>{\centering}X|c|>{\centering\arraybackslash}X|}
o & o & o
\\
o & o & o
\end{tabularx}
这\arraybackslash
是解决无法正确解释的 的一个方法\cr
。请参阅手册以了解更多信息。
这将产生: