Syntaxdiagramm (rail-Paket) zentrieren?

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Syntaxdiagramm (rail-Paket) zentrieren?

von and_go » Do 1. Mai 2014, 20:19

schade, da ich eh alle Teildiagramme zentriert bräuchte, was das rail-Package nicht ermöglicht, habe ich mich dazu entschieden, Arbeit zu investieren und die Diagramme mit tikz zu erstellen. Mit TikzEdit geht das auch recht komfortabel.

von esdd » Mi 30. Apr 2014, 13:26

and_go hat geschrieben:danke, das hilft mir schon mal weiter. Ggf. kann man in rail.sty eine Zentrierung ergänzen. Der Code ist ja noch überschaubar.
Nein, kann man nicht so einfach, da in der rail.sty nirgendwo die tatsächliche Breite des Diagrammes ermittelt wird. Der picture Umgebung wird wie gesagt mitgeteilt, dass sie die Breite 0 hat ... Und wenn du die in der rail.sty zentrierst, landet der linke Rand in der Mitte.

Du kannst das auch sehen, wenn du in meinem Code oben die Breite der minipage auf 0 setzt. Du bekommst dann keinerlei Warnung wegen einer zu vollen Box und der linke Rand der rail Abbildung ist zentriert.

Gruß
Elke

von and_go » Mi 30. Apr 2014, 13:20

danke, das hilft mir schon mal weiter. Ggf. kann man in rail.sty eine Zentrierung ergänzen. Der Code ist ja noch überschaubar.

von esdd » Mi 30. Apr 2014, 13:03

Eine automatisierte Lösung für das Zentrieren eines rail Diagrammes dürfte schwierig bis gar nicht möglich sein.

rail erstellt die Abbildung in einer picture Umgebung der Breite 0 und packt diese picture Umgebung deshalb in eine minipage der Breite \linewidth. Damit sind die rail Abbildungen dann immer \linewidth breit.

Eventuell kannst du die Diagramme alle um den gleichen Betrag einrücken statt sie zu zentrieren?

Wenn sie aber unbedingt zentriert werden müssen, dann ist es vermutlich einfacher die tatsächliche Breite des Diagrammes von Hand auszumessen statt jeweils den nötigen Einzug zu ermitteln. Zumal sich dieser ja ändern würde, wenn man aus irgendeinem Grund die Textbreite ändert. Die (gemessene) tatsächliche Breite kann man als Argument einer zentrierten minipage verwenden.
\documentclass{book}
\usepackage{rail}

\begin{document} 
\paragraph*{SET TAMONITOR} 


\begin{center}
\begin{minipage}{6.8cm}
\begin{rail} 
 'SET TAMONITOR' ( 'TRUE' | 'FALSE' ); 
\end{rail}
\end{minipage}
\end{center}
\end{document}
Siehe auch Worin besteht der Unterschied zwischen \textwidth und \linewidth?

Gruß
Elke

Syntaxdiagramm (rail-Paket) zentrieren?

von and_go » Mi 30. Apr 2014, 11:26

Hallo,
ich suche nach einer Möglichkeit, ein mit dem rail-Paket erstelltes Syntaxdiagramm zu zentrieren. \centering und die center-Umgebung werden ignoriert. Eine Verschiebung nach rechts kann ich erzielen, indem ich
\railparam{\addtolength{\leftmargin}{100pt}}\railinit
ergänze und den Wert manuell für jedes Diagramm anpasse -> unschön!
Habt ihr bessere Ideen? Laut Dokumentation erstellt es eine Picture-Umgebung in einer List-Umgebung, falls euch das weiterhilft.
Folgendes ist die Ausgangslage mit einem linksbündigen Diagramm als Ergebnis:
\documentclass{book}
\usepackage{libs/rail} 
\begin{document}
\paragraph*{SET TAMONITOR}
\begin{rail}
'SET TAMONITOR' ( 'TRUE' | 'FALSE' );
\end{rail}
\end{document}
Inhalt der RAO-Datei zum Testen:
% This file was generated by 'C:\DOKUME~1\XPMUSER\DESKTOP\RAIL\RAIL\RAIL.EXE' from 'test.rai'
\rail@i {1}{ 'SET TAMONITOR' ( 'TRUE' | 'FALSE' ); }
\rail@o {1}{
\rail@begin{2}{}
\rail@term{SET TAMONITOR}[]
\rail@bar
\rail@term{TRUE}[]
\rail@nextbar{1}
\rail@term{FALSE}[]
\rail@endbar
\rail@end
}
Wird noch mehr Code benötigt? Ich bin diesbezüglich noch ein Newbie.

Nach oben