0

I am preparing a paper for a conference that requires submissions in a two-column format and a fixed number of pages. During editing, it is much easier for me to view the paper with a single column per page, since it allows me to enlarge the text.

I could switch to a differnt style during editing, but then I would not know how many pages my paper has, which is an important consideration during editing.

An ideal solution would be to print each column in a single page, while keeping the exact column width and formatting. For example, if the actual page width is 8.5'', I would like to change it temporarily to 4.25'' and have each column displayed in a single page. Then, the number of pages would be exactly twice the number in the final paper.

Is there a way to do this without changing the conference style file too much?

1 Answer 1

1

There are some choices that could be made as to what is supposed to happen with spanning floats etc but this simply adds one line that ships out the left column instead of adding it to the combined page, so all the rest of the layout is unchanged, so left column appears on the left with a blank column to the right and the right column comes on the next page (this page will have the intended page number and headings)

enter image description here

\documentclass[twocolumn]{article}

\makeatletter
\def\@outputdblcol{%
  \if@firstcolumn
    \global\@firstcolumnfalse
    \global\setbox\@leftcolumn\copy\@outputbox
    \splitmaxdepth\maxdimen
    \vbadness\maxdimen
     \setbox\@outputbox\vbox{\unvbox\@outputbox\unskip}%
     \setbox\@outputbox\vsplit\@outputbox to\maxdimen
    \toks@\expandafter{\topmark}%
    \xdef\@firstcoltopmark{\the\toks@}%
    \toks@\expandafter{\splitfirstmark}%
    \xdef\@firstcolfirstmark{\the\toks@}%
    \ifx\@firstcolfirstmark\@empty
      \global\let\@setmarks\relax
    \else
      \gdef\@setmarks{%
        \let\firstmark\@firstcolfirstmark
        \let\topmark\@firstcoltopmark}%
    \fi
  \else
    \global\@firstcolumntrue
    \setbox\@outputbox\vbox{%
     \hb@xt@\textwidth{%
        \hb@xt@\columnwidth{
\shipout\box\@leftcolumn %<<<<<<<<<<<added this
       \box\@leftcolumn \hss}%
        \hfil
        {\normalcolor\vrule \@width\columnseprule}%
        \hfil
       \hb@xt@\columnwidth{\box\@outputbox \hss}}}%
  \@combinedblfloats
    \@setmarks
    \@outputpage
    \begingroup
      \@dblfloatplacement
      \@startdblcolumn
      \@whilesw\if@fcolmade \fi{\@outputpage
     \@startdblcolumn}%
    \endgroup
  \fi}%
\makeatletter

\def\a{One two three four. }
\def\b{\a Red green blue yellow. \a\a\a\a\a\a}
\def\c{\b\a\b\b\b\a\a\b}
\begin{document}

\c\c\c

\begin{itemize}
\item \b\item \a\item\a\a
\end{itemize}
\c\c\c\c



\end{document}
4
  • Thank you very much! Is it possible to also move the right column to the left? This way I can put "\pdfpagewidth=4.5in" at the beginning and get all the columns one under the other. Nov 27, 2017 at 18:00
  • @ErelSegal-Halevi yes so long as you don't have any spanning floats, currenly a table* will come at the top of the page as normal... However change \hfil to \hspace{-\columnwidth}% a couple of lines below the <<<< marked line Nov 27, 2017 at 19:20
  • I replaced both "\hfil" with "\hspace{-.5\columnwidth}%" and it works great. Now it is much easier for me to read. Thanks a lot. Nov 27, 2017 at 19:32
  • This doesn't seem to work if there is a \section command in the document. If there is one, then at end of first column it produces: ! Undefined control sequence. \GenericError ... #4 \errhelp \@err@ ... Would really love to have this capability. Anyone?
    – seth
    Sep 3, 2021 at 21:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.