我正在尝试使用 manyfoot 包来添加 perpage 脚注。我还想使用 polyglossia 包来为多音调希腊文本添加连字符。
但是使用此代码,我收到一个错误:
\documentclass[11pt]{book}
%\usepackage[margin=1cm]{geometry}
\usepackage{titlesec}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainfont{Times New Roman}
\setdefaultlanguage[variant=poly]{greek}
\setmainlanguage[variant=poly]{greek}
\setotherlanguage{english}
\setmainfont{Times New Roman}
\newfontfamily\greekfont{Times New Roman}
\usepackage{alltt}
\usepackage{lineno}
\usepackage[para*,ruled,perpage]{manyfoot}
\DeclareNewFootnote[para]{A}
\newcommand{\mytext}{This is a footnote for my page. It should be long and create lots of problems, if possible.}
\begin{document}
\begin{alltt}\normalfont
ἔνθ᾽ ἄλλοι μὲν πάντες, \footnoteA{\mytext}ὅσοι φύγον αἰπὺν ὄλεθρον,
οἴκοι ἔσαν, πόλεμόν τε \footnoteA{\mytext}πεφευγότες ἠδὲ θάλασσαν:
τὸν δ᾽ οἶον νόστου \footnoteA{\mytext}κεχρημένον ἠδὲ γυναικὸς
νύμφη πότνι᾽ ἔρυκε \footnoteA{\mytext}Καλυψὼ δῖα θεάων
ἐν σπέσσι γλαφυροῖσι, \footnoteA{\mytext}λιλαιομένη πόσιν εἶναι.
ἀλλ᾽ ὅτε δὴ ἔτος ἦλθε \footnoteA{\mytext}περιπλομένων ἐνιαυτῶν,
τῷ οἱ ἐπεκλώσαντο \footnoteA{\mytext}θεοὶ οἶκόνδε νέεσθαι
εἰς Ἰθάκην, οὐδ᾽ \footnoteA{\mytext}ἔνθα πεφυγμένος ἦεν ἀέθλων
καὶ μετὰ οἷσι \footnoteA{\mytext}φίλοισι. θεοὶ δ᾽ ἐλέαιρον ἅπαντες
νόσφι Ποσειδάωνος: \footnoteA{\mytext}ὁ δ᾽ ἀσπερχὲς μενέαινεν
ἀντιθέῳ Ὀδυσῆι πάρος \footnoteA{\mytext}ἣν γαῖαν ἱκέσθαι.
\end{alltt}
\end{document}
错误在这里:
! 软件包 polyglossia 错误:当前拉丁字体 TimesNewRoman(1) 不包含“希腊”文字!(polyglossia) 请使用 \newfontfamily 命令定义 \greekfont。
我按照说明添加了 \greekfont 定义。但是,错误仍然出现。这似乎与 \begin{alltt}\normalfont 调用发生冲突,因为如果我注释掉 alltt 行,错误就会消失,代码就会按预期运行。
有人知道为什么会出现此错误吗?它是否与 \normalfont 调用有某种关系?
答案1
错误消息有点误导。问题是alltt
想要使用等宽字体,错误应该告诉用户\greekfonttt
,但(这是一个老问题)它只报告\greekfont
。
您不需要alltt
,但是flushleft
,如果您想完全控制,则需要标记行结束的位置。
这是更好的而不是信任输入格式,因为文本编辑器程序可能与您有不同的想法;共享文件可能会导致文本重排问题,并且您的换行符可能会丢失。
\documentclass[11pt]{book}
%\usepackage[margin=1cm]{geometry}
\usepackage{titlesec}
\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage{alltt}
\usepackage{lineno}
\usepackage[para*,ruled,perpage]{manyfoot}
\setmainfont{Times New Roman}
\setmainlanguage[variant=poly]{greek}
\setotherlanguage{english}
\newfontfamily\greekfont{Times New Roman}
%\newfontfamily\greekfonttt{Times New Roman} % if you really want alltt
\DeclareNewFootnote[para]{A}
\newcommand{\mytext}{This is a footnote for my page.
It should be long and create lots of problems, if possible.}
\begin{document}
\begin{flushleft}
ἔνθ᾽ ἄλλοι μὲν πάντες, \footnoteA{\mytext}ὅσοι φύγον αἰπὺν ὄλεθρον, \\
οἴκοι ἔσαν, πόλεμόν τε \footnoteA{\mytext}πεφευγότες ἠδὲ θάλασσαν: \\
τὸν δ᾽ οἶον νόστου \footnoteA{\mytext}κεχρημένον ἠδὲ γυναικὸς \\
νύμφη πότνι᾽ ἔρυκε \footnoteA{\mytext}Καλυψὼ δῖα θεάων \\
ἐν σπέσσι γλαφυροῖσι, \footnoteA{\mytext}λιλαιομένη πόσιν εἶναι. \\
ἀλλ᾽ ὅτε δὴ ἔτος ἦλθε \footnoteA{\mytext}περιπλομένων ἐνιαυτῶν, \\
τῷ οἱ ἐπεκλώσαντο \footnoteA{\mytext}θεοὶ οἶκόνδε νέεσθαι \\
εἰς Ἰθάκην, οὐδ᾽ \footnoteA{\mytext}ἔνθα πεφυγμένος ἦεν ἀέθλων \\
καὶ μετὰ οἷσι \footnoteA{\mytext}φίλοισι. θεοὶ δ᾽ ἐλέαιρον ἅπαντες \\
νόσφι Ποσειδάωνος: \footnoteA{\mytext}ὁ δ᾽ ἀσπερχὲς μενέαινεν \\
ἀντιθέῳ Ὀδυσῆι πάρος \footnoteA{\mytext}ἣν γαῖαν ἱκέσθαι.
\end{flushleft}
\end{document}
\greekfonttt
如果取消注释该行,将其更改flushleft
为alltt
,然后删除,则会得到相同的结果\\
。