当我将 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 不会改变字符,所以这就是为什么我的示例可以正确编译,而从这里复制却不行。