> 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/de/sprachen/01-multilingual-typesetting-on-overleaf-using-polyglossia-and-fontspec.md).

# Mehrsprachiger Satz auf Overleaf mit polyglossia und fontspec

## Einführung

Dieser Artikel bietet einen Überblick über den Satz mehrsprachiger Dokumente in Overleaf mit dem XeLaTeX-(oder LuaLaTeX-)Compiler in Verbindung mit den `fontspec` und `polyglossia` LaTeX-Paketen.

Für viele, wenn nicht die meisten, ist die Standardwahl der TeX-Engine `pdfTeX`, die im Gegensatz zu XeTeX und LuaTeX nicht die eingebaute Fähigkeit hat, zu lesen [UTF-8](https://en.wikipedia.org/wiki/UTF-8) kodierte Textdateien. Die Verwendung von pdfTeX macht den Satz bestimmter Sprachen in LaTeX sehr kompliziert, insbesondere solcher, die keine auf dem Lateinischen basierende Schrift verwenden. Einige Pakete—wie [`inputenc`, `fontenc` und](/latex/de/sprachen/05-arabic.md) [`arabtex`](/latex/de/sprachen/05-arabic.md)—bieten pdfTeX Unterstützung beim Satz nichtlateinischer Sprachen und Schriften, aber nicht alle Glyphen und Zeichen werden möglicherweise im AusgabepDF unterstützt oder korrekt dargestellt, selbst wenn Sie die `utf8` oder `utf8x` Option mit `inputenc`.

Für eine ausführliche Diskussion über UTF-8, Unicode-Kodierung und die XeTeX/LuaTeX-Engines ist der Overleaf-Artikel [Unicode, UTF-8 und mehrsprachiger Text: Eine Einführung](/latex/de/ausfuhrliche-artikel/51-unicode-utf-8-and-multilingual-text-an-introduction.md) eine faszinierende Lektüre.

## XeTeX und LuaTeX kommen ins Spiel

Die XeTeX- und LuaTeX-Engines können UTF-8-kodierten Text direkt lesen/verarbeiten; folglich bieten sie native Unterstützung für Unicode – sie können außerdem [direkt mit TrueType- und OpenType-Schriften arbeiten](/latex/de/schriftarten/03-xelatex.md) direkt. Diese Eigenschaften machen sie zu einer natürlichen Wahl für den Satz mehrsprachiger oder nichtlateinischer Dokumente in LaTeX und erzeugen Ausgaben wie diese:

![](/files/f160df6b7c58361072215a7f20a102afa2db8809) ![](/files/a82561a028438fb13e8097155394b4ee03bbffa1) ![](/files/842e7539c0549a20b7d35576790bc553d29efa1d)

Diese Beispiele finden Sie in der Overleaf-Galerie: [So schreiben Sie mehrsprachigen Text mit verschiedenen Schriften in LaTeX auf Overleaf](https://www.overleaf.com/latex/examples/how-to-write-multilingual-text-with-different-scripts-in-latex/wfdxqhcyyjxz) und [Mehrsprachiges „Danke“](https://www.overleaf.com/latex/templates/multilingual-thank-you/wjmrnnqkstyf).

Wenn Sie chinesischen, japanischen und koreanischen Text setzen möchten, sehen Sie sich diese Artikel an:

* [Chinesisch](/latex/de/sprachen/06-chinese.md)
* [Japanisch](/latex/de/sprachen/11-japanese.md)
* [Koreanisch](/latex/de/sprachen/12-korean.md)

Xe(La)TeX ist für diese Sprachen weiterhin nützlich, aber es gibt spezialisiertere TeX-Engines, insbesondere [die für den Satz von CJK-Sprachen entwickelt wurden](/latex/de/weitere-themen/45-tex-primitives-listed-by-cjk-tex-engine.md)– wie [pTeX](https://ctan.org/pkg/ptex?lang=en) für den Satz von Japanisch.

Wenn der Cursor beim Bearbeiten von Text in bestimmten Sprachen in Overleaf seltsam reagiert, sollten Sie möglicherweise auf die Overleaf- **Menü** Schaltfläche (oberhalb der Projekt-Dateiliste) klicken und die Option „Schriftfamilie“ ändern. Sie könnten auch versuchen, [die Einstellungen für die Monospace-Schrift Ihres Browsers zu ändern](https://www.howtogeek.com/208552/how-to-change-the-default-fonts-in-your-web-browser/) oder stattdessen die Rich-Text-Ansicht von Overleaf zu verwenden. Zum Zeitpunkt der Erstellung dieses Artikels unterstützen die Source- und Rich-Text-Ansichten die Bearbeitung von Text von rechts nach links jedoch möglicherweise noch nicht vollständig auf dem Funktionsniveau, das wir erreichen möchten.

## Den Compiler des Projekts ändern

Die `fontspec` und `polyglossia` Pakete benötigen den XeLaTeX- oder LuaLaTeX-Compiler, daher müssen Sie Ihr Overleaf-Projekt so einrichten, dass einer dieser Compiler verwendet wird. Detaillierte Anweisungen finden Sie in unserem Artikel [Auswahl eines LaTeX-Compilers](/latex/de/weitere-themen/08-choosing-a-latex-compiler.md) aber hier ist ein kurzer Videoclip, der zeigt, wie Sie den Compiler für Ihr Projekt festlegen:

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/2HDpWlJuNR50hknbpxfQdu/93cdc17ef2c6c77249a1c7c76b34a817/choosingcompiler.mp4>" %}

Sobald Sie mit XeLaTeX oder LuaLaTeX kompilieren, können (sollten) Sie die `inputenc` und `fontenc` Pakete aus dem Vorspann Ihrer .tex-Datei entfernen, da diese Unicode-fähigen Engines davon ausgehen, dass Eingabedateien (Textdateien) UTF-8-kodiert sind. Übrigens werden alle nach Overleaf hochgeladenen Textdateien in UTF-8 konvertiert, sodass Sie normalerweise `utf8` mit `inputenc` verwenden sollten, wenn Sie mit den pdfLaTeX- und LaTeX-Compilern in Overleaf arbeiten.

## Wenn Ihr gesamtes Dokument nur eine Sprache umfasst

Bei der Verwendung des `fontspec` Pakets kommen Sie möglicherweise damit aus, nur eine Hauptschrift mit Serifen, eine serifenlose Schrift und wahrscheinlich eine Monospace-Schrift einzurichten, die die Sprache unterstützt, die Sie setzen – es gibt jedoch einen Haken, auf den wir später im Artikel zurückkommen. Wenn Ihr gesamtes Dokument beispielsweise auf Griechisch ist, mit einigen englischen Wörtern, können Sie einfach schreiben

```latex
\usepackage{fontspec}
\setmainfont[Script=Greek]{GFS Artemisia}
\setsansfont[Script=Greek]{GFS Neohellenic}
\setmonofont[Script=Greek]{Noto Mono}
. . .
Το Lorem Ipsum είναι \textsf{απλά} ένα κείμενο χωρίς νόημα
για τους επαγγελματίες της \texttt{τυπογραφίας} και στοιχειοθεσίας.
```

Sie können Schriften aus einer [Liste verfügbarer TrueType- und OpenType-Schriften](https://www.overleaf.com/help/193). Das `Ligatures=TeX` Option wird automatisch hinzugefügt für `\setmainfont` und `\setsansfont`, sodass Sie das nicht selbst hinzufügen müssen. (`\setromanfont` ist ein Alias von `\setmainfont`.)

Der obige LaTeX-Code erzeugt die folgende Ausgabe:

![](/files/f7c5f8e372ca92819a7c399bfaa2c226ccea836b)

## Mehrere Sprachen/Schriften im selben Dokument: Einführung in polyglossia

Wenn Ihr Dokument nennenswerte Textmengen in mehreren Sprachen enthält, ist das `polyglossia` Paket hilfreich, um sprachspezifische Satzkonventionen und Silbentrennung zu berücksichtigen.

```latex
\usepackage{fontspec}
\setmainfont{FreeSerif}
\setsansfont{FreeSans}
\setmonofont{FreeMono}

\usepackage{polyglossia}
\setdefaultlanguage{french}
\setotherlanguages{english,russian,thai}

\begin{document}
\begin{abstract}
Le Lorem Ipsum est simplement du faux texte employé dans
la composition et la mise en page avant impression.
\end{abstract}

Merci. \textenglish{Thank you.} \textrussian{Спасибо.} Et plus de
texte en français!

Le Lorem Ipsum est le faux texte standard ...

\begin{english}
Lorem Ipsum is simply dummy text ...
\end{english}

\begin{russian}
Lorem Ipsum - это текст-`\textsf{рыба}', часто используемый в
\texttt{печати} и вэб-дизайне. ...
\end{russian}

\begin{thai}
\XeTeXlinebreaklocale "th_TH"
\textenglish{Lorem Ipsum} คือ เนื้อหาจำลองแบบเรียบๆ ที่ใช้กันในธุรกิจงานพิมพ์หรืองานเรียงพิมพ์
\end{thai}
```

![](/files/ab2a11aea727b4b6164537615a294a618b085fea)

`polyglossia` ermöglicht es Ihnen, die Hauptsprache des Dokuments mit `\setdefaultlanguage` (Standard ist Englisch) und (möglicherweise mehrere) „andere“ Sprachen mit `\setotherlanguages`. (`\setmainlanguage` ist ein Alias von `\setdefaultlanguage`.) Wenn Sie voraussichtlich nur eine weitere Fremdsprache verwenden, können Sie die Einzahl `\setotherlanguage`verwenden. Die Sprachnamen sind dieselben wie diejenigen, die von `babel`.

Wir haben ein kleines Beispiel für ein (überwiegend) französisches Dokument vorbereitet, das auch etwas englischen, russischen und thailändischen Text enthält. Wir haben uns entschieden, die Schriftarten FreeSerif, FreeSans und FreeMono zu verwenden.

Da die Hauptsprache des Dokuments `french`, die `abstract` Umgebung automatisch die Überschrift ‚Résumé‘ erzeugt. Beachten Sie, wie am Ende des ersten Absatzes das Ausrufezeichen nach der französischen Satzkonvention gesetzt wird: Es ist von ‚français‘ abgesetzt, obwohl es im Quellcode unmittelbar nach dem Wort `français` steht.

Im Haupttext können kurze englische, kyrillische und thailändische Textschnipsel mit `\textenglish{Thank you}`, `\textrussian{Спасибо}` und `\textthai{ขอบคุณ}`. Im Allgemeinen können Sie `\textLANGUAGE{...}` verwenden, um Text in jeder `LANGUAGE` zu setzen, die von `\setdefaultlanguage` und `\setotherlanguages`deklariert wurde. Da die Hauptschrift (mit Serifen) des Dokuments FreeSerif ist und FreeSerif Glyphen für lateinische, kyrillische und thailändische (und weitere!) Schriften enthält, `fontspec` und `polyglossia` kann sie verwendet werden, um all diese Texte in das Ausgabe-PDF zu rendern.

Für längere Textabsätze in fremden/anderen Sprachen wird empfohlen, zu verwenden `\begin{LANGUAGE}`...`\end{LANGUAGE}`, z. B. `\begin{russian}`...`\end{russian}`, `\begin{thai}`...`\end{thai}`. Im Fall von Arabisch können Sie nicht `\begin{arabic}`...`\end{arabic}`; Sie müssen stattdessen schreiben `\begin{Arabic}`...`\end{Arabic}` während `\textarabic{...}` weiterhin gültig ist.

Für bestimmte Sprachen können einige Überlegungen erforderlich sein: Zum Beispiel müssen innerhalb des `thai` -Umgebung die Wörter `Lorem Ipsum` in einem `\textenglish{...}` (oder `\textfrench{...}`-Befehl eingeschlossen werden, damit sie mit den Glyphen der lateinischen Schrift dargestellt werden.

An dieser Stelle könnten Sie fragen: Wenn FreeSerif ohnehin so vielseitig ist und Glyphen für Russisch und Thai enthält, warum müssten wir dann überhaupt noch verwenden `\textrussian`, `\begin{english}`...`\end{english}` usw.? Wäre das nicht redundant? Schauen wir uns an, was passiert, wenn wir die `\begin{english}`...`\end{english}` und `\begin{russian}`...`\end{russian}` -Umgebungen entfernen:

![](/files/a11987f1c6938971cff26a8666484d11e3a84e54)

Sicherlich werden die lateinischen und kyrillischen Glyphen alle im Ausgabe-PDF dargestellt, aber beachten Sie, dass einige Wörter nun falsch getrennt werden: ‚unk-nown‘ und ‚unchan-ged‘ – und стандартной wird überhaupt nicht getrennt. Ohne die Sprachwechsel-Umgebungen geht der Compiler davon aus, dass diese Textelemente immer noch in französischer Sprache sind, und versucht, sie nach französischen Konventionen zu setzen. Der Compiler versucht, französische Silbentrennungsregeln anzuwenden, was naturgemäß zu falschen Ergebnissen führt. Deshalb ist Typografie und Satz weit mehr als nur Schriftgestaltung und -auswahl: Es handelt sich um sehr sprach- und kulturabhängige Disziplinen.

Wenn wir zu unserem ersten griechischen Beispiel zurückkehren, sehen wir jetzt, warum es eine gute Idee ist, `polyglossia` zu laden und `\setdefaultlanguage{greek}`: um sicherzustellen, dass das Dokument nach griechischen Konventionen gesetzt wird.

## Mischen von Sprachen von rechts nach links (RTL) und von links nach rechts (LTR)

Sie müssen vorsichtig sein, wenn Sie in demselben Dokument eine Mischung aus Schriften von rechts nach links (RTL), wie Arabisch oder Hebräisch, und Schriften von links nach rechts (LTR) setzen. Betrachten Sie das folgende kurze arabische Dokument mit einem englischen Wort, wobei Amiri als Hauptschrift verwendet wird:

```latex
\usepackage{polyglossia}
\setdefaultlanguage{arabic}
\setmainfont{Amiri}
\begin{document}
ما هو differentiation
\end{document}
```

was Folgendes erzeugt:

![](/files/87020be99227659511676b7c8a9b7fc9a7928a43)

Der Text wird automatisch von rechts nach links gesetzt, beginnend am rechten Seitenrand. Das Wort “differentiation” selbst wird korrekt als Text von links nach rechts gesetzt – aber warten Sie, *nein, ist es nicht*! Es wird in der Ausgabe als “dffirentiation” dargestellt! Was ist da los?

Die Schrift Amiri hat zwar Glyphen für lateinische Alphabete, aber hier ist der Text `differentiation` nicht als Englisch markiert: Der Compiler behandelt `differentiation` als Text von rechts nach links, als wäre es eine Folge arabischer Zeichen. Beim Satz wird die ursprüngliche Zeichenfolge `iff` als `ffi` (d. h. als RTL-Text) verarbeitet und Amiris [Ligatur](https://en.wikipedia.org/wiki/Typographic_ligature) Glyph für “ffi” gesetzt. Durch Markieren des Wortes mit `\textenglish{...}` wird sichergestellt, dass es korrekt als Text von links nach rechts interpretiert wird.

```latex
\setmainfont{Amiri}
\setotherlanguage{english}
\newfontfamily\englishfont{TeX Gyre Termes}
\begin{document}
ما هو \textenglish{differentiation}
```

![](/files/8538dbdf2bfb9919359141d9a67d0323b503b35a)

**Hinweis:** Wenn Sie die `babel` Paketbefehle gewohnt sind, freut es Sie sicher zu hören, dass die Befehle `\selectlanguage`, `\foreignlanguage` und die Umgebung `otherlanguage` ebenfalls unterstützt werden von `polyglossia`.

## Sprachspezifische Optionen

Einige Sprachen unterstützen zusätzliche Optionen zur Anpassung; zum Beispiel `greek` akzeptiert eine `variant=ancient`, `mono` oder `poly` Option für altgriechisches, monotonisches oder polytonisches Griechisch; `hindi` kann konfiguriert werden mit `numerals=western` oder `devanagari`. Siehe die [Dokumentation des polyglossia-Pakets](http://texdoc.net/pkg/polyglossia) für Details.

Diese können beim Laden der Sprache angegeben werden:

```latex
\setdefaultlanguage[variant=poly]{greek}
\setotherlanguage[numerals=western]{hindi}
```

oder später jederzeit:

```latex
\setkeys{greek}{variant=ancient}
```

oder sogar lokal für eine bestimmte Umgebung:

```latex
\begin{greek}[variant=ancient]
...
\end{greek}
```

## Schriften für bestimmte Sprachen festlegen

Sie können die für verschiedene Sprachen verwendete Schrift festlegen. Nehmen wir an, Sie möchten den gesamten englischen Text (aus unserem vorherigen Beispiel) kursiv setzen; dann könnten Sie schreiben:

```latex
\newfontfamily\englishfont{FreeSerif Italic}
```

![](/files/b845423cd314a8a8ca0ca7fbb6c59ce777b11170)

Sie können natürlich etwas noch Extravaganteres verwenden:

```latex
\newfontfamily\englishfont{Chancery Uralic}
```

![](/files/c1c97c7945fb9098424d367199d9cb7667a06a6b)

Dieser Mechanismus zum Festlegen von Schriften für verschiedene Sprachen oder Schriften ist besonders wichtig, wenn Sie eine Hauptschrift verwenden, die *nicht* Glyphen für alle Schriften oder Sprachen in Ihrem Dokument hat. Nehmen wir an, wir entscheiden uns nun, Caladea als Hauptschrift des Dokuments zu verwenden:

```latex
\setmainfont{Caladea}
```

Beim Kompilieren würden wir die folgende Fehlermeldung sehen:

```
Fehler im Paket polyglossia: Die aktuelle Roman-Schrift
enthält die kyrillische Schrift nicht!

(polyglossia)                Bitte definieren Sie
\cyrillicfont mit \newfontfamily.

Siehe die Dokumentation des polyglossia-Pakets für
eine Erklärung.
Geben Sie H <Eingabetaste> für sofortige Hilfe ein.
 ...

l.15 \select@language {russian}

Fehler im Paket polyglossia: Die aktuelle Roman-Schrift
enthält die thailändische Schrift nicht!

(polyglossia)                Bitte definieren Sie
\thaifont mit \newfontfamily.

Siehe die Dokumentation des polyglossia-Pakets für
eine Erklärung.
Geben Sie H <Eingabetaste> für sofortige Hilfe ein.
 ...

l.23 \select@language {thai}
...
```

Wir müssen nun angeben, welche Schriften für die kyrillischen und thailändischen Schriften zu verwenden sind. Auch hier können Sie sich an die [Liste verfügbarer TrueType- und OpenType-Schriften](https://www.overleaf.com/help/193) auf Overleaf.

```latex
\newfontfamily\cyrillicfont[Script=Cyrillic]{Charis SIL}
\newfontfamily\thaifont[Script=Thai]{Garuda}
```

![](/files/1bb90e39e9712a5f974069e27fcb5c5543fc58e3)

**Hinweis**: es liegt außerhalb des Rahmens dieses Artikels, Fragen zu ästhetisch ansprechenden und typografisch kompatiblen Schriftkombinationen zu behandeln.

Beachten Sie, dass wir definiert haben `\cyrillicfont` anstelle von `\russianfont`, d. h. wir haben eine Schrift für die kyrillische *Schrift* statt für die russische *Sprache*. Der Vorteil der Definition von `\cyrillicfont` besteht darin, dass, wenn beispielsweise `serbian` ebenfalls eine definierte Sprache in Ihrem Projekt ist, dann `\textserbian` automatisch die definierte `\cyrillicfont`. Wenn Sie nur `\russianfont`, dann würde bei der Verwendung von `\textserbian` erneut die Meldung erscheinen, dass „die aktuelle Roman-Schrift die kyrillische Schrift nicht enthält“, und Sie müssten `\cyrillicfont` sowieso definieren – *es sei denn,* an *Sie wollten* absichtlich eine andere Schrift für serbischen Text verwenden!

Ein ähnlicher weiterer Fall ist die Devanagari- *Schrift*, die für die Hindi- und Sanskrit- *Sprachen verwendet wird*; oder die arabische Schrift, die für Arabisch und Farsi (Persisch) verwendet wird.

```latex
\setdefaultlanguage{english}
\setotherlanguages{hindi,sanskrit}
\newfontfamily\devanagarifont[Script=Devanagari]{Lohit Devanagari}
...
Hindi: \texthindi{हिन्दी}
Sanskrit: \textsanskrit{संस्कृतम्}
```

![](/files/851ce221c63d32d41db3f7125a46e9c705b5e995)

Bei der Verwendung von `\newfontfamily` ist es notwendig, den `Script`, andernfalls können einige Glyphen falsch dargestellt werden; zum Beispiel, wenn wir nur geschrieben hätten `\newfontfamily\thaifont{Garuda}` kann das gesetzte Ergebnis falsch sein (linkes Bild unten) – die korrekte Ausgabe erhält man durch Hinzufügen von `[Script=Thai]`.

Falsch: ![](/files/dacd3545480721ae4beb84360b44572f1ad51194) Korrekt: ![](/files/1e371187de30137897dcad95f9bcb49060a69fe8)

## Andere Schriftfamilien definieren

Sehen wir uns ein weiteres Beispiel an, diesmal mit Hebräisch:

```latex
\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage[numerals=hebrew]{hebrew}
\setotherlanguage{english}
\newfontfamily\hebrewfont[Script=Hebrew]{Hadasim CLM}
\begin{document}
\section{מבוא}
זוהי עובדה מבוססת שדעתו של הקורא תהיה מוסחת עלידי טקטס קריא כאשר הוא יביט בפריסתו.  -
\end{document}
```

![](/files/dd32d30c348a76344c458ec616711a263d921c48)

Bisher sieht alles gut aus. Nehmen wir nun an, wir verwenden eine Vorlage, die ursprünglich für ein englisches Dokument erstellt wurde und Abschnittsüberschriften in serifenloser Schrift mit `titlesec` Paket:

```latex
\RequirePackage{titlesec}
\titleformat{\section}{\Large\sffamily\bfseries}{\thesection}{1em}{}
\usepackage{polyglossia}
\setdefaultlanguage[numerals=hebrew]{hebrew}
...
```

Wir werden mit der Fehlermeldung konfrontiert:

```
Fehler im Paket polyglossia: Die aktuelle Roman-Schrift
enthält die hebräische Schrift nicht!

(polyglossia)                Bitte definieren Sie
\hebrewfont mit \newfontfamily.

Siehe die Dokumentation des polyglossia-Pakets für
eine Erklärung.
Geben Sie H <Eingabetaste> für sofortige Hilfe ein.
 ...

l.27 \section{מבוא}
```

Das ist etwas verwirrend: Haben wir nicht bereits `\hebrewfont` als Hadasim CLM definiert? Nun, der eigentliche Grund ist, dass wir *noch keine serifenlose Schrift für Hebräisch*. Beheben wir das, indem wir eine Definition für `\hebrewfontsf`:

```latex
\newfontfamily\hebrewfontsf[Script=Hebrew]{Miriam CLM}
```

Und nun haben wir die Ausgabe:

![](/files/160ae04b6a6087e6b8e52210dabbb4b5364fc87c)

Falls erforderlich, könnten wir auch eine Monospace-Schrift definieren, die mit `\hebrewfonttt`.

## Danksagungen

Alle Lorem-Ipsum-Textausschnitte in verschiedenen Sprachen stammen von [`https://lipsum.com`](https://lipsum.com).


---

# 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/de/sprachen/01-multilingual-typesetting-on-overleaf-using-polyglossia-and-fontspec.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.
