3

I am trying to do a landscape document with a few (fake) barcodes in 3 columns. The data is within a table. Problem now is that in the 2nd col the table leaves a lot of space to its section header – I cannot seem to fix the position.

Here's my MWE:

\documentclass{report} \usepackage [ a4paper,% other options: a3paper, a5paper, etc landscape, left=1cm, right=2cm, top=1cm, bottom=1cm, % use vmargin=2cm to make vertical margins equal to 2cm. % us hmargin=3cm to make horizontal margins equal to 3cm. % use margin=3cm to make all margins equal to 3cm. ] {geometry} \usepackage{multicol} \usepackage{tabularx} \setlength{\extrarowheight}{20pt} \usepackage{lipsum} \usepackage{float} \restylefloat{table} \def\barcode#1#2#3#4#5#6#7{\begingroup% \dimen0=0.1em \def\stack##1##2{\oalign{##1\cr\hidewidth##2\hidewidth}}% \def\0##1{\kern##1\dimen0}% \def\1##1{\vrule height5ex width##1\dimen0}% \def\L##1{\ifcase##1\bc3211##1\or\bc2221##1\or\bc2122##1\or\bc1411##1% \or\bc1132##1\or\bc1231##1\or\bc1114##1\or\bc1312##1\or\bc1213##1% \or\bc3112##1\fi}% \def\R##1{\bgroup\let\next\1\let\1\0\let\0\next\L##1\egroup}% \def\G##1{\bgroup\let\bc\bcg\L##1\egroup}% reverse \def\bc##1##2##3##4##5{\stack{\0##1\1##2\0##3\1##4}##5}% \def\bcg##1##2##3##4##5{\stack{\0##4\1##3\0##2\1##1}##5}% \def\bcR##1##2##3##4##5##6{\R##1\R##2\R##3\R##4\R##5\R##6\11\01\11\09% \endgroup}% \stack{\09}#1\11\01\11\L#2% \ifcase#1\L#3\L#4\L#5\L#6\L#7\or\L#3\G#4\L#5\G#6\G#7% \or\L#3\G#4\G#5\L#6\G#7\or\L#3\G#4\G#5\G#6\L#7% \or\G#3\L#4\L#5\G#6\G#7\or\G#3\G#4\L#5\L#6\G#7% \or\G#3\G#4\G#5\L#6\L#7\or\G#3\L#4\G#5\L#6\G#7% \or\G#3\L#4\G#5\G#6\L#7\or\G#3\G#4\L#5\G#6\L#7% \fi\01\11\01\11\01\bcR} \begin{document} \section*{Virtuelles Lager - \"Ubersicht Barcodes} \begin{multicols}{3} \subsection*{CPU} \begin{tabularx}{\linewidth}{|X|c|} \hline MacBook 12" & \barcode 8793462789110 \\\hline MacBook Air 11" & \barcode 8793462789111 \\\hline MacBook Air 13" & \barcode 8793462789112 \\\hline MacBook Pro 13" & \barcode 8793462789113 \\\hline MacBook Pro 15" & \barcode 8793462789114 \\\hline iMac 21" & \barcode 8793462789115 \\\hline iMac 27" & \barcode 8793462789116 \\\hline iMac Pro & \barcode 8793462789117 \\\hline Mac Pro & \barcode 8793462789118 \\\hline \end{tabularx} \columnbreak \subsection*{iOS} \begin{tabularx}{\linewidth}{|X|c|} \hline iPad 9.7" & \barcode 8793462789120 \\\hline iPad Pro 10.5" & \barcode 8793462789121 \\\hline iPad Pro 12.9" & \barcode 8793462789122 \\\hline iPhone SE & \barcode 8793462789123 \\\hline iPhone 8 & \barcode 8793462789124 \\\hline iPhone 8 Plus & \barcode 8793462789125 \\\hline iPhone X & \barcode 8793462789126 \\\hline \end{tabularx} \columnbreak \subsection*{Zubeh\"or} %\begin{table} % Embedding to table env results in not showing the tabularx at all... \begin{tabularx}{\linewidth}[!H]{|X|c|} \hline iPhone X Case & \barcode 8793462789130\\\hline \end{tabularx} %\end{table} \end{multicols} \end{document} 

The result looks like this:

enter image description here

How can I achieve this?

4 Answers 4

2

Fill the columns before breaking:

