使用 unicode 在 Xelatex 中直接输入几种语言

使用 unicode 在 Xelatex 中直接输入几种语言

我想在 Latex 文档中直接写入几种语言,例如:संस्कृतम् - ελληνική γλώσσα - 拉丁语 - ꦲꦤꦕꦫꦏ - 埃及象形文字 - 等等... 所以,我的问题是,如何在序言中使用“Xelatex”- Unicode 直接写入这些语言?我尝试使用 \usepackage{xunicode},但没有成功... *第二个问题,是否有 Unicode 支持的语言列表以及可在 Xelatex 中直接写入它们的字体类型?意思是,对于 Unicode 支持的语言,我在序言中输入什么可以让它们直接在 Xelatex 中写入?

答案1

如果您使用的是xelatex,则应加载fontspec允许您设置主字体的 ,\setmainfont{}并且您可以选择您自己的操作系统中的任何字体。这应该是文档主要部分的字体。如果您主要使用拉丁字母书写,则应该选择合适的字体。

就语言而言,我建议使用polyglossia,一开始可能很难使用,但它能完成它的工作。

以下是印地语、希腊语和希伯来语的示例(所有示例均为 Lorem Ipsum)。请注意,您可以通过两种方式执行此操作:

  • 使用\selectlanguage{...}切换到新语言。这是一个命令。
  • 环境\begin{<language>} ... \end{<language>}。这里无需切换,但必须将文本括在这些标签内。

我认为,如果您的字体支持文档中的所有字形,这可能就没有必要了,但可能性不大。尤其是当您为外文脚本设置适当的字体时。

输出

在此处输入图片描述

代码

\documentclass{article}
\usepackage{fontspec}

\setmainfont{Linux Libertine O} % main font

\usepackage{polyglossia}
    \setdefaultlanguage{english} % main language
    \setotherlanguages{hindi, greek, hebrew} % other languages 

% font declarations for the other languages
\newfontfamily\devanagarifont[Script=Devanagari]{Devanagari MT}
\newfontfamily\hebrewfont{Raanana}
\newfontfamily\greekfont[Script=Greek]{Times New Roman}

\setlength\parindent{0cm} % no indent for this example

\begin{document}

Hindi \par

\selectlanguage{hindi}

बलवान किया उपलब्ध संस्थान केन्द्रित तकनिकल क्षमता। सोफ़्टवेर उनका सक्षम निरपेक्ष प्रव्रुति कार्यसिधान्तो सहित पहेला पुस्तक पासपाई विश्व भाषा संपादक स्थिति परिभाषित होभर पहोच। क्षमता यन्त्रालय कार्य वहहर जिसकी जागरुक विश्वास परिभाषित यधपि रहारुप तकनीकी व्रुद्धि सके। बनाने क्षमता अधिकार करती मुक्त

\medskip

\selectlanguage{english}

Greek \par

\begin{greek}
Κυιδαμ φευγαιθ ινσιδεριντ μεα συ, νες δισθας ασομμοδαρε ινστρυσθιορ αν, εα συμ νυσκυαμ ωφφενδιθ. Ευμ εξ συαφιθαθε σονσεσθεθυερ, φυλπυτατε δεμωσριθυμ δεφινιεβας ναμ αδ, ευμ ιν ιυσθο ρεγιονε ρεφερρεντυρ. Φαβυλας χενδρεριτ νεσεσιταθιβυς εαμ ιδ, οδιο σινθ αυγυε ευμ εξ, ευμ εριπυιτ ινθερπρεταρις ιν. Κυανδο αλβυσιυς κυαερενδυμ ατ εσθ, σιθ φερο σαεπε ιισκυε ιδ, τρασθατος σιμιλικυε πρω ατ. Οπθιων δολορεμ σωνσλυδαθυρκυε εα ευμ.
\end{greek}
\medskip

Hebrew \par

\begin{hebrew}
אם עזה דפים הגולשות. פנאי לעתים אנגלית כתב בה. דת עזרה המקובל טבלאות מתן, את זקוק שנורו למנוע סדר, אחד קבלו אינטרנט גם. גם לחבר בלשנות ויקיפדיה שער, את קרן הבקשה הספרות, את בדף כלשהו תקשורת. מה לאחרונה אווירונאוטיקה היא, ממונרכיה אנציקלופדיה רבה או. אל כלשהו מדריכים שמו.
\end{hebrew}
\end{document}

答案2

您的问题分为几个部分。

如何使用 XeLaTeX?

为了使用 XeLaTeX 编译 unicode 文档,您首先需要编写 unicode 文档。因此,您必须将其制作成 UTF-8 文档。完成此操作后,一切都变得非常简单。您可以像使用 PDFLatex 一样编写文档,但您将使用 xelatex.exe 编译它。至于用不同语言编写字符,您只需要在 utf-8 文档中正常编写它们,XeLaTeX 就会像处理普通字符一样处理它们。

什么是 utf-8,以及如何使用它?

使用 utf-8 并不是您通常直接关注的事情,因此大多数人并不真正了解它是什么。要理解它,您需要记住,当您编写文件时,无论是 .tex、.txt 还是 .exe,您实际上只是在编写一系列二进制数字。UTF-8、ANSI 和其他一些名称是我们用来关联二进制数字和字符的几个不同“表”的名称。

问题是,某些编码(这就是它们的名称)可以选择包含其他编码不包含的某些字符。UTF-8 的全部意义(以及设计用于与之配合使用的 XeLaTeX 和 LuaLaTeX)在于能够对整个 Unicode 标准范围进行编码。

要在文件中使用 utf-8,您需要一个能够(并配置为)使用此编码的编辑器。至于 LaTeX IDE,Texmaker确实如此。从更一般的意义上讲,notepad++它允许您在不同的编码之间进行转换,因此是有益的。

一旦您确定使用 utf-8 编码,您就不需要使用任何特定的包来告诉 XeLaTeX,因为它已经知道如何使用它。

有受支持的语言列表吗?

一旦使用 utf-8 编写,您可以访问的语言就是所有支持 utf-8(因此也是 unicode)的语言。所以从理论上讲,几乎任何语言都可以。现在,真正的问题是要有一种包含这些字符的字体,因此您可能需要仔细选择使用的字体,并了解如何切换字体。但除此之外……天空才是您的极限!

相关内容