如何在 XeLaTex 中自动换行/编号文本

如何在 XeLaTex 中自动换行/编号文本

我想知道是否存在一种自动拆分两行的方法。问题是我想把这首诗:[荷马的奥德赛] 放进去,然后生成一个文档,列出每行的行数 [5 行之后,比如 5 - 10 - 15 ...,就像我放入的行数],然后拆分诗歌的每一节 [不需要我在每一行中手动输入\\, \newline, 等等... ]

\documentclass[11pt]{book}
\usepackage[margin=0.5cm]{geometry}
\usepackage{titlesec}
\usepackage{polyglossia}
\defaultfontfeatures{Ligatures=TeX}
\setmainlanguage{brazil}
\setotherlanguage[variant=ancient]{greek}
\setmainfont{Linux Libertine O}

\begin{document}
ἄνδρα μοι ἔννεπε, μοῦσα, πολύτροπον, ὃς μάλα πολλὰ
πλάγχθη, ἐπεὶ Τροίης ἱερὸν πτολίεθρον ἔπερσεν:
πολλῶν δ᾽ ἀνθρώπων ἴδεν ἄστεα καὶ νόον ἔγνω,
πολλὰ δ᾽ ὅ γ᾽ ἐν πόντῳ πάθεν ἄλγεα ὃν κατὰ θυμόν,
[5] ἀρνύμενος ἥν τε ψυχὴν καὶ νόστον ἑταίρων.
ἀλλ᾽ οὐδ᾽ ὣς ἑτάρους ἐρρύσατο, ἱέμενός περ:
αὐτῶν γὰρ σφετέρῃσιν ἀτασθαλίῃσιν ὄλοντο,
νήπιοι, οἳ κατὰ βοῦς Ὑπερίονος Ἠελίοιο
ἤσθιον: αὐτὰρ ὁ τοῖσιν ἀφείλετο νόστιμον ἦμαρ.
[10] τῶν ἁμόθεν γε, θεά, θύγατερ Διός, εἰπὲ καὶ ἡμῖν.

ἔνθ᾽ ἄλλοι μὲν πάντες, ὅσοι φύγον αἰπὺν ὄλεθρον,
οἴκοι ἔσαν, πόλεμόν τε πεφευγότες ἠδὲ θάλασσαν:
τὸν δ᾽ οἶον νόστου κεχρημένον ἠδὲ γυναικὸς
νύμφη πότνι᾽ ἔρυκε Καλυψὼ δῖα θεάων
[15] ἐν σπέσσι γλαφυροῖσι, λιλαιομένη πόσιν εἶναι.
ἀλλ᾽ ὅτε δὴ ἔτος ἦλθε περιπλομένων ἐνιαυτῶν,
τῷ οἱ ἐπεκλώσαντο θεοὶ οἶκόνδε νέεσθαι
εἰς Ἰθάκην, οὐδ᾽ ἔνθα πεφυγμένος ἦεν ἀέθλων
καὶ μετὰ οἷσι φίλοισι. θεοὶ δ᾽ ἐλέαιρον ἅπαντες
[20] νόσφι Ποσειδάωνος: ὁ δ᾽ ἀσπερχὲς μενέαινεν
ἀντιθέῳ Ὀδυσῆι πάρος ἣν γαῖαν ἱκέσθαι.

ἀλλ᾽ ὁ μὲν Αἰθίοπας μετεκίαθε τηλόθ᾽ ἐόντας,
Αἰθίοπας τοὶ διχθὰ δεδαίαται, ἔσχατοι ἀνδρῶν,
οἱ μὲν δυσομένου Ὑπερίονος οἱ δ᾽ ἀνιόντος,
[25] ἀντιόων ταύρων τε καὶ ἀρνειῶν ἑκατόμβης.
ἔνθ᾽ ὅ γ᾽ ἐτέρπετο δαιτὶ παρήμενος: οἱ δὲ δὴ ἄλλοι
Ζηνὸς ἐνὶ μεγάροισιν Ὀλυμπίου ἁθρόοι ἦσαν.
τοῖσι δὲ μύθων ἦρχε πατὴρ ἀνδρῶν τε θεῶν τε:
μνήσατο γὰρ κατὰ θυμὸν ἀμύμονος Αἰγίσθοιο,
[30] τόν ῥ᾽ Ἀγαμεμνονίδης τηλεκλυτὸς ἔκταν᾽ Ὀρέστης:
τοῦ ὅ γ᾽ ἐπιμνησθεὶς ἔπε᾽ ἀθανάτοισι μετηύδα:
\end{document}

答案1

您可以根据希望的效果以多种方式执行此操作。由于您在书籍类中指定了非常小的边距,因此您的 mwe 有点令人困惑。这可能是一个问题的原因是,通常,行号写在边距中,并且使用这种设置,边距太小了。抛开这一点...

如果您不想\\在每行末尾写上 ,则需要使用 verbatim 环境,alltt通常用于将字体改回默认的非等宽字体。对于行号,您需要使用附加包,例如 。lineno以下代码几乎可以满足您的要求:

