我正在尝试创建一个相当不寻常的表格。问题看起来很简单,但尽管我尝试了一个星期,却无法解决它。
以下是代码:
\documentclass{book}
\usepackage{array}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\begin{document}
\noindent\begin{tabular}{|*{29}{P{0.1cm}|}}
\hline
\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}\\
\hline
\end{tabular}
\end{document}
结果如下:
可以看出,字母“A”被推到了右侧。我希望它位于框(单元格)中。我很感激任何可能帮助我理解问题的想法。
进一步说明:
这里,代码相同,但字母大小为 \tiny,并增加了一行。为什么字母不在中间?单元格左壁和字母“A”之间的“空间”来自哪里?
答案1
您的列太窄,请改用c
列。但是,您会发现表格对于边距来说太宽,即使您将边距减小\tabcolsep
到 2pt(或 0pt)。
根据您的选择,您可以将页面设置为横向模式,使用pdflscape或将表格旋转 90 度。在示例 2,我已经使用\rotatebox
了图形包将表格设置为横向模式。您还必须减少顶部和底部边距以避免出现框满警告。我使用了几何学为了这个目的。
如果需要p
列,可以使用\dimexpr
或使用来计算宽度表格型。如果不需要多行单元格(即多列p
),但所有单元格必须宽度相同,则可以使用大批的w
列并计算宽度。
示例 1 -c
列
\documentclass{book}
\usepackage{array}
%\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\setlength{\tabcolsep}{2pt}
\setlength{\extrarowheight}{1pt}
\begin{document}
\noindent\begin{tabular}{|*{29}{c|}}
\hline
\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}\\
\hline
\end{tabular}
\end{document}
示例 2 - 旋转框和c
列
\documentclass{book}
\usepackage{array}
\usepackage[margin=2.5cm]{geometry}
\usepackage{graphicx}
%\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\setlength{\tabcolsep}{2pt}
\setlength{\extrarowheight}{2pt}
\renewcommand{\arraystretch}{1.2}
\begin{document}
\pagestyle{empty}
\noindent\rotatebox [origin=center]{90}{%
\begin{tabular}{|*{29}{c|}}
\hline
\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}&\Huge{A}\\
\hline
\end{tabular}%
}
\end{document}