The LaTeX kernel defines a slew of 'purify' equivalents for standard font commands, both switches (\bfseries) and argument-absorbers (\textbf{}).
Why?
- The switches would be removed anyway.
- The argument-absorbing macros created with
\DeclareTextFontCommand{}{}would be removed and their arguments typeset in the currently active font.
The 'purify' declarations look to be equivalent to these default behaviours.
So the declarations appear to make no difference.
\documentclass{article} \renewcommand\sfdefault{lmss} \makeatletter \DeclareRobustCommand \sbcweight {\not@math@alphabet\sbcweight\relax\fontseries{sbc}\selectfont} \DeclareTextFontCommand\textsbc{\sbcweight} \makeatother \begin{document} \ExplSyntaxOn \sffamily \tl_set:Ne \l_tmpa_tl { \text_purify:n { \textbf{Aardvarks ~ Anonymous} } } \meaning \l_tmpa_tl \par \tl_set:Ne \l_tmpa_tl { \text_purify:n { \textsbc{ Puzzling ~ Pangolin ~ Palindromes } } } \meaning \l_tmpa_tl \par \ExplSyntaxOff \end{document} So what purpose do the declarations serve1?
1Obviously the real question is not whether the declarations are useful, but whether other declarations are necessary, which should be declared by somebody else i.e. font package maintainers, to pick an entirely hypothetical example purely at randoma.
aUsing 'random' in this sense.