对于直行文本,代码如 egreg 的这里比 expex 之类的包更适合我的工作流程;然而,保持行间文本和非行间文本对齐(在基线上)已被证明是困难的。
\newcommand\wrd[2]{%
\leavevmode
\vbox{\offinterlineskip
\halign{%
\hfil##\hfil\cr
{\footnotesize\sffamily\vphantom{p}#1}\cr
\noalign{\vskip\lineskip}%
\vphantom{A}#2\cr
}%
}%
}
我尝试用 \vrule 替换 \vphantom固定的高度(因此没有 \strut):(a)即使我需要降低注释的字体大小,也要保持文本对齐,即将 #2 替换为 \footnotesize#2(b)尝试匹配非直行文本,该文本甚至与其自身对齐(在双列模式下最明显)。
梅威瑟:
\documentclass{scrbook,fontsize=10pt}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\usepackage{fix-cm}%attempt to rule out issues with the font
\usepackage{lipsum}
\raggedbottom
\raggedright
\newcommand\wrd[2]{%
\leavevmode
\vbox{\offinterlineskip
\halign{%
\hfil##\hfil\cr
{{\vrule height 8pt depth 4pt width 0pt}#1}\cr
\noalign{\vskip\lineskip}%
{\vrule height 8pt depth 4pt width 0pt}#2\cr
}%
}%
}
\begin{document}
\twocolumn
{\footnotesize 1:1}
\wrd{Align}{with}
\wrd{interlinear text}{non-interlinear text -->}
{\footnotesize 1:2}
\wrd{Align}{with}
\wrd{interlinear text}{non-interlinear text -->}
{\footnotesize 1:3}
\wrd{Align}{with}
\wrd{interlinear text}{non-interlinear text -->}
{\footnotesize 1:4}
\wrd{Align}{with}
\wrd{interlinear text}{non-interlinear text -->}
{\footnotesize 1:5}
\wrd{Align}{with}
\wrd{interlinear text}{non-interlinear text -->}
\lipsum
\end{document}
看来,不用其中一个网格包就应该可以实现上述对齐,但我不会使用它。