我想翻译我的方法将所有figure
环境集中到figure*
环境中。如何做?
\documentclass[peerreview]{ieeetran}
\usepackage{xpatch}
% \def\figure{\def\@floatboxreset{\reset@font\normalsize\@setminipage\@IEEEfiguretopskipspace}\@float{figure}}
\patchcmd{\figure}{\normalsize}{\normalsize\centering}{}{error}
% \@namedef{figure*}{\def\@floatboxreset{\reset@font\normalsize\@setminipage\@IEEEfiguretopskipspace}\@dblfloat{figure}}
% \patchcmd{\figure*}{\normalsize}{\normalsize\centering}{}{error}
\begin{document}
\begin{figure}[t]
centered!
\end{figure}
\begin{figure*}[t]
not centered!
\end{figure*}
\end{document}
上面的直接方法不起作用,可能是因为使用了\@namedef
而不是\def
。
答案1
为了修补环境,figure*
你可以这样做
\expandafter\patchcmd\csname figure*\endcsname{....}{...}{}{}
这种方法对于诸如 之类的命令无效\section*
,因为它们是以完全不同的方式定义的。
另一方面,如果您只想添加\centering
到所有浮点数,您只需添加\centering
到\@floatboxreset
:
\makeatletter
\appto{\@floatboxreset}{\centering}
\makeatother
但这也会影响table
其他浮点数。