\newline の複数行で水平方向の中央揃えが行われない

\newline の複数行で水平方向の中央揃えが行われない

ムウェ

\documentclass[a4paper,11pt]{article}
\usepackage{multirow}
\usepackage{array}
 \begin{document}

\begin{tabular}{|>{\centering\arraybackslash}m{2cm}
                |>{\centering\arraybackslash}m{2.4cm}|}\hline
X & Y \\ \hline
\multirow{2}{*}{No problem} & One Line \\ \cline{2-1} 
                            & Two Line \\ \hline
\multirow{5}{*}{Problem} & One Line \\ \cline{2-1} 
                         & 1 \newline 2 \newline 3 \newline 4\\ \hline
\end{tabular}

\end{document}

表示する

ここに画像の説明を入力してください

最後の行 (4) のみが中央に配置されています。1、2、3 は中央に配置されていません。修正方法をご存知の方はいらっしゃいますか?

答え1

はい、どうぞ:

\documentclass[a4paper,11pt]{article}
\usepackage{multirow}
\usepackage{array}
 \begin{document}


\begin{tabular}{|>{\centering\arraybackslash}m{2cm}
                |>{\centering\arraybackslash}m{2.4cm}|}\hline
X & Y \\ \hline
\multirow{2}{*}{No problem} & One Line \\ \cline{2-1} 
                            & Two Line \\ \hline
\multirow{5}{*}{Problem} & One Line \\ \cline{2-1} 
                         & \hfil1 \newline \null\hfil 2 \newline\null\hfil 3 \newline 4\\ \hline
\end{tabular}

\end{document}

\hfilによって追加された追加の水平スペースを修正します\newline\null幅がゼロの水平ボックスです。

ここに画像の説明を入力してください

答え2

これは、mタイプ列が最後に (つまり、最後の列として) 表示される場合に発生します。最後に空の列を追加すれば、問題は解決します。

\documentclass[a4paper,11pt]{article}
\usepackage{multirow}
\usepackage{array}
 \begin{document}

\begin{tabular}{|>{\centering\arraybackslash}m{2cm}
                |>{\centering\arraybackslash}m{2.4cm}|@{}c@{}}\hline
X & Y \\ \hline
\multirow{2}{*}{No problem} & One Line &\\ \cline{2-1}
                            & Two Line &\\ \hline
\multirow{5}{*}{Problem} & One Line &\\ \cline{2-1}
                         & 1 & \\
                         & 2 & \\
                         & 3 & \\
                         & 4 &\\ \hline
\end{tabular}

\end{document}

ここに画像の説明を入力してください

答え3

パッケージを使用してコードを少し簡略化しました。これにより、セル内の改行と共通の書式設定が可能になります。また、可変の太さの s用のコマンドmakecellもあります。Xhline\hline

\documentclass[a4paper,11pt]{article}
\usepackage{multirow, array, makecell}

 \begin{document}

\begin{tabular}{!{\vrule width1pt}% >{\centering\arraybackslash}m{2cm}|>{\centering\arraybackslash}m{2.4cm}!{\vrule width1pt}}
  \Xhline{1pt}
  X & Y \\
  \hline
  \multirow{2}{*}{No problem} & One Line \\
  \cline{2-1}
                              & Two Line \\ \hline
  \multirow{5}{*}{Problem} & One Line \\
  \cline{2-1}
                              & \makecell{1 \\2 \\ 3 \\ 4}\\
  \Xhline{1pt}
\end{tabular}

\end{document} 

ここに画像の説明を入力してください

関連情報