\documentclass[11pt,preview,margin=1cm]{standalone}
%\usepackage[margin=1cm]{geometry}
\usepackage{titlesec}
\usepackage{fontspec}
\usepackage{polyglossia}
\defaultfontfeatures{Ligatures=TeX}
\setmainlanguage{brazil}
\setotherlanguage[variant=ancient]{greek}
\setmainfont{Linux Libertine O}

\usepackage{alltt}
\usepackage{lineno}

\begin{document}
{
\internallinenumbers\modulolinenumbers[5]
\begin{alltt}\normalfont
ἄνδρα μοι ἔννεπε, μοῦσα, πολύτροπον, ὃς μάλα πολλὰ
πλάγχθη, ἐπεὶ Τροίης ἱερὸν πτολίεθρον ἔπερσεν:
πολλῶν δ᾽ ἀνθρώπων ἴδεν ἄστεα καὶ νόον ἔγνω,
πολλὰ δ᾽ ὅ γ᾽ ἐν πόντῳ πάθεν ἄλγεα ὃν κατὰ θυμόν,
ἀρνύμενος ἥν τε ψυχὴν καὶ νόστον ἑταίρων.
ἀλλ᾽ οὐδ᾽ ὣς ἑτάρους ἐρρύσατο, ἱέμενός περ:
αὐτῶν γὰρ σφετέρῃσιν ἀτασθαλίῃσιν ὄλοντο,
νήπιοι, οἳ κατὰ βοῦς Ὑπερίονος Ἠελίοιο
ἤσθιον: αὐτὰρ ὁ τοῖσιν ἀφείλετο νόστιμον ἦμαρ.
τῶν ἁμόθεν γε, θεά, θύγατερ Διός, εἰπὲ καὶ ἡμῖν.

ἔνθ᾽ ἄλλοι μὲν πάντες, ὅσοι φύγον αἰπὺν ὄλεθρον,
οἴκοι ἔσαν, πόλεμόν τε πεφευγότες ἠδὲ θάλασσαν:
τὸν δ᾽ οἶον νόστου κεχρημένον ἠδὲ γυναικὸς
νύμφη πότνι᾽ ἔρυκε Καλυψὼ δῖα θεάων
ἐν σπέσσι γλαφυροῖσι, λιλαιομένη πόσιν εἶναι.
ἀλλ᾽ ὅτε δὴ ἔτος ἦλθε περιπλομένων ἐνιαυτῶν,
τῷ οἱ ἐπεκλώσαντο θεοὶ οἶκόνδε νέεσθαι
εἰς Ἰθάκην, οὐδ᾽ ἔνθα πεφυγμένος ἦεν ἀέθλων
καὶ μετὰ οἷσι φίλοισι. θεοὶ δ᾽ ἐλέαιρον ἅπαντες
νόσφι Ποσειδάωνος: ὁ δ᾽ ἀσπερχὲς μενέαινεν
ἀντιθέῳ Ὀδυσῆι πάρος ἣν γαῖαν ἱκέσθαι.

ἀλλ᾽ ὁ μὲν Αἰθίοπας μετεκίαθε τηλόθ᾽ ἐόντας,
Αἰθίοπας τοὶ διχθὰ δεδαίαται, ἔσχατοι ἀνδρῶν,
οἱ μὲν δυσομένου Ὑπερίονος οἱ δ᾽ ἀνιόντος,
ἀντιόων ταύρων τε καὶ ἀρνειῶν ἑκατόμβης.
ἔνθ᾽ ὅ γ᾽ ἐτέρπετο δαιτὶ παρήμενος: οἱ δὲ δὴ ἄλλοι
Ζηνὸς ἐνὶ μεγάροισιν Ὀλυμπίου ἁθρόοι ἦσαν.
τοῖσι δὲ μύθων ἦρχε πατὴρ ἀνδρῶν τε θεῶν τε:
μνήσατο γὰρ κατὰ θυμὸν ἀμύμονος Αἰγίσθοιο,
τόν ῥ᾽ Ἀγαμεμνονίδης τηλεκλυτὸς ἔκταν᾽ Ὀρέστης:
τοῦ ὅ γ᾽ ἐπιμνησθεὶς ἔπε᾽ ἀθανάτοισι μετηύδα:
\end{alltt}}
\end{document}

在此处输入图片描述

但请注意,行号是错误的,因为它考虑了节之间的空行。lineno在普通文本中不会这样做,但由于我们使用的是逐字模式,所以空行确实算作一行。可能有办法解决这个问题,但我还没有想出办法。

此外,使用此解决方案时,您的文本不会与其余文本相比缩进,而这通常是诗句的排版方式。您必须使用其他环境(例如varwidth或 )minipage才能做到这一点。

使用该解决方案时要注意的另一件事是,如果线太长,它将不会被断开,并且您将得到一个overfull hbox


对于诗句和诗歌,LaTeX 提供了verse基本的环境,但在大多数情况下已经足够了。但是它要求你用 来结束每节诗句,\\并且不提供行号功能。

为此,我们创建了一个包,用verse可配置性更强的东西取代原始环境。它仍然需要您\\在每行末尾添加(\\!如果您使用行号,则需要在每节末尾添加),但可以按照您想要的方式进行编号。

\documentclass[11pt,preview,margin=1cm]{standalone}
%\usepackage[margin=1cm]{geometry}
\usepackage{titlesec}
\usepackage{fontspec}
\usepackage{polyglossia}
\defaultfontfeatures{Ligatures=TeX}
\setmainlanguage{brazil}
\setotherlanguage[variant=ancient]{greek}
\setmainfont{Linux Libertine O}

\usepackage{verse}
\usepackage{alltt}
\usepackage{lineno}

\begin{document}

\poemlines{5}
\verselinenumbersleft
\setlength{\vrightskip}{-4em}
\verselinenumfont{\tiny\raggedright}
\selectlanguage{greek}
\begin{verse}
ἄνδρα μοι ἔννεπε, μοῦσα, πολύτροπον, ὃς μάλα πολλὰ\\
πλάγχθη, ἐπεὶ Τροίης ἱερὸν πτολίεθρον ἔπερσεν:\\
πολλῶν δ᾽ ἀνθρώπων ἴδεν ἄστεα καὶ νόον ἔγνω,\\
πολλὰ δ᾽ ὅ γ᾽ ἐν πόντῳ πάθεν ἄλγεα ὃν κατὰ θυμόν,\\
ἀρνύμενος ἥν τε ψυχὴν καὶ νόστον ἑταίρων.\\
ἀλλ᾽ οὐδ᾽ ὣς ἑτάρους ἐρρύσατο, ἱέμενός περ:\\
αὐτῶν γὰρ σφετέρῃσιν ἀτασθαλίῃσιν ὄλοντο,\\
νήπιοι, οἳ κατὰ βοῦς Ὑπερίονος Ἠελίοιο\\
ἤσθιον: αὐτὰρ ὁ τοῖσιν ἀφείλετο νόστιμον ἦμαρ.\\
τῶν ἁμόθεν γε, θεά, θύγατερ Διός, εἰπὲ καὶ ἡμῖν.\\!

ἔνθ᾽ ἄλλοι μὲν πάντες, ὅσοι φύγον αἰπὺν ὄλεθρον,\\
οἴκοι ἔσαν, πόλεμόν τε πεφευγότες ἠδὲ θάλασσαν:\\
τὸν δ᾽ οἶον νόστου κεχρημένον ἠδὲ γυναικὸς\\
νύμφη πότνι᾽ ἔρυκε Καλυψὼ δῖα θεάων\\
ἐν σπέσσι γλαφυροῖσι, λιλαιομένη πόσιν εἶναι.\\
ἀλλ᾽ ὅτε δὴ ἔτος ἦλθε περιπλομένων ἐνιαυτῶν,\\
τῷ οἱ ἐπεκλώσαντο θεοὶ οἶκόνδε νέεσθαι\\
εἰς Ἰθάκην, οὐδ᾽ ἔνθα πεφυγμένος ἦεν ἀέθλων\\
καὶ μετὰ οἷσι φίλοισι. θεοὶ δ᾽ ἐλέαιρον ἅπαντες\\
νόσφι Ποσειδάωνος: ὁ δ᾽ ἀσπερχὲς μενέαινεν\\
ἀντιθέῳ Ὀδυσῆι πάρος ἣν γαῖαν ἱκέσθαι.\\!

ἀλλ᾽ ὁ μὲν Αἰθίοπας μετεκίαθε τηλόθ᾽ ἐόντας,\\
Αἰθίοπας τοὶ διχθὰ δεδαίαται, ἔσχατοι ἀνδρῶν,\\
οἱ μὲν δυσομένου Ὑπερίονος οἱ δ᾽ ἀνιόντος,\\
ἀντιόων ταύρων τε καὶ ἀρνειῶν ἑκατόμβης.\\
ἔνθ᾽ ὅ γ᾽ ἐτέρπετο δαιτὶ παρήμενος: οἱ δὲ δὴ ἄλλοι\\
Ζηνὸς ἐνὶ μεγάροισιν Ὀλυμπίου ἁθρόοι ἦσαν.\\
τοῖσι δὲ μύθων ἦρχε πατὴρ ἀνδρῶν τε θεῶν τε:\\
μνήσατο γὰρ κατὰ θυμὸν ἀμύμονος Αἰγίσθοιο,\\
τόν ῥ᾽ Ἀγαμεμνονίδης τηλεκλυτὸς ἔκταν᾽ Ὀρέστης:\\
τοῦ ὅ γ᾽ ἐπιμνησθεὶς ἔπε᾽ ἀθανάτοισι μετηύδα:\\!
\end{verse}
\end{document}

在此处输入图片描述

对我来说,这是排版文本的最佳方式。当然,你需要对行尾做更多的工作,但使用精心设计的搜索和替换正则表达式应该很容易实现自动化。请查看软件包手册,verse了解它提供的所有不同选项。

相关内容