PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Trennung von Wörtern mit Bindestrich im Englischen



Kathrin_B
25-05-2010, 15:24
Hallo zusammen,

ich arbeite an einem Dokument, in dem ich sowohl in Deutsch als auch in Englisch schreibe. Außerdem verwende ich sehr viele, teilweise auch sehr lange Wörter mit Bindestrichen, die ich gerne in die Silbentrennung einbeziehen möchte. Für den deutschen Text verwende ich also statt normalen Bindestrichen "= (und /""), um die Silbentrennung für diese Wörter zu aktivieren. Im Englischen funktioniert das nur leider nicht.

Weiß jemand hierfür eine Lösung (s. Minimalbeispiel)? Gibt es im Englischen andere "Tricks" für die Silbentrennung, auch zwischen Schrägstrichen?

Vielen Dank im Voraus!
Kathrin


\documentclass{scrartcl}
\usepackage[english,ngerman]{babel}

\begin{document}
erster/""zweiter Teil \\
Bindestrich"=Wort

\selectlanguage{english}
first/""second part\\
Bindestrich"=Wort

\selectlanguage{ngerman}
erster/""zweiter Teil\\
Bindestrich"=Wort
\end{document}

lockstep
25-05-2010, 15:54
Die entsprechenden Shorthands werden in germanb.ldf definiert:



\declare@shorthand{german}{"-}{\nobreak\-\bbl@allowhyphens}
\declare@shorthand{german}{"|}{%
\textormath{\penalty\@M\discretionary{-}{}{\kern.03em}%
\allowhyphens}{}}
\declare@shorthand{german}{""}{\hskip\z@skip}
\declare@shorthand{german}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
\declare@shorthand{german}{"=}{\penalty\@M-\hskip\z@skip}


Ich verfüge nicht über die Kenntnisse, um auch für die Sprache "english" entsprechende aktive Zeichen zu definieren, aber es ist hilfsweise möglich, neue Befehle zu definieren, die die entsprechenden Aktionen ausführen.



\documentclass{scrartcl}

\usepackage[english,ngerman]{babel}

\makeatletter
\newcommand*{\bpo}{\hskip\z@skip}
\newcommand*{\bhy}{\penalty\@M-\hskip\z@skip}
\makeatother

\begin{document}

erster/""zweiter Teil \\
Bindestrich"=Wort

\selectlanguage{english}
first/\bpo second part\\
Bindestrich\bhy Wort

\selectlanguage{ngerman}
erster/""zweiter Teil\\
Bindestrich"=Wort

\end{document}


lockstep

voss
25-05-2010, 16:04
ich arbeite an einem Dokument, in dem ich sowohl in Deutsch als auch in Englisch schreibe. Außerdem verwende ich sehr viele, teilweise auch sehr lange Wörter mit Bindestrichen, die ich gerne in die Silbentrennung einbeziehen möchte. Für den deutschen Text verwende ich also statt normalen Bindestrichen "= (und /""), um die Silbentrennung für diese Wörter zu aktivieren. Im Englischen funktioniert das nur leider nicht.

Weiß jemand hierfür eine Lösung (s. Minimalbeispiel)? Gibt es im Englischen andere "Tricks" für die Silbentrennung, auch zwischen Schrägstrichen?


du brauchst doch bei diesen speziellen Wörtern gar nicht auf Englisch zu
wechseln, dann kannst du einfach "= weiter nutzen. Nur für normalen
Text wechselt du auf Englisch. ODer alternativ definierst du dir
\def\ENG#1{{\selectlanguage{ngerman}#1}}
und kannst dann in Englisch diese speziellen Wörter als Deutasch markieren.

Herbert

Kathrin_B
25-05-2010, 16:17
Hallo lockstep, hallo Herbert,

beide vorgeschlagenen Lösungen funktionieren, vielen Dank! Im Englischen werden ja generell kaum Wörter mit Bindestrichen verwendet, deshalb würde bei den wenigen Worten dieser "Workarround" nicht zu kompliziert sein. Vielleicht weiß ja trotzdem noch jemand, wie ich die gleichen Befehle auch im Englischen zum Laufen kriege?

@Herbert: Natürlich muss ich für ein bis zwei Wörter die Sprache nicht umstellen, es geht mir aber um längere Texte, für die ich die englische Silbentrennung brauche und deshalb die Sprache umstelle.

Kathrin

lockstep
25-05-2010, 16:23
du brauchst doch bei diesen speziellen Wörtern gar nicht auf Englisch zu wechseln, dann kannst du einfach "= weiter nutzen. Nur für normalen Text wechselt du auf Englisch.

Auch wenn es in der Praxis selten vorkommen mag - bei Bindestrich-Wörtern, die bestimmte englische Wörter (z.B. zoning) enthalten, kann dieser Ansatz falsche Trennungen erzeugen.

lockstep

voss
25-05-2010, 16:26
Auch wenn es in der Praxis selten vorkommen mag - bei Bindestrich-Wörtern, die bestimmte englische Wörter (z.B. zoning) enthalten, kann dieser Ansatz falsche Trennungen erzeugen.


das Englische kennt erstens so gut wie keine Bindestrichwörter und
zweitens kann \hyphenation die _seltenen_ Fälle erschlagen.

Herbert

lockstep
25-05-2010, 16:36
das Englische kennt erstens so gut wie keine Bindestrichwörter

Habe ich bereits zugestanden.


und zweitens kann \hyphenation die _seltenen_ Fälle erschlagen.

Wieder etwas dazugelernt - mit \hyphenation können Trennmuster für Teile von Bindestrich-Wörtern angegeben werden. Danke für den Tipp!



\documentclass{article}

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

\hyphenation{zon-ing}

\begin{document}

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX zoning"=enabled

\end{document}


lockstep

u_fischer
26-05-2010, 17:29
Ihr traut babel einfach nicht genug zu ;-).


\documentclass{scrartcl}
\usepackage[english,ngerman]{babel}

\addto\extrasenglish{\languageshorthands{ngerman}}

\begin{document}
erster/""zweiter Teil \\
Bindestrich"=Wort

\selectlanguage{english}

first/""second part\\
Bindestrich"=Wort

\selectlanguage{ngerman}
erster/""zweiter Teil\\
Bindestrich"=Wort
\end{document}

lockstep
26-05-2010, 23:22
\addto\extrasenglish{\languageshorthands{ngerman}}


Kommt sofort in meine persönliche Präambel. :D

lockstep

Kathrin_B
27-05-2010, 09:15
Tausend Dank für die Lösung, genau so hab ich mir das vorgestellt :-)

