Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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

share|improve this question

3 Answers 3

up vote 4 down vote accepted

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.

share|improve this answer

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.

share|improve this answer

You can use the package multicols: http://www.ctan.org/pkg/multicol/

share|improve this answer
    
I can not use multicols because I use balance. –  Daniel Miliński Aug 7 '12 at 21:30
1  
But multicols balances the columns by default (it can be turned off). –  R. Schumacher Aug 7 '12 at 23:30

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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