PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Trennung am Bindestrich verhindern



xaMax
27-02-2010, 20:07
Hallo,

ich habe zur Zeit ein Problem mit der Trennung von Wörtern.
Per \hyphenation kann man die Trennstellen von Wörtern angeben. Ich möchte jetzt jedoch ein Wort angeben, welches nicht getrennt werden soll.


\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}

\hyphenation{Super"~Beispiel}

\begin{document}

Das ist ein Super-Beispiel!

\end{document}

Super-Beispiel soll hier weder am Bindestrich, noch irgendwo anders getrennt werden. So wie ich die FAQs verstanden habe, muss man eine entsprechende Schrift sowie per "~ einen Bindestrich angeben. Dann erhalte ich jedoch einen Fehler: "! Not a letter. l.5 \hyphenation{Super"~Beispiel}".

Ich könne noch direkt im Text per \mbox{} die Trennung verhindern, da das Wort aber häufiger vorkommt, möchte ich es gerne global festlegen.

Vielen Dank für Hinweise!

lockstep
27-02-2010, 20:21
Ich würde mittels \def ein Kürzel festlegen (samt abschließendem Slash, damit es keine Probleme mit nachfolgenden Leerzeichen gibt):



\documentclass{article}

\usepackage[latin9]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\shorthandon{"~}
\def\SB/{Super"~Beispiel}
\shorthandoff{"~}

\begin{document}

Das ist ein \SB/ (man beachte den abschließenden Slash!). \SB/ \SB/ \SB/ \dots

%\SB % So erzeugt man eine Fehlermeldung!

\end{document}


lockstep

xaMax
28-02-2010, 00:26
Die Lösung funktioniert zwar (und "~ wird auch erkannt), aber ich müsste trotzdem im gesamten Text das Wort "Super-Beispiel" durch \SB/ ersetzen.

Und es kommt mir wie eine Bastellösung vor, da es ja eigentlich mit \hyphenation eine vorgesehene Lösung geben sollte. Nur warum funktioniert diese nicht?

lockstep
28-02-2010, 00:44
Die Lösung funktioniert zwar (und "~ wird auch erkannt), aber ich müsste trotzdem im gesamten Text das Wort "Super-Beispiel" durch \SB/ ersetzen.

Das sollte bei Verwendung eines leistungsfähigen Editors mit nicht allzu großem Aufwand verbunden sein. :)


Und es kommt mir wie eine Bastellösung vor, da es ja eigentlich mit \hyphenation eine vorgesehene Lösung geben sollte. Nur warum funktioniert diese nicht?

\hyphenation ist ein TeX-(nicht LaTeX-)Befehl, bei dem der Bindestrich eine erlaubte Trennung markiert. Das Kürzel "~ ist Teil der ngerman-Option des LaTeX-Paketes babel und funktioniert z.B. nicht mit englischer Sprache. Warum sollte dieses Kürzel in \hyphenation "vorgesehen" sein?

lockstep

EDIT: Zum Thema "Bastellösungen" - \mbox{Super-Beispiel} ist dann wohl auch eine.

xaMax
28-02-2010, 12:51
Das sollte bei Verwendung eines leistungsfähigen Editors mit nicht allzu großem Aufwand verbunden sein. :)
So viele "leistungsfähige Editoren" gibt es auf dem Mac nicht ;)
Aber per Suchen und Ersetzen müsste es möglich sein.

Ich dachte nur, dass es doch vielleicht auch einfach in hyphenation gehen sollte, da ich ansonsten "unnötig" viele Kürzel definieren müsste.
(Es gibt seeehr viele Abkürzungen mit Bindestrichen, die nicht getrennt werden sollen ;) ).

Und ja, \mbox{} wäre natürlich auch eine Bastellösung. Deswegen mochte ich diese ja auch nicht.

Vielen Dank für die Hilfe. Ich werde dann wohl jetzt anfangen, Kürzel zu definieren ;)

lockstep
28-02-2010, 13:17
Ich dachte nur, dass es doch vielleicht auch einfach in hyphenation gehen sollte, da ich ansonsten "unnötig" viele Kürzel definieren müsste.
(Es gibt seeehr viele Abkürzungen mit Bindestrichen, die nicht getrennt werden sollen ;) ).

Warum unnötig? Spätestens, wenn man ein Kürzel zum dritten Mal verwendet, braucht sogar der Sourcecode weniger Speicherplatz. :D

lockstep

xaMax
28-02-2010, 13:50
Warum unnötig? Spätestens, wenn man ein Kürzel zum dritten Mal verwendet, braucht sogar der Sourcecode weniger Speicherplatz. :D
Aber mein Gedächtnis braucht mehr Speicherplatz für die ganzen Kürzel. Und dieser Speicherplatz ist mir wichtiger als der des Sourcecodes ;)

Im Übrigen: Ich werde es jetzt wahrscheinlich einfach so lösen, dass ich im Text statt Super-Beispiel einfach direkt Super"~Beispiel schreibe.
Da spare ich mir die Definition des Kürzels und muss einfach nur dran denken, dass ich den Bindestrich richtig setze. Ebenso verfahre ich nun mit "geschützen Leerzeichen" (z.B. bei 10~€). Da hat mich dein letzter Beitrag drauf gebracht, dass ich "~ ja einfach direkt im Text verwenden kann ;) Danke!

lockstep
28-02-2010, 13:59
Da hat mich dein letzter Beitrag drauf gebracht, dass ich "~ ja einfach direkt im Text verwenden kann ;) Danke!

:eek:

Äh ... Ja. Natürlich. Ich dachte, du wüsstest das. :D

lockstep

xaMax
28-02-2010, 21:38
Äh ... Ja. Natürlich. Ich dachte, du wüsstest das. :D
Jetzt schon! „Learning by doing“ ;)