如何针对给定的表格列*禁用* Lua 的微类型?

如何针对给定的表格列*禁用* Lua 的微类型?

我正在寻找一种方法来禁用 Lua 的 Microtype(注意大写的 M -区别于小写microtype 包裹tabular) 在下面给出的 MWE第一列中:

\documentclass[a4paper]{article}

\usepackage{fontspec}

\pdfprotrudechars=2
\pdfadjustspacing=2
\newfontfeature{Microtype}{protrusion=default;expansion=default;}
\directlua{fonts.protrusions.setups.default.factor=.5}
\setmainfont[Microtype, Numbers={OldStyle, Proportional}, Ligatures=TeX]{Verdana}

\usepackage{tabularx}

\begin{document}

\begin{tabularx}{\textwidth}{@{}*{1}{l|}*{1}{X}@{}}

aaaaaaaaaaaa & \textbf{bbbbbbbbbb} \\
&\emph{ccccccccccccccc}\\

\end{tabularx}

\end{document}

这个 MWE 并未“优化”以显示 M/microtype 的效果,因此也许应该进行相应的改进……

答案1

\documentclass[a4paper]{article}

\usepackage{fontspec}

\pdfprotrudechars=2
\pdfadjustspacing=2
\newfontfeature{Microtype}{protrusion=default;expansion=default;}
\directlua{fonts.protrusions.setups.default.factor=.5}
\setmainfont[Microtype, Numbers={OldStyle, Proportional}, Ligatures=TeX]{Verdana}
\newfontface\NoMicrotype[Numbers={OldStyle, Proportional}, Ligatures=TeX]{Verdana}

\usepackage{tabularx}

\begin{document}

\begin{tabularx}{\textwidth}{@{} >{\NoMicrotype}l | X @{}}

aaaaaaaaaaaa & \textbf{bbbbbbbbbb} \\
             & \emph{ccccccccccccccc} \\
\end{tabularx}

\end{document}

对于第一个 l 列,它已经没有效果。当有换行符时,您可以在 X 列中看到更多文本。

答案2

尽管我相信 - 根据您的评论 - 微印刷特征与您的实际问题无关(无论这可能是什么......),但为了完整起见,我只想补充一点,禁用突出和扩展的最简单解决方案是说:

\pdfprotrudechars=0
\pdfadjustspacing=0

2可以通过将两个值都设置为,或者将文本括在一个组中来再次启用它们。

但请注意,您不能使用此方法更改一个段落内的设置;段落末尾有效的设置将应用于整个段落。为了暂时禁用段落部分的功能,您可以求助于 Herbert 的解决方案。(这是对未来读者的一般性评论,并非针对您的问题。)

相关内容