我正在使用 Lettrine 包在表格单元格内创建首字下沉字母。但是,这会在文本前生成一个不需要的空行(或者,文本可能垂直对齐到单元格底部)。请参阅以下最小代码(在 XeTeX 上编译):
\documentclass[a4,12pt]{article}
\usepackage{fontspec,lettrine}
\setromanfont[Mapping=tex-text]{Times New Roman}
\begin{document}
\begin{table}[h]
\begin{tabular}{p{.45\linewidth}p{.45\linewidth}}
\multicolumn{1}{c}{Left column} & \multicolumn{1}{c}{Right column} \\ \hline
\lettrine{S}{}pecial text starting with a drop cap letter. Special text starting with a drop cap letter. Special text starting with a drop cap letter. Special text starting with a drop cap letter. Special text starting with a drop cap letter. Special text starting with a drop cap letter. &
Normal text without the drop cap. Normal text without the drop cap. Normal text without the drop cap. Normal text without the drop cap. Normal text without the drop cap. Normal text without the drop cap. Normal text without the drop cap. \\
\end{tabular}
\end{table}
\end{document}
答案1
不必要的垂直跳跃不会出现在 E、T、M、fi 中,只会出现在 S、O、G、C 等“圆形”字母中,这些字母通常比其他大写字母略高。
建议修复:默认值\DiscardVskip
对于您的示例来说太短。您可以使用以下方法将其放大到整个文档
\usepackage[novskip=1pt]{lettrine}
% 需要 lettrine v.2.30
或者
\setlength{\DiscardVskip}{1pt}
% 所有版本
另一个可能的修复方法是refstring
向\lettrine
命令添加选项:\lettrine[refstring]{S}{pecial}
。但是通过此修复,您会得到次优的首字下沉(略微太短)。
\lettrine{S}{}
顺便说一句,不建议使用第二个 void 参数。如果您不想要小写字母,请\renewcommand*{\LettrineTextFont}{}
在加载lettrine
包后添加。
最后,“打破”首字下沉,编码\lettrine{\smash{S}}{}
,意味着对首字下沉的高度和深度向命令撒谎\lettrine
,这可能会产生非常严重的副作用...我不会这么做(无论如何,\smash
命令已经包含在\lettrine
代码中)。
答案2
我不能说这个“修复”是否总能满足你的要求,但在这种情况下,可以\smash
在S
应用之前\lettrine
。
\documentclass[a4,12pt]{article}
\usepackage{fontspec,lettrine}
\setromanfont[Mapping=tex-text]{Times New Roman}
\begin{document}
\begin{table}[h]
\begin{tabular}{p{.45\linewidth}p{.45\linewidth}}
\multicolumn{1}{c}{Left column} & \multicolumn{1}{c}{Right column} \\ \hline
\lettrine{\smash{S}}{}pecial text starting with a drop cap letter. Special text starting with a drop cap letter. Special text starting with a drop cap letter. Special text starting with a drop cap letter. Special text starting with a drop cap letter. Special text starting with a drop cap letter. &
Normal text without the drop cap. Normal text without the drop cap. Normal text without the drop cap. Normal text without the drop cap. Normal text without the drop cap. Normal text without the drop cap. Normal text without the drop cap. \\
\end{tabular}
\end{table}
\end{document}