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

# polyglossia ve fontspec kullanarak Overleaf'te çok dilli dizgi

## Giriş

Bu makale, XeLaTeX (veya LuaLaTeX) derleyicisini birlikte kullanarak Overleaf üzerinde çok dilli belgelerin dizgilenmesine genel bir bakış sunar `fontspec` ve `polyglossia` LaTeX paketleri.

Birçok kullanıcı için, hatta belki de çoğu için, varsayılan TeX motoru tercihi `pdfTeX`, XeTeX ve LuaTeX'in aksine, yerleşik olarak [UTF-8](https://en.wikipedia.org/wiki/UTF-8) kodlanmış metin dosyalarını okuyabilme yeteneğine sahip değildir. pdfTeX kullanmak LaTeX'te bazı dillerin dizgilenmesini çok karmaşık hâle getirir, özellikle de Latin tabanlı bir alfabe kullanmayanları. Bazı paketler—örneğin [`inputenc`, `fontenc` ve](/latex/tr/diller/05-arabic.md) [`arabtex`](/latex/tr/diller/05-arabic.md)—pdfTeX'e Latin dışı dillerin ve alfabelerin dizgilenmesi için destek sağlar, ancak çıktı PDF'sinde tüm glifler ve karakterler desteklenmeyebilir ya da doğru şekilde oluşturulmayabilir, hatta sizin kullanmış olduğunuz `utf8` ya da `utf8x` seçeneğiyle `inputenc`.

UTF-8, Unicode kodlaması ve XeTeX/LuaTeX motorları üzerine ayrıntılı bir tartışma için, Overleaf makalesi [Unicode, UTF-8 ve çok dilli metin: Bir giriş](/latex/tr/derinlemesine-makaleler/51-unicode-utf-8-and-multilingual-text-an-introduction.md) okunması oldukça ilgi çekicidir.

## XeTeX ve LuaTeX devreye giriyor

XeTeX ve LuaTeX motorları UTF-8 kodlamalı metni doğrudan okuyup işleyebilir; dolayısıyla Unicode için yerel destek sunarlar—ayrıca [TrueType ve OpenType yazı tipleriyle](/latex/tr/yazi-tipleri/03-xelatex.md) doğrudan çalışabilirler. Bu özellikler, onları LaTeX'te çok dilli veya Latin dışı belgelerin dizgilenmesi için doğal bir tercih hâline getirir ve aşağıdakiler gibi çıktılar üretir:

![](/files/f528c69e5429b0815fee296e7220012b3d008581) ![](/files/776d563856e683cf8c46286e229a8793a160e329) ![](/files/b8c8ffc72546b5cc4362dc355dc9f6860da55f9c)

Bu örnekler Overleaf Galerisi'nde bulunabilir: [Overleaf'te LaTeX'te Farklı Alfabelerle Çok Dilli Metin Nasıl Yazılır](https://www.overleaf.com/latex/examples/how-to-write-multilingual-text-with-different-scripts-in-latex/wfdxqhcyyjxz) ve [Çok dilli "Teşekkür"](https://www.overleaf.com/latex/templates/multilingual-thank-you/wjmrnnqkstyf).

Çince, Japonca ve Korece dizgilemek istiyorsanız, şu makalelere bir göz atın:

* [Çince](/latex/tr/diller/06-chinese.md)
* [Japonca](/latex/tr/diller/11-japanese.md)
* [Korece](/latex/tr/diller/12-korean.md)

