两个表格大小相同,但实际上大小不同

两个表格大小相同,但实际上大小不同

如果标题没有太多意义,我很抱歉,但我会尝试更彻底地描述问题。我有下面显示的代码,它为我提供了图片中显示的表格。

\begin{figure}
\centering
\begin{tabular}{|p{2.0cm}|p{2.0cm}|p{2.0cm}|p{2.0cm}|p{2.0cm}|p{2.0cm}|}
    \hline
    \multicolumn{2}{|c|}{\textbf{Qualität}} &\multicolumn{1}{c|}{\textbf{Wände}} & `enter code here`\multicolumn{2}{c|}{\textbf{Oben/Unten}} & \multicolumn{1}{c|}{\textbf{\makecell{Geschwin-\\digkeit}}}\\
    \hline
    Schichtdicke & Linienbreite & \makecell[tl]{Anzahl der\\ Wandlinien} & \makecell[tl]{ Oberfläche\\ Außenhaut\\ Linien-\\breite} & \makecell[tl]{Glätten \\ aktivieren} & \makecell[tl]{Druckge- \\schwindig- \\keit}\\
    \hline
    0.15mm & 0.2mm & 0 & 0.2mm & \checkmark & 25mm/s\\
    \hline
\end{tabular}
\bigskip

\begin{tabular}{|p{2.0cm}|p{2.0cm}|p{2.0cm}|p{2.0cm}|p{2.0cm}|p{2.0cm}|}
    \hline
    \multicolumn{3}{|c|}{\textbf{Material}} & \multicolumn{2}{c|}{\textbf{\makecell{Druckplattenhaftung}}} & \multicolumn{1}{c|}{\textbf{\makecell{Sonder-\\funktionen}}}\\
    \hline
    \makecell[tl]{Drucktem- \\peratur} & Temperatur der Druckplatte & Fluss & \makecell[tl]{Haftungs-\\typ} & \makecell[tl]{Anzahl der\\ Skirtlinien} & \makecell[tl]{Druckreihen-\\folge}\\
    \hline
    $\mathrm{230^\circ C}$ & $\mathrm{70^\circ C}$ & 106\% & Skirt & 10 & Nacheinander \\
    \hline
\end{tabular}
\caption{Druckereinstellungen der ersten Versuchsreihe}
\label{tab:Druckereinstellungen der ersten Versuchsreihe}

\结束{图}

尽管顶部和底部表格的列大小相同(p{2.0cm}),但表格大小仍然不一致,左侧甚至无法完美对齐。这对我来说很奇怪,我尝试了一些方法,但都不起作用。有人能帮我解决这个问题吗?谢谢在此处输入图片描述

答案1

我建议您修改列类型,以自动居中单元格内容并允许单元格中的第一个单词换行。(列p类型既不执行任何操作。)我还建议您摆脱\makecell包装器,并建议您使用该siunitx包及其\qty宏来排版物理量及其相关单位。最后但并非最不重要的是,请插入换行符。 \bigskip

在此处输入图片描述

