행 끝에 \\[...]를 추가하면 정렬이 엉망이 되는 이유는 무엇입니까?

행 끝에 \\[...]를 추가하면 정렬이 엉망이 되는 이유는 무엇입니까?

OP의 의견에 답변하려고했습니다.내 이 대답[...]하지만 행의 끝에 넣으면 가로 정렬이 엉망이 된다는 것을 알았습니다 .

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

다음 위치를 확인하세요 y.

여기에 이미지 설명을 입력하세요

내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변1

문제는 수학 뒤의 공백이다. arydshln내부 명령(이 경우 \@xargarraycr)을 재정의하고 \unskip원래 정의에서 잊어버렸습니다.

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

여기에 이미지 설명을 입력하세요

관련 정보