Hallo,
ich schreibe gerade meine Diplomarbeit und habe dabei ein Problem. In der Arbeit kommt viel Quellcode vor, den ich mit dem Paket listings erstelle. Wenn ich im Text auf bestimmte Befehle Bezug nehmen möchte, so mache ich das entweder mit \texttt oder mit \lstinline. Bei beiden Befehlen habe ich das Problem, dass längere Namen über den Zeilenrand hinaus gesetzt werden. Ich verwende für die Variablenbezeichnung oft längere Begriffe, die durch den Unterstrich _ getrennt werden.
Meine Frage lautet nun, ist es irgendwie möglich Latex mitzuteilen, dass er nach dem Zeichen _ eine neue Zeile anfangen darf, ohne (zur Not auch mit) einen Bindestrich zu setzen?
Über eine kleine Hilfestellung wäre ich sehr dankbar.
Schönen Gruß
Simon
Zeilenumbrüche bei \texttt und inline listings
-
- Forum-Meister
- Beiträge: 561
- Registriert: Di 10. Aug 2010, 09:47
- Wohnort: Wrestedt
Umbrüche erlauben
Hallo tkrhiman,
schau dir mal und weiter .
Eine Suche bei Mr. Google ist auch oft sinn voll.
Viel Erfolg
Gruß
Martin
https://de.wikibooks.org/wiki/LaTeX-W%C ... entrennung
schau dir mal
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
\usepackage{hyphsubst} \HyphSubstIfExists{ngerman-x-latest}{% \HyphSubstLet{ngerman}{ngerman-x-latest}}{} \HyphSubstIfExists{german-x-latest}{% \HyphSubstLet{german}{german-x-latest}}{}
Eine Suche bei Mr. Google ist auch oft sinn voll.
Viel Erfolg
Gruß
Martin
https://de.wikibooks.org/wiki/LaTeX-W%C ... entrennung
Absence of evidence is not evidence of absence
Da Du trotz eindeutiger Hinweise auf ein vollständiges Minimalbeispiel verzichtet hast, sei lediglich darauf hingewiesen, dass bei Typewriter-Schriften normalerweise keine Trennung stattfindet und in der Anleitung zum Paket babel eine manuelle Umbruchmöglichkeit ohne Trennstrich für ngerman (und das veraltete german) zu finden ist. Ob die Option des listings-Pakets für automatischen Umbruch von Listings auch in inline-Listings funktioniert, weiß ich nicht und kann ich aufgrund des fehlenden vollständigen Minimalbeispiels auch nicht testen.
Erstmal wollte ich mich für das fehlende Minimalbeispiel entschuldigen. Bin kurz vor der Abgabe und deswegen habe ich gestern nur kurz die Frage gepostet, ohne das Minimalbeispiel zu beachten.
Danke euch trotzdem für die Antworten. Bei Google hatte ich natürlich gesucht, aber bei allen Suchanfragen kamen meistens Vorschläge wie man Trennen kann und nicht wie ein neues Zeichen für einen erlaubten Umbruch
definiert wird.
Ein wahrscheinlich größeres Problem bei mir ist, dass ich an der Uni arbeite und dort eine veraltete Latex-Installation vorhanden ist, die ich nicht beeinflussen kann. Notfalls müsste ich die Endfassung dann Zuhause erstellen.
Deswegen war es mir jetzt auch nicht möglich den Lösungsvorschlag mit hyphsubst zu probieren, da er die .sty Datei nicht findet. Ein Blick in Dokumentation des Pakets hat mich allerdings auch nur verwirrt. Keine Ahnung was man dann da einstellen soll.
Auch wenn ich Latex schon länger nutze, scheine ich weiterhin eher auf Anfängerniveau zu operieren. In der Dokumentation von Babel habe ich in Absatz 1.6 unter Hyphen Tools zwar etwas gefunden, was wohl zur Lösung beitragen kann, wie es aber angewendet werden soll versteh ich nicht. Hinzufügen des Befehls \babelhyphen{empty} führte zu einer Fehlermeldung.
Minimalbeispiel:
Danke euch trotzdem für die Antworten. Bei Google hatte ich natürlich gesucht, aber bei allen Suchanfragen kamen meistens Vorschläge wie man Trennen kann und nicht wie ein neues Zeichen für einen erlaubten Umbruch
definiert wird.
Ein wahrscheinlich größeres Problem bei mir ist, dass ich an der Uni arbeite und dort eine veraltete Latex-Installation vorhanden ist, die ich nicht beeinflussen kann. Notfalls müsste ich die Endfassung dann Zuhause erstellen.
Deswegen war es mir jetzt auch nicht möglich den Lösungsvorschlag mit hyphsubst zu probieren, da er die .sty Datei nicht findet. Ein Blick in Dokumentation des Pakets hat mich allerdings auch nur verwirrt. Keine Ahnung was man dann da einstellen soll.
Auch wenn ich Latex schon länger nutze, scheine ich weiterhin eher auf Anfängerniveau zu operieren. In der Dokumentation von Babel habe ich in Absatz 1.6 unter Hyphen Tools zwar etwas gefunden, was wohl zur Lösung beitragen kann, wie es aber angewendet werden soll versteh ich nicht. Hinzufügen des Befehls \babelhyphen{empty} führte zu einer Fehlermeldung.
Minimalbeispiel:
\documentclass[a4paper,12pt, DIV12, twoside, headsepline]{scrreprt} \usepackage[ngerman]{babel} \usepackage[T1]{fontenc} \usepackage[ansinew]{inputenc} \usepackage{scrpage2} \usepackage{listings} \lstset{%... breaklines=true, breakautoindent=true, } \begin{document} %Text um normalen Umbruch zu zeigen mein normaler text mein normaler text mein normaler text mein normaler text mein text mein normaler text mein text mein normaler text mein text mein text mein text mein normaler text mein text mein text mein text mein text mein text mein text mein normaler text mein text mein text mein text mein normaler text mein text\\ %\texttt: Für die Erstellung werden die Funktionen \texttt{create\_Obs\_bank}, \texttt{create\_Obs}, \texttt{Observer\_bank\_template} und \texttt{Observer\_model} benötigt.\\ %\lstinline: Für die Erstellung werden die Funktionen \lstinline{create_Obs_bank}, \lstinline{create_Obs}, \lstinline{Observer_bank_template} und \lstinline{Observer_model} benötigt. \end{document}
Du verwendest \\ am Ende von Absätzen. Das ist total falsch und sollte keinesfalls gemacht werden! Damit kann es sogar passieren, dass die dabei erzeugte Leerzeile am Anfang der nächsten Seite landet. Was aber fast noch schlimmer ist: Der Absatzumbruch wird dabei gestört, weil die Sonderbehandlung für die letzte Zeile eines Absatzes nun die Leerzeile betrifft!
Wie man Absatzabstand statt Absatzeinzug macht, steht in der KOMA-Script-Anleitung bei der Erklärung zu Option parskip. Lies das unbedingt! Du findest dort auch den zutreffenden Hinweis, dass man Absatzabstand und Absatzeinzug nicht kombinieren sollte, sondern immer nur eines von beidem verwendet – vorzugsweise den Absatzeinzug.
Ansonsten: In der babel-Anleitung solltest Du "" etc. nachlesen:
funktioniert. Der automatische Umbruch von Code mit listings funktioniert in inline-code offenbar nicht.
Alte LaTeX-Installationen sind übrigens eine schlechte Ausrede. Zum einen kann man den zuständigen Admin um ein Update bitten, zum anderen kann man sowohl TeX Live als auch MiKTeX auch nur für den eigenen Benutzer als Benutzer installieren.
Wie man Absatzabstand statt Absatzeinzug macht, steht in der KOMA-Script-Anleitung bei der Erklärung zu Option parskip. Lies das unbedingt! Du findest dort auch den zutreffenden Hinweis, dass man Absatzabstand und Absatzeinzug nicht kombinieren sollte, sondern immer nur eines von beidem verwendet – vorzugsweise den Absatzeinzug.
Ansonsten: In der babel-Anleitung solltest Du "" etc. nachlesen:
Für die Erstellung werden die Funktionen \texttt{create\_""Obs\_""bank}, \texttt{create\_""Obs}, \texttt{Observer\_""bank\_""template} und \texttt{Observer\_""model} benötigt.
Alte LaTeX-Installationen sind übrigens eine schlechte Ausrede. Zum einen kann man den zuständigen Admin um ein Update bitten, zum anderen kann man sowohl TeX Live als auch MiKTeX auch nur für den eigenen Benutzer als Benutzer installieren.
-
- Forum-Meister
- Beiträge: 561
- Registriert: Di 10. Aug 2010, 09:47
- Wohnort: Wrestedt
---------
Hallo tkrhiman,
teste mal diesen Code (Rest wie bereits vorhanden):
Viel Erfolg
Gruß
Martin
EDIT: Es geht auch so ...
teste mal diesen Code (Rest wie bereits vorhanden):
\begin{document} \begin{sloppypar} %Text um normalen Umbruch zu zeigen mein normaler text mein normaler text mein normaler text mein normaler text mein text mein normaler text mein text mein normaler text mein text mein text mein text mein normaler text mein text mein text mein text mein text mein text mein text mein normaler text mein text mein text mein text mein normaler text mein text\\ %\texttt: Für die Erstellung werden die Funktionen \texttt{create\_Obs\_bank}, \texttt{create\_Obs}, \texttt{Observer\_bank\_template} und \texttt{Observer\_model} benötigt.\\ %\lstinline: Für die Erstellung werden die Funktionen \lstinline{create_Obs_bank}, \lstinline{create_Obs}, \lstinline{Observer_bank_template} und \lstinline{Observer_model} benötigt. \end{sloppypar} \end{document}
Gruß
Martin
EDIT: Es geht auch so ...
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[a4paper,12pt, DIV12, twoside, headsepline]{scrreprt} \usepackage[ngerman]{babel} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{scrpage2} \usepackage{microtype} \usepackage{listings} \lstset{%... breaklines=true, breakautoindent=true, literate={\_}{}{0\discretionary{\_}{}{\_}}% } \usepackage{hyphsubst} \HyphSubstIfExists{ngerman-x-latest}{% \HyphSubstLet{ngerman}{ngerman-x-latest}}{} \HyphSubstIfExists{german-x-latest}{% \HyphSubstLet{german}{german-x-latest}}{} \usepackage{xspace} \begin{document} %Text um normalen Umbruch zu zeigen mein normaler text mein normaler text mein normaler text mein normaler text mein text mein normaler text mein text mein normaler text mein text mein text mein text mein normaler text mein text mein text mein text mein text mein text mein text mein normaler text mein text mein text mein text mein normaler text mein text\\ %\texttt: Für die Erstellung werden die Funktionen \texttt{create\_Obs\_bank}, \texttt{create\_""Obs}, \texttt{Observer\_""bank\_""template} und \texttt{Observer\_""model} benötigt.\\ %\lstinline: Für die Erstellung werden die Funktionen \lstinline{create_Obs_bank}, \lstinline{create_Obs}, \lstinline{Observer_bank_template} und \lstinline{Observer_model} benötigt. \end{document}
Absence of evidence is not evidence of absence