> For the complete documentation index, see [llms.txt](https://ayakaleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ayakaleaf-pro.ayaka.space/latex/zh-cn/yu-yan/05-arabic.md).

# 阿拉伯语

## 引言

在本文中，我们将解释如何使用 [`arabtex`](https://ctan.org/pkg/arabtex?lang=en) 宏包来排版 `pdfLaTeX`。不过，底层的 pdfTeX 引擎（软件）负责排版/处理您的 pdfLaTeX 文档，但对排版诸如 [阿拉伯语](https://en.wikipedia.org/wiki/Arabic), [希伯来语](https://en.wikipedia.org/wiki/Hebrew_language), [天城文](https://en.wikipedia.org/wiki/Devanagari) 或 [马拉雅拉姆语](https://en.wikipedia.org/wiki/Malayalam)这类复杂文字脚本语言的支持相对有限。排版这类语言需要对基于 Unicode 的文本输入提供更完整的支持、使用 OpenType 字体以及 pdf(La)TeX 中所不具备的其他能力。

许多作者因其工作流程的要求而必须使用 pdfLaTeX，但如果你 *已* 可以选择 LaTeX 编译器， **现代的阿拉伯语排版方法是使用 XeLaTeX（XeTeX 引擎）或 LuaLaTeX（LuaHBTeX 引擎）**。LuaLaTeX 通过 LuaHBTeX 提供了基于 TeX 的最先进、最完整的复杂文字脚本语言排版方案。 **请参见这些关于** [**polyglossia**](/latex/zh-cn/yu-yan/01-multilingual-typesetting-on-overleaf-using-polyglossia-and-fontspec.md) **和** [**babel**](/latex/zh-cn/yu-yan/02-multilingual-typesetting-on-overleaf-using-babel-and-fontspec.md).

### 关于 arabtex 宏包的说明

Klaus Lagally 开始着手开发 `arabtex` 宏包于 1991 年，主要作为个人项目——参见 [该宏包文档的附录 B](https://mirror.apps.cam.ac.uk/pub/tex-archive/language/arabic/arabtex/doc/pdf/arabdoc.pdf)。它的起源和早期发展比 pdfTeX 的出现早约 5 年，比 LuaHBTeX 和 XeTeX 早了十多年——而且远早于 Unicode 和 OpenType 字体的兴起。该 `arabtex` 宏包是复杂 TeX 编程的一项力作，但其许多核心组件文件目前可追溯到大约 2003 年，这意味着该 `arabtex` 宏包的年代可能会导致其与当前版本的 LaTeX 或 LaTeX 宏包不兼容。

## 第一个 arabtex 示例

下面这个基本示例使用 `arabtex` 该宏包来排版一个阿拉伯语单词：

```latex
\documentclass[a4paper,10pt]{article}
\usepackage{arabtex}
\usepackage{utf8}
\setcode{utf8}
\begin{document}
下面是“Arabic”这个词用阿拉伯语书写的形式：  \<اَلْعَرَبِيَّةُ>。你也可以像这样使用命令 \verb|\RL{arabic text}|：\RL{اَلْعَرَبيَّةُ}。
\end{document}
```

[打开此 `pdfLaTeX` 和 `arabtex` Overleaf 中的示例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+Arabic+text+example\&snip=%5Cdocumentclass%5Ba4paper%2C10pt%5D%7Barticle%7D%0A%5Cusepackage%7Barabtex%7D%0A%5Cusepackage%7Butf8%7D%0A%5Csetcode%7Butf8%7D%0A%5Cbegin%7Bdocument%7D%0AHere+is+the+word+%60%60Arabic%27%27+written+in+Arabic%3A++%5C%3C%D8%A7%D9%8E%D9%84%D9%92%D8%B9%D9%8E%D8%B1%D9%8E%D8%A8%D9%90%D9%8A%D9%8E%D9%91%D8%A9%D9%8F%3E.+You+can+also+use+the+command+%5Cverb%7C%5CRL%7Barabic+text%7D%7C+like+this%3A+%5CRL%7B%D8%A7%D9%8E%D9%84%D9%92%D8%B9%D9%8E%D8%B1%D9%8E%D8%A8%D9%8A%D9%8E%D9%91%D8%A9%D9%8F%7D.%0A%5Cend%7Bdocument%7D)

此示例生成如下输出：

![由 arabtex 排版的阿拉伯语示例](/files/80b4e567af002d5e32def1c2b4bd623f58b2767b)

请注意， `*arabic text*` 与命令一起使用的 `\RL{*arabic text*}` 不应包含超过一个段落的从右向左文本。

### arabtex：音译输入或 UTF-8 输入

该 `arabtex` 该宏包支持通过一种特定形式的音译来排版阿拉伯语文本：用拉丁字母书写阿拉伯语。下面是文档中的一个示例片段： `arabtex` 请注意阿拉伯语文本是如何以拉丁文本表示的，并被转换为阿拉伯语：

```latex
\documentclass[12pt]{article}
\usepackage{arabtex}
\begin{document}
\setarab % choose the language specific conventions
\vocalize % switch diacritics for short vowels on
%\transtrue % display the transliteration
\arabtrue % print arabic text (on by default)
\centerline {\RL{^gu.hA wa-.himAruhu}} % typeset a centred line of Arabic text
\begin{RLtext}
fa-qAla lahu ^gu.hA:

.garIbuN 'amruka yA .sadIqI!
'a-tu.saddiqu al-.himAra wa-tuka_d_dibunI?
\end{RLtext}
\end{document}
```

[打开此 `pdfLaTeX` 和 `arabtex` Overleaf 中的示例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+Arabic+text+example\&snip=%5Cdocumentclass%5B12pt%5D%7Barticle%7D%0A%5Cusepackage%7Barabtex%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetarab+%25+choose+the+language+specific+conventions%0A%5Cvocalize+%25+switch+diacritics+for+short+vowels+on%0A%25%5Ctranstrue+%25+display+the+transliteration%0A%5Carabtrue+%25+print+arabic+text+%28on+by+default%29%0A%5Ccenterline+%7B%5CRL%7B%5Egu.hA+wa-.himAruhu%7D%7D+%25+typeset+a+centred+line+of+Arabic+text%0A%5Cbegin%7BRLtext%7D%0Afa-qAla+lahu+%5Egu.hA%3A%0A%0A.garIbuN+%27amruka+yA+.sadIqI%21%0A%27a-tu.saddiqu+al-.himAra+wa-tuka_d_dibunI%3F%0A%5Cend%7BRLtext%7D%0A%5Cend%7Bdocument%7D)

此示例生成如下输出：

![由 arabtex 排版的阿拉伯语示例](/files/ea4c17076efe8ce0607557b43acea70da7462845)

如果我们想 `arabtex` 将实际的阿拉伯语文本作为输入，而不是拉丁音译文本，我们必须告诉 `arabtex` 它改用 UTF-8 输入，只需写

```latex
\usepackage{utf8}
\setcode{utf8}
```

该 `utf8` 该宏包是……的一部分 `arabtex` 宏包。

## 第二个 arabtex 示例

下面的示例包含一段更长的阿拉伯语文本，其中也包含一些英文单词：

```latex
\documentclass[a4paper,10pt]{article}
\usepackage{arabtex}
\usepackage{utf8}
\begin{document}
\setcode{utf8}
下面是“Arabic”这个词用阿拉伯语书写的形式：  \<اَلْعَرَبِيَّةُ>。你也可以像这样使用命令 \verb|\RL{arabic text}|：\RL{اَلْعَرَبيَّةُ}。

\vspace{10pt}
下面是一段更长的阿拉伯语，其中在 \verb|\LR| 命令内包含了一些英文单词：

\vspace{10pt}
\begin{RLtext}
يعود تاريخ علوم الحاسوب إلى اختراع أول حاسوب رقمي حديث. فقبل العشرينات من القرن العشرين، كان مصطلح حاسوب \LR{Computer} يشير إلى أي أداة بشرية تقوم بعملية الحسابات. ما هي القضايا أو الأشياء التي يمكن لآلة أن تحسبها باتباع قائمة من التعليمات مع ورقة وقلم، دون تحديد للزمن اللازم ودون أي مهارات أو بصيرة (ذكاء)؟ وكان أحد دوافع هذه الدراسات هو تطوير آلات حاسبة \LR{computing machines} يمكنها إتمام الأعمال الروتينية والعرضة للخطأ البشري عند إجراء حسابات بشرية.
خلال الأربعينات، مع تطوير آلات حاسبة أكثر قوة وقدرة حسابية، تتطور مصطلح حاسوب ليشير إلى الآلات بدلا من الأشخاص الذين يقومون بالحسابات. وأصبح من الواضح أن الحواسيب يمكنها أن تقوم بأكثر من مجرد عمليات حسابية وبالتالي انتقلوا لدراسة تحسيب أو التحسيب بشكل عام. بدأت المعلوماتية وعلوم الحاسب تأخذ استقلالها كفرع أكاديمي مستقل في الستينات، مع إيجاد أوائل أقسام علوم الحاسب في الجامعات وبدأت الجامعات تعطي إجازات في هذه العلوم [1].
\end{RLtext}
\end{document}
```

[打开此 `pdfLaTeX` 和 `arabtex` Overleaf 中的示例。](<https://www.overleaf.com/docs?engine=pdflatex\&snip_name=A+more+complete+arabtex+example\&snip=\documentclass\[a4paper,10pt]{article}&#xA;\usepackage{arabtex}&#xA;\usepackage{utf8}&#xA;\begin{document}&#xA;\setcode{utf8}&#xA;Here+is+the+word+``Arabic''+written+in+Arabic:++\\\<اَلْعَرَبِيَّةُ\>.+You+can+also+use+the+command+\verb|\RL{arabic+text}|+like+this:+\RL{اَلْعَرَبيَّةُ}.+&#xA;&#xA;\vspace{10pt}&#xA;Here+is+a+larger+section+of+Arabic,+containing+some+words+in+English+within+the+\verb|\LR|+command:&#xA;&#xA;\vspace{10pt}&#xA;\begin{RLtext}&#xA;يعود+تاريخ+علوم+الحاسوب+إلى+اختراع+أول+حاسوب+رقمي+حديث.+فقبل+العشرينات+من+القرن+العشرين،+كان+مصطلح+حاسوب+\LR{Computer}+يشير+إلى+أي+أداة+بشرية+تقوم+بعملية+الحسابات.+ما+هي+القضايا+أو+الأشياء+التي+يمكن+لآلة+أن+تحسبها+باتباع+قائمة+من+التعليمات+مع+ورقة+وقلم،+دون+تحديد+للزمن+اللازم+ودون+أي+مهارات+أو+بصيرة+(ذكاء)؟+وكان+أحد+دوافع+هذه+الدراسات+هو+تطوير+آلات+حاسبة+\LR{computing+machines}+يمكنها+إتمام+الأعمال+الروتينية+والعرضة+للخطأ+البشري+عند+إجراء+حسابات+بشرية.&#xA;خلال+الأربعينات،+مع+تطوير+آلات+حاسبة+أكثر+قوة+وقدرة+حسابية،+تتطور+مصطلح+حاسوب+ليشير+إلى+الآلات+بدلا+من+الأشخاص+الذين+يقومون+بالحسابات.+وأصبح+من+الواضح+أن+الحواسيب+يمكنها+أن+تقوم+بأكثر+من+مجرد+عمليات+حسابية+وبالتالي+انتقلوا+لدراسة+تحسيب+أو+التحسيب+بشكل+عام.+بدأت+المعلوماتية+وعلوم+الحاسب+تأخذ+استقلالها+كفرع+أكاديمي+مستقل+في+الستينات،+مع+إيجاد+أوائل+أقسام+علوم+الحاسب+في+الجامعات+وبدأت+الجامعات+تعطي+إجازات+في+هذه+العلوم+\[1].+&#xA;\end{RLtext}&#xA;\end{document}>)

## 一个也使用 babel 的 arabtex 示例

下面的示例使用 `arabtex` 再加上前面的 `babel` 和 `inputenc` 这些宏包，原因将在下文说明。

```latex
\documentclass[11pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage{arabtex}
%\usepackage[LAE]{fontenc} %Not needed due to [arabic] option of the babel package
\usepackage[arabic]{babel}
\title{
    \Huge\textsc{اللغة العربية}
}
\author{سالم البوزيدي}
\begin{document}
\maketitle
\tableofcontents
\chapter{علوم الحاسوب}
\section{تاريخ}
\begin{otherlanguage}{arabic}
يعود تاريخ علوم الحاسوب إلى اختراع أول حاسوب رقمي حديث. فقبل العشرينات من القرن العشرين، كان مصطلح حاسوب \textLR{Computer} يشير إلى أي أداة بشرية تقوم بعملية الحسابات. ما هي القضايا أو الأشياء التي يمكن لآلة أن تحسبها باتباع قائمة من التعليمات مع ورقة وقلم، دون تحديد للزمن اللازم ودون أي مهارات أو بصيرة (ذكاء)؟ وكان أحد دوافع هذه الدراسات هو تطوير آلات حاسبة \textLR{computing machines} يمكنها إتمام الأعمال الروتينية والعرضة للخطأ البشري عند إجراء حسابات بشرية.
خلال الأربعينات، مع تطوير آلات حاسبة أكثر قوة وقدرة حسابية، تتطور مصطلح حاسوب ليشير إلى الآلات بدلا من الأشخاص الذين يقومون بالحسابات. وأصبح من الواضح أن الحواسيب يمكنها أن تقوم بأكثر من مجرد عمليات حسابية وبالتالي انتقلوا لدراسة تحسيب أو التحسيب بشكل عام. بدأت المعلوماتية وعلوم الحاسب تأخذ استقلالها كفرع أكاديمي مستقل في الستينات، مع إيجاد أوائل أقسام علوم الحاسب في الجامعات وبدأت الجامعات تعطي إجازات في هذه العلوم [1].
\end{otherlanguage}
\end{document}
```

[在 Overleaf 中打开此阿拉伯语文本示例](<https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Typesetting+Arabic+with+pdfLaTeX\&snip=\documentclass\[11pt,a4paper]{report}&#xA;\usepackage\[utf8]{inputenc}&#xA;\usepackage{arabtex}&#xA;%\usepackage\[LAE]{fontenc}+%Not+needed+due+to+\[arabic]+option+of+the+babel+package&#xA;\usepackage\[arabic]{babel}&#xA;\title{&#xA;++++\Huge\textsc{اللغة+العربية}&#xA;}&#xA;\author{سالم+البوزيدي}&#xA;\begin{document}&#xA;\maketitle&#xA;\tableofcontents&#xA;\chapter{علوم+الحاسوب}&#xA;\section{تاريخ}&#xA;\begin{otherlanguage}{arabic}&#xA;يعود+تاريخ+علوم+الحاسوب+إلى+اختراع+أول+حاسوب+رقمي+حديث.+فقبل+العشرينات+من+القرن+العشرين،+كان+مصطلح+حاسوب+\textLR{Computer}+يشير+إلى+أي+أداة+بشرية+تقوم+بعملية+الحسابات.+ما+هي+القضايا+أو+الأشياء+التي+يمكن+لآلة+أن+تحسبها+باتباع+قائمة+من+التعليمات+مع+ورقة+وقلم،+دون+تحديد+للزمن+اللازم+ودون+أي+مهارات+أو+بصيرة+(ذكاء)؟+وكان+أحد+دوافع+هذه+الدراسات+هو+تطوير+آلات+حاسبة+\textLR{computing+machines}+يمكنها+إتمام+الأعمال+الروتينية+والعرضة+للخطأ+البشري+عند+إجراء+حسابات+بشرية.&#xA;خلال+الأربعينات،+مع+تطوير+آلات+حاسبة+أكثر+قوة+وقدرة+حسابية،+تتطور+مصطلح+حاسوب+ليشير+إلى+الآلات+بدلا+من+الأشخاص+الذين+يقومون+بالحسابات.+وأصبح+من+الواضح+أن+الحواسيب+يمكنها+أن+تقوم+بأكثر+من+مجرد+عمليات+حسابية+وبالتالي+انتقلوا+لدراسة+تحسيب+أو+التحسيب+بشكل+عام.+بدأت+المعلوماتية+وعلوم+الحاسب+تأخذ+استقلالها+كفرع+أكاديمي+مستقل+في+الستينات،+مع+إيجاد+أوائل+أقسام+علوم+الحاسب+في+الجامعات+وبدأت+الجامعات+تعطي+إجازات+في+هذه+العلوم+\[1].+&#xA;\end{otherlanguage}&#xA;\end{document}>)

![LanguageEx2.png](/files/89ffb8109309e2c7929262f61b3b1977890f130a)

### 输入编码

为支持不同语言群组和/或不同计算机平台上的各种输入编码，LaTeX 采用了 `inputenc` 宏包。在 TeX Live 2018 发布之前，在 pdfLaTeX 中使用 UTF-8 编码文本需要 `inputenc` 宏包，只需写

```latex
\usepackage[utf8]{inputenc}
```

到文档的导言区中。

正如 Overleaf 博客文章中所指出的 [TeX Live 升级——2019 年 9 月](https://www.overleaf.com/blog/tex-live-upgrade-september-2019)，LaTeX 已将 UTF-8 切换为默认输入编码；因此，现在不再 *通常* 有必要显式写出 `\usepackage[utf8]{inputenc}` 如果你使用的是 2018 年之后发布的 TeX Live。不过，对于上面的示例，仍然需要写 `\usepackage[utf8]{inputenc}` 仍然需要。

### 语言特定的文档元素

该 `arabic` 选项来指定图像的（排版）大小： `babel` 宏包为阿拉伯语提供支持：

```latex
\usepackage[arabic]{babel}
```

其中包括双向排版以及使用阿拉伯语命名文档元素。如果你需要插入一些 `拉丁文本` 到你的阿拉伯语文档中，你可以使用 `\textLR{...}` 命令；例如，写作

```latex
\textLR{Latin text}
```

### 字体编码

除了使用正确的 *输入* 编码之外，排版包含阿拉伯语文本的 LaTeX 文档还需要具有适当正确 *输出* 编码的字体，以提供表示排版后的阿拉伯语字形（图形）。排版上面的示例相当于写作

```latex
\usepackage[LAE]{fontenc}
```

但是，正如在这 [个 tex.stackexchange 回答中所指出的](https://tex.stackexchange.com/a/518665)，使用 `arabic` ……选项会 `babel` 会导致加载所需的 `LAE` 编码文件 `laeenc.def` 和 `laeenc.dfu`.

## 进一步阅读

更多信息请参见

* [使用 polyglossia 和 fontspec 在 Overleaf 上进行多语言排版](/latex/zh-cn/yu-yan/01-multilingual-typesetting-on-overleaf-using-polyglossia-and-fontspec.md)
* [使用 babel 和 fontspec 在 Overleaf 上进行多语言排版](/latex/zh-cn/yu-yan/02-multilingual-typesetting-on-overleaf-using-babel-and-fontspec.md)
* [在 XƎLaTeX 中支持现代字体](/latex/zh-cn/zi-ti/03-xelatex.md)
* [引号和引号符号的排版](/latex/zh-cn/yu-yan/04-typesetting-quotations.md)
* [国际语言支持](/latex/zh-cn/yu-yan/03-international-language-support.md)
* [中文](/latex/zh-cn/yu-yan/06-chinese.md)
* [法语](/latex/zh-cn/yu-yan/07-french.md)
* [德语](/latex/zh-cn/yu-yan/08-german.md)
* [希腊语](/latex/zh-cn/yu-yan/09-greek.md)
* [意大利语](/latex/zh-cn/yu-yan/10-italian.md)
* [日语](/latex/zh-cn/yu-yan/11-japanese.md)
* [韩语](/latex/zh-cn/yu-yan/12-korean.md)
* [葡萄牙语](/latex/zh-cn/yu-yan/13-portuguese.md)
* [俄语](/latex/zh-cn/yu-yan/14-russian.md)
* [西班牙语](/latex/zh-cn/yu-yan/15-spanish.md)
* [LaTeX2ε 的不算太短的介绍](http://www.ctan.org/tex-archive/info/lshort/)
* [WikiBooks 上的 LaTeX/国际化](http://en.wikibooks.org/wiki/LaTeX/Internationalization)
* [WikiBooks 上的 LaTeX/特殊字符](http://en.wikibooks.org/wiki/LaTeX/Special_Characters)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ayakaleaf-pro.ayaka.space/latex/zh-cn/yu-yan/05-arabic.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
