Bearbeiten

Bearbeiten

Ich schreibe ein deutsches Dokument, in dem ich häufig Werke in Englisch und anderen Sprachen zitiere. Ich bin an babeldie Abkürzungen von gewöhnt ngerman, um Trennzeichen in zusammengesetzten Wörtern oder Namen einfach ändern zu können (beispielsweise "=für einen zusätzlichen Bindestrich, der immer gedruckt werden soll, und ""für einen möglichen Zeilenumbruch ohne Bindestrich). Ich habe diese Abkürzungen auch für englishdie Verwendung der \addto\extrasenglishBefehle aktiviert.

Innerhalb otherlanguageder Umgebungen im Text des Hauptdokuments funktioniert alles wie erwartet.

biblatex, das ich zur Verwaltung meiner Bibliographien verwende, bietet die autolangMöglichkeit und das langidFeld, die Silbentrennungsregeln für jeden bibliographischen Eintrag umzuschalten. Wenn ich autolangauf setze other, legt es eine otherlanguageUmgebung um die Zitate und Bibliographieeinträge und verwendet daher die Abkürzungen. Es druckt dann aber auch Begriffe wie andim Englischen, was in einem deutschen Gesamtdokument nicht erwünscht ist. biblatexbietet daher die autolang=hyphenMöglichkeit,nur die Silbentrennungsregeln aktivierenfür die im langidFeld angegebene Sprache, während für alle anderen Begriffe auf die Hauptdokumentsprache zurückgegriffen wird.

Allerdings funktionieren dann die Abkürzungen nicht mehr. Wie bekomme ich sie wieder zum Laufen?

Hier ist ein MWE:

\documentclass{scrartcl}

\usepackage{fontspec}
\usepackage[english,ngerman]{babel}
\addto\extrasenglish{\useshorthands{"}\languageshorthands{ngerman}}
\usepackage{csquotes}
\usepackage[backend=biber,autolang=hyphen,style=verbose]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{bibliography.bib}
@collection{NMR,
  editor = {Wardrip"=Fruin, Noah and Montfort, Nick},
  title = {The New Media Reader},
  location = {Cambridge/""MA and London},
  publisher = {MIT Press},
  year = 2003,
  langid = {english}
}
\end{filecontents}

\addbibresource{bibliography.bib}

\begin{document}

\begin{otherlanguage}{english}
  Manually using babel shorthands inside an \texttt{otherlanguage}
  environment, everything works as expected: Wardrip"=Fruin.
  Cambridge/""MA.
\end{otherlanguage}

Yet, citing the work from the bibliography, where it was given a
\texttt{langid} field, the shorthands do not work.\autocite{NMR}

Neither do they work in the bibliography:
\printbibliography
\end{document}

Antwort1

Die Umgebung hyphenrules deaktiviert aktiv alle Sprachkürzel. Babel bietet jedoch generische Befehle, die immer funktionieren:

\documentclass{scrartcl}

\usepackage{fontspec}
\usepackage[english,ngerman]{babel}
\addto\extrasenglish{\useshorthands{"}\languageshorthands{ngerman}}


\begin{document}

\begin{hyphenrules}{ngerman}
  Manually using babel shorthands inside an \texttt{hyphenrules}
  environment, doesn't: Wardrip"=Fruin.
  Cambridge/""MA.

  Use the babel commands: Wardrip\babelhyphen{hard}Fruin.
  Cambridge/\babelhyphen{empty}MA.
\end{hyphenrules}
\end{document}

Bildbeschreibung hier eingeben

Biblatex hat auch die Befehle \hyphenund \hyphenate(aber meiner Meinung nach nichts für "").

Bearbeiten

Eigentlich kann man die Tastenkombinationen so definieren, dass sie für alle Sprachen funktionieren:

\documentclass{scrartcl}

\usepackage{fontspec}
\usepackage[english,ngerman]{babel}

\usepackage{csquotes}

\useshorthands*{"}
\defineshorthand{""}{\babelhyphen{empty}}
\defineshorthand{"=}{\babelhyphen{hard}}

\begin{document}
\begin{hyphenrules}{ngerman}
  Wardrip"=Fruin.
  Cambridge/""MA.

  \end{hyphenrules}

\selectlanguage{english}
  Wardrip"=Fruin.
  Cambridge/""MA.

\selectlanguage{ngerman}
  Wardrip"=Fruin.
  Cambridge/""MA.

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen