0

I have a two-column document with margin par on both sides for each corresponding columns. I am not able to get a consistent full width text block working in this document. When I use the fullwidth package, the block starts at left column and overlaps with a single column text in the right column. When fullwidth starts from the the right column, it is overflowing into the margins and beyond (see the screenshot). How can I create a textblock which is consistent in behaviour. I would want the two column format to continue after the full width block.

enter image description here

MWE

\documentclass[a4paper,landscape,twocolumn]{scrbook}

\setlength{\columnsep}{25pt}
\usepackage{geometry} 

\geometry{top=15mm,bottom=25mm, textheight=195mm, headsep=5mm, left=65mm, right=65mm, textwidth=125mm, marginpar=55mm,marginparsep=5mm}                   

\usepackage[width=175mm]{fullwidth}
\usepackage{lipsum}


\begin{document}


\lipsum[1]
\begin{fullwidth}
\lipsum[5]
\end{fullwidth}
\lipsum[2]
\lipsum[3]
\begin{fullwidth}
\lipsum[4]
\end{fullwidth}
\lipsum[2]



\end{document}  
8
  • 1
    The fullwidth package was last updated more than a decade ago. I would certainly not use it in combination with the geometry package.
    – Mico
    Commented Jun 10 at 5:07
  • So what is the alternative?
    – Damitr
    Commented Jun 10 at 5:31
  • It really depends on what you're actually trying to achieve; unfortunately, I'm afraid that's something I don't understand (yet). All I know so far is that the fullwidth approach isn't appropriate.
    – Mico
    Commented Jun 10 at 5:34
  • 1
    Your vertical settings similarly conflict. If you have a top margin of 15mm, a bottom one of 25mm and a textheight of 195mm, that's 235mm but your paper is only 210mm tall. ?
    – cfr
    Commented Jun 10 at 6:18
  • 1
    It seems, you are trying to use fullwidth for column-spanning material inside LaTeX twocolumn mode. Note, that package is not made for this. If you want to switch between onecolumn and twocolumn mode inside a page, you need to use the onecolumn mode of LaTeX and package multicols. If you also like to use the margin in the onecolumn mode, you can additionally use fullwidth or the scrbook environment addmargin, in the onecolumn parts. You can also use the environments to use the margin of a twocolumn part, but not to use the other column unless you manually keep that area clean.
    – cabohah
    Commented Jun 10 at 6:54

1 Answer 1

4

Packages like fullwidth or KOMA-Script's addmargin environment (provided by every KOMA-Script class or KOMA-Script package scrextend) can be used, to change the margins of an area, e.g.:

\documentclass[a4paper,landscape,twocolumn]{scrbook}

\usepackage{geometry} 

\geometry{top=15mm,bottom=25mm, headsep=5mm, left=65mm, right=65mm,
  marginpar=55mm,marginparsep=5mm,columnsep=25pt}% conflicting options removed
                                % and columnsep added

\usepackage{lipsum}

\begin{document}

\lipsum[1]
\begin{addmargin}[-50mm]{-10pt}
\lipsum[5]
\end{addmargin}
\lipsum[2]
\begin{addmargin}[-10pt]{-50mm}
\lipsum[4]
\end{addmargin}
\lipsum[2]

\end{document}  

using the left or right margin and the gap between the columns

They cannot be used to add single-column areas into documents using the LaTeX twocolumn mode, unless you manually keep the area in the other column clean.

For document switching between two and one columns (or even another number of columns) inside a page there are other packages, mainly multicol:

\documentclass[a4paper,landscape]{book}

\usepackage{geometry} 

\geometry{top=15mm,bottom=25mm, headsep=5mm, left=65mm, right=65mm,
  marginpar=55mm,marginparsep=5mm,columnsep=25pt}% conflicting options removed
                                % and columnsep added

\usepackage{multicol}

\usepackage{lipsum}

\begin{document}

\begin{multicols}{2}
  \lipsum[1]
\end{multicols}
\lipsum[5]
\begin{multicols}{2}
  \lipsum[2]
\end{multicols}
\lipsum[4]
\begin{multicols}{2}
\lipsum[2]
\end{multicols}

\end{document}  

mixing of two columns and one column

