在表格单元格内居中,仅在一个单元格中不起作用

在表格单元格内居中,仅在一个单元格中不起作用

我正在尝试使用自定义列创建一个表,如下所述这里。由于某种原因,我的表格最后一行最左边的列没有水平居中,我不知道为什么。

以下是我正在使用的代码:

\documentclass[
                german,
                paper=a4,
                oneside,
                DIV=15,
                12pt,
                parskip,
                headsepline,
                cleardoublepage=empty,
                ]{scrreprt}             

\usepackage[automark, autooneside=false]{scrlayer-scrpage}
\clearpairofpagestyles
\usepackage[latin1]{inputenc}
\usepackage[english,ngerman]{babel}
\usepackage[T1]{fontenc}    
\usepackage{lmodern}
\parindent 0pt
\usepackage[onehalfspacing]{setspace}
\usepackage[decimalsymbol=comma,
            loctolang={DE:ngerman,UK:english},
            ]{siunitx}
\usepackage{wg_makro}
\usepackage{ wasysym }
\usepackage{caption}
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox[cmyk]{0.43, 0.35, 0.35,0.01}{\parbox{\textwidth}{\hspace{15pt}#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singlelinecheck=false, margin=0pt, font={bf,footnotesize}}

%***************************************************************
%this is where I defined the new columntypes
\usepackage{array}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
%***************************************************************
\usepackage{chemmacros}

\begin{document}

\begin{center}
\begin{table}[H]
    \begin{tabular}{|M{3cm}|M{2.5cm}|M{2.3cm}|M{2.2cm}|M{2.5cm}|M{3.25cm}|}
        \hline
        Substrat & Abmessungen & Leitfähigkeit & Orientierung & Dotierung & Brechungsindex \newline $( \lambda = \SI{632,8}{\nano\meter})$ \\   \hline\hline
        p-Si & \diameter: \SI{2}{"} \newline H: \SI{1}{\milli\meter} & \SI{0.1}{\ohm\meter} & <100> & Bor-Dotiert & \num{1,5667-i0,016}\\ \hline
        n-Si & \diameter: \SI{2}{"} \newline H: \SI{1}{\milli\meter} & \SI{0.1}{\ohm\meter} & <100> & Bor-Dotiert & \num{1,5667-i0,016}\\ \hline
        p-Si \newline \ch{SiO2} (\SI{200}{\nano\meter}) & \diameter: \SI{2}{"} \newline H: \SI{1}{\milli\meter} & \SI{0.1}{\ohm\meter} & <100> & Bor-Dotiert & \num{1,5667-i0,016}\\ \hline
    \end{tabular}
    \caption{Haupteigenschaften der verwendeten Substrate}
    \label{tbl:substrate}
\end{table}
\end{center}

\end{document}

这是我得到的结果:

单元格未居中

我添加了一条红线,以便人们可以立即看到错误的对齐。

我的问题是:我如何将最后的“p-Si”与上面单元格中的对齐?

答案1

您既不想要\newline(永远不要在表格中使用它),也不想要\endgraf

命令\endgraf应该绝不直接在文档中使用;在某些涉及宏定义的特殊情况下,它可能很方便。好吧,“从不”可能有点夸张,但这个想法是,如果你似乎需要它在文档中,那么你正在做的事情可能有问题,或者至少是有争议的。

这是一种避免计算列宽和M列数的方法;调整应该\tabcolsep在文档最终形式时在最后进行;我只是取超额的数量并将其除以 12(列间距数)。

\documentclass[
  paper=a4,
  oneside,
  DIV=15,
  12pt,
  parskip,
  headsepline,
  cleardoublepage=empty,
]{scrreprt}             

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{wasysym}

\usepackage[onehalfspacing]{setspace}

\usepackage[decimalsymbol=comma,
            loctolang={DE:ngerman,UK:english},
            ]{siunitx}
\usepackage{chemmacros}

\DeclareSIUnit{\inch}{\ensuremath{''}}
\newcommand{\splitcell}[2][c]{\begin{tabular}{@{}#1@{}}#2\end{tabular}}
\newcommand{\orientation}[1]{\ensuremath{\langle#1\rangle}}

\begin{document}

\begin{table}
\centering

\addtolength{\tabcolsep}{-0.74pt}% avoid overfull
\begin{tabular}{|*{6}{c|}}
\hline
Substrat & Abmessungen & Leitfähigkeit & Orientierung & Dotierung & 
  \splitcell{Brechungsindex \\ $(\lambda = \SI{632,8}{\nano\meter})$} \\
\hline\hline
p-Si & \splitcell[l]{\diameter: \SI{2}{\inch} \\ H: \SI{1}{\milli\meter}} &
  \SI{0.1}{\ohm\meter} & \orientation{100} & Bor-Dotiert & \num{1,5667-i0,016}\\
\hline
n-Si & \splitcell[l]{\diameter: \SI{2}{\inch} \\ H: \SI{1}{\milli\meter}} &
  \SI{0.1}{\ohm\meter} & \orientation{100} & Bor-Dotiert & \num{1,5667-i0,016}\\
\hline
\splitcell{p-Si \\ \ch{SiO2} (\SI{200}{\nano\meter})}
     & \splitcell[l]{\diameter: \SI{2}{\inch} \\ H: \SI{1}{\milli\meter}} &
  \SI{0.1}{\ohm\meter} & \orientation{100} & Bor-Dotiert & \num{1,5667-i0,016}\\
\hline
\end{tabular}

\caption{Haupteigenschaften der verwendeten Substrate}
\label{tbl:substrate}

\end{table}

\end{document}

我已删除了构建示例不需要的包。

请注意,即使使用说明符(不要),table环境也不能进入环境内部。center[H]

在此处输入图片描述

booktabs与(需要)相同\usepackage{booktabs}

\begin{table}
\centering

\addtolength{\tabcolsep}{-0.5pt}% avoid overfull
\begin{tabular}{*{6}{c}}
\toprule
Substrat & Abmessungen & Leitfähigkeit & Orientierung & Dotierung &
  \splitcell{Brechungsindex \\ $(\lambda = \SI{632,8}{\nano\meter})$} \\
\midrule
p-Si & \splitcell[l]{\diameter: \SI{2}{\inch} \\ H: \SI{1}{\milli\meter}} &
  \SI{0.1}{\ohm\meter} & \orientation{100} & Bor-Dotiert & \num{1,5667-i0,016}\\
\addlinespace
n-Si & \splitcell[l]{\diameter: \SI{2}{\inch} \\ H: \SI{1}{\milli\meter}} &
  \SI{0.1}{\ohm\meter} & \orientation{100} & Bor-Dotiert & \num{1,5667-i0,016}\\
\addlinespace
\splitcell{p-Si \\ \ch{SiO2} (\SI{200}{\nano\meter})}
     & \splitcell[l]{\diameter: \SI{2}{\inch} \\ H: \SI{1}{\milli\meter}} &
  \SI{0.1}{\ohm\meter} & \orientation{100} & Bor-Dotiert & \num{1,5667-i0,016}\\
\bottomrule
\end{tabular}

\caption{Haupteigenschaften der verwendeten Substrate}
\label{tbl:substrate}

\end{table}

在此处输入图片描述

答案2

将@Bernhard 的评论转化为答案:

通过替换\newline\endgraf对齐问题得到修复。

相关内容