Hallo Texwelt-Gemeinde!

Ich habe auf tex.sx ein Beispiel für einen Sitzplan gefunden. Jedoch möchte ich das Beispiel noch etwas anpassen. Unter jedem Namen sollen noch zwei Informationen stehen. Dies habe ich soweit auch (erstmal rudimentär) hinzugefügt. Nun macht er aber die Kästen in Abhängigkeit Namen unterschiedlich groß. Meine Frage ist nun, ob man tikz dazu bringen kann, dass jeder Kasten die gleichen Dimensionen hat. Oder noch besser: Zwei (oder mehr) Schüler sollen in einem Rechteck (als Tisch) stehen und nur durch einem Strich getrennt sein. Wie im Original auf tex.sx.

Open in Online-Editor
\documentclass[
paper=a4,
fontsize=12pt,
]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}

\usepackage{tikz}

\def\countitemsinmacro#1{\foreach \i [count=\itemcount, remember=\itemcount] in #1{}}
\tikzset{%
  every seat/.style={
    shape=rectangle,
    draw,
    font=\footnotesize,
    minimum width=1.5cm,
    minimum height=1cm,
  },
}

\usepackage{bbding}
\usepackage{graphicx}
\usepackage{ifthen}
\usepackage{tabularx}

\begin{document}
\begin{center}
\begin{tikzpicture}
\foreach \childrenrow [count=\rownumber] 
  in {%
   {{\phantom{L}/0/-5,\phantom{L}/0/-5},{L/0/-5},{\phantom{L}/0/-5,\phantom{L}/0/-5}},
   {{\phantom{L}/0/-5,\phantom{L}/0/-5},{Schüler1/2/0,Schüler2/3/1},{Schüler3/2/0,\phantom{L}/0/-5}},%
   {{Schüler4/3/1,Schüler5 A./2/0},{Schüler8/2/-1,Schüler9/3/1},{\phantom{L}/0/-5,\phantom{L}/0/-5}},%
   {{Schüler5 Z./2/0,Schüler6/4/2},{\phantom{L}/0/-5,Schüler7/1/-1},{\phantom{L}/0/-5,\phantom{L}/0/-5}},%
  }{
    \countitemsinmacro{\childrenrow}%
    \let\tabletotal=\itemcount%
    \foreach \children [count=\tablenumber] in \childrenrow {
      \countitemsinmacro{\children}%
      \let\seatcount=\itemcount%
      \foreach \childname/\quant/\quali [count=\seatnumber] in \children{
       \node [every seat/.try, seat \rownumber-\tablenumber-\seatnumber/.try, align=center]
        at (-\tabletotal/2*5+\tablenumber*6+\seatnumber*2-\seatcount/2*2,-\rownumber*1.5) (seat-\rownumber-\tablenumber-\seatnumber) {%
            \childname\\%
            \ifnum\quant>0 \foreach \k in {1,2,...,\quant} {\scalebox{.7}{\rotatebox[x=0mm, y=2mm]{-90}{\HandLeft}}}\else\phantom{\rotatebox[x=0mm, y=2mm]{-90}{\HandLeft}}\fi\\%
            \pgfmathparse{\quali+3}
            \ifcase\pgfmathresult%
                \phantom{0}
            \or $ -- $%
            \or $ - $%
            \or $ 0 $  
            \or $ + $%
            \or $ ++ $%
            \else\phantom{0}\fi%
            };
}}}
\end{tikzpicture}
\end{center}
\end{document}

Schonmal danke!

gefragt 21 Jun '15, 17:38

maphy-psd's gravatar image

maphy-psd
37151017
Akzeptiert-Rate: 25%

bearbeitet 07 Feb '16, 12:00

saputello's gravatar image

saputello
11.1k174365

Coole Idee mit dem Sitzplan.

Normalerweise sollte

\usepackage{varwidth}

\begin{varwidth}{2cm}

... Text ...

\end{varwidth}

oder

execute at begin node={\begin{varwidth}{2cm}},

execute at end node={\end{varwidth}}]

Aber: Das Beispiel scheint mir übertrieben kompliziert. Daher weiß ich nicht, wo ich das dazuschreiben könnte. Kompliziert auch, weil normalerweise möchte ich die Sitzplatzpersonen simpel in einer Textdatei eingeben:Max Muster, Paul Müller,... und der Rest sollte automatisch geschehen. Beim angegebenen Bsp. scheint mir allein diese Eingabe zu aufwenig.

(21 Jun '15, 21:37) cis

Erstmal danke für den Tipp. Mir ist bewusst, dass es nicht grad ein Minimalbeispiel ist. Es ist auch nur eine erste Version und das ganze in externe Dateien auszulagern, wäre der nächste Schritt.

(22 Jun '15, 17:46) maphy-psd

Damit die Plätze alle gleich groß sind, muss man nur minimum height und minimum width oder besser text width groß genug wählen, dass es für alle passt.

Bei der regelmäßigen Verteilung der Plätze würde ich aber einfach eine Matrix verwenden:

Open in Online-Editor
\documentclass[fontsize=12pt,landscape]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{bbding}
\usepackage{graphicx}
\usepackage{ifthen}
\usepackage{tikz}
\usetikzlibrary{matrix}

\tikzset{
  platz/.style={
    draw,
    text width=3cm,% <- groß genug wählen
    align=center,
    minimum height=4\baselineskip% <- groß genug wählen
}}

\newcommand\sch[3]{{
  #1\\
  \ifnum#2>0
    \foreach \k in {1,...,#2}{\scalebox{.7}{\rotatebox[x=0mm, y=2mm]{-90}{\HandLeft}}}
  \else
    \phantom{\rotatebox[x=0mm, y=2mm]{-90}{\HandLeft}}
  \fi\\%
  \pgfmathparse{#3+3}
    \ifcase\pgfmathresult%
      \phantom{0}
      \or $ -- $
      \or $ - $
      \or $ 0 $
      \or $ + $
      \or $ ++ $
      \else\phantom{0}
    \fi
}}

\begin{document}
\begin{tikzpicture}
  \matrix(sitzplan)[
      matrix of nodes,
      row sep=3mm,
      column sep=-\pgflinewidth,
      nodes in empty cells,
      nodes={platz,anchor=center}
    ]{
      &&[3mm]|[draw=none]|&|[draw=none]|&[3mm]&\\
      &&\sch{Schüler 1}{2}{0}&\sch{Schüler 2}{3}{1}&\sch{Schüler 3}{2}{0}&\\
      \sch{Schüler 4}{3}{1}&\sch{Schüler 5 A.}{2}{0}&\sch{Schüler 8}{2}{-1}
        &\sch{Schüler 9}{3}{1}&&\\
      \sch{Schüler 5 Z.}{2}{0}&\sch{Schüler 6}{4}{2}&&\sch{Schüler 7}{2}{-1}&&\\
  };
  \path (sitzplan-1-3)--node[platz]{Lehrer}(sitzplan-1-4);
\end{tikzpicture}
\end{document}

Ergebnis:

alt text

Permanenter link

beantwortet 23 Jun '15, 12:10

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

Vielen Dank! Das sieht sehr gut und übersichtlich aus! Es ist genau das, was ich wollte. :)

(23 Jun '15, 19:21) maphy-psd
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:

×730
×76
×9
×3

gestellte Frage: 21 Jun '15, 17:38

Frage wurde gesehen: 12,231 Mal

zuletzt geändert: 07 Feb '16, 12:00