\documentclass{report} \usepackage[ a4paper,% other options: a3paper, a5paper, etc landscape, left=1cm, right=2cm, top=1cm, bottom=1cm, % use vmargin=2cm to make vertical margins equal to 2cm. % us hmargin=3cm to make horizontal margins equal to 3cm. % use margin=3cm to make all margins equal to 3cm. ]{geometry} \usepackage{multicol} \usepackage{tabularx} \usepackage{lipsum} \usepackage{float} \restylefloat{table} \setlength{\extrarowheight}{20pt} \def\barcode#1#2#3#4#5#6#7{\begingroup% \dimen0=0.1em \def\stack##1##2{\oalign{##1\cr\hidewidth##2\hidewidth}}% \def\0##1{\kern##1\dimen0}% \def\1##1{\vrule height5ex width##1\dimen0}% \def\L##1{\ifcase##1\bc3211##1\or\bc2221##1\or\bc2122##1\or\bc1411##1% \or\bc1132##1\or\bc1231##1\or\bc1114##1\or\bc1312##1\or\bc1213##1% \or\bc3112##1\fi}% \def\R##1{\bgroup\let\next\1\let\1\0\let\0\next\L##1\egroup}% \def\G##1{\bgroup\let\bc\bcg\L##1\egroup}% reverse \def\bc##1##2##3##4##5{\stack{\0##1\1##2\0##3\1##4}##5}% \def\bcg##1##2##3##4##5{\stack{\0##4\1##3\0##2\1##1}##5}% \def\bcR##1##2##3##4##5##6{\R##1\R##2\R##3\R##4\R##5\R##6\11\01\11\09% \endgroup}% \stack{\09}#1\11\01\11\L#2% \ifcase#1\L#3\L#4\L#5\L#6\L#7\or\L#3\G#4\L#5\G#6\G#7% \or\L#3\G#4\G#5\L#6\G#7\or\L#3\G#4\G#5\G#6\L#7% \or\G#3\L#4\L#5\G#6\G#7\or\G#3\G#4\L#5\L#6\G#7% \or\G#3\G#4\G#5\L#6\L#7\or\G#3\L#4\G#5\L#6\G#7% \or\G#3\L#4\G#5\G#6\L#7\or\G#3\G#4\L#5\G#6\L#7% \fi\01\11\01\11\01\bcR} \begin{document} \section*{Virtuelles Lager - \"Ubersicht Barcodes} \begin{multicols}{3} \subsection*{CPU} \begin{tabularx}{\linewidth}{|X|c|} \hline MacBook 12" & \barcode 8793462789110 \\\hline MacBook Air 11" & \barcode 8793462789111 \\\hline MacBook Air 13" & \barcode 8793462789112 \\\hline MacBook Pro 13" & \barcode 8793462789113 \\\hline MacBook Pro 15" & \barcode 8793462789114 \\\hline iMac 21" & \barcode 8793462789115 \\\hline iMac 27" & \barcode 8793462789116 \\\hline iMac Pro & \barcode 8793462789117 \\\hline Mac Pro & \barcode 8793462789118 \\\hline \end{tabularx} \vspace*{\fill} \columnbreak \subsection*{iOS} \begin{tabularx}{\linewidth}{|X|c|} \hline iPad 9.7" & \barcode 8793462789120 \\\hline iPad Pro 10.5" & \barcode 8793462789121 \\\hline iPad Pro 12.9" & \barcode 8793462789122 \\\hline iPhone SE & \barcode 8793462789123 \\\hline iPhone 8 & \barcode 8793462789124 \\\hline iPhone 8 Plus & \barcode 8793462789125 \\\hline iPhone X & \barcode 8793462789126 \\\hline \end{tabularx} \vspace*{\fill} \columnbreak \subsection*{Zubeh\"or} \begin{tabularx}{\linewidth}[!H]{|X|c|} \hline iPhone X Case & \barcode 8793462789130\\\hline \end{tabularx} \vspace*{\fill} \end{multicols} \end{document} 

enter image description here

1
  • Although other answers work as well, this solution seems to be the simplest to me. Learned something about floating as well, so thanks a lot! Commented Jul 7, 2018 at 8:21
2

Package multicol tries to balance the columns. Therefore the stretchable space between the subsection title and the table is stretched to fill the page. The balancing can be turned off by \raggedcolumns:

\usepackage{multicol} \raggedcolumns 

Result

1

Instead of the multicol package, you could use the paracol package which allows for multicolumn documents whith 'synchronized' columns.

