我使用的biblatex
样式是将参考书目中的作者姓氏大写(ISO960,即style=iso-authoryear
)。当作者姓氏中包含 ß 时,它会大写为 SS,但我更希望将其大写为 ẞ(我使用的字体就是这样的)。这是一个小例子:
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8
%!TEX spellcheck = en_US
\documentclass{article}
\begin{filecontents}[force]{test.bib}
@Unpublished{Heussner2023,
author = {{Heußner}, Ludwig},
note = {Lecture Notes},
title = {Angewandte Nationalökonomologie},
month = aug,
year = {2023},
day = {17},
}
\end{filecontents}
\usepackage[style=iso-authoryear]{biblatex}
\addbibresource{test.bib}
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\renewcommand*{\mkbibnameprefix}[1]{\textsc{#1}}
\usepackage{fontspec}
\setmainfont{XCharter}
\begin{document}
\textcite{Heussner2023} is a very interesting read.
\printbibliography
\end{document}
这产生了
我怎样才能告诉 biblatex ß 应该变成 ẞ,而不是 SS?
编辑: https://tex.stackexchange.com/questions/171401/capital-ẞ-in-latex-xetex-lualatex-whatever没有回答这个问题。
答案1
如果你使用 babel 和 (n)german,你可以将大小写设置为 eszett:
\documentclass{article}
\begin{filecontents}[force]{testss.bib}
@Unpublished{Heussner2023,
author = {{Heußner}, Ludwig},
note = {Lecture Notes},
title = {Angewandte Nationalökonomologie},
month = aug,
year = {2023},
day = {17},
}
\end{filecontents}
\usepackage[ngerman]{babel}
\babelprovide[casing=eszett]{ngerman}
\usepackage[style=iso-authoryear]{biblatex}
\addbibresource{testss.bib}
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\renewcommand*{\mkbibnameprefix}[1]{\textsc{#1}}
\usepackage{fontspec}
\setmainfont{XCharter}
\begin{document}
\textcite{Heussner2023} is a very interesting read.
\printbibliography
\end{document}
(没有 babel 你也可以做类似的事情,但我假设你想设置语言...)
如果没有 babel,你可以添加映射指令:
\documentclass{article}
\DeclareUppercaseMapping{"00DF}{\char"1E9E}
\usepackage[style=iso-authoryear]{biblatex}
\addbibresource{testss.bib}
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\renewcommand*{\mkbibnameprefix}[1]{\textsc{#1}}
\usepackage{fontspec}
\setmainfont{XCharter}
\begin{document}
\textcite{Heussner2023} is a very interesting read.
\printbibliography
\end{document}