5

So I have two problems: first. how to add onecolumn at the end of article withtout breaking page? second. same but after table in the middle of text? enter image description here

3 Answers 3

4

You could push a box into position using some "magic":

enter image description here

\documentclass[twocolumn]{article}
\usepackage{balance}% http://ctan.org/pkg/balance
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\begin{document}
\lipsum[1-10]\balance

\leavevmode\hfill\smash{\raisebox{-10\baselineskip}{\llap{%
  \fbox{\parbox{\dimexpr\textwidth-2\fboxsep-2\fboxrule}{%
    \lipsum[1]%
  }}}}%
}
\end{document}​

The above mixture of commands pushes a \parbox (that fits exactly within the text block horizontally) down 10 lines ("raised" -10\baselineskips) from the right margin (as pushed over by \leavevmode\hfill). The box has zero width according to TeX since it's inside a left overlap and is \smashed.

To have the box start at length 2<x> from the left, centred, use

\leavevmode\hfill\smash{\raisebox{-10\baselineskip}{\llap{% \fbox{\parbox{\dimexpr\textwidth-2\fboxsep-2\fboxrule-}{% % }}\hspace*{.5}}}% }

For example, starting at .25\columnwidth from the left, one would use

\leavevmode\hfill\smash{\raisebox{-10\baselineskip}{\llap{%
  \fbox{\parbox{\dimexpr\textwidth-2\fboxsep-2\fboxrule-.5\columnwidth}{%
    \lipsum[1]%
  }}\hspace*{.25\columnwidth}}}%
}

enter image description here

Note that this will only be viable if there's enough space left at the bottom of the page, otherwise it could flow into the page footer.

7

Both your problems can be easily solved using the multicol package; you simply end the multicols environment, typeset one-column material and then start a new multicols environment. A little example (warning: floating environments cannot be placed inside the multicols environment):

\documentclass{article}
\usepackage{multicol}
\usepackage{lipsum}

\begin{document}
\begin{multicols}{2}
\lipsum[1-11]
\end{multicols}
{\centering\fbox{\parbox{.7\textwidth}{\lipsum[2]}}\par}
\begin{multicols}{2}
\lipsum[2]
\end{multicols}
{\centering\fbox{\parbox{.7\textwidth}{\lipsum[2]}}\par}

\end{document}

And an image of the relevant page:

enter image description here

If using, the multicol package is not an option, for your first problem, you can use TikZ:

\documentclass[twocolumn]{article}
\usepackage{tikz}
\usepackage{flushend}
\usepackage{lipsum} 

\begin{document}
\lipsum[1-20]
\begin{tikzpicture}[overlay, remember picture]
  \node[yshift=6cm] at (current page.south) 
    {\fbox{\parbox{.7\textwidth}{\lipsum[2]}}};
\end{tikzpicture}

\end{document}

A fragment of the last page obtained:

enter image description here

The eso-pic or textpos packages can also provide solutions.

Unfortunately now, for the second problem, things are not simple: an option would be to use the figure* or table* environments to place material spanning both columns, but those environments always place their contents in the top of the following page page. Using \onecolumn is not an option for you since it starts a new page.

3

You can use the package multicol

2
  • I can not use multicols because I use balance. Aug 7, 2012 at 21:30
  • 1
    But multicols balances the columns by default (it can be turned off). Aug 7, 2012 at 23:30

You must log in to answer this question.

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