\documentclass{article} 
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{geometry} % set page parameters as needed
\usepackage{amssymb}  % for \checkmark macro
\usepackage{array}    % for \newcolumntype macro
\usepackage{ragged2e} % for \Centering macro
% column type that allows hyphenation of first word in a cell:
\newcolumntype{C}[1]{>{\Centering\hspace{0pt}}m{#1}}
\usepackage[,locale=DE,per-mode=symbol]{siunitx} % '\qty' macro
\begin{document} 

\begin{figure}
\setlength\extrarowheight{2pt} % for a less-cramped "look"
\centering

\begin{tabular}{| *{6}{C{2.0cm}|} }
\hline
\multicolumn{2}{|c|}{\textbf{Qualität}} &
\textbf{Wände} & 
\multicolumn{2}{ c|}{\textbf{Oben\slash Unten}} & 
\textbf{Geschwindigkeit} \\
\hline
Schichtdicke & 
Linienbreite & 
Anzahl der Wandlinien & 
Oberfläche Außenhaut Linienbreite & 
Glätten aktivieren & 
Druck\-geschwin\-digkeit \\ % optional: indicate preferred line break points
\hline
\qty{0.15}{\milli\meter} & 
\qty{0.2}{\milli\meter} & 0 & 
\qty{0.2}{\milli\meter} & 
\checkmark & 
\qty{25}{\milli\meter\per\second} \\
\hline
\end{tabular}

\bigskip % insert line break *before* this command
\begin{tabular}{| *{6}{C{2.0cm}|}}
\hline
\multicolumn{3}{|c|}{\textbf{Material}} & 
\multicolumn{2}{ c|}{\textbf{Druckplattenhaftung}} & 
\textbf{Sonderfunktionen} \\
\hline
Druck\-temperatur & 
Temperatur der Druckplatte & 
Fluss & Haftungstyp & 
Anzahl der Skirtlinien & 
Druck\-reihenfolge \\ % optional: indicate preferred line break points
\hline
\qty{230}{\celsius} & 
\qty{70}{\celsius} & 
106\% & 
Skirt & 
10 & 
Nacheinander \\
\hline
\end{tabular}

\caption{Druckereinstellungen der ersten Versuchsreihe}
\label{tab:Druckereinstellungen der ersten Versuchsreihe}
\end{figure}

\end{document}

答案2

你没有提供一个例子,但可以构造一个

在此处输入图片描述

\documentclass[a4paper,12pt]{article}
\usepackage{makecell}
\newcommand\checkmark{?}
\begin{document}
\begin{figure}
\centering
\begin{tabular}{|p{2.0cm}|p{2.0cm}|p{2.0cm}|p{2.0cm}|p{2.0cm}|p{2.0cm}|}
    \hline
    \multicolumn{2}{|c|}{\textbf{Qualität}} &\multicolumn{1}{c|}{\textbf{Wände}} & \multicolumn{2}{c|}{\textbf{Oben/Unten}} & \multicolumn{1}{c|}{\textbf{\makecell{Geschwin-\\digkeit}}}\\
    \hline
    Schichtdicke & Linienbreite & \makecell[tl]{Anzahl der\\ Wandlinien} & \makecell[tl]{ Oberfläche\\ Außenhaut\\ Linien-\\breite} & \makecell[tl]{Glätten \\ aktivieren} & \makecell[tl]{Druckge- \\schwindig- \\keit}\\
    \hline
    0.15mm & 0.2mm & 0 & 0.2mm & \checkmark & 25mm/s\\
    \hline
\end{tabular}
\bigskip

\begin{tabular}{|p{2.0cm}|p{2.0cm}|p{2.0cm}|p{2.0cm}|p{2.0cm}|p{2.0cm}|}
    \hline
    \multicolumn{3}{|c|}{\textbf{Material}} & \multicolumn{2}{c|}{\textbf{\makecell{Druckplattenhaftung}}} & \multicolumn{1}{c|}{\textbf{\makecell{Sonder-\\funktionen}}}\\
    \hline
    \makecell[tl]{Drucktem- \\peratur} & Temperatur der Druckplatte & Fluss & \makecell[tl]{Haftungs-\\typ} & \makecell[tl]{Anzahl der\\ Skirtlinien} & \makecell[tl]{Druckreihen-\\folge}\\
    \hline
    $\mathrm{230^\circ C}$ & $\mathrm{70^\circ C}$ & 106\% & Skirt & 10 & Nacheinander \\
    \hline
\end{tabular}
\caption{Druckereinstellungen der ersten Versuchsreihe}
\label{tab:Druckereinstellungen der ersten Versuchsreihe}
\end{figure}
\end{document}

请注意,您需要12pt文档选项。

该问题是由于

\multicolumn{1}{c|}{\textbf{\makecell{Sonder-\\funktionen}}}

这会覆盖规范p并要求使用,c因此使列宽与条目一样宽,funktionen比 12pt 的列宽。因此,您需要以不同的方式拆分该文本,或重新调整p宽度以给该列留出更多空间。

答案3

似乎规定的列宽有点太小,以至于正常字体大小的单元格中的文本无法很好地容纳其中。如果不知道文档页面布局,很难理解它们为什么有 2 厘米的宽度。我预计 6 列表格中的列宽将定义为文本宽度的 1/6(不幸的是未知)。

使用较小的字体大小也可以使文本更好地适应单元格。例如使用\small大小。

考虑到上述情况,我会选择tabularxtblrtabularray进行表格设计,\small文本的字体大小和类似的东西,就像@Mico 在他的回答中所做的那样,启用单元格文本中第一个单词的换行并用于siunitx写入数量。

带表的 MWEtblr可以是:

\documentclass{article}
\usepackage{geometry}   % set page parameters as needed
\usepackage{lipsum}

\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\hyphenation{Druck-geschwin-digkeit Druck-reihen-folge}

\usepackage{amssymb}    % for \checkmark
\usepackage{ragged2e}   % for \RaggedRight macro
\usepackage{tabularray} 
\UseTblrLibrary{siunitx}% for \qty
\sisetup{locale=DE,
         per-mode=symbol}

\begin{document}
\lipsum[66]
    \begin{figure}[ht]
    \small
\begin{tblr}{hlines, vlines,
             colspec = { *{6}{X[cmd=\RaggedRight\hspace{0pt}]} },
             colsep  = {3pt},
             row{1}  = {font=\bfseries, m}
             }
\SetCell[c=2]{c}    Qualität
    &   &    Wände  
            &   \SetCell[c=2]{c}    Oben\slash Unten    
                &   &   Geschwindigkeit                     \\
Schichtdicke 
    &   Linienbreite 
        &   Anzahl der Wandlinien 
            &   Oberfläche Außenhaut Linienbreite 
                &   Glätten aktivieren 
                    &   Druckgeschwindigkeit                \\
\qty{0.15}{\milli\meter} 
    &   \qty{0.2}{\milli\meter} 
        & 0 &   \qty{0.2}{\milli\meter} 
                &   \checkmark 
                    &   \qty{25}{\milli\meter\per\second}   \\
\end{tblr}

\medskip
\begin{tblr}{hlines, vlines,
             colspec = { *{6}{X[cmd=\RaggedRight\hspace{0pt}]} },
             colsep  = {3pt},
             row{1}  = {font=\bfseries, m}
             }
\SetCell[c=3]{c}    Material
    &   &   &   \SetCell[c=2]{c}    Druckplattenhaftung
                &   &   Sonderfunktionen                        \\
Druck\-temperatur 
    &   Temperatur der Druckplatte 
        &   Fluss 
            &   Haftungstyp 
                &   Anzahl der Skirtlinien 
                    &   Druckreihenfolge                        \\
\qty{230}{\celsius} 
    &   \qty{70}{\celsius} 
        &   \qty{106}{\%}
            &   Skirt 
                &   10 
                    &   Nacheinander                            \\
\end{tblr}

\caption{Druckereinstellungen der ersten Versuchsreihe}
\label{tab:Druckereinstellungen der ersten Versuchsreihe}
    \end{figure}    
\lipsum[11]
\end{document}

在此处输入图片描述

相关内容