是否可以microtype
只针对某些字符停用 的突出功能?我正在尝试创建«#1»
一个快捷方式,\fbox{#1}
但除非我完全停用突出功能,否则它将不起作用。
% !TeX program = lualatex
\documentclass[ngerman]{article}
\usepackage{fontspec,unicode-math}
\usepackage[
% protrusion = false,
]{microtype}
\catcode`« = \active
\def«#1»{
\fbox{#1}
}
\begin{document}
Test «Test» \fbox{Test}
\end{document}
我不需要输出中的 guillemets 字符。
答案1
您只会收到一个令人讨厌的警告,但主动角色可以发挥作用。
为了消除警告,请延迟激活。
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{fontspec,unicode-math}
\usepackage[
% protrusion = false,
]{microtype}
\protected\def\activeguill#1»{%
\fbox{#1}%
}
\AtBeginDocument{%
\begingroup\lccode`~=`« \lowercase{\endgroup\let~}\activeguill
\catcode`«=\active
}
\begin{document}
Test «Test» \fbox{Test}
Test \fbox{Test} \fbox{Test}
\end{document}
但是,输出将与您的代码相同(前提是删除了虚假空格)。