简单居中表格单元格中的汉字注音未对齐

简单居中表格单元格中的汉字注音未对齐

在简单的表格环境中,假名拼写似乎不对齐。MWE 中的 Ruby 技巧来自这个答案

\documentclass{article}
\usepackage{xeCJK}
\setCJKmainfont{ipaexm.ttf}
\usepackage{ruby}
\renewcommand\rubysep{.05ex}
\renewcommand\rubysize{.4}
\let\oldruby\ruby
\def\ruby#1#2{\oldruby{#1}{#2}\futurelet\next\addCJKglue}
\def\addCJKglue{\ifx\next\ruby \CJKglue \fi}
\usepackage{array}

\begin{document}
\ruby{一}{いち}\ruby{日}{にち}%Correct
\begin{tabular}{|c|}
\hline
\ruby{一}{いち}\ruby{日}{にち}\\%Furigana misaligned
\hline
\end{tabular}
\begin{tabular}{|m{10mm}|}
\hline
\ruby{一}{いち}\ruby{日}{にち}\\%Correct
\hline
\end{tabular}
\end{document}

我想了解为什么最自然的方法\begin{tabular}{|c|}会失败,以及如何修复它(因为我不想手动设置列宽)。

红宝石

答案1

在此处输入图片描述

ruby 宏根据列\baselineskip中的 0来确定其高度c,但您可以使用array>声明来设置它。

\documentclass{article}
\usepackage{xeCJK}
\setCJKmainfont{ipaexm.ttf}
\usepackage{ruby}
\renewcommand\rubysep{.05ex}
\renewcommand\rubysize{.4}
\let\oldruby\ruby
\def\ruby#1#2{\oldruby{#1}{#2}\futurelet\next\addCJKglue}
\def\addCJKglue{\ifx\next\ruby \CJKglue \fi}
\usepackage{array}

\begin{document}
\ruby{一}{いち}\ruby{日}{にち}%Correct
\begin{tabular}{|>{\baselineskip\normalbaselineskip}c|}
\hline
\ruby{一}{いち}\ruby{日}{にち}\\%Furigana misaligned
\hline
\end{tabular}
\begin{tabular}{|m{10mm}|}
\hline
\ruby{一}{いち}\ruby{日}{にち}\\%Correct
\hline
\end{tabular}
\end{document}

相关内容