Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Überstehende Texte (in den Rand hinein ragend)

  1. #1
    Registrierter Benutzer
    Registriert seit
    26.01.2006
    Beiträge
    18

    Cool Überstehende Texte (in den Rand hinein ragend)

    Ich möchte Begriffe und Ausgaben einer Anwendung vom Fließtext abheben. In OpenOffice.org oder Word würde ich mir für sowas einfach Zeichenformate anlegen. Einmal die hervorzuhebenden Abschnitte markieren plus Doppelklick und fertig ist z.B. der grau hinterlegte und schräg geschriebene Text...

    In LaTeX kann ich mir zumindest eigene Befehle oder Umgebungen definieren. Läuft eigentlich auf dasselbe hinaus. Also habe ich mir definiert:

    Code:
    % Farbe
    \usepackage{color}
    \definecolor{LightGray}{cmyk}{0,0,0,0.1}
    % Befehle
    \newcommand{\cmd}[1] {\colorbox{LightGray}{\texttt{#1}}}
    Aufgerufen habe ich es im Dokument über:

    Code:
    [...] wieder gelöscht: \cmd{rm dummy-3.8.0.zip unzip.php}. Durch den [...]
    Wie man hier sehen kann, ragt die Schrift bei einem Befehl in den Rand hinein.

    Eigentlich macht \cmd{foo} ja nix anderes, als den Hintergrund auf "LightGray" zu stellen und Schreibmaschinenschrift anzuwenden. Wieso ragt der Text über den Rand hinaus?

    Es helfen auch keine "" (zwei aufeinander folgenden doppelten Anführungszeichen). Ist auch Blödsinn, weil LaTeX am Leerzeichen umbrechen müsste... tut es aber nicht.

    Was tun?
    Geändert von droptix (27-01-2006 um 19:01 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    26.01.2005
    Beiträge
    83
    Hi.

    Das liegt am Befehl \texttt{}. Dieser verhindert die Silbentrennung. Sie kann mit dem Paket \usepackage [htt] {hyphenat} eingeschaltet werden.

    Möchtest du nicht, dass in der Umgebung Worte getrennt werden, so solltest du dich mit den Penalties auseinandersetzen. In deinem Fall wird LaTeX zwischen zwei Varianten entscheiden müssen: die betreffende Zeile zu wenig zu befüllen (und frühzeitig den Zeilenumbruch einleiten) oder über den Rand hinauszuschreiben. Mit den Penalties kannst du LaTeX vorgeben, welche der schlechten Lösungen du bevorzugst.

    andti.

  3. #3
    Registrierter Benutzer
    Registriert seit
    26.01.2006
    Beiträge
    18

    Unhappy Silbentrennung also...

    Sorry, das funzt leider net. Neben einem Haufen Warnings (You have used the htt option. You are likely to get many Font Warning messages. These can usually be ignored.) ragt der Inhalt meines \cmd{} Befehls nach wie vor in den Rand hinein. Muss das Paket speziell platziert werden? Sieht bei mir so aus:

    Code:
    % DIN A4, KOMA Script
    \documentclass[a4paper,12pt,oneside,bibtotocnumbered]{scrbook}
    % Ränder (linker Rand ist standardmäßig 1 Zoll, brauche aber mind. 35mm wegen Bindung)
    \usepackage{geometry}
    \geometry{paperwidth=210mm, paperheight=297mm, top=25mm, bottom=35mm, left=35mm, right=25mm}
    % deutsche Umlaute
    \usepackage[T1]{fontenc}
    \usepackage[latin1]{inputenc}
    % neue deutsche Rechtschreibung
    \usepackage[ngerman]{babel}
    % Wort- und Silbentrennung im \texttt{} Befehl
    \usepackage [htt]{hyphenat}
    Silbentrennung also... am Leerzeichen hätte LaTeX aber problemlos trennen können, da muss es kein Wort zerhacken... Ist das wirklich auf die Silbentrennung zurück zu führen? Oder könnte das auch an der Farb-Box liegen?

    Kann ich vielleicht auch meine Schriftart auf "Schreibmaschine" umstellen, ohne den \texttt{}Befehl verwenden zu müssen? Dann umgehe ich das Problem einfach.

    Kleine Grundsatzfrage: Wie kommt es, dass in einigen Paketen plötzlich andere Features nicht mehr funktionieren, die teilweise so banal und einfach sind? Ist das einfach nur "schlecht programmiert" oder liegt das an TeX?
    Geändert von droptix (27-01-2006 um 19:21 Uhr)

  4. #4
    Registrierter Benutzer Avatar von countbela666
    Registriert seit
    15.04.2005
    Ort
    Berlin
    Beiträge
    2.317
    Zitat Zitat von andti
    Das liegt am Befehl \texttt{}. Dieser verhindert die Silbentrennung.
    Nö. Liegt an der colorbox, die kann nur einen Zeilenumbruch wenn eine parbox integriert ist. Da das wahrscheinlich nicht das ist, was du willst, versuch's mal so:
    Code:
    \documentclass{article}
    \usepackage{color,soul}
    \definecolor{lightgray}{cmyk}{0,0,0,.1}
    \sethlcolor{lightgray}
    \begin{document}
    bla bla bla bla bla bla bla bla bla \hl{der folgende Text hat keine Bewandtnis, außer ein Umbruchproblem zu erzeugen} weiter im Text
    \end{document}
    Grüße,
    Marcel

    Listen to me children of the night, beyond the doors of darkness you will find
    a thousand worlds for you to see here, take my hand and follow me...

  5. #5
    Registrierter Benutzer
    Registriert seit
    26.01.2006
    Beiträge
    18

    Thumbs up Leerzeichen ersetzen

    Fein, das geht schonmal... Danke! Komischerweise entfernt LaTeX so alle Leerzeichen:

    Code:
    % Befehle
    \newcommand{\cmd}[1] {\hl{\texttt{#1}}}
    Man muss es so schreiben:

    Code:
    % Befehle
    \newcommand{\cmd}[1] {\texttt{\hl{#1}}}
    Wenn man's weiß...

    Leerzeichen ersetzen: Nun benutze ich die Hintergrundfarbe, um auch bei Zeilenumbrüchen den Zusammenhang eines Befehls zu erkennen. Die Schriftart hebt das zusätzlich ab, aber mit dem leichten Grau kann man's noch besser erkennen. Beim Paket listings lassen sich Leerzeichen durch diesen Unterstrich ersetzen (der aussieht wie eine umgefallene eckige Klammer). Wie wird sowas gemacht?

Lesezeichen

Berechtigungen

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