在简单的表格环境中,假名拼写似乎不对齐。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}