在图形和表格环境中实现无衬线字体的更好方法

在图形和表格环境中实现无衬线字体的更好方法

对于我的一些样式文件,我希望在我的图形中使用无衬线字体。我有似乎可以正常工作的代码,

\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

我会用

  1. 标题用于控制(浮动)字幕字体的包;
  2. 浮行包来控制其他浮动内容(即表格材料)的字体。

\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}

答案3

要在单个表格中使用无衬线字体,请\sffamily在表格环境中使用。

\documentclass{article}
\begin{document}
\begin{table}
    \sffamily
    \begin{tabular} {| c | c | c |}
    \hline
    sans serif & inside table & :) \\
    \hline
    \end{tabular}
\end{table}
\noindent Default text outside table
\end{document}

在此处输入图片描述

相关内容