对于我的一些样式文件,我希望在我的图形中使用无衬线字体。我有似乎可以正常工作的代码,
\makeatletter
\renewenvironment{figure}[1][\fps@figure]{
\edef\@tempa{\noexpand\@float{figure}[#1]}
\@tempa
\sf
}{
\end@float
}
\renewenvironment{table}[1][\fps@table]{
\edef\@tempa{\noexpand\@float{table}[#1]}
\@tempa
\sf
}{
\end@float
}
\makeatother
但肯定还有更好的方法吗?
答案1
我会用
\documentclass{article}
\usepackage[font=sf]{caption}
\usepackage[font=sf]{floatrow}
\begin{document}
\begin{table}
% \centering% Default for floatrow package
\begin{tabular}{cc} \hline
Author & Title \\ \hline
Knuth & The \TeX book \\
Lamport & \LaTeX \\ \hline
\end{tabular}
\caption{A table}
\end{table}
\begin{figure}
% \centering% Default for floatrow package
\rule{1cm}{1cm}
\caption{A figure}
\end{figure}
\end{document}
答案2
lockstep 建议使用floatrow
包。因为我想做的不仅仅是\sf
,所以我想在这里发布我的解决方案。
\usepackage{floatrow}
\DeclareFloatFont{ben}{\somecommand\anothercommand}
\floatsetup[figure]{font=ben}
\floatsetup[table]{font=ben}