\nocorr 在命令的参数中,后跟 \textup

\nocorr 在命令的参数中,后跟 \textup

在以下\lex命令中,我需要以某种方式\textup保护参数在某些情况下不被斜体化。

有人能解释一下为什么尽管如此,变体仍强制使用斜体校正\textup吗?\lexb\nocorr

平均能量损失

\documentclass{article}

\usepackage{fontspec}

\setmainfont{Times New Roman}

\NewDocumentCommand{\lexa}{mm}{\textit{#1\nocorr}\textsubscript{\textup{\textsc{#2}}}}

\NewDocumentCommand{\lexb}{mm}{\textit{#1\nocorr}\textup{\textsubscript{\textsc{#2}}}}

\begin{document}
    
    
    \lexa{of}{prep}
    
    \lexb{of}{prep}
    
    
\end{document}

在此处输入图片描述

答案1

正如Stephen指出的那样,\textup还添加了斜体校正。

因此我们还必须\nocorr在参数中添加。\textup

\NewDocumentCommand{\lexb}{mm}{\textit{#1\nocorr}\textup{\nocorr\textsubscript{\textsc{#2}}}}

所以这是一个平均能量损失

\documentclass{article}

\usepackage{fontspec}

\setmainfont{Times New Roman}

\NewDocumentCommand{\lexb}{mm}{\textit{#1\nocorr}\textup{\nocorr\textsubscript{\textsc{#2}}}}

\begin{document}
    
    \lexb{of}{prep}

\end{document}

在此处输入图片描述

需要注意的是,\nocorr必须在 的参数中的任何其他内容之前添加\textup;很可能是因为斜体校正命令位于 的定义的开头\textup(而它位于 的末尾\textit)。

\textit{f\textup{\nocorr H}} % This removes italic correction.

\textit{f\textup{H\nocorr}} % This does NOT remove italic correction.

在此处输入图片描述

相关内容