Wie trenne ich Worte ohne einen Trennstrich?

Im Netz finde ich nur Antworten, die auf "" verweisen, was aber das Paket ngerman benötigt. Ich arbeite mit babel in der Option ngerman, aber auch in fremdsprachigen Texten. Gibt es eine sprachunabhängige Lösung?

Dieses Beispiel hier funktioniert zwar auf Deutsch:

Open in Online-Editor
\documentclass[spanish,ngerman]{article}
\usepackage{babel,xltxtra,libertine}
\begin{document}
Donauschifffahrtsversicherungspolicenvertrag/""Donauschifffahrtsversicherungs""policenvertrag
\end{document}

Ich habe allerdings in der Präambel wegen eines Konflikts von csquotes mit babel auf Empfehlung im Netz

Open in Online-Editor
\let\mycsouterquote" % Babel-Shorthands bei Sprachwechsel verhindern
\addto\extrasngerman{\let"\mycsouterquote}

eingetragen. Ich konnte trotz xelatex nicht auf polyglossia umsteigen, weil sich das wiederum mit einem anderen Paket nicht verträgt (welches ich aber benötige), hatte das länger ausprobiert.

Deshalb die Frage: Welche Möglichkeiten gibt es in dem Fall zur Silbentrennung ohne Trennstrich möglicherweise noch, zusätzlich zu ""?

gefragt 14 Nov '15, 14:29

kai's gravatar image

kai
5484914
Akzeptiert-Rate: 33%

bearbeitet 16 Nov '15, 16:20

saputello's gravatar image

saputello
11.1k174365

1

\linebreak[1], \linebreak[2], \linebreak[3], \linebreak[4], \discretionary{}{}{} oder das, was babel bei "" macht: \hskip\z@skip, wobei man das in einer eigenen Anweisung verstecken sollte, weil man sonst wegen des @ im Namen immer \makeatletter und \makeatother benötigt.

(14 Nov '15, 15:44) saputello

Das probiere ich aus, danke! Das erste ist eine einzige Lösung? Muss ich mal recherchieren, was das bedeutet. Kleine Nachfrage an @saputello :

Wie versteckt man \hskip\z@skip in einer Anweisung? Damit ist einfach newcommand in der Präambel gemeint?

(14 Nov '15, 17:06) kai

Das ist eine Aufzählung mit insgesamt sechs Möglichkeiten (fünf vor dem oder und eine danach). Da \linebreak eine LaTeX-Standard-Anweisung ist, ist sie in jeder ausführlichen LaTeX-Einführung erklärt. \discretionary ist hingegen Low-Level-TeX und bestimmt, wie die Trennung ggf. vonstattengehen soll. Das muss man in der Tat als normaler Anwender nicht wissen.

Wie man Befehle definiert, die in der Definition ein @ enthalten, findet man unter: Was machen eigentlich \makeatletter und \makeatother?

(14 Nov '15, 18:19) saputello

"" benötigt nicht das Paket ngerman, aber ich vermute, das hast Du gar nicht gemeint, da Du babel mit Option ngerman in Deinem Beispiel verwendest…

(16 Nov '15, 12:18) cgnieder

Die einfachste Möglichkeit dürfte sein, einen shorthand-Alias zu definieren. Dann kann man beispielsweise ´ statt " zur Einleitung eines der Kürzel verwenden, beispielsweise:

Open in Online-Editor
\documentclass[spanish,ngerman]{article}
\usepackage{babel,fontspec,xltxtra,libertine}
\aliasshorthand{"}{´}% ´ wie " als shorthand behandeln
\AtBeginDocument{\shorthandoff*{"}}% " als shorthand generell abschalten
\begin{document}
\raggedright
Donauschifffahrtsversicherungspolicenvertrag/´"Donauschifffahrtsversicherungspolicenvertrag
\end{document}

Ergibt:

mit Umbruch

Natürlich funktionieren dann auch die übrigen Dinge, beispielsweise ´- oder ´~.

Ob das auch noch mit Deiner Umdefinierung von " funktioniert, kann ich nicht sagen, da mir dazu ein Beispiel fehlte. Daher auch der Hinweis, dass man nicht (nur) den Code angeben sollte, der problemlos funktioniert, sondern auch zeigen sollte, wo genau das Problem auftritt.

Das neue shorthand ´ funktioniert übrigens auch innerhalb oder nach einer otherlanguage-Umgebung, die man im Beispiel zusätzlich einfügt.

Permanenter link

beantwortet 14 Nov '15, 18:42

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 14 Nov '15, 18:48

Danke! Sehr hilfreich! Den Hinweis mit dem Problemcode nehme ich mir nächstes Mal zu Herzen.

(14 Nov '15, 18:46) kai
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×23
×16
×5
×4

gestellte Frage: 14 Nov '15, 14:29

Frage wurde gesehen: 8,851 Mal

zuletzt geändert: 16 Nov '15, 16:20