> For the complete documentation index, see [llms.txt](https://overleaf-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://overleaf-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 引擎）**。通过 LuaHBTeX，LuaLaTeX 为复杂文字语言的排版提供了最先进、最完整的基于 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{阿拉伯文文本}|：\RL{اَلْعَرَبيَّةُ}。
\end{document}
```

[在 Overleaf 中打开此 `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)

请注意， `*阿拉伯文文本*` 与命令 `\RL{*阿拉伯文文本*}` 不应包含超过一个段落的从右到左文本。

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

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

```latex
\documentclass[12pt]{article}
\usepackage{arabtex}
\begin{document}
\setarab % 选择该语言的特定约定
\vocalize % 打开短元音的附加符号
%\transtrue % 显示音译
\arabtrue % 输出阿拉伯文文本（默认开启）
\centerline {\RL{^gu.hA wa-.himAruhu}} % 排版一行居中的阿拉伯文文本
\begin{RLtext}
fa-qAla lahu ^gu.hA:

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

[在 Overleaf 中打开此 `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{阿拉伯文文本}|：\RL{اَلْعَرَبيَّةُ}。

\vspace{10pt}
这里是更大的一段阿拉伯文，其中通过 \verb|\LR| 命令插入了一些英文单词：

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

[在 Overleaf 中打开此 `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} %由于 babel 宏包的 [arabic] 选项，不需要此项
\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{拉丁文本}
```

### 字体编码

除了使用正确的 *输入* 编码之外，排版包含阿拉伯文的 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://overleaf-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.