Xe(La)TeX bu diller için hâlâ kullanışlıdır, ancak özellikle daha uzmanlaşmış TeX motorları da vardır: [CJK dillerinin dizgilenmesi için tasarlanmış](/latex/tr/daha-fazla-konu/45-tex-primitives-listed-by-cjk-tex-engine.md)—örneğin [pTeX](https://ctan.org/pkg/ptex?lang=en) Japonca dizgilemek için.

Eğer Overleaf'te bazı dillerde metin düzenlerken imleciniz düzgün çalışmıyormuş gibi görünüyorsa, Overleaf **Menü** düğmesine (proje dosya listesinin üstünde yer alır) tıklayıp “Font Family” seçeneğini değiştirmek isteyebilirsiniz. Ayrıca [tarayıcınızın tek aralıklı yazı tipi tercihlerini değiştirmeyi](https://www.howtogeek.com/208552/how-to-change-the-default-fonts-in-your-web-browser/) veya bunun yerine Overleaf'in Zengin Metin görünümünü kullanmayı da deneyebilirsiniz. Ancak bu yazının yazıldığı sırada, Kaynak ve Zengin Metin görünümleri, ulaşmayı hedeflediğimiz işlevsellik düzeyinde sağdan sola metin düzenlemeyi (henüz) tam olarak desteklemeyebilir.

## Projenin derleyicisini değiştirme

Bu `fontspec` ve `polyglossia` paketler XeLaTeX veya LuaLaTeX derleyicisini gerektirir, bu yüzden Overleaf projenizi bu derleyicilerden birini kullanacak şekilde ayarlamanız gerekir. Ayrıntılı talimatları şu makalemizde bulabilirsiniz [Bir LaTeX derleyicisi seçme](/latex/tr/daha-fazla-konu/08-choosing-a-latex-compiler.md) ancak projeniz için derleyiciyi nasıl ayarlayacağınızı gösteren kısa bir video klip işte burada:

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

XeLaTeX veya LuaLaTeX ile derleme yapmaya başladığınızda, `inputenc` ve `fontenc` paketlerini .tex dosyanızın önsözünden kaldırabilirsiniz; çünkü bu Unicode destekli motorlar, giriş (metin) dosyalarının UTF-8 kodlamalı olduğunu varsayacaktır. Bu arada, Overleaf'e yüklenen tüm metin dosyaları UTF-8'e dönüştürülür, bu yüzden genellikle `utf8` ile `inputenc` kullanmanız gerekir

## Belgenizin tamamı yalnızca tek bir dili içeriyorsa

kullanırken `fontspec` paketiyle yalnızca ana (serif) bir yazı tipi, sans-serif bir yazı tipi ve muhtemelen dizgilediğiniz dili desteklemek üzere tasarlanmış tek aralıklı bir yazı tipi ayarlayarak işin içinden çıkabilirsiniz—ama bir püf noktası var; buna makalenin ilerleyen kısmında geri döneceğiz. Örneğin, belgenizin tamamı biraz İngilizce kelimeyle birlikte Yunancaysa, şunu yazabilirsiniz:

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

Bir [mevcut TrueType ve OpenType yazı tipi listesinden](https://www.overleaf.com/help/193). The `Ligatures=TeX` seçeneği otomatik olarak `\setmainfont` ve `\setsansfont` için eklenir, bu yüzden bunu kendiniz eklemeniz gerekmez. (`\setromanfont` , `\setmainfont`.)

Yukarıdaki LaTeX kodu aşağıdaki çıktıyı üretir:

![](/files/004d95c71649ae418fcf34583e37669b9b328e5d)

## Aynı belgede birden fazla dil/alfabe: polyglossia'ya giriş

Belgeniz birden fazla dilde kayda değer miktarda metin içeriyorsa, `polyglossia` paketi, dile özgü dizgi kurallarını ve hecelemeyi yönetmede yardımcı olur.

```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/9d6787d3c0f04919ee6cd4c89d1a5005b101d278)

`polyglossia` belgenin ana dilini `\setdefaultlanguage` (varsayılan İngilizce'dir) ve (muhtemelen birden fazla) “diğer” dili `\setotherlanguages`. (`\setmainlanguage` , `\setdefaultlanguage`.) Yalnızca bir başka yabancı dil kullanmayı bekliyorsanız, tekil biçim olan `\setotherlanguage`. Dil adları, `babel`.

Ağırlıklı olarak Fransızca olan, ancak ayrıca biraz İngilizce, Rusça ve Tayca metin de içeren küçük bir örnek belge hazırladık. FreeSerif, FreeSans ve FreeMono yazı tiplerini kullanmaya karar verdik.

Belgenin ana dili `french`, ikinci `abstract` ortamı otomatik olarak ‘Résumé’ başlığını üretir. İlk paragrafın sonunda ünlem işaretinin Fransızca aralıklandırma kuralına göre dizgilendiğine dikkat edin: ‘français’tan ayrı yerleştirilir, oysa kaynak kodda bu sözcüğün hemen ardından gelir `français` .

Ana metinde, kısa İngilizce, Kiril ve Tayca metin parçaları bir Fransızca metin paragrafına `\textenglish{Thank you}`, `\textrussian{Спасибо}` ve `\textthai{ขอบคุณ}`. Genel olarak, `\textLANGUAGE{...}` ile herhangi bir `LANGUAGE` olarak ilan edilmiş dili dizgilemek için kullanabilirsiniz `\setdefaultlanguage` ve `\setotherlanguages`. Belgenin ana (serif) yazı tipi FreeSerif olduğu ve FreeSerif Latin, Kiril ve Tay (ve daha fazlası!) alfabeleri için glifler içerdiği için, `fontspec` ve `polyglossia` bunların tümünü çıktı PDF'sinde göstermek için onu kullanabilir.

Yabancı/diğer dillerdeki daha uzun metin paragrafları için, `\begin{LANGUAGE}`...`\end{LANGUAGE}`, örn. `\begin{russian}`...`\end{russian}`, `\begin{thai}`...`\end{thai}`. Arapça söz konusu olduğunda `\begin{arabic}`...`\end{arabic}` kullanamazsınız; bunun yerine `\begin{Arabic}`...`\end{Arabic}` yazmanız gerekir, oysa `\textarabic{...}` hâlâ geçerlidir.

Bazı diller için bazı hususlara dikkat etmek gerekebilir: örneğin, `thai` ortamında `Lorem Ipsum` bir `\textenglish{...}` (veya `\textfrench{...}`) komutuna alınmalıdır; böylece Latin alfabesi glifleri kullanılarak oluşturulmaları sağlanır.

Bu noktada şunu sorabilirsiniz: FreeSerif bu kadar çok yönlü ise ve yine de Rusça ile Tayca için glifler içeriyorsa, neden hâlâ `\textrussian`, `\begin{english}`...`\end{english}`  vb. kullanmamız gerekiyor? Bu gereksiz olmaz mıydı? Bakalım `\begin{english}`...`\end{english}` ve `\begin{russian}`...`\end{russian}` ortamlarını kaldırdığımızda ne oluyor:

![](/files/658770193010997024d9132fc9e6ada2e06252a0)

Elbette Latin ve Kiril gliflerinin hepsi çıktı PDF'sinde oluşturulur, ancak bazı sözcüklerin artık yanlış hecelendiğine dikkat edin: ‘unk-nown’ ve ‘unchan-ged’—ayrıca стандартной hiç hecelenmemiştir. Dil değiştirme ortamları olmadan derleyici, bu metin öğelerinin hâlâ Fransızca dilinde olduğunu düşünür ve bunları Fransızca kurallara göre dizgilemeye çalışır. Derleyici Fransızca heceleme kurallarını uygulamaya çalışır ve doğal olarak yanlış sonuçlar üretir. Bu yüzden tipografi ve dizgi, yalnızca yazı tipi tasarımı ve seçiminden çok daha fazlasıdır: bunlar dile ve kültüre son derece özgü disiplinlerdir.

İlk Yunanca örneğimize geri döndüğümüzde, `polyglossia` yüklemenin ve `\setdefaultlanguage{greek}` kullanmanın neden iyi bir fikir olduğunu şimdi görüyoruz: belgenin Yunanca kurallara göre dizgilenmesini sağlamak için.

## Sağdan sola (RTL) ve soldan sağa (LTR) dillerin karıştırılması

Aynı belgede Arapça veya İbranice gibi sağdan sola (RTL) alfabeler ile soldan sağa (LTR) alfabelerin karışımını dizgilerken dikkatli olmanız gerekir. Amiri'yi ana yazı tipi olarak kullanan, İngilizce bir sözcük içeren şu küçük Arapça belgeyi düşünün:

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

şu çıktıyı üretir:

![](/files/adb23b4571a2f3f8f6a2e97c2715a929ea351c0f)

Metin otomatik olarak sağdan sola ayarlanır ve sayfanın sağ kenarından başlar. “differentiation” sözcüğünün kendisi soldan sağa metin olarak doğru şekilde dizgilenir—ama bekleyin, *hayır, öyle değil*! Çıktıda “dffirentiation” olarak oluşturulmuş! Neler oluyor?

Amiri yazı tipinde Latin alfabeleri için glifler vardır, ancak burada `differentiation` metni İngilizce olarak işaretlenmemiştir: derleyici `differentiation` bunu, sanki bir Arapça karakter dizisiymiş gibi sağdan sola metin olarak kabul eder. Dizgi sırasında, özgün dizi `iff` olarak işlenir `ffi` (yani RTL metin olarak) ve Amiri'nin [birleşik harf](https://en.wikipedia.org/wiki/Typographic_ligature) “ffi” glifi dizgilenir. Sözcüğü `\textenglish{...}` ile işaretlemek, onun soldan sağa metin olarak doğru şekilde yorumlanmasını sağlar.

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

![](/files/8b3ed25e27bf54b6e06cb98334c69aed8c24f21b)

**Not:** Eğer `babel` paket komutlarına alışkınsanız, şu komutların da desteklendiğini duymak sizi memnun edecektir: `\selectlanguage`, `\foreignlanguage` ve `otherlanguage` ortamı da `polyglossia`.

## Dile özgü seçenekler

Bazı diller özelleştirme için ek seçenekleri destekler; örneğin, `greek` bir `variant=ancient`, `mono` ya da `poly` seçeneğini antik, monotonik veya politonik Yunanca için kabul eder; `hindi` şu şekilde yapılandırılabilir: `numerals=western` ya da `devanagari`. Ayrıntılar için [polyglossia paket belgelerine](http://texdoc.net/pkg/polyglossia) bakın.

Bunlar dili yüklerken belirtilebilir:

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

veya daha sonra herhangi bir zamanda:

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

veya hatta belirli bir ortam için yerel olarak:

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

## Belirli diller için yazı tipleri belirtme

Farklı diller için kullanılan yazı tipini belirtebilirsiniz. Diyelim ki tüm İngilizce metni (önceki örneğimizde yer alan) italik olarak dizgilemek istiyorsunuz; şöyle yazabilirsiniz:

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

![](/files/b1a4bca05fa65e449509fcee0fc16fd2abc13b24)

Elbette daha gösterişli bir şey de kullanabilirsiniz:

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

![](/files/0e443ded0751b7349893d1fc084b6415cf2481e3)

Farklı diller veya alfabeler için yazı tipi ayarlamanın bu mekanizması, ana bir yazı tipi kullandığınızda özellikle önemlidir *sonlanmıyor;* belgenizdeki tüm alfabeler veya diller için glifler içerir. Şimdi ana belge yazı tipi olarak Caladea'yı kullanmaya karar verdiğimizi varsayalım:

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

Derleme yaptığımızda şu hatayı görürüz:

```
Package polyglossia Error: Mevcut roman yazı tipi
Kiril alfabesini içermiyor!

(polyglossia)                Lütfen
\cyrillicfont öğesini \newfontfamily ile tanımlayın.

Açıklama için polyglossia paket belgelerine
bakın.
Anında yardım için  H <return>  yazın.
 ...

l.15 \select@language {russian}

Package polyglossia Error: Mevcut roman yazı tipi
Tay alfabesini içermiyor!

(polyglossia)                Lütfen
\thaifont öğesini \newfontfamily ile.

Açıklama için polyglossia paket belgelerine
bakın.
Anında yardım için  H <return>  yazın.
 ...

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

Artık Kiril ve Tay alfabeleri için hangi yazı tiplerinin kullanılacağını belirtmek zorundayız. Yine de şu [mevcut TrueType ve OpenType yazı tipi listesinden](https://www.overleaf.com/help/193) Overleaf üzerinde.

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

![](/files/75cfd53003d5531e9783db728fd140755de2c597)

**Not**: estetik açıdan hoş ve tipografik olarak uyumlu yazı tipi kombinasyonları seçimiyle ilgili sorunları ele almak bu makalenin kapsamı dışındadır.

Dikkat edin, `\cyrillicfont` yerine `\russianfont`, yani Kiril *alfabesi* için bir yazı tipi tanımladık, Rusça *dili*için değil. Tanımlamanın avantajı `\cyrillicfont` şudur: örneğin, `serbian` da projenizde tanımlı bir dil ise, o zaman `\textserbian` tanımlı `\cyrillicfont`\cyrillicfont `\russianfont`\russianfont `\textserbian` kullanılırsa yine “mevcut roman yazı tipi Cyrillic alfabesini içermiyor” diye şikâyet edecektir ve `\cyrillicfont` tanımlamanız gerekecektir *aksi hâlde —* siz *gerçekten* Sırpça metin için farklı bir yazı tipi kullanmak istemediğiniz sürece!

Benzer bir başka durum da Devanagari *alfabesi*, bu da Hintçe ve Sanskritçe *dilleri*için kullanılır; ya da Arapça ve Farsça (Persçe) için kullanılan Arap alfabesi.

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

![](/files/91767bec49db5a0538ec0bf3155946d90011a10d)

kullanırken `\newfontfamily` belirtmek gerekir `Script`, aksi takdirde bazı glifler yanlış oluşturulabilir; örneğin, yalnızca `\newfontfamily\thaifont{Garuda}` yazmış olsaydık dizgi sonucu yanlış olabilir (aşağıdaki sol görüntü)—doğru çıktı, `[Script=Thai]`.

Yanlış: ![](/files/8f8ee65ec619205be7610daad1ec6cbda3670817) Doğru: ![](/files/5a4c0e6c7dcd51bb2cfcbcd12bc1f19fbf846ef6)

## Diğer yazı tipi ailelerini tanımlama

Başka bir örneğe bakalım; bu kez İbranice ile:

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

![](/files/6ead8054f80daf2248957f0f00b8026fe940a7d2)

Şimdilik her şey yolunda. Şimdi başlangıçta İngilizce bir belge için oluşturulmuş, bölüm başlıklarını `titlesec` paketi:

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

bir hata iletisiyle karşı karşıyayız:

```
Package polyglossia Error: Mevcut roman yazı tipi
İbranice alfabesini içermiyor!

(polyglossia)                Lütfen
\hebrewfont öğesini \newfontfamily ile.

Açıklama için polyglossia paket belgelerine
bakın.
Anında yardım için  H <return>  yazın.
 ...

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

Bu biraz kafa karıştırıcı: \hebrewfont öğesini zaten Hadasim CLM olarak tanımlamamış mıydık? Aslında mesele şu ki, `\hebrewfont` olması için tanımladık *İbranice için bir sans-serif yazı tipi belirtmedik*. Bunu, `\hebrewfontsf`:

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

Ve şimdi çıktı elimizde:

![](/files/b9531f3be7ff5ff2f4b4894e46c0426a8d78a31f)

Gerekirse, `\hebrewfonttt`.

## Teşekkürler

Çeşitli dillerdeki tüm lorem ipsum parçaları şuradan alınmıştır: [`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/tr/diller/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.
