使用小型大写字母时,将大写字母 ›ẞ‹ 替换为 ›ss‹

使用小型大写字母时,将大写字母 ›ẞ‹ 替换为 ›ss‹

我喜欢将作者姓氏用小写字母表示。

直到最近,大写字母 ›ß‹(德语字母表中经常使用的特殊字符)才被 ›SS‹ 取代(例如,在标题中,参考书目中的小写字母)。由于大写字母 ẞ 已在某些字体中可用,因此使用它也变得越来越流行,但我不喜欢它。

使用时libertine-package 为文档调用此字体系列,当使用小型大写字母(或大写字母)时,它会自动将 ß 转换为 ẞ。是否可以全局(文本和参考书目)避免 ›ß‹ 出现这种情况,并保留将其简单地转换为 ›SS‹ 的旧设置?

梅威瑟:

\documentclass{scrbook}

\usepackage{biblatex}
\usepackage[ngerman]{babel}
\usepackage{libertine}
\usepackage{fontspec}

\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\bibliography{bibliographie.bib}

\begin{document}

Johann Heinrich Voß\cite{Voss1800} translated Virgil.

\begin{filecontents}{bibliographie.bib}
  @Book{Voss1800,
    author   = {Voß, Johann Heinrich},
    title    = {Des Publius Virgilius Maro ländliche Gedichte übersetzt und erklärt, Vierter Band},
    year     = {1800},
    location = {Altona},
 }
\end{filecontents}

\printbibliography
\end{document}

例如,这产生以下参考书目条目:

在此处输入图片描述

答案1

我认为应该有一条法律,即任何提供极其丑陋的 ẞ 字符的字体都必须提供一种样式集,以便用“SS”替换它。

但你很幸运:不是使用 Linux Libertine,而是使用其(积极维护的)克隆版 Libertinus。它正是为此提供了 SS04 功能。

\begin{filecontents*}{\jobname.bib}
  @Book{Voss1800,
    author   = {Voß, Johann Heinrich},
    title    = {Des Publius Virgilius Maro ländliche Gedichte übersetzt und erklärt, Vierter Band},
    year     = {1800},
    location = {Altona},
 }
\end{filecontents*}

\documentclass{scrartcl}

\usepackage[ngerman]{babel}

\usepackage[defaultfeatures={StylisticSet=04}]{libertinus}

\usepackage{biblatex}
\usepackage{csquotes}

\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\addbibresource{\jobname.bib}

\begin{document}

Johann Heinrich Voß \cite{Voss1800} translated Virgil.

\textsc{ß} (just to be sure) fiflffi<<``''>>


\printbibliography

\end{document}

在此处输入图片描述

生产说明。

  • 我添加了显式\textsc{ß}和 ẞ 的出现以确保替换有效。还添加了一些标准 TeX 连字符以确保它们被遵守。
  • 我将bibliography.bib其替换\jobname.bib为以免破坏我的文件。
  • 我也替换了\bibliography\addbibresource你也应该这样做。顺便说一下,作为 参数给出的文件名\bibliography应该不是包含扩展.bib(它可以与 MiKTeX 一起使用,但不可移植)。

相关内容