You can also combine both (here for the single column areas):

\documentclass[a4paper,landscape]{scrbook}

\usepackage{geometry} 

\geometry{top=15mm,bottom=25mm, headsep=5mm, left=65mm, right=65mm,
  marginpar=55mm,marginparsep=5mm,columnsep=25pt}% conflicting options removed
                                % and columnsep added

\usepackage{multicol}
\usepackage[width=175mm]{fullwidth}

\usepackage{lipsum}

\begin{document}

\begin{multicols}{2}
  \lipsum[1]
\end{multicols}
\begin{addmargin}[0pt]{-10mm}
  \lipsum[5]
\end{addmargin}
\begin{multicols}{2}
  \lipsum[2]
\end{multicols}
\begin{fullwidth}
  \lipsum[4]
\end{fullwidth}
\begin{multicols}{2}
\lipsum[2]
\end{multicols}

\end{document}  

combination of both

Just as a note: If you really want, you can indeed manually keep the area of the other column clean:

\documentclass[a4paper,landscape,twocolumn]{scrbook}

\usepackage{geometry} 

\geometry{top=15mm,bottom=25mm, headsep=5mm, left=65mm, right=65mm,
  marginpar=55mm,marginparsep=5mm,columnsep=25pt}% conflicting options removed
                                % and columnsep added

\usepackage{lipsum}

\begin{document}

Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Ut purus elit, vestibulum ut,
placerat ac, adipiscing vitae, felis. Curabitur
dictum gravida mauris. Nam arcu libero, no-%
\parfillskip 0pt\par\vskip 5\baselineskip\parfillskip 0pt plus 1fil % manual
\noindent                            % split of paragraph to keep area clean
lectus vestibulum urna fringilla ultrices. Pha-
sellus eu tellus sit amet tortor gravida placerat.
Integer sapien est, iaculis in, pretium quis, vi-
verra ac, nunc. Praesent eget sem vel leo ul-
trices bibendum. Aenean faucibus. Morbi do-
lor nulla, malesuada eu, pulvinar at, mollis ac,
nulla. Curabitur auctor semper nulla. Donec
varius orci eget risus. Duis nibh mi, congue
eu, accumsan eleifend, sagittis quis, diam. Duis
eget orci sit amet orci dignissim rutrum.
\begin{addmargin}[0pt]{-\dimeval{\columnsep+\columnwidth}}
\lipsum[5]
\end{addmargin}
\lipsum[2]\vskip.1ex% manual vertical alignment correction
\begin{addmargin}[-\dimeval{\columnsep+\columnwidth}]{0pt}
\lipsum[4]
\end{addmargin}
\vskip.5ex% manual vertical alignment correction
Nam dui ligula, fringilla a, euismod sodales, sol-
licitudin vel, wisi. Morbi auctor lorem non ju-
sto. Nam lacus libero, pretium at, lobortis vi-
tae, ultricies et, tellus. Donec aliquet, tortor sed
accumsan bibendum, erat ligula aliquet magna,
vitae ornare odio metus a mi. Morbi ac orci
et nisl hendrerit mollis. Suspendisse ut massa.
Cras nec ante. Pellentesque a nulla. Cum so-
ciis natoque penatibus et magnis dis parturient
montes, nascetur ridiculus mus. Aliquam tinci-%
\parfillskip 0pt\par\vskip 7.5\baselineskip\parfillskip 0pt plus 1fil % manual
\noindent                            % split of paragraph to keep area clean
dunt urna. Nulla ullamcorper vestibulum tur-
pis. Pellentesque cursus luctus mauris.
\end{document}

enter image description here

But it is a lot of work to do and the reader won't know, where to continue reading. And a small change to the document can be enough to start the whole process all over again by inserting vertical spacing in the right places. So I would not recommend to try this.

I don't want to hide the fact that there is a package called midfloat in the sttools collection whose strip environment can theoretically be used to automatically insert single-column material into two-column typesetting. However, I was unable to persuade the package to cooperate with TeX Live from 2018 (I was unable to test earlier versions) in this specific case (LaTeX Error: Strip needs more place!). It is quite possible that the package, which has remained unchanged since 2012, no longer works with newer LaTeX versions.

You must log in to answer this question.

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