PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zwei Tabellen verbinden



Helveticus
09-11-2012, 14:56
Hallo

Ich habe wieder ein kleines Latex Problem. Und zwar würde ich gerne eine Grafik wie im Anhang erstellen. Das sind ja eigentlich zwei separate Tabellen. Mit den Linien dazwischen habe ich aber grosse Probleme (gestrichelte Linie muss nicht sein, durchgezogene reicht).

Hat da vielleicht jemand gerade ein flinkes Händchen und könnte ein Beispiel für die ersten 3 Einträge oder so erstellen?

Thanks and have a nice weekend.

Festus
09-11-2012, 15:09
Ich denke nicht, dass das in einer Tabelle machbar ist. Ich würde es als Graphik in Inkscape zeichnen und als Bild einbinden. Alternativ könnte man es mit tikz oder so sicher auch direkt in LaTeX zeichnen.

Wenn du es trotzdem als Tabelle im Tabellenverzeichnis haben willst, geht das mit captionof{table}{TEXT}---mit KOMA-Klassen ohne zusätzliches Paket, sonst mit \usepackage{caption}.

Helveticus
09-11-2012, 15:59
Genau, ich dachte mit Tikz. Da habe ich auch schon Matrixen gemacht (dank dem Forum hier). Aber bei der Grafik hier habe ich Probleme.

rais
09-11-2012, 17:31
Als Ansatz vllt


\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[%
BK/.style={rectangle, very thin, minimum width=25mm, minimum height=5mm, draw=black!75},
IT/.style={BK, font=\itshape}%
]
\matrix[row sep=0mm, column sep=25mm]{%
\node{File N}; & \node{File O};\\
\node{Array NA}; & \node{Array OA};\\
\node(na-begin)[IT]{BEGIN}; & \node(oa-begin)[IT]{BEGIN};\\
\node(na-a)[BK]{A}; & \node[BK]{MUCH};\\
\node(na-mass)[BK]{MASS}; & \node[BK]{WRITING};\\
\node(na-of)[BK]{OF}; & \node[BK]{IS};\\
\node[BK]{LATIN}; & \node(oa-like)[BK]{LIKE};\\
\node(na-words)[BK]{WORDS}; & \node(oa-snow)[BK]{SNOW};\\
\node(na-falls)[BK]{FALLS}; & \node(oa-Colon)[BK]{,};\\
\node(na-upon)[BK]{UPON}; & \node(oa-a)[BK]{A};\\
\node(na-the)[BK]{THE}; & \node(oa-mass)[BK]{MASS};\\
\node(na-relevant)[BK]{RELEVANT}; & \node(oa-of)[BK]{OF};\\
\node(na-facts)[BK]{FACTS}; & \node[BK]{LONG};\\
\node(na-like)[BK]{LIKE}; & \node(oa-words)[BK]{WORDS};\\
\node(na-soft)[BK]{SOFT}; & \node[BK]{AND};\\
\node(na-snow)[BK]{SNOW}; & \node[BK]{PHRASES};\\
\node(na-Colon)[BK]{,}; & \node(oa-falls)[BK]{FALLS};\\
\node(na-covering)[BK]{COVERING}; & \node(oa-upon)[BK]{UPON};\\
\node(na-up)[BK]{UP}; & \node(oa-the)[BK]{THE};\\
\node(na-theII)[BK]{THE}; & \node(oa-relevant)[BK]{RELEVANT};\\
\node(na-details)[BK]{DETAILS}; & \node(oa-facts)[BK]{FACTS};\\
\node(na-Period)[BK]{.}; & \node(oa-covering)[BK]{COVERING};\\
\node(na-end)[IT]{END}; & \node(oa-up)[BK]{UP};\\
& \node(oa-theII)[BK]{THE};\\
& \node(oa-details)[BK]{DETAILS};\\
& \node(oa-Period)[BK]{.};\\
& \node(oa-end)[IT]{END};\\
};
\draw (na-begin.east) -- (oa-begin.west);
\draw (na-a.east) -- (oa-a.west);
\draw (na-mass.east) -- (oa-mass.west);
\draw (na-of.east) -- (oa-of.west);
\draw (na-words.east) -- (oa-words.west);
\draw (na-falls.east) -- (oa-falls.west);
\draw (na-upon.east) -- (oa-upon.west);
\draw[dashed] (na-the.east) -- (oa-the.west);
\draw (na-relevant.east) -- (oa-relevant.west);
\draw (na-facts.east) -- (oa-facts.west);
\draw (na-like.east) -- (oa-like.west);
\draw (na-snow.east) -- (oa-snow.west);
\draw (na-Colon.east) -- (oa-Colon.west);
\draw (na-covering.east) -- (oa-covering.west);
\draw (na-up.east) -- (oa-up.west);
\draw[dashed] (na-theII.east) -- (oa-theII.west);
\draw (na-details.east) -- (oa-details.west);
\draw (na-Period.east) -- (oa-Period.west);
\draw (na-end.east) -- (oa-end.west);
\end{tikzpicture}
\end{document}

MfG

Helveticus
09-11-2012, 20:49
Wow, tausend Dank. Genau sowas habe ich gesucht. Du bist mein Held.

esdd
09-11-2012, 21:07
Hallo,

mit \usetikzlibrary{matrix} und \foreach lässt sich das noch ein wenig verkürzen:

\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}[%
BK/.style={very thin, minimum width=25mm, minimum height=5mm, draw,anchor=center},
IT/.style={BK, font=\itshape}%
]
\matrix[matrix of nodes,row sep=0mm,column sep=25mm,nodes=BK]{%
|[draw=none]|File N &|[draw=none]|File O\\
|[draw=none]|Array NA & |[draw=none]|Array OA\\
|(na-begin)[IT]|BEGIN & |(oa-begin)[IT]|BEGIN\\
|(na-a)|A & MUCH\\
|(na-mass)|MASS & WRITING\\
|(na-of)|OF & IS\\
LATIN & |(oa-like)|LIKE\\
|(na-words)|WORDS & |(oa-snow)|SNOW\\
|(na-falls)|FALLS & |(oa-Colon)|,\\
|(na-upon)|UPON & |(oa-a)|A\\
|(na-the)|THE & |(oa-mass)|MASS\\
|(na-relevant)|RELEVANT & |(oa-of)|OF\\
|(na-facts)|FACTS & LONG\\
|(na-like)|LIKE & |(oa-words)|WORDS\\
|(na-soft)|SOFT & AND\\
|(na-snow)|SNOW & PHRASES\\
|(na-Colon)|, & |(oa-falls)|FALLS\\
|(na-covering)|COVERING & |(oa-upon)|UPON\\
|(na-up)|UP & |(oa-the)|THE\\
|(na-theII)|THE & |(oa-relevant)|RELEVANT\\
|(na-details)|DETAILS & |(oa-facts)|FACTS\\
|(na-Period)|. & |(oa-covering)|COVERING\\
|(na-end)[IT]|END & |(oa-up)|UP\\
& |(oa-theII)|THE\\
& |(oa-details)|DETAILS\\
& |(oa-Period)|.\\
& |(oa-end)[IT]|END\\
};
\foreach \i in {%
begin,a,mass,of,words,falls,upon,relevant,facts,li ke,snow,Colon,%
covering,up,details,Period,end}{%
\draw(na-\i.east)--(oa-\i.west);}
\foreach \i in {the,theII}{\draw[dashed](na-\i.east)--(oa-\i.west);}
\end{tikzpicture}
\end{document}

Gruß
Elke

Helveticus
09-11-2012, 21:16
Ein Problem besteht noch und zwar erscheinen gewisse horizontale Linien dicker als andere und teilweise gibt es auch einen Abstand zwischen den Linien. Siehe Screenshot im Anhang. Kann man das irgendwie noch ausmerzen?

esdd
09-11-2012, 21:33
Hallo,

versuchs mal mit etwas vergrößerter minimum height der Noden und einem row sep, der gleich minus der halben line width ist:

...
\begin{tikzpicture}[%
BK/.style={line width=0.3pt,minimum width=25mm, minimum height=5.5mm, draw,anchor=center,outer sep=0pt},
IT/.style={BK, font=\itshape}%
]
\matrix[matrix of nodes,row sep=-0.15pt,column sep=25mm,nodes=BK]{%
...

Gruß
Elke

Helveticus
09-11-2012, 21:40
Vielen Dank. Die Abstände zwischen den Linien sind verschwunden. Allerdings sind die dickeren und dünneren Linien leider immer noch da. Komisch ist auch, dass wenn ich reinzoome oder rauszoome sich dann die Linien ändern, also es werden dann plötzlich andere Linien dicker und andere wieder dünner.

rstuby
10-11-2012, 05:47
Dann wird es wohl bloß ein Darstellungsproblem sein. Ist das in jedem pdf-Betrachter so? Sind die Linien im Druck gleich dick?

esdd
10-11-2012, 12:33
Im SumatraPDF Reader sah es normal aus, im Adobe Reader habe ich den gleichen Effekt.
Mit dem folgenden Code stellt es bei mir auch der Adobe richtig dar:

...
\begin{tikzpicture}[%
BK/.style={very thin,minimum width=25mm, minimum height=5.5mm, draw,anchor=center},
IT/.style={BK, font=\itshape}%
]
\matrix[matrix of nodes,row sep=-0.5\pgflinewidth,column sep=25mm,nodes=BK]{%
...
Gruß
Elke

Helveticus
10-11-2012, 13:48
Vielen Dank, jetzt sieht es super aus. Dafür ist ein neues Problem aufgetaucht. Die obersten 2 Elemente befinden sich jetzt auch in der Tabelle. Siehe Screenshot. Es ist der Code von rais.

Edit: Habs selber mit |[draw=none]| wie es esdd in ihrem Beispiel gemacht hat, hinbekommen.

Vielen Dank für die tolle Hilfe hier. *Daumen hoch*