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, 11:38

maphy-psd's gravatar image

maphy-psd
316213
Akzeptiert: 71%

bearbeitet 07 Feb, 06:00

saputello's gravatar image

saputello
18.4k22352

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, 15: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, 11: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, 06:10

esdd's gravatar image

esdd
14.2k53251

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

(23 Jun '15, 13:21) maphy-psd
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492
×51
×8
×3

Frage gestellt: 21 Jun '15, 11:38

Frage wurde angeschaut: 2,337 Mal

Zuletzt aktualisiert: 07 Feb, 06:00