Hallo!

Ich hätte gerne eine zweispaltige Querformatseite (DIN A5), mit mehreren Textboxen; wegen der Flexibilität am besten mit TikZ.

Vom Prinzip her, etwa so:

alt text

Wie setze ich das am besten um?

Bei mir scheint einiges / alles schiefzugehen :(

Hinweis: Für den Textteil habe ich eine Parbox verwendet; das muß nicht sein. Eine node wäre sogar besser, weil der Text auch noch eine Hintergrundformatierung erhalten soll (mit backgrounds).

Open in writeLaTeX
\documentclass[a5paper, landscape]{scrbook}
\usepackage{multicol}
        \setlength{\columnseprule}{0.1pt}

\usepackage{lipsum}

\usepackage{tikz}
\usetikzlibrary{shadows, fit, matrix, positioning, backgrounds}

\newcommand{\Text}{%%
\parbox[b]{0.5\columnwidth}{\lipsum[66]}
}%%

\newcommand{\Bild}{%%
\rule{4cm}{5cm}
}%%

\begin{document}
 \begin{multicols}{2}

\begin{tikzpicture}
\matrix (m) [%
  align=left,
  matrix of nodes,
  nodes in empty cells,
  draw=blue,
  inner sep=2mm,
  minimum height=7mm, 
  minimum width=0.5\columnwidth,
  ] {%
\Text &  \Bild \\
};
\end{tikzpicture}

Wieso bin ich jetzt hier
 \end{multicols}
\end{document}

alt text

gefragt 31 Okt '14, 16:06

cis's gravatar image

cis
9.4k27276473
Akzeptiert-Rate: 29%

bearbeitet 31 Okt '14, 16:32

3

Dein Bild und Deine parbox sind zu breit für die vorhandene Spaltenbreite, da die Matrix mehr als 2*0.5\columnwidth Platz einnimmt und 4cm mehr als .5\columnwidth ist. Der Rest des Textes ist vermutlich in der zweiten Spalte, weil multicol versucht, die beiden Spalten auszubalancieren, wenn sie nicht eine ganze Seite füllen.

(31 Okt '14, 16:53) cgnieder

Ich denke eh, es wäre besser zwei nodes in einer node (der blaue Kasten, dieser muß einheitliche Breite haben) zu verschachteln. Aber ich weiß gerade nicht, wie man das richtig macht. Die Lib matrix war nur eine Idee.

(31 Okt '14, 16:59) cis

Keine Antwort, aber... vielleicht wäre das tcolorbox-Paket was für Dich hier

(31 Okt '14, 17:17) cgnieder

Das könnnte gehen. Ich weiß immer nicht, ob tcolorbox oder mdframed besser ist. Ich versuche es mal.

(31 Okt '14, 17:39) cis

@cis mdframed natürlich, beide Autoren sind hier angemeldet ;-)

(31 Okt '14, 19:45) Johannes

Andererseits kann man bei mdframed einen Style myStyle definieren und verwenden, das geht bei tcolorbox nur aufwendig makeatletter - ohje... was eine Qual, diese Wahl!

Andererseits sehe ich bei mdframed grad kein Bsp. für Zeugs neben-einander, also denke ich tcolorbox ist die richtige Wahl.

(02 Nov '14, 03:38) cis
Ergebnis 5 von 7 show 2 more comments

Es gibt leider keine gescheite Möglichkeit die breite einer TikZ-Matrix auf eine bestimmte Breite zu beschränken. Daher ist das beste was ich anbieten kann eine text width=.4\columnwidth in Kombination mit \centering innerhalb der multicols (es ist noch ein wenig Platz nach links und rechts bei den Boxen).

Open in writeLaTeX
\documentclass{article}
\usepackage[a5paper,landscape]{geometry}
\usepackage{multicol}
\setlength{\columnseprule}{0.1pt}
\usepackage{lipsum}
\usepackage{tikz}
\usetikzlibrary{matrix,backgrounds}
\tikzset{
  text image box/.style={
    text width=.4\columnwidth,
    align=left,
    matrix of nodes,
    nodes in empty cells,
    draw=#1,
    inner sep=2mm,
    every node/.append style={anchor=north},
  },
  text image box/.default=blue,
}

\begin{document}
\begin{multicols}{2}
  \centering

  \begin{tikzpicture}
    \matrix (m) [text image box] {%
      Nunc sed pede.  Praesent vitae lectus. Praesent neque justo,
      vehicula eget, interdum id, facilisis et, nibh.
      & \rule{\linewidth}{2cm} \\
    };
  \end{tikzpicture}

  \begin{tikzpicture}
    \matrix (m) [text image box=red] {%
      Nunc sed pede.  Praesent vitae lectus. Praesent neque justo,
      vehicula eget, interdum id, facilisis et, nibh.
      & \rule{\linewidth}{4cm} \\
    };
  \end{tikzpicture}

  \begin{tikzpicture}
    \matrix (m) [text image box=green] {%
      Nunc sed pede.  Praesent vitae lectus. Praesent neque justo,
      vehicula eget, interdum id, facilisis et, nibh.
      & \rule{\linewidth}{1cm} \\
    };
  \end{tikzpicture}

  \begin{tikzpicture}
    \matrix (m) [text image box=purple] {%
      Nunc sed pede.  Praesent vitae lectus. Praesent neque justo,
      vehicula eget, interdum id, facilisis et, nibh.
      & \rule{\linewidth}{3cm} \\
    };
  \end{tikzpicture}

\end{multicols}
\end{document}

alt text

Permanenter link

beantwortet 20 Dez '14, 22:34

Henri's gravatar image

Henri
14.6k53340
Akzeptiert-Rate: 46%

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×689

gestellte Frage: 31 Okt '14, 16:06

Frage wurde gesehen: 6,459 Mal

zuletzt geändert: 20 Dez '14, 22:34