PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit \verb



irq
09-01-2006, 06:11
Hallo,

In meiner Ausarbeitung soll ich oft im Laufe des Texts Quelle-Code schreiben, wie z.B. Klassen- oder Methodennamen. Zu diesem Zweck verwende ich das Befehl \verb. Aber wenn es um lange Namen geht, wird sich die Zeile bis zum Ende der Seite verlangen, was oprisch sehr ungenehm aussieht.

Wie kann ich den Text justifieren, um dieses problem zu vermeiden?

Im Anhang ist ein Screenshot zur Darstellung des Problems.

Veilen Dank im Voraus.

irq
09-01-2006, 07:14
Hallo,
hier habe ich eine Antwort gefunden.
http://www.mrunix.de/forums/showthread.php?t=40938&highlight=%5Cverb
Damit bleibt aber die Font so wie es im normalen Text ist. Man kann nicht den Text und Code unterscheiden.

jeff42
09-01-2006, 12:41
Hallo,
hier habe ich eine Antwort gefunden.
http://www.mrunix.de/forums/showthread.php?t=40938&highlight=%5Cverb
Damit bleibt aber die Font so wie es im normalen Text ist. Man kann nicht den Text und Code unterscheiden.

wenn Du \lstinline aus dem Paket listings benutzt, könntest Du probieren es mit \lstset{basicstyle=\ttfamily}.

Gruß, Jeff

irq
09-01-2006, 13:51
Hallo

ich habe fast mit allen Optionen des Packaces listings herumgespielt aber habe keine Lösung, mit der ich die Zeilenumbrüche erzwingen kann.

Enthalten auch andere Packages den Befehl \lstinline ?

Ich benutze die folgenden Packages:


\usepackage{german, ngerman}
\usepackage[ngerman]{babel}
\usepackage{moreverb}
\usepackage[latin1]{inputenc}
\usepackage{makeidx}

\usepackage{graphicx}
\usepackage{color}

\usepackage{hyperref}
\usepackage{url}

\usepackage[german]{gloss}

\usepackage{fancyhdr}
\usepackage{fancyvrb}

\usepackage{amsmath}
\usepackage{amssymb}

\usepackage{rotating}

\usepackage[german]{gloss}

\usepackage{listings}
\lstloadlanguages{[ISO]C++}
\lstset{
language=C++,
basicstyle=\small,
tabsize=2,
framexleftmargin=5mm,
frame=shadowbox,
}

countbela666
09-01-2006, 14:06
Moin,

so sieht die Lösung aus:

\documentclass{article}
\usepackage{listings}
\lstset{basicstyle=\ttfamily,breaklines=true}
\begin{document}
das ist ein ziemlich sinnloser Text mit einem \lstinline{noch viel sinnloseren Codeausschnitt}
\end{document}Grüße,
Marcel


ein paar Sachen noch:
Warum lädtst du gloss zweimal?
Die Pakete german und ngerman parallel zu laden ist nicht besonders sinnvoll. Und wenn du babel mit Option ngerman lädtst, brauchst du keines der beiden ersten.
Das Paket hyperref sollte bis auf ganz wenige Ausnahmen immer als letztes geladen werden (warum steht in der Doku)

irq
09-01-2006, 14:44
Hallo,

wieso funktioniert das denn nicht ?


\documentclass{scrbook}
\usepackage{listings}
\lstset{basicstyle=\ttfamily, breaklines=true}
\begin{document}
Bei \emph{scrbook} werden die Zeilenumbrüche verhindert, z.B wenn ich \lstinline!einenSehrLangenMethodenOderKlassenNamen ! schreibe.
\end{document}


[/EDIT]
Vielen Dank für die Tipps
[/EDIT]

countbela666
09-01-2006, 17:22
Hallöchen,

innerhalb von Bezeichnern kann das Listings-Paket nicht trennen. Die einzige Möglichkeit, die mir da einfällt, wäre für solche potenziell overfull-hboxes-produzierenden Ausdrücke (also lange Bezeichner ohne Delimiter) nicht \lstinline sondern das normale \texttt (bzw. den von dir als basicstyle verwendeten Stil) zu nutzen und dann Trennungvorschläge einfügen. Hierbei müsstest du natürlich darauf achten, nicht das normale Zeichen "- sondern "" zu verwenden, damit beim Trennen solcher Funktionsnamen (wie z.B. auch bei URLs) der Trennstrich unterdrückt wird; sonst wüsste man ja nicht, ob der Strich zum Bezeichner gehört oder nicht.

\documentclass{scrbook}
\usepackage[ngerman]{babel}
\begin{document}
Bei \emph{scrbook} werden die Zeilenumbrüche verhindert, z.B wenn ich \texttt{einen""Sehr""Langen""Methoden""Oder""Klassen""Namen} schreibe.
\end{document}

Grüße,
Marcel