PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nicht gleicher Abstand vor und nach colorbox



missi
23-11-2010, 12:24
Hallo,

ich schreibe gerade an einer Codedokumentation und hab Folgenden Latex-Schnipsel:



\documentclass[a4paper,10pt]{report}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\usepackage{graphicx}
\usepackage{fancybox}
\usepackage{color}

\begin{document}
\definecolor{Gray}{gray}{0.8}
\section*{Test}
The code for these purposes may look like this:
\begin{center}
\colorbox{Gray}{\parbox{\textwidth}{\textcolor{bla ck}{\texttt{%
if \_\_name\_\_ == "\_\_main\_\_":\\
\\
\mbox{}\ \ \ \ print ""\\
\\
\mbox{}\ \ \ \ \# set default values\\
\mbox{}\ \ \ \ CHANNELS = [1,6,11,6,7]\\
\mbox{}\ \ \ \ WAIT = 90\\
\mbox{}\ \ \ \ IF\_NAMES = ['wlan0', 'wlan1', 'wlan2']\\
\\
\mbox{}\ \ \ \ print "CHANNELS: \%s" \% CHANNELS \\
\mbox{}\ \ \ \ print "WAIT: \%s" \% WAIT \\
\mbox{}\ \ \ \ print "IF\_NAMES: \%s" \% IF\_NAMES \\
\\
\mbox{}\ \ \ \ \# start the main loop\\
\mbox{}\ \ \ \ main()}}}}
\end{center}
Now, we define the main function. At first, we shut down all interfaces from our interface list. For this purpose, we can now use our framework. Blablabla

\end{document}


Das Problem ist, das vor der colorbox der Abstand zwischen Text und dem grauen Rahmen größer ist als zwischen dem Text nach dem grauen Rahmen. Ich wollte das Problem umgehen und vor dem "Now, ..." eine mbox einfügen mit "\mbox{]\\", aber dadurch ist der Abstand nicht mehr gleich dem Abstand vor dem grauen Rahmen.

Wie kann ich das Problem lösen und gleich große Abstände kriegen?

rstuby
23-11-2010, 13:33
Mit \centering kriegt man die Abstände ganz weg:


The code for these purposes may look like this:

{\centering
\colorbox{Gray}{\parbox{\textwidth}{\textcolor{bla ck}{\texttt{%
if \_\_name\_\_ == "\_\_main\_\_":\\
\\
\mbox{}\ \ \ \ print ""\\
\\
\mbox{}\ \ \ \ \# set default values\\
\mbox{}\ \ \ \ CHANNELS = [1,6,11,6,7]\\
\mbox{}\ \ \ \ WAIT = 90\\
\mbox{}\ \ \ \ IF\_NAMES = ['wlan0', 'wlan1', 'wlan2']\\
\\
\mbox{}\ \ \ \ print "CHANNELS: \%s" \% CHANNELS \\
\mbox{}\ \ \ \ print "WAIT: \%s" \% WAIT \\
\mbox{}\ \ \ \ print "IF\_NAMES: \%s" \% IF\_NAMES \\
\\
\mbox{}\ \ \ \ \# start the main loop\\
\mbox{}\ \ \ \ main()}}}}
}

Ansonsten ist mir das Verhalten aber auch ein Rätsel.

u_fischer
23-11-2010, 15:48
Deine \parbox ist zu breit. Die \colorbox ist daher breiter als eine Zeile.

missi
25-11-2010, 23:46
Dankeee :D. Ich hab mal rumgetestet. Wenn ich bis auf 11cm Breite gegangen bin, waren die Abstände gleich bzw. nach dem Text folgte sofort die Box. Allerdings ab 12cm und höher kamen immer diese ungleichen Zeilenabstände. Warum kommt colorbox damit nicht klar?

LuPi
26-11-2010, 09:22
Ich habe mir erlaubt, an Deinem Beispiel ein paar Dinge zu ändern:

Das zentrieren bringt relativ wenig, wenn Du die Breite der Box gleich der Textbreite wählst. Wenn Du die Boxbreite reduzierst, kannst Du das zentrieren natürlich wieder aktivieren.

Die "zu große" Breite der Box wird dadurch verursacht, dass \colorbox einen zusätzlichen horizontalen Abstand \fboxsep einfügt (auf jeder Seite). Für die hier gewählte Art der "Berechnung" ist das Paket calc erforderlich.


\documentclass[a4paper,10pt]{report}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\usepackage{graphicx}
\usepackage{fancybox}
\usepackage{color}
\usepackage{calc}

\begin{document}
\definecolor{Gray}{gray}{0.8}
\section*{Test}
The code for these purposes may look like this:

\noindent
%\begin{center}
\colorbox{Gray}{\parbox{\textwidth-2\fboxsep}{\textcolor{black}{\texttt{%
if \_\_name\_\_ == "\_\_main\_\_":\\
\\
\mbox{}\ \ \ \ print ""\\
\\
\mbox{}\ \ \ \ \# set default values\\
\mbox{}\ \ \ \ CHANNELS = [1,6,11,6,7]\\
\mbox{}\ \ \ \ WAIT = 90\\
\mbox{}\ \ \ \ IF\_NAMES = ['wlan0', 'wlan1', 'wlan2']\\
\\
\mbox{}\ \ \ \ print "CHANNELS: \%s" \% CHANNELS \\
\mbox{}\ \ \ \ print "WAIT: \%s" \% WAIT \\
\mbox{}\ \ \ \ print "IF\_NAMES: \%s" \% IF\_NAMES \\
\\
\mbox{}\ \ \ \ \# start the main loop\\
\mbox{}\ \ \ \ main()}}}}
%\end{center}

Now, we define the main function. At first, we shut down all
interfaces from our interface list. For this purpose, we can now use
our framework. Blablabla

\end{document}


[Siehe hierzu übrigens auch http://www.mrunix.de/forums/showthread.php?t=69904]