如何更改图形的默认浮动选项?

如何更改图形的默认浮动选项?

我想更改图形的默认浮动选项,这样我只需调整一个选项即可更改文档中所有图形的行为。在我之前的电脑(Ubuntu 14.04)上,我曾做过类似的事情:

\documentclass{article}
\newcommand{\defaultplacement}{htb}
\begin{document}
\begin{figure}[\defaultplacement]
\caption{Example}
\end{figure} 
\end{document}

我现在尝试在 Ubuntu 16.04 上构建,并收到以下错误:

./figures/ch1/coordinate_system.tex:1: LaTeX Error: Unknown float option `\'.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.1 \begin{figure}[\defaultplacement]

看起来之前 LaTeX\defaultplacement在处理之前会用其值进行替换,但现在它会就地处理宏。我猜我原来的解决方案有点儿不妥,而且还有更好的方法来重置默认figure(和table?)位置,但我一直找不到。

答案1

LaTeX 使用宏的内容\fps@<float>作为浮点类型的默认参数<float>。它可以被重新定义,例如figure

\makeatletter
\renewcommand*{\fps@figure}{htb}
\makeatother

然后,如果使用浮点数而没有使用可选参数,则应用宏的选项:

\begin{figure}
...
\end{figure}

答案2

Heiko 已经展示了正确的宣言,但要回答

看起来以前 LaTeX\defaultplacement在处理之前会用它的值替换,但现在它正在就地处理宏。

不会。以前,未知字符会被默默忽略,因此

[\defaultplacement]

和 一样

[\ d e f a u lt pl a c e m e n t]

忽略未知和重复的选项后,结果与

[tp]

顺便问一下,您确定要默认的吗htb

禁止p(浮动页面)大大增加了所有浮动元素到达文档末尾的机会。

相关内容