我正在尝试使用一个tabular*
环境来创建一个简单的表格,该表格具有两个相距一定距离的居中列,以便表格填满整个页面。
\documentclass{article}
\begin{document}
\fbox{
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill} } | c | c | }
\hline
\Large{Supervisor} & \Large{Student} \\
\hline
\Large{prof. X Y Z} & \Large{A B C} \\
\hline
\end{tabular*}
}
\end{document}
最终看起来是这样的:
请注意,表格不仅没有正确地分隔单元格,而且表格的顶线和左线也没有到达合适的角落。
(我不太在意边框不相交,因为这个表最终不会显示它们,但我在这里画它们以帮助调试。)
其他人的机器上的类似表格看起来不错,所以也许我的系统缺少了一些东西?
答案1
你正在添加很多额外的空间
\documentclass{article}
\begin{document}
\setlength\fboxsep{0pt}
\noindent
\hspace*{-\fboxrule}%SPACE
\fbox{%SPACE
%SPACE
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}%SPACE
} | c | c | }
\hline
\Large Supervisor & \Large Student \\
\hline
\Large prof. X Y Z & \Large A B C \\
\hline
\end{tabular*}%SPACE
%SPACE
}%SPACE
\hspace*{-\fboxrule}%SPACE
\end{document}
答案2
这就是您所寻找的吗?
\documentclass{article}
\begin{document}
\bgroup
\Large
\setlength{\tabcolsep}{0pt}%
\sbox0{\begin{tabular}{|c|c|}% measure width
Supervisor & Student \\
prof. X Y Z & A B C \\
\end{tabular}}%
\setlength{\tabcolsep}{\dimexpr \textwidth-\wd0}%
\divide\tabcolsep by 4
\noindent\begin{tabular}{|c|c|}
\hline
Supervisor & Student \\
\hline
prof. X Y Z & A B C \\
\hline
\end{tabular}
\egroup
\end{document}
这是一种稍微简单的方法,将表格分成两个相等的列。
\documentclass{article}
\newlength{\tempdima}
\begin{document}
\bgroup
\Large
\setlength{\tempdima}{\dimexpr 0.5\textwidth-2\tabcolsep-1.5\arrayrulewidth}%
\noindent\begin{tabular}{|c|c|}
\hline
\makebox[\tempdima][c]{Supervisor} & \makebox[\tempdima][c]{Student} \\
\hline
prof. X Y Z & A B C \\
\hline
\end{tabular}
\egroup
\end{document}
答案3
既然你显然不想在最后制定规则,我提出三点建议。使用宏是一种很好的方法,可以推迟最后的决定,而无需更改文档本身。
\documentclass{article}
\usepackage{showframe} % in order to see the page margins
\newcommand{\supervisorstudentA}[2]{%
\par\noindent
\begin{tabular}[t]{@{}c@{}} Supervisor \\ prof.\ #1 \end{tabular}\hfill
\begin{tabular}[t]{@{}c@{}} Student \\ #2 \end{tabular}\par
}
\newcommand{\supervisorstudentB}[2]{%
\par\noindent
\hspace*{4em}
\begin{tabular}[t]{@{}c@{}} Supervisor \\ prof.\ X Y Z \end{tabular}\hfill
\begin{tabular}[t]{@{}c@{}} Student \\ A B C \end{tabular}%
\hspace*{4em}\par
}
\newcommand{\supervisorstudentC}[2]{%
\par\noindent
\hspace*{\stretch{0.25}}%
\makebox[0pt]{\begin{tabular}[t]{@{}c@{}} Supervisor \\ prof.\ X Y Z \end{tabular}}%
\hspace*{\stretch{0.5}}%
\makebox[0pt]{\begin{tabular}[t]{@{}c@{}} Student \\ A B C \end{tabular}}%
\hspace*{\stretch{0.25}}\par
}
\begin{document}
\supervisorstudentA{X Y Z}{A B C}
\bigskip
\supervisorstudentB{X Y Z}{A B C}
\bigskip
\supervisorstudentC{X Y Z}{A B C}
\end{document}
在第三个中,这两个部分正好位于文本宽度的一半的中间。