![Нет горизонтального центрирования в многорядной строке в \newline](https://rvso.com/image/309854/%D0%9D%D0%B5%D1%82%20%D0%B3%D0%BE%D1%80%D0%B8%D0%B7%D0%BE%D0%BD%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%86%D0%B5%D0%BD%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%B2%20%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%D1%80%D1%8F%D0%B4%D0%BD%D0%BE%D0%B9%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5%20%D0%B2%20%5Cnewline.png)
МВЭ
\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
Я немного упрощаю код с помощью makecell
пакета, который позволяет переносить строки в ячейках и использовать общее форматирование. Также есть Xhline
команда для \hline
s переменной толщины:
\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}