Applied to your example, you would just have to replace \usepackage{multicol} by \usepackage{paracol}, \begin{multicols}{3} by \begin{paracol}{3} and \columnbreak by \swithcolumn respectively:

\documentclass{report} \usepackage [ a4paper,% other options: a3paper, a5paper, etc landscape, left=1cm, right=2cm, top=1cm, bottom=1cm, % use vmargin=2cm to make vertical margins equal to 2cm. % us hmargin=3cm to make horizontal margins equal to 3cm. % use margin=3cm to make all margins equal to 3cm. ] {geometry} \usepackage{tabularx} \setlength{\extrarowheight}{20pt} %\usepackage[utf8]{inputenc} %<------------ \usepackage{paracol}%<-------------- \usepackage{float} \restylefloat{table} \def\barcode#1#2#3#4#5#6#7{\begingroup% \dimen0=0.1em \def\stack##1##2{\oalign{##1\cr\hidewidth##2\hidewidth}}% \def\0##1{\kern##1\dimen0}% \def\1##1{\vrule height5ex width##1\dimen0}% \def\L##1{\ifcase##1\bc3211##1\or\bc2221##1\or\bc2122##1\or\bc1411##1% \or\bc1132##1\or\bc1231##1\or\bc1114##1\or\bc1312##1\or\bc1213##1% \or\bc3112##1\fi}% \def\R##1{\bgroup\let\next\1\let\1\0\let\0\next\L##1\egroup}% \def\G##1{\bgroup\let\bc\bcg\L##1\egroup}% reverse \def\bc##1##2##3##4##5{\stack{\0##1\1##2\0##3\1##4}##5}% \def\bcg##1##2##3##4##5{\stack{\0##4\1##3\0##2\1##1}##5}% \def\bcR##1##2##3##4##5##6{\R##1\R##2\R##3\R##4\R##5\R##6\11\01\11\09% \endgroup}% \stack{\09}#1\11\01\11\L#2% \ifcase#1\L#3\L#4\L#5\L#6\L#7\or\L#3\G#4\L#5\G#6\G#7% \or\L#3\G#4\G#5\L#6\G#7\or\L#3\G#4\G#5\G#6\L#7% \or\G#3\L#4\L#5\G#6\G#7\or\G#3\G#4\L#5\L#6\G#7% \or\G#3\G#4\G#5\L#6\L#7\or\G#3\L#4\G#5\L#6\G#7% \or\G#3\L#4\G#5\G#6\L#7\or\G#3\G#4\L#5\G#6\L#7% \fi\01\11\01\11\01\bcR} \begin{document} %\pagestyle{empty} %<----------------- \section*{Virtuelles Lager - Übersicht Barcodes} \begin{paracol}{3}%<----------- \subsection*{CPU} \begin{tabularx}{\linewidth}{|X|c|} \hline MacBook 12" & \barcode 8793462789110 \\\hline MacBook Air 11" & \barcode 8793462789111 \\\hline MacBook Air 13" & \barcode 8793462789112 \\\hline MacBook Pro 13" & \barcode 8793462789113 \\\hline MacBook Pro 15" & \barcode 8793462789114 \\\hline iMac 21" & \barcode 8793462789115 \\\hline iMac 27" & \barcode 8793462789116 \\\hline iMac Pro & \barcode 8793462789117 \\\hline Mac Pro & \barcode 8793462789118 \\\hline \end{tabularx} \switchcolumn %<-------------- \subsection*{iOS} \begin{tabularx}{\linewidth}{|X|c|} \hline iPad 9.7" & \barcode 8793462789120 \\\hline iPad Pro 10.5" & \barcode 8793462789121 \\\hline iPad Pro 12.9" & \barcode 8793462789122 \\\hline iPhone SE & \barcode 8793462789123 \\\hline iPhone 8 & \barcode 8793462789124 \\\hline iPhone 8 Plus & \barcode 8793462789125 \\\hline iPhone X & \barcode 8793462789126 \\\hline \end{tabularx} \switchcolumn %<---------------- \subsection*{Zubehör} \begin{tabularx}{\linewidth}[!H]{|X|c|} \hline iPhone X Case & \barcode 8793462789130\\\hline \end{tabularx} \end{paracol} %<---------------- \end{document} 

I have also replaced \"U by Ü and \"o by ö. With the 2018 release of LaTeX, UTF-8 is the new default input encoding which enabes you to directly type umlauts. With older releases, you would need \usepackage[utf8]{inputenc} in oder to compile the above example.

