PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \verbatim und vertikaler Abstand der center-Umgebung



flunch83
22-05-2008, 11:26
Hallo zusammen!

Ich möchte eine Colour-Box (zur Darstellung von Quellcode u.ä.) zentriert platzieren mit definiertem Abstand zum Text nach oben und unten. Dies habe ich in folgender Umgebung für mehrfache einfache Benutzung programmiert:



% Definition einer Box für Quellcode-Darstellungen
%
\newsavebox\CBoxCode
\newcommand\codebox[4]{%
\def\RANDfarbe{#1}\def\HINTERGRUNDfarbe{#2}%
\par\vspace{0.25cm}\noindent%
\setlength\fboxsep{0.25cm}%
\begin{lrbox}{\CBoxCode}%
\minipage{#3-2\fboxsep-2\fboxrule}%
#4%
\endminipage\end{lrbox}%
\begin{center}\fcolorbox{\RANDfarbe}{\HINTERGRUNDf arbe}{\usebox\CBoxCode}\end{center}\par\vspace{0.3 5cm}}%


Meine Probleme:

1) Die center-Umgebung fügt einen Extra-Abstand ein. Wie groß ist der und wie kann ich das unterbinden?

2) Ich würde gerne meinen Text, also das Argument #4, in Courier ö.ä. Schrift setzen. Folgendes funktioniert nicht:



\begin{verbatim}
#4%
\end{verbatim}


Leider klappt es auch nicht, die verbatim-Anweisung in den Aufruf zu setzen. Etwa derart:



\codebox{black}{black!20}{0.92\textwidth}{
\begin{verbatim}
Dies ist Code. Dies ist Code. Dies ist Code. Dies ist Code.
\end{verbatim}}


Kann mir jemand helfen? Wäre super!!

voss
22-05-2008, 11:52
Ich möchte eine Colour-Box (zur Darstellung von Quellcode u.ä.) zentriert platzieren mit definiertem Abstand zum Text nach oben und unten. Dies habe ich in folgender Umgebung für mehrfache einfache Benutzung programmiert:


wieso benutzt du nicht das Paket listings?
http://www.dante.de/CTAN//help/Catalogue/entries/listings.html

Herbert

flunch83
22-05-2008, 13:44
Ja, hübsches Paket. Vielen Dank.
Die Standardschrift finde ich allerdings etwas unschön, weil ja gerade für Quellcode wichtig ist, dass alle Zeichen identische Breite haben (wie dies etwa der Darstellung in Compiler-Umgebungen entspricht). Will mal schauen wie man das ändern kann...

Gibt es denn trotzdem eine einfache Möglichkeit den zusätzlichen Vertikalabstand der center-Umgebung - wo auch immer ich sie noch einsetze - zu vermeiden?
Im Grunde würde mir ja reichen, wenn ich weiß mit welcher Variable ich die abfange um dann einen simplen Befehl derart



\vspace{-\was_auch_immer_die_variable_ist}


vor und hinter die Umgebung zu setzen.

voss
22-05-2008, 13:50
Ja, hübsches Paket. Vielen Dank.
Die Standardschrift finde ich allerdings etwas unschön, weil ja gerade für Quellcode wichtig ist, dass alle Zeichen identische Breite haben (wie dies etwa der Darstellung in Compiler-Umgebungen entspricht). Will mal schauen wie man das ändern kann...

Gibt es denn trotzdem eine einfache Möglichkeit den zusätzlichen Vertikalabstand der center-Umgebung - wo auch immer ich sie noch einsetze - zu vermeiden?
Im Grunde würde mir ja reichen, wenn ich weiß mit welcher Variable ich die abfange um dann einen simplen Befehl derart



\vspace{-\was_auch_immer_die_variable_ist}


vor und hinter die Umgebung zu setzen.


{\par\centering
... dein Text
\par}

hat nur den normalen Absatzabstand

Herbert

flunch83
22-05-2008, 14:36
Super, vielen Dank!

Aber nochmal zurück zum Linstigs-Package. Es erscheint mir ja sehr leistungsfähig. Aber wieso scheitert es, wenn ich den Listings-Befehl in einen eigenen \newcommand integrieren will?



\newsavebox\CBoxCode
\newcommand\codebox[4]{%
\def\RANDfarbe{#1}\def\HINTERGRUNDfarbe{#2}%
\par\vspace{0.25cm}\noindent%
\setlength\fboxsep{0.25cm}%
\begin{lrbox}{\CBoxCode}%
\minipage{#3-2\fboxsep-2\fboxrule}%
\lstset{language=C++,basicstyle=\small,stringstyle =\ttfamily,showstringspaces=false}%
\begin{lstlisting}%
#4%
\end{lstlisting}%
\endminipage\end{lrbox}%
{\par\centering\fcolorbox{\RANDfarbe}{\HINTERGRUND farbe}{\usebox\CBoxCode}\par}%
\par\vspace{0.35cm}}%


Es wäre mir nämlich das Liebste, die \lstset-Definitionen nur einmal global auszuführen und dann die Verwendung von Code in meinem Text auf nur wenige simple Codezeilen derart



\codebox{black}{black!20}{0.92\textwidth}{
U->Execute();
printf("Dies ist ein Test");
return 0;}


herunterzubrechen, bei denen ich nurnoch Farbdarstellung und Breite der Box variiere. Gibt es eine Möglichkeit dafür?

voss
22-05-2008, 15:14
Aber nochmal zurück zum Linstigs-Package. Es erscheint mir ja sehr leistungsfähig. Aber wieso scheitert es, wenn ich den Listings-Befehl in einen eigenen \newcommand integrieren will?

du hast die Anleitung nur halb gelesen ...
siehe \lstnewenvironment

Herbert

Xetal
12-08-2018, 16:02
{\par\centering
... dein Text
\par}

hat nur den normalen Absatzabstand

Herbert

Danke, diese Lösung habe ich auch gesucht.