混合大写、小写和小型大写?

混合大写、小写和小型大写?

问题

我想关注《经济学人》的例子对于令人讨厌的混合大小写单词:将它们的字母间隔开,根据正常规则将第一个字母大写,并将所有其他大写字母设置为小写字母。我希望它尽可能透明 - 一个命令,\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

实际问题

  1. 有没有比屠宰更简单的方法\Upeach
  2. 可以对屠宰物\Upeach进行修改以阻止其进食空间吗?

答案1

我会选择

\makeatletter
\def\Ac#1{\@Ac#1\@Ac}
\def\@Ac#1#2\@Ac{#1\kern.05em{\acface#2}}
\makeatother

调整\kern以匹配第二部分的字母间距。

第一个字母按“原样”排版,其余字母则以 为准\acface

相关内容