Magger
23-11-2014, 20:52
Ihr traut babel einfach nicht genug zu ;-).


\documentclass{scrartcl}
\usepackage[english,ngerman]{babel}

\addto\extrasenglish{\languageshorthands{ngerman}}

\begin{document}
erster/""zweiter Teil \\
Bindestrich"=Wort

\selectlanguage{english}

first/""second part\\
Bindestrich"=Wort

\selectlanguage{ngerman}
erster/""zweiter Teil\\
Bindestrich"=Wort
\end{document}

Die von Ulrike Fischer vorgeschlagene Methode funktioniert bei mir aktuell nicht mehr (aktuelles MikTeX 2.9). Weiß jemand woran das liegt?

klops
24-11-2014, 06:37
Scheint mir ein Bug zu sein, da es dem Beispiel zu \languageshorthands in der Anleitung widerspricht. Solltest Du am besten mal beim Autor nachfragen. Nach einem Test, scheint es nun zusätzlich notwendig zu sein, die shorthands zu initialisieren:
\documentclass{scrartcl}
\usepackage[english,ngerman]{babel}

\addto\extrasenglish{\useshorthands{"}\languageshorthands{ngerman}}

\begin{document}
erster/""zweiter Teil \\
Bindestrich"=Wort

\selectlanguage{english}
first/""second part\\
Bindestrich"=Wort

\selectlanguage{ngerman}
erster/""zweiter Teil\\
Bindestrich"=Wort
\end{document}
Aber wie gesagt, widerspricht das der Dokumentation.

Es sei an dieser Stelle darauf hingewiesen, dass man im Englischen normalerweise -- als Bindestrich (und --- als Gedankenstrich) verwendet. In gemischtsprachigen Texten entscheidet man sich aber in der Regel für die Typografie der Hauptsprache, so dass obiges vertretbar ist.

Magger
25-11-2014, 06:39
Solltest Du am besten mal beim Autor nachfragen

Ich habe einen bug report unter http://latex-project.org/bugs-upload.html erstellt.



Es sei an dieser Stelle darauf hingewiesen, dass man im Englischen normalerweise -- als Bindestrich (und --- als Gedankenstrich) verwendet. In gemischtsprachigen Texten entscheidet man sich aber in der Regel für die Typografie der Hauptsprache, so dass obiges vertretbar ist.

Um genau so ein Dokument handelt es sich. Die meisten Abschnitte sind in Deutsch, einige in Englisch.