Warum bringt das Hinzufügen von \\[...] am Ende einer Zeile die Ausrichtung durcheinander?

Warum bringt das Hinzufügen von \\[...] am Ende einer Zeile die Ausrichtung durcheinander?

Ich habe versucht, auf den Kommentar des OP zu antworten.diese Antwort von miraber ich habe herausgefunden, dass [...]die horizontale Ausrichtung durcheinander gerät, wenn ich es am Ende einer Zeile einfüge.

\documentclass{book}
\usepackage{array}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\usepackage{arydshln}

\begin{document}
\renewcommand{\arraystretch}{2.2}  
Without space added:

\begin{tabular}{|M{.7cm}|}
    \hline
    $y$ \\ 
    \hdashline
    $a$ \\
    \hdashline
    $b$ \\ 
    \hline
\end{tabular}

\vspace{10pt} with space added:

\begin{tabular}{|M{.7cm}|}
    \hline
    $y$ \\[2ex] 
    \hdashline
    $a$ \\
    \hdashline
    $b$ \\ 
    \hline
\end{tabular}
\end{document}

Siehe die Position des y:

Bildbeschreibung hier eingeben

Was mache ich falsch?

Antwort1

Das Problem ist das Leerzeichen nach der Mathematik. arydshlnEs definiert interne Befehle neu (in diesem Fall \@xargarraycr) und vergisst das \unskipaus der ursprünglichen Definition:

\documentclass{book}
\usepackage{array}
\newcolumntype{M}[1]{>{\centering\arraybackslash}p{#1}}
\usepackage{arydshln}
\usepackage{etoolbox}

\begin{document}
\renewcommand{\arraystretch}{2.2}

\begin{tabular}{|M{.7cm}|}
    \hline
    $y$ \\[2ex]
    \hdashline
    $a$ \\
    \hline
\end{tabular}

\begin{tabular}{|M{.7cm}|}
    \hline
    $y$\\[2ex] %no problem without the space
    \hdashline
    $a$ \\
    \hline
\end{tabular}

\makeatletter
\pretocmd\@xargarraycr{\unskip}{}{\fail} %patch to add \unskip

\begin{tabular}{|M{.7cm}|}
    \hline
    $y$ \\[2ex]
    \hdashline
    $a$ \\
    \hline
\end{tabular}


\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen