2

I am using the ACM latex template and trying to place a wide figure on the bottom of the page using \begin{figure*}[b]. However, it always goes to the next page. I also tried using [!hb] but it does not work. When I was using the IEEE template it worked nicely. But with the ACM template does not work. I also tried using these two packages but they provide the same result.

\usepackage{float}
\usepackage{dblfloatfix}
\begin{figure*}[!b]
  \centering
  \includegraphics[width=\linewidth]{figures/Tpch01-ThroughputVsLatency-BufferVsPreAggParam}
  \caption{text.}
  \label{fig:TPC-H-01}
\end{figure*}

Solutions like this do not work because the capital H is not recognized anymore.

Felipe
  • 169
  • 1
    You can try the stfloats package (from the sttools bundle) and write \begin{figure*}[b] ... \end{figure*}. – Bernard Jul 17 '20 at 16:04
  • I get this error LaTeX Error: Filesttools.sty' not found`. Do I have to download the file from somewhere or install a package? – Felipe Jul 17 '20 at 17:34
  • Wait… sttools is not a package by itself. It is a bundle of packages. This bundle might be installed on your system. What is your distribution? – Bernard Jul 17 '20 at 17:37
  • Ubuntu 18.04.4 LTS – Felipe Jul 17 '20 at 17:38
  • 1
    I guess it's probably installed. Anyway, what you have to load is stfloats. If it's not installed, use TeX Live Package Manager to install sttools. – Bernard Jul 17 '20 at 17:41
  • ah. ok. It worked . I had to remove my dblfloatfix package . tks – Felipe Jul 17 '20 at 17:46

2 Answers2

2

If you are using ACM's styles, I presume it's for publishing in their journals. Then you can not use external packages (that they don't specifically allow), nor are many "tricks" allowable (they do process the LaTeX files to their specifications of page size, page heads/footers and so on).

Best bet would be to move the figure/float definition somewhat before in the source, so it shows up (more or less) where you want. You might want to get in contact with someone who can help you with the final layout in the journal through the journal staff...

vonbrand
  • 5,473
  • It is not for a journal but for the ACM EDBT conference. It is also no the final version because it needs to be accepted before. Even that do you think that I cannot use different latex packages? – Felipe Jul 19 '20 at 20:51
2

I had the same problem and tried for hours, but I could not find an explanation or solution. % Using [H] is not a good solution because it tells LaTeX to treat the figure/table/etc as a non-float, forcing it to place in the exact declaration position. However, this often leads to weird section breaks, making you lose a lot of space.

It turns out ACM template loads a lot of packages, and some might conflict with the ones you loaded.

In my case, I had used \usepackage{nidanfloat} for fixing my floats position with an IEEE template. By removing this package, the ACM template places the floats normally for me when using \documentclass[manuscript,screen,review]{acmart}

  • Turns out that ACM conferences usually do not allow to change the template by removing packages. But adding packages are usually allowed. I solved by merging two figures into one using gnuplot or even latex packages help in this situation. Nevertheless, thank you for your answer – Felipe Jun 12 '21 at 13:24