抑制字体可用性警告

抑制字体可用性警告

我有时会使用没有小写字母的字体,但又想使用小写字母。因此我采用了以下技巧

% have \textsc use \fauxsc if \scshape not avalible
\let\textsc\relax
\DeclareRobustCommand{\textsc}[1]{%
  \sbox0{x\xdef\testA{\the\font}}%
  \sbox0{\scshape x\xdef\testB{\the\font}}%
  \ifx\testA\testB\fauxsc{#1}\else{\scshape #1}\fi
}

这句话太棒了!每次运行时都会产生一个警告 :(

我不能保持沉默,因为silense+hyperref 包不兼容

MWE(fauxsc 被 textbf 取代)

\documentclass{article}

\usepackage{plex-serif}

% have \textsc use \fauxsc if \scshape not avalible
\let\textsc\relax
\DeclareRobustCommand{\textsc}[1]{%
  \sbox0{x\xdef\testA{\the\font}}%
  \sbox0{\scshape x\xdef\testB{\the\font}}%
  \ifx\testA\testB\textbf{#1}\else{\scshape #1}\fi
}

\begin{document}

Please \textsc{help} me

\end{document}

答案1

\documentclass{article}

\usepackage{plex-serif}

\makeatletter
\DeclareRobustCommand{\textsc}[1]{%
  \ifcsname \f@encoding/\f@family/\f@series/sc\endcsname
     {\scshape #1}%
  \else
    \textbf{#1}%
  \fi
}
\makeatother
\begin{document}
Please \textsc{help} me

\end{document}

相关内容