How to manually equalize columns in an IEEE paper if using BibTex?
Asked Answered
N

5

67

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?

Nobby answered 27/1, 2010 at 19:57 Comment(1)
N
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{}.

Nobby answered 27/1, 2010 at 21:17 Comment(0)
G
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

Gymnasiarch answered 9/2, 2011 at 10:59 Comment(9)
The flushend package did not work when I tried with sigplan.org/sigplanconf.cls. This package replaced my list of citations by an empty page.Truce
Worked fine for me with sigplanconf.cls, v2.8.Confutation
Just for reference for those (like me) using Tex Live, it's part of the sttools package.Sinh
Works great with IEEEtran.Stenophagous
Great! I was using \balance and was tired of seeing the warning every time the contents of the last page changed.Gloriole
Messed up the last line of bibliography in the last column for me. Using IEEEtran.Remissible
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... :)Kodok
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.Coper
This didn't visibly change anything when using ACM's acmart document class.Cobweb
N
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{}.

Nobby answered 27/1, 2010 at 21:17 Comment(0)
I
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...

Ignacioignacius answered 15/4, 2011 at 16:4 Comment(4)
The balance package did work for me when I tried it with sigplan.org/sigplanconf.cls. The \balance command tried to put all of my references into a single column.Truce
It works with IEEEtran, and also with last page with only references present.Leath
@Truce 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?Dihydric
@Truce I think I have found the reason, it somehow conflicts with package lineno.Dihydric
P
7

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.

Parados answered 27/1, 2010 at 23:4 Comment(0)
S
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.

Subchaser answered 27/1, 2010 at 20:32 Comment(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.Nobby
The multicol package didn't work with sigplan.org/sigplanconf.cls because it split the columns containing the references into two perhaps because the singplanconf.cls already has two columns.Truce

© 2022 - 2024 — McMap. All rights reserved.