\setfloatadjustment 不适用于 latex memoir 类中的表格

\setfloatadjustment 不适用于 latex memoir 类中的表格

我在课堂上打字memoir。我想设置所有表格\small。我尝试了手册中的方法:

\setfloatadjustment{table}{\small\centering\sffamily}

两种\centering方法都\sffamily可以,但是字体大小不一样,有什么建议吗?

这是 MWE。谢谢 :)

\documentclass{memoir}
\setfloatadjustment{table}{\small\centering\sffamily}
\begin{document}

This is a pragraph. gfhsufhsduhsdusdf hudf sfuhf. This is a pragraph. gfhsufhsduhsdusdf hudf sfuhf.df hudf sfuhf.df hudf sfuhf.df hudf sfuhf.

\begin{table}

\begin{tabular}{|c|c|c|}
    \hline 
    sds & sds & ssdfd \\ 
    \hline 
    djfndjf asdf & fgjgs g &  gsdgsdf \\ 
    \hline 
\end{tabular} 
\end{table}
\end{document}

答案1

在我看来,这是一个‘错误’ memoir

确实memoir.cls

\let\mem@old@xfloat\@xfloat
\def\@xfloat#1[#2]{\mem@old@xfloat{#1}[#2]\@nameuse{#1adjustment}}

\setfloatadjustment{table}{...}定义tableadjustment,例如。

现在,第 2380ff 行有一段代码

\AtBeginDocument{
  \let\m@m@xfloat\@xfloat
  \def\@xfloat #1[#2]{%
    \m@m@xfloat #1[#2]%
    \def\baselinestretch{\m@m@float@spacing}%
    \normalsize}
}

它抓取已经重新定义的\x@float(使用\@nameuse{#1adjustment),这是正确的,但最后说\normalsize,所以任何字体大小切换都将被恢复。

绕过解决方案可能是额外的重新定义\@xfloat或补丁或说法

\setfloatadjustment{table}{\small\centering\sffamily\let\normalsize\relax}

例如。

相关内容