5

I'm designing all the figures for a book and I wanted to be able to change the positioning [hbtp] of all of them with one macro/command. A solution in which I could override the existing positioning options would be even better. Is that possible?

1 Answer 1

11

If you have not used the optional argument anywhere then you can define

\makeatletter
\def\fps@figure{hp}
\makeatother

and they will all act as if [hp] (I think float package has a wrapper declaration that does this without needing @ commands)

Any figure that has an explicit optional argument such as [b] will over-ride this default unless you redefine figure to ignore its optional argument.


This will make all floats use hp ignoring optional arguments and any setting of fps@...

\makeatletter
\let\old@xfloat\@xfloat
\def\@xfloat#1[#2]{\old@xfloat{#1}[hp]}
\makeatother
3
  • Thank you for the prompt answer. That last part is exactly what I'm trying to accomplish. How could I redefine it to ignore the optional arguments?
    – han-tyumi
    Dec 4, 2014 at 11:27
  • @Majoko see update Dec 4, 2014 at 11:39
  • 1
    @Majoko Could you please edit the requirement to override also positioning commands explicitly given with single floats into your question? This would make it easier for future readers of their question to figure out if it possibly provides a solution for their problem. Dec 4, 2014 at 11:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .