66

IEEE conference publications in two-column format require authors to manually equalize the lengths of the columns on the last page of the final submission. I have typically done this by inserting a \newpage where necessary -- which usually ends up being somewhere amidst my (manually entered) references.

However, I have recently begun using BibTeX to manage references, and have now run into a problem: my last page contains only a few (generated) references, and I can't figure out how to manually equalize the columns.

The last page is the tail end of what is generated by:

\bibliographystyle{IEEEtran}
\bibliography{IEEEabrv,library}

Any ideas on how I can equalize the columns while continuing to use BibTeX?

ezod
  • 7,261
  • 2
  • 24
  • 34

5 Answers5

114

I have submitted to both ACM and IEEE conferences and the easiest thing for me has been using:

\usepackage{flushend}

I've heard it doesn't always work well, but it's been great for me

http://www.ctan.org/pkg/flushend

Community
  • 1
  • 1
John Mark
  • 2,458
  • 2
  • 21
  • 17
  • 5
    this is brilliant---exactly what I hoped for in my answer. I can't believe it is from 1997! – Norman Ramsey Mar 13 '11 at 04:00
  • @Norman I know! A couple of my colleagues complained about having to equalize the columns at the end of their GECCO and CEC/WCCI papers, so after a little bit of Google magic, I found that package. – John Mark Mar 14 '11 at 15:55
  • 2
    The `flushend` package did not work when I tried with http://www.sigplan.org/sigplanconf.cls. This package replaced my list of citations by an empty page. – reprogrammer Dec 15 '11 at 20:39
  • Worked fine for me with `sigplanconf.cls`, v2.8. – Nicolas Wu Jul 15 '13 at 20:43
  • 1
    Just for reference for those (like me) using Tex Live, it's part of the `sttools` package. – Fredrik Erlandsson Nov 28 '13 at 10:04
  • You, sir, saved me a world of pain. Thank you! – Joseph R. Feb 22 '14 at 18:50
  • 1
    Works great with IEEEtran. – Javad Sep 14 '14 at 04:40
  • Great! I was using \balance and was tired of seeing the warning every time the contents of the last page changed. – Alisa Apr 02 '15 at 06:06
  • 7
    Messed up the last line of bibliography in the last column for me. Using IEEEtran. – MaxVT Apr 08 '15 at 02:23
  • 2
    I was having some problems with the last reference in the 2nd column overlapping with the 1st column. Didn't always happen, though. LaTeX perks... :) – metakermit Jan 17 '16 at 19:35
  • This package very subtly messes up the line spacing between (what would have been without this package) the last reference in the first column and the first reference in the second column. – Thom Wiggers Mar 12 '18 at 12:13
  • 1
    This didn't visibly change anything when using ACM's `acmart` document class. – Turion Aug 06 '18 at 14:39
41

I went back to RTFM again, and it turns out this is addressed right in "How to Use the IEEEtran LaTeX Class" by Michael Shell (maintainer). Section XIV notes that IEEEtran helpfully provides the \IEEEtriggeratref{} command for just this purpose. By default, it fires a \newpage at the given BibTeX reference number. You can even change the command to fire with \IEEEtriggercmd{}.

Community
  • 1
  • 1
ezod
  • 7,261
  • 2
  • 24
  • 34
12

It can also be done by using the balance package. You simply include the balance package in the preamble (\usepackage{balance}) and insert \balance some place on the last page of your document (for instance right in front of the references). However, I'm not sure if it's working if the last page (both columns) is completely full of references...

Thom Wiggers
  • 6,938
  • 1
  • 39
  • 65
Ulrik
  • 121
  • 1
  • 2
  • 6
    The `balance` package did work for me when I tried it with http://www.sigplan.org/sigplanconf.cls. The `\balance` command tried to put all of my references into a single column. – reprogrammer Dec 15 '11 at 20:42
  • 2
    It works with IEEEtran, and also with last page with only references present. – Filippo Mazza Oct 22 '13 at 09:12
  • 1
    @reprogrammer Hi, I also find that it puts all references into a single column in my IEEEtran latex, but it works well in acmart, do you know how to solve it? – K. Symbol Jul 29 '21 at 02:57
  • 1
    @reprogrammer I think I have found the reason, it somehow conflicts with package lineno. – K. Symbol Jul 29 '21 at 08:19
6

IEEE requires authors to equalize the lengths of the columns on the last page.

ACM makes us do this too. I just wind up inserting \vfill\break by hand either in the main text or somewhere in the .bbl file, wherever it makes the columns balance. By the time camera-ready copy goes to ACM, they want the .bbl file inlined by hand anyway, so tinkering by hand does not present an additional hardship.

The reference-number trick might be nice except I never use numbered references :-)

The multicols environment works only if you're luck and your last page comes out exactly as bibliography.

It would be extremely good (and not so difficult) if some enterprising hacker would build the "balance the two columns in the last page" functionality straight into LateX's \output routine. The flexibility is there in the underlying engine, and it would make a lot of people happy.

Norman Ramsey
  • 198,648
  • 61
  • 360
  • 533
1

Not sure if multicol conflicts with bibtex at all, and I don't have time to check, sorry. But try this:

use the multicol package:

\usepackage{multicol} in your preamble, then:

\begin{multicols}{2}
\bibliographystyle{IEEEtran}
\bibliography{IEEEabrv,library}
\end{multicols}

Multicol automatically balances columns. I would recomend using it through out your document, instead of using the .cls or .sty's twocolumn option.

Mica
  • 18,501
  • 6
  • 46
  • 43
  • 2
    BibTeX doesn't seem to have a problem with it, but IEEEtran certainly does. Evidently, IEEEtran is doing more than just putting stuff in two columns when you use the two-column format, so I can't just use multicol. Thanks for the suggestion. – ezod Jan 27 '10 at 21:02
  • The `multicol` package didn't work with http://www.sigplan.org/sigplanconf.cls because it split the columns containing the references into two perhaps because the singplanconf.cls already has two columns. – reprogrammer Dec 15 '11 at 20:52