PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hyphenation in Buchstaben-Zahlen-Sonderzeichen-Kombination



doro
06-10-2011, 14:17
Hallo Forum,

ich habe ein Silbentrennungsproblem. In meinem Text kommen ein paar Kombination aus Buchstaben, Zahlen und Sonderzeichen vor. LaTeX weiss natuerlich nicht, wie es sie trennen soll. Wenn ich ich sie als \hyphenation{E63S+\-F99B} versuche zu definieren, kommt der Fehler "!Not a letter.". Wie kann ich die Silbentrennung hier definieren?

Danke,
Doro

P.S. Funktioniert die Silbentrennung eines zusammengesetzten Wortes auch wenn ich nur ein Teilwort angebe? Oder muesste ich hier so oder so die Trennung fuer malesuada[E63S+\-F99B] definieren?



% Minimalbeispiel
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage[ngerman, english, british]{babel}

\hyphenation{E63S+\-F99B}
\hyphenation{malesuada[E63S+\-F99B]}

\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis in
libero malesuada[E63S+F99B] mi vulputate ullamcorper. Morbi
semper ullamcorper nisl at feugiat. Curabitur purus diam,
volutpat sit amet volutpat luctus, dapibus eget neque. Nulla
vestibulum mauris sed risus dapibus et pellentesque ante
vestibulum. Fusce tempor lorem vitae lacus sodales sollicitudin.
Ut sed aliquet odio. Vivamus porta mollis magna at consectetur.
\end{document}

u_fischer
06-10-2011, 14:41
Wie kann ich die Silbentrennung hier definieren?

Über hyphenation gar nicht. Du wirst schon an den paar Stellen in deinem Text die Trennhilfen direkt eingeben müssen.

doro
06-10-2011, 15:53
Schade (vor allem, da es sich nicht nur um ein paar Stellen handelt). Gibt es keine Alternative? Es handelt sich immer um die gleichen Buchstaben-Zahlen-Konstruktionen, die kommen allerdings in meinem Text haeufiger vor.

Wie fuege ich denn den Zeilenumbruch manuell ein, wenn ich a) keinen neuen Absatz anfangen will, b) den Blocksatz nicht unterbrechen will und c) keinen Bindestrich haben will?

\- wird natuerlich zu einem Bindestrich und \\ or \newline verhindert den Blocksatz (siehe Beispiel unten).



\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage[ngerman, english, british]{babel}

\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis in
libero malesuada mi vulputate ullamcorper. Morbi
semper ullamcorper nisl at feugiat. Curabitur purus[E63S+\-F99B] diam,
volutpat sit amet volutpat luctus, dapibus eget neque. Nulla
vestibulum mauris sed risus dapibus et pellentesque ante
vestibulum. Fusce tempor lorem[E63S+\\F99B] vitae lacus sodales sollicitudin.
Ut sed aliquet odio. Vivamus porta mollis magna at consectetur.

\end{document}

rstuby
06-10-2011, 16:11
Hier http://de.wikibooks.org/wiki/LaTeX-Wörterbuch:_Silbentrennung steht folgendes:

"" : Diese Anweisung erlaubt einen Umbruch, ohne dass ein Bindestrich gesetzt wird – etwa für den Fall, dass dieser bereits steht: Karl-""Fran\-zens\-uni\-ver\-si\-tät.

u_fischer
06-10-2011, 16:43
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage[ngerman, english, british]{babel}
\newcommand\meinenummern{[E63S+\hspace{0pt}F99B]}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis in
libero malesuada mi vulputate ullamcorper. Morbi
semper ullamcorper nisl at feugiat. Curabitur purus\meinenummern\ diam,
volutpat sit amet volutpat luctus, dapibus eget neque. Nulla
vestibulum mauris sed risus dapibus et pellentesque ante
vestibulum. Fusce tempor lorem\meinenummern\ vitae lacus sodales sollicitudin.
Ut sed aliquet odio. Vivamus porta mollis magna at consectetur.

\end{document}

doro
06-10-2011, 19:05
Super, vielen danke Ulrike, das funktioniert genau so wie gewuenscht und spart mir dazu noch viel Tipparbeit!

Ich hatte in der Zwischenzeit ebenfalls versucht einen neuen Befehl zu definieren, in dem die Sprache auf Deutsch geaendert wird (der Haupttext ist Englisch) und der die von rstuby vorgeschlagenen "" verwendet (die in einem deutschen Text im uebrigen genau den gewuenschten Effekt ergeben). Wenn das \foreignlanguage{ngerman}{[E63+""F99B]} direkt im Text verwende, funktioniert es, wenn ich es mit einem neuen Befehl definiere, funktioniert es nicht. Nur interessehalber, weiss jemand wieso das nicht geht?



\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage[ngerman, english, british]{babel}

\newcommand{\nummern}{\foreignlanguage{ngerman}{[E63+""F99B]}}

\begin{document}
Lorem ipsum dolor sit amet, consectetur\nummern\
adipiscing elit. Duis in libero malesuada mi vulputate ullamcorper.
Morbi semper ullamcorper nisl at feugiat\nummern.
Curabitur purusdiam, volutpat sit amet volutpat luctus, dapibus eget neque.
Nulla vestibulum mauris sed risus dapibus et pellentesque ante vestibulum.
Fusce tempor\foreignlanguage{ngerman}{[E63+""F99B]}
lorem vitae lacus sodales sollicitudin. Ut sed aliquet odio.
Vivamus porta mollis magna at consectetur.
\end{document}

u_fischer
07-10-2011, 08:30
Die "-Befehle stehen erst bei \begin{document} zur Verfügung (damit sie andere Pakete nicht durcheinander bringen). Verschiebe daher entweder dein \newcommand hinter \begin{document} oder benutze


\shorthandon{"}
\newcommand{\nummern}{\foreignlanguage{ngerman}{[E63+""F99B]}}

doro
07-10-2011, 08:39
Wieder etwas gelernt. Vielen Dank für deine Erklärungen. Ich werde jetzt deine Variante mit \hspace{0pt} benutzen, da sie mir in meinem Text einfacher und eleganter erscheint.