¿Por qué el cambio de familia de fuentes no tiene efecto cuando se usa AtBeginEnvironment{figure} junto con memorias?

¿Por qué el cambio de familia de fuentes no tiene efecto cuando se usa AtBeginEnvironment{figure} junto con memorias?

Estoy intentando utilizarlo \AtBeginEnvironment{figure}para personalizar la familia de fuentes y el tamaño de fuente utilizados en las figuras. Sin embargo, no parece tener ningún efecto. Aquí hay un ejemplo mínimo:

\documentclass{memoir}
\usepackage{etoolbox}

\makeatletter
\AtBeginEnvironment{figure}{%
  \def\@floatboxreset{\reset@font\sffamily\tiny\@setminipage}%
  \patchcmd{\@xfloat}{\normalsize}{\selectfont}{}{}
}
\makeatother

\begin{document}

\begin{figure}
  % \tiny % this works
  test
\end{figure}

\end{document}

¿Alguna idea sobre lo que está pasando aquí?

EDITAR: Olvidé mencionar que estoy usandomemoir . La solución encontrada en otropreguntaFunciona para configurar la familia de fuentes, pero no el tamaño.

Respuesta1

La clase de memorias proporciona sus propios ganchos para flotadores:

\setfloatadjustment{figure}{\sffamily\tiny}

En general, para invocar <code>al principio de cada <floatname>, agregue lo siguiente a su preámbulo:

\setfloatadjustment{<floatname>}{<code>}

Respuesta2

Si no está utilizando la memoirclase, lo siguiente debería funcionar:

% Redefine figure environment so that all figures are centered and use tiny sans-serif font
\makeatletter
\let\figureorig\figure
\def\figure@i[#1]{\figureorig[#1]\centering\sffamily\tiny}  % with optional argument
\def\figure@ii{\figureorig\centering\sffamily\tiny}  % without optional argument
\def\figure{\@ifnextchar[\figure@i \figure@ii}  % Redefine depending on presence of [
\makeatother

% Redefine table environment so that all tables are set in tiny sans-serif font
\makeatletter
\let\tableorig\table
\def\table@i[#1]{\tableorig[#1]\sffamily\tiny}  % with optional argument
\def\table@ii{\tableorig\sffamily\tiny}  % without optional argument
\def\table{\@ifnextchar[\table@i \table@ii}  % Redefine depending on presence of [
\makeatother

La redefinición relativamente complicada resulta del hecho de que los entornos figurey tablepueden contener argumentos opcionales. Por lo tanto, la redefinición busca un corchete de apertura “[” para determinar si se proporciona o no un argumento opcional.

información relacionada