我想更改图形的默认浮动选项,这样我只需调整一个选项即可更改文档中所有图形的行为。在我之前的电脑(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 l
t p
l a c e m e n t]
忽略未知和重复的选项后,结果与
[tp]
顺便问一下,您确定要默认的吗htb
?
禁止p
(浮动页面)大大增加了所有浮动元素到达文档末尾的机会。