Since you reduce the bottom margin of your page quite much, you might have noticed tat the page numbers gets amost cut off. If you don't want the pages to be numbered, you could use \pagestyle{empty} as shown in the example.

enter image description here

1

It is much simpler to use a single tabularx and hhline:

\documentclass{report} \usepackage [ a4paper,% other options: a3paper, a5paper, etc landscape, left=1cm, right=2cm, top=1cm, bottom=1cm, % use vmargin=2cm to make vertical margins equal to 2cm. % us hmargin=3cm to make horizontal margins equal to 3cm. % use margin=3cm to make all margins equal to 3cm. ] {geometry} \usepackage{tabularx} \setlength{\extrarowheight}{20pt} \usepackage{lipsum} \usepackage{float} \restylefloat{table} \def\barcode#1#2#3#4#5#6#7{\begingroup% \dimen0=0.1em \def\stack##1##2{\oalign{##1\cr\hidewidth##2\hidewidth}}% \def\0##1{\kern##1\dimen0}% \def\1##1{\vrule height5ex width##1\dimen0}% \def\L##1{\ifcase##1\bc3211##1\or\bc2221##1\or\bc2122##1\or\bc1411##1% \or\bc1132##1\or\bc1231##1\or\bc1114##1\or\bc1312##1\or\bc1213##1% \or\bc3112##1\fi}% \def\R##1{\bgroup\let\next\1\let\1\0\let\0\next\L##1\egroup}% \def\G##1{\bgroup\let\bc\bcg\L##1\egroup}% reverse \def\bc##1##2##3##4##5{\stack{\0##1\1##2\0##3\1##4}##5}% \def\bcg##1##2##3##4##5{\stack{\0##4\1##3\0##2\1##1}##5}% \def\bcR##1##2##3##4##5##6{\R##1\R##2\R##3\R##4\R##5\R##6\11\01\11\09% \endgroup}% \stack{\09}#1\11\01\11\L#2% \ifcase#1\L#3\L#4\L#5\L#6\L#7\or\L#3\G#4\L#5\G#6\G#7% \or\L#3\G#4\G#5\L#6\G#7\or\L#3\G#4\G#5\G#6\L#7% \or\G#3\L#4\L#5\G#6\G#7\or\G#3\G#4\L#5\L#6\G#7% \or\G#3\G#4\G#5\L#6\L#7\or\G#3\L#4\G#5\L#6\G#7% \or\G#3\L#4\G#5\G#6\L#7\or\G#3\G#4\L#5\G#6\L#7% \fi\01\11\01\11\01\bcR} \usepackage{hhline} \begin{document} \section*{Virtuelles Lager - \"Ubersicht Barcodes} \begin{tabularx}{\linewidth}{|X|c|c|X|c|c|X|c|} \multicolumn{2}{@{}l}{\large\bfseries CPU} & \multicolumn{1}{p{5mm}}{} & \multicolumn{2}{@{}l}{\large\bfseries iOS} & \multicolumn{1}{p{5mm}}{} & \multicolumn{2}{@{}l}{\large\bfseries Zubehör}\\[1ex] \hhline{|--|~|--|~|--|} MacBook 12" & \barcode 8793462789110 & & iPad 9.7" & \barcode 8793462789120 & & iPhone X Case & \barcode 8793462789130\\ \hhline{|--|~|--|~--|} MacBook Air 11" & \barcode 8793462789111 & & iPad Pro 10.5" & \barcode 8793462789121 & \multicolumn{3}{c}{}\\ \hhline{|--|~|--|~~~} MacBook Air 13" & \barcode 8793462789112 & & iPad Pro 12.9" & \barcode 8793462789122 \\ \hhline{|--|~|--|~~~} MacBook Pro 13" & \barcode 8793462789113 & & iPhone SE & \barcode 8793462789123 \\ \hhline{|--|~|--|~~~} MacBook Pro 15" & \barcode 8793462789114 & & iPhone 8 & \barcode 8793462789124 \\ \hhline{|--|~|--|~~~} iMac 21" & \barcode 8793462789115 & & iPhone 8 Plus & \barcode 8793462789125 \\ \hhline{|--|~|--|~~~} iMac 27" & \barcode 8793462789116 & & iPhone X & \barcode 8793462789126 \\ \hhline{|--|~|--|~~~} iMac Pro & \barcode 8793462789117 \\ \hhline{|--|*6~} Mac Pro & \barcode 8793462789118 \\ \hhline{|--|*6~} \end{tabularx} \end{document} 

enter image description here

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.