我遇到的问题是,它需要对每个单元格进行大量的有限调整才能使其居中,并且我计划为不同的汉字符号添加更多行(每个(K)和(O)行可能有更多的子行)。有没有办法以编程方式配置对齐?
这是我展示的表格的代码(必须使用 XeLaTeX 编译器进行编译):
\documentclass[12pt]{article}
\usepackage{xeCJK}
\usepackage{ruby}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{array}
\renewcommand{\rubysep}{-4ex}
\newcommand{\mr}[2]{\multirow[c]{#1}{*}{#2}}
\newcommand\Bstrut{\rule[-2.5ex]{0pt}{0pt}}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
% I added more height to the cells to allow the japanese characters to have space for the text below them
\renewcommand{\arraystretch}{2}
\pagestyle{empty}
\begin{document}
\begin{table}[!ht]
\hspace{-2cm}\begin{tabular}{|M{1.5cm}|m{3cm}|M{2cm}|M{2.8cm}|M{3cm}|M{2.8cm}|}
\hline
% The multicolumn commands used here are needed to align vertically the cells
\multicolumn{1}{|c|}{漢字} & \multicolumn{1}{c|}{Explicación} & \multicolumn{2}{c|}{くんよみ(K)•おんよみ(O)} & \multicolumn{1}{c|}{Palabras} & \multicolumn{1}{c|}{Significado}\\
\hline
\hline
\multirow[c]{7}{*}{人} & \multirow[c]{7}{3cm}[0.2pt]{Persona. \newline Indica el lugar de procedencia de la persona. \newline Contador de personas.} & K & ひと & \ruby{人}{ひと}\Bstrut & Persona\\
\cline{3-6}
& & \multirow{3}{*}[0.2cm]{O} & ジン & アルゼンチン\ruby{人}{じん}\Bstrut & Argentino\\
\cline{4-6}
& & & ニン & \ruby{三}{3}\ruby{人}{にん} & Contador: Tres personas\\
\cline{3-6}
& & \multicolumn{2}{c|}{\multirow{3}{*}{Excepciones}} & \ruby{一人}{ひとり} & Contador: Una persona\\
\cline{5-6}
& & \multicolumn{2}{c|}{} & \ruby{二人}{ふたり} & Contador: Dos personas\\
\hline
\end{tabular}
\end{table}
\end{document}
答案1
您tabularray
可以轻松设置您喜欢的行分隔:
\documentclass[12pt]{article}
\usepackage{xeCJK}
\usepackage{ruby}
\renewcommand{\rubysep}{-4ex}
\usepackage{tabularray}
\usepackage{mwe}
\pagestyle{empty}
\begin{document}
\blindtext
\begin{table}[!ht]\centering\small\makebox[0pt]{%
\begin{tblr}{colspec={Q[c,m]m{3cm}Q[c,m,2cm]Q[c,m,2.8cm]Q[c,m,3cm]Q[c,m,2.8cm]}, hlines, vlines,
rows={rowsep=4pt},
row{2,3}={rowsep=10pt}, vspan=even}
% First line
漢字 & Explicación & \SetCell[c=2]{c} くんよみ(K)•おんよみ(O) & & Palabras & Significado\\\hline
% Second line
\SetCell[r=5]{c} 人 & \SetCell[r=5]{l}{Persona.\\ Indica el lugar de procedencia de la persona.\\ Contador de personas.} & K & ひと & \ruby{人}{ひと} & Persona\\
% Third line
& & \SetCell[r=2]{c} O & ジン & アルゼンチン\ruby{人}{じん} & Argentino\\
% Fourth line
& & & ニン & \ruby{三}{3}\ruby{人}{にん} & Contador: Tres personas\\
% Fifth line
& & \SetCell[c=2, r=2]{c}Excepciones & & \ruby{一人}{ひとり} & Contador: Una persona\\
& & & & \ruby{二人}{ふたり} & Contador: Dos personas\\\hline
\end{tblr}%
}
\end{table}
\blindtext
\end{document}
请注意,您的表格大于文本宽度。