Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Nicht gleicher Abstand vor und nach colorbox

  1. #1
    Registrierter Benutzer
    Registriert seit
    05.08.2010
    Beiträge
    27

    Nicht gleicher Abstand vor und nach colorbox

    Hallo,

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

    Code:
    \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{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}
    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?

  2. #2
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Mit \centering kriegt man die Abstände ganz weg:

    Code:
    The code for these purposes may look like this:
    
    {\centering
    \colorbox{Gray}{\parbox{\textwidth}{\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()}}}}
    }
    Ansonsten ist mir das Verhalten aber auch ein Rätsel.

  3. #3
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Deine \parbox ist zu breit. Die \colorbox ist daher breiter als eine Zeile.

  4. #4
    Registrierter Benutzer
    Registriert seit
    05.08.2010
    Beiträge
    27
    Dankeee . 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?

  5. #5
    Registrierter Benutzer
    Registriert seit
    17.02.2010
    Beiträge
    685
    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.

    Code:
    \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]
    Geändert von LuPi (26-11-2010 um 08:55 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •