我想使用此解决方案由@egreg 输入假小型大写字母。
它运行完美,只是似乎我无法使用它来更改字体大小\fontsize{}{}\selectfont
。
在此示例中,两行\frutB \fontsize{8}{12}\selectfont \underline{\fakesc{Chapitre 2}}
均\frutB \fontsize{5}{12}\selectfont \underline{\fakesc{Chapitre 2}}
给出相同的输出。
有人知道如何改变字体大小吗?
谢谢你们!
\documentclass[12pt,twoside]{book}
\usepackage[french]{babel}
\usepackage{fontspec}
\setmainfont{FrutigerLTStd-Roman.otf}[BoldFont=FrutigerLTStd-Bold.otf]
\ExplSyntaxOn
\NewDocumentCommand{\fakesc}{ o m }
{
\guido_fakesc:n { #2 }
\IfNoValueTF{#1}
{
\tl_use:N \l__guido_temp_tl
}
{
\cs_set_eq:NN #1 \l__guido_temp_tl
}
}
\cs_new_protected:Npn \guido_fakesc:n #1
{
\tl_set:Nn \l__guido_text_tl { #1 }
\tl_replace_all:Nnn \l__guido_text_tl { ~ } { \q_space }
\tl_set:Nn \l__guido_temp_tl { \group_begin: \footnotesize }
\tl_map_inline:Nn \l__guido_text_tl
{
\token_if_eq_meaning:NNTF ##1 \q_space
{
\tl_put_right:Nn \l__guido_temp_tl { ~ }
}
{
\int_compare:nTF { \char_value_uccode:n { `##1 } = `##1 }
{
\tl_put_right:Nn \l__guido_temp_tl { {\normalsize ##1} }
}
{
\tl_put_right:Nn \l__guido_temp_tl { \tl_upper_case:n { ##1 } }
}
}
}
\tl_put_right:Nn \l__guido_temp_tl { \group_end: }
}
\quark_new:N \q_space
\tl_new:N \l__guido_text_tl
\tl_new:N \l__guido_temp_tl
\ExplSyntaxOff
\usepackage{contour}
\begin{document}
\fontsize{8}{12}\selectfont \underline{\fakesc{Chapitre 2}}
\fontsize{5}{12}\selectfont \underline{\fakesc{Chapitre 2}}
\end{document}