问题
我想关注《经济学人》的例子对于令人讨厌的混合大小写单词:将它们的字母间隔开,根据正常规则将第一个字母大写,并将所有其他大写字母设置为小写字母。我希望它尽可能透明 - 一个命令,\ac
,在正常情况下,另一个命令,\Ac
,当大写时。
我的尝试
在 XeLaTeX 中,\ac
可以通过简单的字体更改来实现。但\Ac
需要将字体更改应用于除第一个字母之外的所有字母。我\Upeach
在以下位置找到了类似的命令Peter Wilson 于 2007 年撰写的 TUGboat 文章并做了一些修改。
\documentclass[12pt]{standalone}
\usepackage{fontspec}
% Define \ac
\newfontface\acface[Letters=UppercaseSmallCaps,LetterSpace=6]{Minion Pro}
\newcommand{\ac}[1]{{\acface #1}}
% Define \Ac
%%% Non-working code removed; see the TUGboat article for the original
%%% Or egreg's answer for a much better solution
实际问题
- 有没有比屠宰更简单的方法
\Upeach
? - 可以对屠宰物
\Upeach
进行修改以阻止其进食空间吗?
答案1
我会选择
\makeatletter
\def\Ac#1{\@Ac#1\@Ac}
\def\@Ac#1#2\@Ac{#1\kern.05em{\acface#2}}
\makeatother
调整\kern
以匹配第二部分的字母间距。
第一个字母按“原样”排版,其余字母则以 为准\acface
。