![如何针对给定的表格列*禁用* Lua 的微类型?](https://linux22.com/image/271792/%E5%A6%82%E4%BD%95%E9%92%88%E5%AF%B9%E7%BB%99%E5%AE%9A%E7%9A%84%E8%A1%A8%E6%A0%BC%E5%88%97*%E7%A6%81%E7%94%A8*%20Lua%20%E7%9A%84%E5%BE%AE%E7%B1%BB%E5%9E%8B%EF%BC%9F.png)
我正在寻找一种方法来禁用 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 的解决方案。(这是对未来读者的一般性评论,并非针对您的问题。)