LuaTeX:如何“窃取”其他字体的一个字形并将其添加到主字体中?“§”丢失了!

LuaTeX:如何“窃取”其他字体的一个字形并将其添加到主字体中?“§”丢失了!

你可能有看到巴塞尔历史博物馆为了纪念鹿特丹的伊拉斯谟于 1516 年编辑的第一本圣经,出版了一种名为“Erasmus MMXVI”的字体。您可以下载字体这里

这是一种漂亮的字体,使用 LuaTeX 您可以轻松访问其功能,请参见:

\documentclass[parskip=half]{scrartcl}

\usepackage{fontspec}
\usepackage{polyglossia, microtype}
\setdefaultlanguage{german}
\setmainfont[Ligatures=TeX, RawFeature=+pnum]{ErasmusMMXVI}
\newfontfamily{\ErasmSupNum}[VerticalPosition=Superior]{ErasmusMMXVI}



\deffootnotemark{\ErasmSupNum\thefootnotemark}
\newfontfamily{\ErasmUpper}[LetterSpace=6.0]{ErasmusMMXVI}

\addtokomafont{title}{\ErasmUpper}

\title{ERASMUS MMXVI}
\subtitle{OPEN-TYPE FEATURES}
\date{}

\begin{document}
\maketitle{}

Ligaturen: fi fl ff fleißig 


Hochzahlen für Fußnoten\footnote{Ha!}

Superior: \textsuperscript{1234567890}

Proportional: 0123456789

\fontspec[RawFeature=+tnum]{ErasmusMMXVI}
Monospaced: 0123456789


\itshape


Ligaturen: fi fl ff ffi ffl fh tr


fleissig\\
{\addfontfeatures{RawFeature=+swsh}
fleissig (Style=Swash)}

Hochzahlen für Fußnoten\footnote{Ha!}

Superior: \textsuperscript{1234567890}

\fontspec[RawFeature=+pnum]{ErasmusMMXVI}
Proportional: 0123456789



\end{document}

% Local Variables:
% TeX-engine: luatex
% End:

请参阅此截图: 在此处输入图片描述

不幸的是,章节符号“§”不见了,我需要. 假设我使用 LuaTeX 进行编译,是否可以使用其他字体(比如 Linux Biolinum)中的“§”?

我在这里发现了这个问题:将一个字形替换为另一个风格集的替代字形但麻烦的是要用相同字体的另一种样式替换字形。在 Erasmus MMXVI 中根本没有 §...

答案1

例如

\newfontfamily\LB{Linux Biolinum O}
\catcode`\§=\active
\def§{{\LB\string§}}

答案2

很简单,只需newunicodechar

\documentclass[parskip=half]{scrartcl}

\usepackage{fontspec}
\usepackage{polyglossia, microtype}
\usepackage{newunicodechar}

\setdefaultlanguage{german}
\setmainfont[Ligatures=TeX, RawFeature=+pnum]{ErasmusMMXVI}
\newfontfamily{\ErasmSupNum}[VerticalPosition=Superior]{ErasmusMMXVI}


\deffootnotemark{\ErasmSupNum\thefootnotemark}
\newfontfamily{\ErasmUpper}[LetterSpace=6.0]{ErasmusMMXVI}
\newfontfamily{\Biolinum}{Linux Biolinum O}

\addtokomafont{title}{\ErasmUpper}

\newunicodechar{§}{{\Biolinum §}}

\title{ERASMUS MMXVI}
\subtitle{OPEN-TYPE FEATURES}
\date{}

\begin{document}
\maketitle{}

Paragraphenzeichen: § \textit{§}

Ligaturen: fi fl ff fleißig 

Hochzahlen für Fußnoten\footnote{Ha!}

Superior: \textsuperscript{1234567890}

Proportional: 0123456789

\fontspec[RawFeature=+tnum]{ErasmusMMXVI}
Monospaced: 0123456789


\itshape


Ligaturen: fi fl ff ffi ffl fh tr


fleissig\\
{\addfontfeatures{RawFeature=+swsh}
fleissig (Style=Swash)}

Hochzahlen für Fußnoten\footnote{Ha!}

Superior: \textsuperscript{1234567890}

\fontspec[RawFeature=+pnum]{ErasmusMMXVI}
Proportional: 0123456789

\end{document}

在此处输入图片描述

\def这与直接作为主动角色有什么区别?好吧,\def\protected,因此在移动参数时无需特别注意,也不\string需要使用任何技巧。

可能有一个更好的定义,即仅当当前字体中不存在字形时才执行替换:

\newunicodechar{§}{\iffontchar\font`§ §\else{\Biolinum §}\fi}

为了应对scrjura.sty,只需在声明后添加\newunicodechar

\renewcommand*{\Clauseformat}[1]{§~#1}

scrjura.sty这个宏是where中唯一\S被使用的地方。

相关内容