編集

編集

私はドイツ語の文書を書いていますが、その中で英語や他の言語の作品を頻繁に引用しています。babelのショートカットを使用して、ngerman複合語や名前のハイフネーション記号を簡単に変更していました (たとえば、"=常に印刷される追加のハイフンや、ハイフンなしでの可能な改行など)。また、 コマンドを使用する""ためにも、これらのショートカットを有効にしました。english\addto\extrasenglish

otherlanguageメイン ドキュメントのテキスト内の環境内では、すべてが期待どおりに動作します。

biblatexは、私が書誌の管理に使用しているもので、各書誌項目のハイフネーションルールを切り替えるためのautolangオプションとフィールドを提供しています。に設定すると、引用文献と書誌項目の周囲に環境が配置され、省略形が使用されます。しかし、英語のような用語も印刷され、これはドイツ語の文書全体では望ましくありません。そのため、のオプションを提供しています。langidautolangotherotherlanguageandbiblatexautolang=hyphenハイフネーションルールのみを有効にするフィールドに指定された言語についてはlangid、他のすべての用語についてはメインのドキュメント言語にフォールバックします。

しかし、そうすると速記が機能しなくなります。どうすれば機能するようになりますか?

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}

答え1

hyphenrules 環境は、すべての言語のショートカットをアクティブに無効にします。ただし、babel は常に機能する汎用コマンドを提供します。

\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}

ここに画像の説明を入力してください

biblatex には および コマンドもあります\hyphen(\hyphenateただし、 については何もないと思います"")。

編集

実際には、すべての言語で機能するようにショートカットを定義することができます。

\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}

ここに画像の説明を入力してください

関連情報