PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Grammatik schoen darstellen



maceop
27-09-2006, 12:03
Hallo,
ich sitze momentan an dem "Problem" das ich Grammatiken in Latex schön darstellen möchte.

Bisher sehen diese in etwa so aus:
\textit{letter}$\longrightarrow$ A $|$ B $|$ $\cdots$ $|$ Z $|$ a $|$ b $|$ $\cdots$ z\\
\textit{digit}$\longrightarrow$ 0 $|$ 1 $|$ $\cdots$ $|$ 9\\

Also für den Pfeil verwende ich longrightarrow.

Da auf der linken Seite verschieden lange Nichtterminalsymbole erscheinen, sieht die bisherige Ausgabe etwas unschön aus.
Kann ich es irgendwie erreichen das der Transitionspfeil immer an der gleichen Stelle erscheint ? Also das wenn alle Produktionen unter einander stehen der Pfeil nicht mal links, mal rechts etc. steht?

Hoffe ihr wisst was ich meine..

Danke schonmal.

maceop
27-09-2006, 12:31
Ich hab jetzt mal vorrübergehend das ganze mit "Tabs" gelöst, sprich: bei der ersten produktion vor den Pfeil ein Tab gesetzt und unten entsprechend immer vor den Pfeilen zu diesem Tab gesprungen. So muss allerdings das längste Nichtterminal oben stehen.

Gibt es da noch eine andere Lösung?

----------------

edit:
Habe jetzt eine Möglichkeit mit eqnarray* gefunden...

sofa-surfer
27-09-2006, 14:07
Hallo,

eqnarray sollte nicht mehr verwendet werden (vgl. l2tabu (http://www.ctan.org/tex-archive/info/l2tabu/german/l2tabu.pdf)), sondern besser die align-Umgebung.

Hier eine Tabellen-Lösung:


\documentclass{article}
\usepackage{tabularx}
\usepackage{calc}
\usepackage{blindtext}

\begin{document}

\blindtext

\begin{tabularx}{\textwidth}{@{}>{\itshape}p{\widthof{letter}}@{ $\longrightarrow$ }X@{}}
letter & A $|$ B $|$ $\cdots$ $|$ Z $|$ a $|$ b $|$ \\
digit & 0 $|$ 1 $|$ $\cdots$ $|$ 9
\end{tabularx}


\end{document}

Matthias

maceop
27-09-2006, 15:22
Danke für die Antwort. Das mit eqnarray wusste ich nicht, sonst hätte ich es nicht verwendet. Ich habs in so einem "Latex für Fortgeschrittene" Dokument gelesen u. es deswegen für gut befunden.

Danke auch für den Link.