可以将小型大写字母 ( \textsc
) 和无衬线字体 ( \textsf
) 结合起来吗?我使用的是默认的 LaTeX 字体。
答案1
答案2
对于字体不支持小写字母的情况,我最近编写了一个小脚本,可以将小写字母转换为较小的大写字母。它甚至可以与 ä、ö、ü 和 ß 配合使用。
\c{textsmaller}[2]
可以替换为\c{textscale}\cB\{0.7\cE\}
以使可定制性更加细化。
当某人的具体情况未被涵盖时,以下步骤可能会有所帮助:
- 在正则表达式命令中包含一个特殊例外
[^A-Z]
用。。。来代替[a-z]
\0
用。。。来代替\1
\usepackage[utf8]{inputenc}
\usepackage{xparse,relsize}
\ExplSyntaxOn
\NewDocumentCommand{\textsmallcaps}{ m }{% Define new command with one mandatory argument
\textapperance_smallcaps:n { #1 }% Call
}%
\tl_new:N \l__textapperance_textsmallcaps_input_tl% Initialize string variable
\cs_new_protected:Npn \textapperance_smallcaps:n #1
{% Create hidden command with one argument
\tl_set:Nx \l__textapperance_textsmallcaps_input_tl { #1 } % Fully expand contents and store them in the variable
\regex_replace_all:nnN
{ ([^A-Z]+) }
{ \c{textsmaller}[2]\cB\{\c{uppercase}\cB\{\0\cE\}\cE\} }
\l__textapperance_textsmallcaps_input_tl % Replace everything thats NOT a capital letter by \textsmaller[2]{\uppercase{<match>}}
\tl_use:N \l__textapperance_textsmallcaps_input_tl % Return
}
\ExplSyntaxOff