Page LayoutPage layout with multiple text boxes that are not rectangular

Information and discussion about page layout specific issues (e.g. header and footer lines, page formats, page numbers).
Post Reply
whitespace
Posts: 1
Joined: Fri Jun 09, 2017 9:07 pm

Page layout with multiple text boxes that are not rectangular

Post by whitespace »

Hi there,
I was wondering how I would create a page layout like the one in the attached image. I want to have multiple colored text boxes which are not rectangular.
The normal text goes in the white space and floats around the boxes. The text inside the boxes should be layouted automatcally (like in a minipage), but as in the image it should be possible to have text frames which have different widths.
I hope it is described well enough what I want ;)

Regards,
whitespace
Attachments
page.png
page.png (1.46 KiB) Viewed 2391 times

Recommended reading 2024:

LaTeXguide.org • LaTeX-Cookbook.net • TikZ.org
LaTeX Beginner's Guide LaTeX Cookbook LaTeX TikZ graphics TikZによるLaTeXグラフィックス
rais
Posts: 419
Joined: Sun Nov 16, 2014 8:51 pm

Page layout with multiple text boxes that are not rectangular

Post by rais »

let me put it this way: if there was an official way of doing what you want, a package like showframe would have support for it---but I don't see it.
Of course, you could fiddle around with \parshape, like

Code: Select all

\documentclass{scrartcl}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage{blindtext}
\usepackage{wallpaper}
\usepackage[left=1.6cm, top=2.54cm, bottom=8.35cm, right=1.6cm, ignoreheadfoot]{geometry}
\usepackage{showframe}
\newlength\ia
\newlength\ib
\newlength\ic
\newlength\id
\newlength\la
\newlength\lb
\newlength\lc
\newlength\ld
\AtBeginDocument{%
  \setlength\ia{378.422pt}% indent first area
  \setlength\la{\linewidth}%
  \addtolength\la{-\ia}% text length first area
  \setlength\ib{90.2pt}% indent second area
  \setlength\ic{\ib}% indent third area
  \setlength\id{0pt}% indent fourth area
  \setlength\lb{\linewidth}%
  \addtolength\lb{-\ib}% 2nd text length
  \setlength\lc{300pt}%
  \setlength\ld{\lc}% 4th text length
  \addtolength\lc{-\ic}% 3rd text length
  \parshape=23 \ia \la \ia \la \ia \la \ia \la \ia \la \ia \la \ia \la \ia \la \ib \lb \ib \lb \ib \lb \ib \lb \ib \lb \ib \lb \ib \lb \ib \lb \ib \lb \ib \lb \ic \lc \ic \lc \ic \lc \ic \lc \id \ld
}
\CenterWallPaper{1}{page}
\begin{document}
\noindent\blindtext[3]

But look what happens, if you introduce a paragraph break (the empty line in the code just above this text)\ldots
\end{document}
but this approach would only work within a single paragraph: any paragraph break would also break the \parshape command, as demonstrated above.

If you wish to pursue this further, you'd have to decide between `redefining \par'---IMHO not a good idea to begin with---and `reestablishing the wanted layout after a possible paragraph break' (where, say, \everypar might come in handy).

What's more, you'd have to take care about page breaks, too, otherwise the \parshape's current instruction would carry over to the beginning of the next page...

If you really want a page layout like this, you're probably better off using a DTP program.

KR

Rainer
Post Reply