我很难制作一个具有预定义尺寸(整个页面)且单元格水平和垂直居中的表格。我为每个问题都找到了解决方案,但它们不能一起工作。到目前为止,我找到的解决方案让我走到了这一步:
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[czech]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage[total={17cm,25.7cm}, top=2cm, left=2cm, includefoot, bindingoffset=-0.63cm]{geometry}
%\usepackage[twoside, hscale=0.88, vscale=0.88, bindingoffset=0cm]{geometry}
\usepackage{tikz}
\usepackage{array}
\usepackage{booktabs,adjustbox}
\newcommand{\finalcells}[2]{%
\begingroup\sbox0{\begin{minipage}{3cm}\raggedright#1\end{minipage}}%
\sbox2{\begin{minipage}{3cm}\raggedright#2\end{minipage}}%
\xdef\finalheight{\the\dimexpr\ht0+\dp0+\smallskipamount\relax}%
\xdef\finalheightB{\the\dimexpr\ht2+\dp2+\smallskipamount\relax}%
\ifdim\finalheightB>\finalheight
\global\let\finalheight\finalheightB
\fi\endgroup
\begin{minipage}[t][\finalheight][t]{3cm}\raggedright#1\end{minipage}&
\begin{minipage}[t][\finalheight][t]{3cm}\raggedright#2\end{minipage}}
\begin{document}
{\setlength{\extrarowheight}{3.5 cm}
%\setlength{\tabcolsep}{4.25cm}
\begin{tabular}{| m{8.5cm} | m{8.5cm} |}
\hline
asdasd & • \\
\hline
• & • \\
\hline
• & • \\
\hline
• & • \\
\hline
• & • \\
\hline
• & • \\
\hline
\end{tabular}
}
\end{document}
它创建了具有预定义尺寸的表格,但文本未居中。我真正想要的是制作打印后可以匹配的双面(扑克牌)。感谢您的任何建议。
答案1
不清楚您想要什么。单元格内容上方/下方有更多空白空间?如果单元格中有较长的文本(例如,如果文本分成四行),会发生什么情况?
我猜想,以下(更简单的)解决方案可以满足您的要求:
\documentclass[12pt,a4paper]{article}
\usepackage[total={17cm,25.7cm},
top=2cm, left=2cm,
includefoot, bindingoffset=-0.63cm]{geometry}
\usepackage[czech]{babel}
\usepackage[T1]{fontenc}
\usepackage{array, booktabs}
\usepackage[column=O]{cellspace} % for additiona vertical space above/below cells contets
\setlength\cellspacetoplimit{22pt}
\setlength\cellspacebottomlimit{22pt}
\usepackage{adjustbox}
\usepackage{lipsum}
\begin{document}
\begin{tabular}{| >{\centering\arraybackslash}O{m{8.5cm}}
| >{\centering\arraybackslash}O{m{8.5cm}} |}
\hline
asdasd & \lipsum[1][1-3] \\
\hline
• & • \\
\hline
• & • \\
\hline
• & • \\
\hline
\end{tabular}
\end{document}
答案2
在这种情况下,你的朋友是命令
\rule[-5em]{0pt}{10em}
在每个单元格内容的上方和下方添加一条不可见的规则——尺寸根据选择
本网站的许多地方讨论了各种类型的垂直和水平填充的优缺点,包括——
新的P
列类型提供了您想要的水平和垂直居中 - 用命令中的\centering
水平居中和m{}
垂直居中
\newcolumntype{P}[1]{>{\rule[-5em]{0pt}{10em}\centering\arraybackslash}m{#1\textwidth}}
每列的宽度定义为文本宽度的百分比,只需输入即可P{0.4}
,这意味着该列将占据文本宽度的 40%
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[czech]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage[total={17cm,25.7cm}, top=2cm, left=2cm, includefoot, bindingoffset=-0.63cm]{geometry}
%\usepackage[twoside, hscale=0.88, vscale=0.88, bindingoffset=0cm]{geometry}
\usepackage{tikz}
\usepackage{array}
\usepackage{booktabs,adjustbox}
%
%\newcommand{\finalcells}[2]{%
% \begingroup\sbox0{\begin{minipage}{3cm}\centering#1\end{minipage}}%
% \sbox2{\begin{minipage}{3cm}\centering#2\end{minipage}}%
% \xdef\finalheight{\the\dimexpr\ht0+\dp0+\smallskipamount\relax}%
% \xdef\finalheightB{\the\dimexpr\ht2+\dp2+\smallskipamount\relax}%
% \ifdim\finalheightB>\finalheight
% \global\let\finalheight\finalheightB
% \fi\endgroup
% \begin{minipage}[t][\finalheight][t]{3cm}\centering#1\end{minipage}&
% \begin{minipage}[t][\finalheight][t]{3cm}\centering#2\end{minipage}}
\newcolumntype{P}[1]{>{\rule[-5em]{0pt}{10em}\centering\arraybackslash}m{#1\textwidth}}
\begin{document}
% {\setlength{\extrarowheight}{3.5 cm}
%\setlength{\tabcolsep}{4.25cm}
\begin{tabular}{| P{0.4} | P{0.4} |}
\hline
asdasd & • \\
\hline
• & • \\
\hline
• & • \\
\hline
• & • \\
\hline
• & • \\
\hline
• & • \\
\hline
\end{tabular}
% }
\end{document}