%20%D1%81%20%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%BE%D0%BC%20%D0%B8%D0%B7%20%5Cjobname%2F%5Ctoday.png)
Я использую "FauxSC" отСтивен Б. Сеглетеcи я им вполне доволен. За исключением одной вещи, которую я не могу решить: если вводить обычный текст, все нормально, но как только это \today или \jobname или любая другая команда (которая в итоге выплевывает текст), он прерывается сНеправильная буквенная константа.
MWE в оригинале Стивенса закончен, просто скопируйте его и вставьте \fauxsc{\today}.
Мой TeX, к сожалению, недостаточно хорош, чтобы это исправить. Думаю, это ломается \ifnum, но я не знаю, как заставить его принимать значение \today.
Любая помощь будет полезна, спасибо!
решение1
Вы можете определить \fauxscexp
для случаев, когда у вас есть контрольная последовательность для расширения.
\documentclass{article}
\usepackage{fontspec}
\newcommand\fauxsc[1]{\fauxschelper#1 \relax\relax}
\def\fauxschelper#1 #2\relax{%
\fauxschelphelp#1\relax\relax%
\if\relax#2\relax\else\ \fauxschelper#2\relax\fi%
}
\def\Hscale{.83}\def\Vscale{.72}\def\Cscale{1.00}
\def\fauxschelphelp#1#2\relax{%
\ifnum`#1>``\ifnum`#1<`\{\scalebox{\Hscale}[\Vscale]{\uppercase{#1}}\else%
\scalebox{\Cscale}[1]{#1}\fi\else\scalebox{\Cscale}[1]{#1}\fi%
\ifx\relax#2\relax\else\fauxschelphelp#2\relax\fi}
\newcommand{\fauxscexp}[1]{%
\begingroup\edef\x{\endgroup\noexpand\fauxschelper#1 \relax\relax}\x
}
\begin{document}
Normal: \fauxsc{Small Caps}
Job name: \fauxscexp{\jobname}
Today: \fauxscexp{\today}
\end{document}