具有预定义尺寸以及水平和垂直居中单元格的表格

具有预定义尺寸以及水平和垂直居中单元格的表格

我很难制作一个具有预定义尺寸(整个页面)且单元格水平和垂直居中的表格。我为每个问题都找到了解决方案,但它们不能一起工作。到目前为止,我找到的解决方案让我走到了这一步:

\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}

相关内容