LuaLaTeX(fontspec、polyglossia)中缺少 GFS Porson 的希腊字符

LuaLaTeX(fontspec、polyglossia)中缺少 GFS Porson 的希腊字符

当我将 GFS Porson 用作希腊字体的文档 LuaLaTeXify 时,当写为 · 时,它不会打印希腊分号 (·),而当写为 ; 时,它会使用拉丁分号。如果我没记错的话,· 是\symbol{0387},它也不会打印任何内容,\anoteleia 也是如此。它适用于 GFS Didot 和许多其他字体,但不适用于 GFS Porson,尽管我拥有来自 TeXlive 的所有文件(在文档中:使用了 GFSPorson.luc 和 GFSPorson.otf)

PS:使用 pdflatex(babel...)没有任何问题。

% -*- mode: latex; TeX-engine: luatex; coding: utf-8; -*-
% \RequirePackage{suffix,xstring}
\documentclass{scrbook}
% \RequirePackage{xargs,cmap,xpatch}
% \input{glyphtounicode.tex}\pdfgentounicode=1
\usepackage{luainputenc}
\usepackage{fontspec}
\setmainfont{texgyrepagella-regular.otf}[Style = Alternate, Ligatures = {Common, {TeX}}]
\newfontfamily\greekfont{GFS Porson}[Ligatures = {TeX}]
\usepackage{polyglossia} % babel doesn't help
\setmainlanguage{german}
\setotherlanguage[variant = ancient]{greek}
\usepackage{fixltx2e}
\begin{document}
blablabla 
\selectlanguage{greek}
ΣΩ.\quad Οὑτωσὶ τοίνυν, ὦ παῖ καλέ, ἐννόησον; ὁ μὲν πρότερος ἦν λόγος
Φαίδρου τοῦ Πυθοκλέους, Μυρρινουσίου ἀνδρός\symbol{0387} ὃν δὲ μέλλω λέγειν
Στησιχόρου τοῦ Εὐφήμου, Ἱμεραίου. λεκτέος δὲ ὧδε· ὅτι οὐκ ἔστ’\,ἔτυμος
λόγος ὃς ἂν παρόντος ἐραστοῦ τῷ μὴ ἐρῶντι φῇ δεῖν χαρίζεσθαι\anoteleia{} ὁ
μὲν μαίνεται, ὁ δὲ σωφρονεῖ.
\end{document}

答案1

只要您使用正确的 Unicode 点 (U+0387),该字符就存在

\documentclass{scrbook}
\usepackage{fontspec}
\setmainfont{texgyrepagella-regular.otf}[Style = Alternate, Ligatures = {Common,TeX}]
\newfontfamily\greekfont{GFS Porson}[Ligatures = TeX]

\usepackage{polyglossia}
\setmainlanguage{german}
\setotherlanguage[variant = ancient]{greek}

\begin{document}

\selectlanguage{greek}
Οὑτωσὶ^^^^0387

\end{document}

在此处输入图片描述

如果你不需要·(U+00B7 MIDDLE DOT)并且担心这种奇怪的转换,你可以这样做

\usepackage{newunicodechar}
\newunicodechar{·}{^^^^0387} % the character is U+00B7 MIDDLE DOT

更多信息。看来 U+00B7 是代替 U+0387 的“首选字符”(原因不明,对我来说很神秘),所以有些软件似乎会随意进行转换。GFS Porson 字体尚未像其他 GFS 字体(Artemisia、Baskerville、Bodoni、Complutum、Didot、Neohellenic 和 Solomos)一样更新,因此它在 U+00B7 中没有任何内容。

我的 Emacs 不会改变字符,所以这就是为什么我的示例可以正确编译,而从这里复制却不行。

相关内容