PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Sourcecode in fbox



Crashbandito
10-10-2010, 13:56
Hi Leute,
ich steh grad mal wieder vor einem für mich unlösbarem Problem. Ich möchte einen Sourcecode in mein Latexprojekt einarbeiten. Dafür habe ich eine fbox verwendet, in der ich mit Tabbing arbeite.
Das ganze sieht dann grob so aus:




\fbox{\parbox{\dimexpr \linewidth - 2\fboxrule - 2\fboxsep}{\scriptsize{\textbf{Prozedur:} Satzsegmentierung()
\begin{tabbing}

%Quellcode
\textbf{if} \=....
\> .....

\end{tabbing}}}}



Ich habe nun zwei Probleme. Mein erstes ist, dass einer meiner Codes über zwei Seiten geht. Latex bekommt es allerdings nicht gebacken nen Seitenumbruch zu machen, heißt er schreibt fleißig über die Seite hinaus.
Ich hab schon versucht die Schriftgröße zu ändern, damit alles auf eine Seite passt, aber \tiny ist dann doch zu klein und bei \scriptsize sind es ca 6 Zeilen die über die Seite hinaus gehen.
Mein zweites Problem, welches allerdings nur optischer Natur ist, ist die Tatsache, dass nach \end{Tabbing} in der fbox ne Leerzeile erzeugt wird, die ich aber nicht haben will.

Gibt es für die beiden Probleme ne Lösung?

mechanicus
10-10-2010, 14:00
Hi,

nutze das Paket framed und erstelle bei Fragen ein Minimalbeispiel.

Zudem solltest du mit calc arbeiten und Ausdrücke wie \dimexpr vermeiden.

Gruß
Marco

Crashbandito
10-10-2010, 14:21
nutze das Paket framed und erstelle bei Fragen ein Minimalbeispiel.

Zudem solltest du mit calc arbeiten und Ausdrücke wie \dimexpr vermeiden.


Ok Framed scheint ganz gut zu funktionieren. Kann man da noch festlegen wie breit die Box sein soll? Auf der ersten Quellcodeseite hat die Box die Breite des Resttextes, aber nach dem Seitenumbruch ist die Box relativ schmal und in der Mitte der Seite zentriert. Ich hätte gern, das die beiden Boxen, die ja zum selben Code gehören auch die selbe Breite haben.

PS: Minimalbeispiel hat hier weniger Sinn weil ich dann den ganzen Code veröffentlichen müsste um die Ausgabe beim Seitenumbruch zu demonstrieren ;)

Edit: Hab jetzt die Dokumentation für Framed durchgelesen und hab gesehn das man mit

\begin{MakeFramed}{\hsize = .9\textwidth}
...
\end{MakeFramed}

Die größe der Box angeben kann...nur werden diese Einstellungen nur für die Box auf Seite 1 übernommen. Nach dem Seitenumbruch wird wieder ein, an die Länge des in der Box stehenden Text, angepasster Frame erstellt -.-

rais
10-10-2010, 21:51
Moin moin,


PS: Minimalbeispiel hat hier weniger Sinn weil ich dann den ganzen Code veröffentlichen müsste um die Ausgabe beim Seitenumbruch zu demonstrieren ;)

Du könntest ja irgend einen Code verwenden, es braucht nicht der Deiner Arbeit zu sein (welcher u.U. gar nicht veröffentlicht werden darf).
Zum Thema Minimalbeispiel -- so den OP dort auch ein ganz anderes Problem plagt -- hat Herbert hier kürzlich so schön geschrieben:


Ein Minimalbeispiel lässt sich immer erstellen und macht auch immer Sinn ...

(Anmerkung: die im Original durch kursiv/schräg gekennzeichneten Worte hier farblich hervorgehoben (das gesamte Zitat wird ja bereits kursiv/schräg gesetzt) -- unsere Forensoftware kennt wohl kein Analogon zu \emph{..})
@Crashbandito: davon abgesehen ließe sich Dein Problem vllt mit Nutzung des algorithm2e- oder listings-Pakets vermeiden -- hab mir wegen fehlendem Minimalbeispiel allerdings weder die eine noch andere Variante näher angeschaut.

@Marco: wieso, was spricht gegen die Verwendung von \dimexpr?

MfG

mechanicus
11-10-2010, 00:12
@Marco: wieso, was spricht gegen die Verwendung von \dimexpr?

Es gab eine Zeit, da wurde etex nicht automatisch geladen (glaube bei beamer) und irgendwie habe ich mir seit dem angewöhnt, diese Anweisung nicht zu benutzen.
Das war noch die Zeit, also diese Seite Hochkonjunktur hatte ;)
No room for a new ‘thing’ (http://www.tex.ac.uk/cgi-bin/texfaq2html?label=noroom)

Bei der Nutzung von calc brauchst du die Anweisung sowieso nicht :D:D

Gruß
Marco