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

# Flerspråklig satsing på Overleaf med polyglossia og fontspec

## Innledning

Denne artikkelen gir en oversikt over satsing av flerspråklige dokumenter på Overleaf ved bruk av XeLaTeX- (eller LuaLaTeX-) kompilatoren i kombinasjon med `fontspec` og `polyglossia` LaTeX-pakker.

For mange, om ikke de fleste, brukere, er standardvalget for TeX-motor `pdfTeX`, som, i motsetning til XeTeX og LuaTeX, ikke har innebygd evne til å lese [UTF-8](https://en.wikipedia.org/wiki/UTF-8) kodede tekstfiler. Bruk av pdfTeX gjør satsing av visse språk i LaTeX svært komplisert, spesielt de som ikke bruker et latinsk skriftsystem. Noen pakker—som [`inputenc`, `fontenc` og](/latex/no/sprak/05-arabic.md) [`arabtex`](/latex/no/sprak/05-arabic.md)—gir pdfTeX støtte for satsing av ikke-latinske språk og skriftsystemer, men ikke alle glyfer og tegn kan være støttet eller gjengitt korrekt i PDF-utdataen, selv om du har brukt `utf8` eller `utf8x` alternativet med `inputenc`.

For en grundig diskusjon av UTF-8, Unicode-koding og XeTeX/LuaTeX-motorene er Overleaf-artikkelen [Unicode, UTF-8 og flerspråklig tekst: En innføring](/latex/no/dybdeartikler/51-unicode-utf-8-and-multilingual-text-an-introduction.md) en fascinerende lesning.

## Møt XeTeX og LuaTeX

XeTeX- og LuaTeX-motorene kan direkte lese/behandle UTF-8-kodet tekst; derfor tilbyr de innebygd støtte for Unicode—de kan også [arbeide med TrueType- og OpenType-fonter](/latex/no/skrifter/03-xelatex.md) direkte. Disse egenskapene gjør dem til et naturlig valg for satsing av flerspråklige eller ikke-latinske dokumenter i LaTeX, og gir resultater som disse:

![](/files/d4110db68d2242f3b010dd35bae544545ec0023a) ![](/files/7aed29681bd62c3d808eb4ba5ce57f3ee2ac9551) ![](/files/d08b29155e682c00b6ea131be10a9fecb8506529)

Disse eksemplene finner du i Overleaf-galleriet: [Slik skriver du flerspråklig tekst med ulike skriftsystemer i LaTeX på Overleaf](https://www.overleaf.com/latex/examples/how-to-write-multilingual-text-with-different-scripts-in-latex/wfdxqhcyyjxz) og [Flerspråklig "takk"](https://www.overleaf.com/latex/templates/multilingual-thank-you/wjmrnnqkstyf).

Hvis du ønsker å sette kinesisk, japansk og koreansk, ta en titt på disse artiklene:

* [Kinesisk](/latex/no/sprak/06-chinese.md)
* [Japansk](/latex/no/sprak/11-japanese.md)
* [Koreansk](/latex/no/sprak/12-korean.md)

Xe(La)TeX er fortsatt nyttig for disse språkene, men mer spesialiserte TeX-motorer er tilgjengelige, nærmere bestemt [utformet for satsing av CJK-språk](/latex/no/flere-emner/45-tex-primitives-listed-by-cjk-tex-engine.md)—som [pTeX](https://ctan.org/pkg/ptex?lang=en) for satsing av japansk.

Merk at hvis markøren ser ut til å oppføre seg merkelig mens du redigerer tekst på visse språk i Overleaf, kan det hende du bør klikke på Overleaf **Meny** knappen (plassert over prosjektets filliste) og endre alternativet «Font Family». Du kan også prøve [å endre nettleserens preferanser for skrifttype med fast bredde](https://www.howtogeek.com/208552/how-to-change-the-default-fonts-in-your-web-browser/) eller å bruke Overleafs riktekstvisning i stedet. Per tidspunktet for skrivingen støtter imidlertid kilde- og riktekstvisningene kanskje ikke (ennå) fullt ut tekstredigering fra høyre mot venstre på det funksjonsnivået vi ønsker å oppnå.

## Endre prosjektets kompilator

Den `fontspec` og `polyglossia` pakker krever XeLaTeX- eller LuaLaTeX-kompilatoren, så du må sette opp Overleaf-prosjektet ditt til å bruke en av disse kompilatorene. Detaljerte instruksjoner finner du i artikkelen vår [Velge en LaTeX-kompilator](/latex/no/flere-emner/08-choosing-a-latex-compiler.md) men her er en kort video som viser hvordan du angir kompilatoren for prosjektet ditt:

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

Når du kompilerer med XeLaTeX eller LuaLaTeX, kan du (bør du) fjerne `inputenc` og `fontenc` pakker fra preamblen i .tex-filen din fordi disse Unicode-kompatible motorene vil anta at innmatingsfiler (tekstfiler) er UTF-8-kodet. For øvrig konverteres alle tekstfiler som lastes opp til Overleaf til UTF-8, så du bør vanligvis bruke `utf8` med `inputenc` når du arbeider med pdfLaTeX- og LaTeX-kompilatorene i Overleaf.

## Hvis hele dokumentet ditt bare bruker ett språk

Når du bruker `fontspec` pakken kan du kanskje klare deg med å sette opp bare en hovedfont (serif), en sans-serif-font og sannsynligvis en skrifttype med fast bredde som er utformet for å støtte språket du setter—det er en hake, men vi kommer tilbake til det senere i artikkelen. Hvis hele dokumentet ditt for eksempel er på gresk, med noen engelske ord, kan du ganske enkelt skrive

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

Du kan velge fonter fra en [liste over tilgjengelige TrueType- og OpenType-fonter](https://www.overleaf.com/help/193). `Ligatures=TeX` alternativet legges automatisk til for `\setmainfont` og `\setsansfont`, så du trenger ikke legge det til selv. (`\setromanfont` er et alias for `\setmainfont`.)

LaTeX-koden ovenfor gir følgende resultat:

![](/files/4393724555e5b95da81ead1b94665fb95bd32ee6)

## Flere språk/skriftarter i samme dokument: Introduksjon til polyglossia

Hvis dokumentet ditt inneholder betydelige mengder tekst på flere språk, er `polyglossia` pakken nyttig for å håndtere språkspesifikke satsingskonvensjoner og orddeling.

```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/759ef727c1aa36cc893b2d2838fa1bd74900b6ff)

`polyglossia` lar deg angi hovedspråket i dokumentet med `\setdefaultlanguage` (standard er engelsk) og (eventuelt flere) «andre» språk med `\setotherlanguages`. (`\setmainlanguage` er et alias for `\setdefaultlanguage`.) Hvis du forventer å bruke bare ett annet fremmedspråk, kan du bruke entallsformen `\setotherlanguage`. Språknavnene er de samme som de som brukes av `babel`.

Vi har laget et lite eksempel på et (hovedsakelig) fransk dokument som også inneholder noe engelsk, russisk og thai tekst. Vi har valgt å bruke skrifttypene FreeSerif, FreeSans og FreeMono.

Fordi dokumentets hovedspråk er `fransk`, den `abstract` miljøet genererer automatisk overskriften ‘Résumé’. Legg merke til hvordan utropstegnet på slutten av det første avsnittet settes med den franske typografiske konvensjonen for mellomrom: det står atskilt fra ‘français’ selv om det følger umiddelbart etter ordet `français` i kildekoden.

I hovedteksten kan korte tekstutdrag på engelsk, kyrillisk og thai tas inn i et avsnitt med fransk tekst med `\textenglish{Thank you}`, `\textrussian{Спасибо}` og `\textthai{ขอบคุณ}`. Generelt kan du bruke `\textLANGUAGE{...}` for å sette tekst på hvilket som helst `LANGUAGE` som er deklarert av `\setdefaultlanguage` og `\setotherlanguages`. Fordi dokumentets hovedfont (serif) er FreeSerif, og FreeSerif inneholder glyfer for latinske, kyrilliske og thailandske (og flere!) skriftsystemer, `fontspec` og `polyglossia` kan bruke den til å gjengi alle disse tekstene i PDF-utdataen.

For lengre avsnitt med tekst på fremmede/andre språk anbefales det å bruke `\begin{LANGUAGE}`...`\end{LANGUAGE}`, f.eks. `\begin{russian}`...`\end{russian}`, `\begin{thai}`...`\end{thai}`. Når det gjelder arabisk kan du ikke bruke `\begin{arabic}`...`\end{arabic}`; du må skrive `\begin{Arabic}`...`\end{Arabic}` i stedet, mens `\textarabic{...}` fortsatt er gyldig.

Noen hensyn kan være nødvendige for enkelte språk: for eksempel, i `thai` miljøet, må ordene `Lorem Ipsum` omsluttes av en `\textenglish{...}` (eller `\textfrench{...}`)-kommando for å sikre at de gjengis med glyfer for latinsk skrift.

På dette punktet kan du spørre: Hvis FreeSerif er så allsidig og uansett inneholder glyfer for russisk og thai, hvorfor skulle vi fortsatt trenge å bruke `\textrussian`, `\begin{english}`...`\end{english}` osv.? Ville ikke det være overflødig? La oss se hva som skjer når vi fjerner `\begin{english}`...`\end{english}` og `\begin{russian}`...`\end{russian}` miljøene:

![](/files/87c80a3361005330c309f2478fed106253dd2912)

Selvfølgelig gjengis alle de latinske og kyrilliske glyfene i PDF-utdataen, men merk at noen ord nå deles feil ved orddeling: ‘unk-nown’ og ‘unchan-ged’—og стандартной deles ikke i det hele tatt. Uten miljøene for språkbytte tror kompilatoren at disse tekstene fortsatt er på fransk og forsøker å sette dem med franske konvensjoner. Kompilatoren prøver å anvende franske orddelingsregler, som naturligvis gir feil resultater. Derfor er typografi og satsing så mye mer enn bare fontdesign og -valg: de er fagfelt som er svært språk- og kulturspesifikke.

Når vi ser tilbake på vårt første greske eksempel, ser vi nå hvorfor det er en god idé å laste `polyglossia` og bruke `\setdefaultlanguage{greek}`: for å sikre at dokumentet settes etter greske konvensjoner.

## Blanding av høyre-til-venstre- (RTL) og venstre-til-høyre- (LTR) språk

Du må være forsiktig når du setter en blanding av høyre-til-venstre- (RTL) skriftsystemer, som arabisk eller hebraisk, og venstre-til-høyre- (LTR) skriftsystemer i samme dokument. Se på følgende lille arabiske dokument med et engelsk ord, der Amiri brukes som hovedfont:

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

som gir:

![](/files/f7d6dc8a70f93c7b5c6dec6c11164cf4bb7dccf8)

Teksten settes automatisk fra høyre mot venstre, og starter ved høyrekanten av siden. Ordet “differentiation” settes i seg selv korrekt som tekst fra venstre mot høyre–men vent, *nei, det er det ikke*! Det gjengis som “dffirentiation” i resultatet! Hva skjer?

Amiri-fonten har faktisk glyfer for latinske alfabeter, men her er teksten `differentiation` ikke markert som engelsk: kompilatoren behandler `differentiation` som tekst fra høyre mot venstre, som om det var en sekvens av arabiske tegn. Under satsingen blir den opprinnelige sekvensen `iff` behandles som `ffi` (dvs. som RTL-tekst) og Amiris [ligatur](https://en.wikipedia.org/wiki/Typographic_ligature) glyf for «ffi» settes. Ved å markere ordet med `\textenglish{...}` sikrer du at det tolkes riktig som tekst fra venstre mot høyre.

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

![](/files/350dbf8ce1bdcb90d581f0ce15c0359b1feb2607)

**Merk:** Hvis du er vant til `babel` pakke-kommandoene vil du bli glad for å høre at kommandoene `\selectlanguage`, `\foreignlanguage` og miljøet `otherlanguage` støttes også av `polyglossia`.

## Språkspesifikke alternativer

Noen språk støtter ekstra tilpasningsalternativer; for eksempel, `gresk` godtar en `variant=ancient`, `mono` eller `poly` alternativ for gammel, monoton eller polytonisk gresk; `hindi` kan konfigureres med `numerals=western` eller `devanagari`. Se [polyglossia-pakkedokumentasjonen](http://texdoc.net/pkg/polyglossia) for detaljer.

Disse kan spesifiseres når språket lastes inn:

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

eller senere når som helst:

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

eller til og med lokalt for et bestemt miljø:

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

## Angi fonter for bestemte språk

Du kan angi skrifttypen som brukes for ulike språk. Anta at du ønsker å sette all engelsk tekst (i vårt forrige eksempel) i kursiv; du kunne skrive:

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

![](/files/e827d2aa26607a25f46ab07bcece06c483998fa6)

Du kan selvfølgelig bruke noe enda mer prangende:

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

![](/files/ce16db8a6f34d0dfbeb59bde32bdfb52fb040a50)

Denne mekanismen for å angi fonter for ulike språk eller skriftsystemer er særlig viktig når du bruker en hovedfont som *ikke* har glyfer for alle skriftsystemene eller språkene i dokumentet ditt. Anta at vi nå bestemmer oss for å bruke Caladea som hovedfont i dokumentet:

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

Ved kompilering ville vi se følgende feil:

```
Feil i pakken polyglossia: Den gjeldende romanfonten
inneholder ikke det kyrilliske skriftsystemet!

(polyglossia)                Vennligst definer
\cyrillicfont with \newfontfamily.

Se polyglossia-pakkedokumentasjonen for
en forklaring.
Skriv  H <retur>  for umiddelbar hjelp.
 ...

l.15 \select@language {russian}

Feil i pakken polyglossia: Den gjeldende romanfonten
inneholder ikke det thailandske skriftsystemet!

(polyglossia)                Vennligst definer
\thaifont with \newfontfamily.

Se polyglossia-pakkedokumentasjonen for
en forklaring.
Skriv  H <retur>  for umiddelbar hjelp.
 ...

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

Vi er nå nødt til å spesifisere hvilke fonter som skal brukes for kyrilliske og thailandske skriftsystemer. Igjen kan du se til [liste over tilgjengelige TrueType- og OpenType-fonter](https://www.overleaf.com/help/193) på Overleaf.

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

![](/files/0935207b25bbc6d54a87e8b8f528c858e7b4aa5e)

**Merk**: det faller utenfor denne artikkelens omfang å ta opp spørsmål knyttet til valg av estetisk tiltalende og typografisk kompatible fontkombinasjoner.

Merk at vi har definert `\cyrillicfont` i stedet for `\russianfont`, dvs. vi definerte en font for det kyrilliske *skriftsystemet* i stedet for det russiske *språket*. Fordelen med å definere `\cyrillicfont` er at hvis for eksempel `serbisk` også er et definert språk i prosjektet ditt, vil `\textserbian` automatisk bruke den definerte `\cyrillicfont`. `\russianfont`Hvis du bare hadde definert `\textserbian` , så vil bruk av `\cyrillicfont` igjen klage over «den gjeldende romanfonten inneholder ikke det kyrilliske skriftsystemet», og du måtte definere *uansett —* deg *med mindre* mente å bruke en annen font for serbisk tekst!

Et annet lignende scenario er devanagari *skriftsystemet*, som brukes for hindi- og sanskrit *språkene*; eller det arabiske skriftsystemet som brukes for arabisk og farsi (persisk).

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

![](/files/75aaa2e07c2e11f84bbd6687cc111dfd41c783de)

Når du bruker `\newfontfamily` er det nødvendig å spesifisere `Script`, ellers kan noen glyfer gjengis feil; for eksempel, hvis vi bare hadde skrevet `\newfontfamily\thaifont{Garuda}` kan det typograferte resultatet bli feil (venstre bilde nedenfor)—det riktige resultatet oppnås ved å legge til `[Script=Thai]`.

Feil: ![](/files/364de699228cba6936342e00af2f06d283544383) Riktig: ![](/files/f7106a4978573571b7d3b15a6838e08ad335d955)

## Definere andre fontfamilier

La oss se på et annet eksempel, denne gangen med hebraisk:

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

![](/files/258beedf59f3cf4a00b258028272a8e717141ee3)

Så langt, så bra. Anta nå at vi bruker en mal som opprinnelig ble laget for et engelsk dokument, som setter seksjonsoverskrifter i sans-serif med `titlesec` pakken:

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

Vi blir konfrontert med feilmeldingen:

```
Feil i pakken polyglossia: Den gjeldende romanfonten
inneholder ikke det hebraiske skriftsystemet!

(polyglossia)                Vennligst definer
\hebrewfont with \newfontfamily.

Se polyglossia-pakkedokumentasjonen for
en forklaring.
Skriv  H <retur>  for umiddelbar hjelp.
 ...

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

Dette er litt forvirrende: definerte vi ikke allerede `\hebrewfont` som Hadasim CLM? Det er egentlig fordi vi *ikke har spesifisert en sans-serif-font for hebraisk*. La oss rette opp dette ved å legge til en definisjon for `\hebrewfontsf`:

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

Og nå har vi resultatet:

![](/files/b70ca92b81802cd68afa7b94ef95334e8f865016)

Om behovet skulle oppstå, kunne vi også definere en font med fast bredde som skal brukes med `\hebrewfonttt`.

## Takk

Alle lorem ipsum-utdragene, på ulike språk, er fra [`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/no/sprak/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.
