以小写字母显示 ß

以小写字母显示 ß

当我在标题中使用 ß(我希望使用小写字母)时,它会被双 S 替换。有没有办法在那里保留 ß,并且与其他字母的高度相同?

只是为了澄清:我已经修改了\sectionlinesformat这种方式,以便在标题中得到小写字母,同时在目录中显示正常文本。

梅威瑟:

\documentclass[10pt, oneside, numbers=noenddot]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{microtype}
\usepackage[osf]{newpxtext}
\usepackage[ngerman]{babel}

\setkomafont{chapter}{\huge\fontfamily{qpl}\selectfont\normalfont\lsstyle\scshape}
\setkomafont{section}{\large\fontfamily{qpl}\selectfont\normalfont\lsstyle\scshape}

\renewcommand*{\sectionlinesformat}[4]{#3 \MakeLowercase{#4}}

\addtokomafont{chapterentry}{\normalfont\lsstyle\scshape}

\begin{document}
    \tableofcontents
    \chapter{größe}
    \section{Größe}
\end{document}

编辑:我已经尝试过LaTeX/XeTeX/lualatex/whatever 中的大写 ẞ,但这没有作用。

答案1

expl3 语言提供了一个函数tl_upper_case:nn {language} {input},其中语言代码de-alt将 ß 转换为大埃斯泽特

\documentclass{minimal}
\usepackage{libertinus}

\ExplSyntaxOn
\newcommand\toUpper[1]{\tl_upper_case:nn{de-alt}{#1}}
\ExplSyntaxOff

\begin{document}

\toUpper{Frauenfußball}

\end{document}

Libertinus 字体示例

在较新的系统中,你可以改用\text_uppercase:nn。截至 2020 年,文档称第二个参数应该是“BCP 47 字符串”,但实际上只de-alt有效,并且de-DE-1996根据 RFC 中的说明,无效。因此,使用较新的接口,你可以这样写:

\text_uppercase:nn {de-alt}{\text_expand:n{#1}}

expl3 文档声称你可以定义自己的映射\char_set_uccode:nn,但是当我用

\char_set_uccode:nn {`ß} {`ẞ}

\tl_upper_case:n在与 a或相同的 TeX 组内text_uppercase:n,它仍然将 ß 映射到 SS。

答案2

Wellß在 pdflatex 中是一个命令,所以是的,你可以在本地重新定义它。但要获得合适的尺寸,你必须进行大量缩放,在我看来,这看起来很糟糕:

\documentclass[10pt, oneside, numbers=noenddot]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{microtype}
\usepackage[osf]{newpxtext}

\begin{document}
{\scshape Aabc\textup{ß}abc{\upshape\fontsize{6.5pt}{6.5pt}\selectfont ß}abc}
\end{document}

在此处输入图片描述

答案3

您需要使用能够提供您期望的字符的字体。在很多字体中,小写字母中的 ß 被 SS 替换,因为这曾经是标准替换。检查https://de.wikipedia.org/wiki/Gro%C3%9Fes_%C3%9F可以看到,直到 2008 年,大写字符才被引入到 Unicode 中。

相关内容