主题说明了一切。
测试是否是f@shape
检查斜体和倾斜模式的最干净、最清晰、最简单、最可靠的方法?例如:
\ifthenelse{\equal{\f@shape}{sl}}{italic}{not italic}
\ifthenelse{\equal{\f@shape}{it}}{slant}{not slant}
显然,如果没有更多的背景信息,这个问题就有点太宽泛了——例如,与其将其包装在 中\ifthenelse
,不如根据模式设置一个内部长度变量,这样可能更简洁。就我而言,我只想在宏的中间发出不同程度的字距调整——普通文本无字距调整,倾斜文本有一点字距调整,斜体文本有一点字距调整。这是针对排版分数的宏。我已经让它工作了,但我只是想知道这是否是最简洁的方法。
答案1
取决于你做什么。在某些情况下,你可能更适合使用\curr@fontshape
,因为它能提供更多信息。该命令返回一个值,例如OT1/cmtt/m/sl
。因此,如果你根据字体形状使用不同数量的字距,那么值得探索这个命令。
研究 LaTeX 如何定义斜体校正(在 中搜索source2e
)textit
和也会很有启发textsl
,这会带来类似的问题。您尝试执行的操作属于更上游的操作,也许是特殊的字体字距调整表?
最佳实践是始终研究 LaTeXsource2e
和任何广为接受的相关软件包。多年来,内核已经得到相当好的优化,任何剩余的问题通常都是次要的(仅此而已texdoc source2e
)。