> 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/pl/pytania-i-odpowiedzi/58-i-have-a-custom-font-i-d-like-to-load-to-my-document.-how-can-i-do-this.md).

# Mam własną czcionkę, którą chciałbym wczytać do mojego dokumentu. Jak mogę to zrobić?

## Wstęp

Ten artykuł pokazuje, jak instalować niestandardowe czcionki do składu tekstu dokumentu — nie dotyczy czcionek do składu matematyki. Przez „niestandardową czcionkę” rozumiemy czcionkę niedostępną na serwerach Overleaf, w tym komercyjne czcionki wymagające licencji oraz darmowe czcionki niewchodzące w skład TeX Live ani nieobjęte naszą instalacją Linux.

* **Uwaga**: Ten artykuł omawia główne technologie czcionek, ale nie porusza specjalistycznych rozwiązań opartych na TeX, takich jak [Metafont](https://en.wikipedia.org/wiki/Metafont) i [czcionki wirtualne](https://texfaq.org/FAQ-virtualfonts).

## Od czego mam zacząć?

Rozwiązania składu oparte na LaTeX działają w kontekście starszych technologii. Na przestrzeni ponad czterech dekad rozwój kompilatorów LaTeX i formatów czcionek doprowadził do powstania ekosystemu łączącego starsze i nowsze technologie. W rezultacie rzeczywisty proces instalowania i konfigurowania niestandardowych czcionek do użytku z LaTeX zależy od tych dwóch czynników:

1. Rodzaj (format) dowolnej czcionki lub czcionek, które chcesz zainstalować:

* starsze [PostScript Type 1](https://en.wikipedia.org/wiki/PostScript_fonts#Type_1) lub [TrueType](https://en.wikipedia.org/wiki/TrueType) czcionki lub
* nowoczesne [OpenType](https://en.wikipedia.org/wiki/OpenType) czcionki.

3. Którego kompilatora LaTeX używasz do kompilowania projektu lub projektów w Overleaf:
   * pdfLaTeX lub
   * XeLaTeX lub LuaLaTeX

Przejdź do sekcji obejmującej wybrany kompilator:

* [Używanie niestandardowych czcionek z pdfLaTeX](#using-custom-fonts-with-pdflatex)
* [Używanie niestandardowych czcionek z XeLaTeX i LuaLaTeX](#using-custom-fonts-with-xelatex-and-lualatex)

## Używanie niestandardowych czcionek z pdfLaTeX

Oto podsumowanie tego, co będziesz musiał zrobić — w zależności od złożoności konfiguracji niestandardowej czcionki:

1. Dla każdego pliku czcionki (`.ttf`, `.otf` lub `.pfb`) będziesz potrzebować (lub wygenerować!) odpowiedniego metryki czcionki TeX (`.tfm`) i ewentualnie pliku kodowania (`.enc`).
2. pdfLaTeX musi wiedzieć, jak osadzać czcionki dokumentu w końcowym pliku PDF. Aby to zrobić, odczytuje plik mapowania czcionek (`pdftex.map`), który trzeba zaktualizować o szczegóły dotyczące niestandardowej czcionki. W Overleaf zrobisz to za pomocą jednego z tych poleceń:

* `\pdfmapfile{...}`
* `\pdfmapline{...}`

4. Będziesz potrzebować pliku opisu czcionki (`.fd`), który mówi LaTeX, jak używać nowych plików czcionek.

Oto główne typy plików, których będziesz potrzebować:

* **`.tfm`** (metryka czcionki TeX): te kompaktowe pliki binarne nie zawierają żadnych danych opisujących wygląd kształtów znaków, a jedynie wymiary znaków i „metadane” czcionki, których silniki TeX mogą używać do wykonywania podstawowych zadań składu. Metryki czcionek TeX dla czcionek matematycznych zawierają dodatkowe dane niepotrzebne w czcionkach wyłącznie tekstowych; w szczególności mają kilka parametrów „odstępów” używanych do składu matematyki.
* **`.fd`** (opis czcionki): te pliki zawierają polecenia LaTeX wymagane do skonfigurowania i przygotowania czcionki do użycia z LaTeX. Polecenia dozwolone w `.fd` plikach oraz `.fd` konwencja nazewnictwa plików są opisane w dokumencie [Wybór czcionek w LaTeX2ε](https://texdoc.org/serve/fntguide/1).
* **`.map`** (mapa czcionek): pliki mapowania łączą nazwę plików metryk czcionek TeX z fizycznym plikiem czcionki zawierającym dane potrzebne do rysowania kształtów znaków (glifów). Każda czcionka znana pdfTeX jest opisana w jednej linii pliku mapowania, przy użyciu ściśle określonej składni. Pełne szczegóły znajdziesz w sekcji 5 [Podręcznik użytkownika pdfTeX](http://mirrors.ctan.org/systems/doc/pdftex/manual/pdftex-a.pdf).
* **`.enc`** (kodowanie): jeśli jest wymagany, ten typ pliku definiuje mapowanie między kodami znaków w tekście LaTeX a odpowiadającymi im kształtami znaków (glifami) zawartymi w pliku czcionki.

### Przykład niestandardowej czcionki TrueType

Overleaf Galley zawiera projekt, który [pokazuje instalację niestandardowej czcionki TrueType](https://www.overleaf.com/latex/examples/example-using-a-custom-truetype-font/yndxyzgbhpjv)—czcionka PostScript Type 1 używałaby podobnej konfiguracji. Kompiluje się z pdfLaTeX, XeLaTeX i LuaLaTeX i daje następujący wynik:

![Obraz pokazujący skład w Overleaf z użyciem niestandardowej czcionki](/files/9daff3766b06fd587df7e14e5baf0127c4d832a7)

#### Uwagi do przykładowego projektu

* Używa on następującego `\pdfmapline` polecenia:

```latex
\pdfmapline{+delphine < Delphine.ttf <T1-WGL4.enc}
```

który łączy plik metryki czcionki TeX o nazwie `delphine` z fizycznym plikiem czcionki o nazwie `Delphine.ttf`.

* Pierwszy `<` znak instruuje pdfTeX, aby utworzył podzbiór czcionki TrueType; tzn. *częściowo* osadził tę czcionkę w końcowym pliku PDF. Tworzenie podzbiorów czcionki daje mniejsze pliki PDF, ponieważ zawierają one tylko dane kształtów znaków potrzebne do wyświetlenia znaków obecnych w dokumencie.
* Drugi `<` znak poprzedza nazwę pliku wektora kodowania, `T1-WGL4.enc`, używanego do mapowania kodów znaków w tekście na dane kształtów znaków (glify) wewnątrz pliku czcionki — dane kształtów znaków są potrzebne do renderowania (rysowania) znaku.
* LuaLaTeX wymaga dodatkowego kroku konfiguracji, ponieważ `\pdfmapline` generuje **Niezdefiniowana sekwencja sterująca** błąd z powodu zmian w sposobie obsługi niektórych poleceń backendu przez LuaTeX — sekcja 3 [Podręcznik referencyjny LuaTeX](http://mirrors.ctan.org/systems/doc/luatex/luatex.pdf). Pakiet `\ifLuaTeX` polecenia udostępnianego przez `iftex` pakietu służy do sprawdzania obecności LuaTeX; jeśli zostanie wykryty, `\pdfmapline` jest zdefiniowane:

```latex
\ifLuaTeX
\protected\def\pdfmapline {\pdfextension mapline }
\fi
```

### Używanie wielu czcionek lub czcionek komercyjnych

Aby zarządzać plikami dostarczanymi przez komercyjnych dostawców czcionek i kolekcjami darmowych czcionek, możesz tworzyć foldery w projekcie Overleaf, aby organizować pliki czcionek według ich typu (`.tfm`, `.pfb`, `.ttf` itd.). Dobrym wzorem nazewnictwa i organizacji folderów jest [Struktura katalogów TeX (TDS)](https://www.tug.org/tds/tds.pdf), która została zaprojektowana jako najlepsza praktyka, swoisty „plan” zarządzania zbiorem plików związanych z TeX.

Po utworzeniu folderów projektu musisz następnie utworzyć tak zwany [`latexmcrc` pliku](/latex/pl/artykuly-szczegolowe/28-how-to-use-latexmkrc-with-overleaf.md) zawierający instrukcje mówiące kompilatorowi LaTeX, aby szukał plików w tych folderach. Domyślnie kompilatory nie wiedzą o istnieniu tych folderów i nie znajdą plików, które zawierają.

#### Przykład projektu Overleaf

Przykład w Overleaf Gallery [Używanie folderów do zarządzania niestandardowymi plikami czcionek](https://www.overleaf.com/latex/templates/example-using-folders-to-manage-custom-font-files/qvqgnpjxvqzd) używa folderów i pliku `latexmkrc` do zainstalowania niestandardowej czcionki TrueType. Zawiera strukturę folderów przedstawioną na tym obrazie:

![Porządkowanie folderów projektu w Overleaf](/files/b05e762b2d2d4e9b88d0f90c1c0f5d5c0bf3923f)

i `latexmkrc` plik zawierający następujące wiersze, które ustawiają środowiskowe [zmienne środowiskowe](https://en.wikipedia.org/wiki/Environment_variable) mówiące kompilatorowi LaTeX, aby szukał plików w folderach naszego projektu:

```perl
$ENV{'TEXINPUTS'}='myfonts/tex//:' . $ENV{'TEXINPUTS'};
$ENV{'T1FONTS'}='myfonts/fonts/type1//:' . $ENV{'T1FONTS'};
$ENV{'AFMFONTS'}='myfonts/fonts/afm//:' . $ENV{'AFMFONTS'};
$ENV{'TEXFONTMAPS'}='myfonts/fonts/map//:' . $ENV{'TEXFONTMAPS'};
$ENV{'TFMFONTS'}='myfonts/fonts/tfm//:' . $ENV{'TFMFONTS'};
$ENV{'TTFONTS'}='myfonts/fonts/ttf//:' . $ENV{'TTFONTS'};
$ENV{'VFFONTS'}='myfonts/fonts/vf//:' . $ENV{'VFFONTS'};
$ENV{'ENCFONTS'}='myfonts/fonts/enc//:' . $ENV{'ENCFONTS'};
```

Jeśli zastanawiasz się, które pliki zwykle trafiają do którego folderu, zajrzyj do [ten artykuł](/latex/pl/artykuly-szczegolowe/06-an-introduction-to-kpathsea-and-how-tex-engines-search-for-files.md#table-listing-kpathsea-config-variables).

## Używanie niestandardowych czcionek z XeLaTeX i LuaLaTeX

### Używanie czcionek PostScript Type 1

Aby używać starszych czcionek PostScript Type 1 z XeLaTeX i LuaLaTeX, możesz postępować zgodnie z [wytycznymi dla pdfLaTeX](#using-custom-fonts-with-pdflatex), więc nie będziemy tu powtarzać tych szczegółów.

### Używanie czcionek OpenType

XeLaTeX i LuaLaTeX zapewniają szerokie wsparcie dla zaawansowanego składu z użyciem czcionek OpenType — odmian TrueType i PostScript — ponieważ ich podstawowe silniki TeX, XeTeX i LuaHBTeX, mają natywne (wbudowane) możliwości przetwarzania technologii czcionek OpenType, których pdfTeX nie ma.

* **Uwaga**: LuaLaTeX, poprzez swój podstawowy silnik TeX (LuaHBTeX), ma najbardziej zaawansowane możliwości obsługi czcionek ze wszystkich silników TeX; jednak omawianie ich wykracza poza zakres tego artykułu — więcej informacji znajdziesz w sekcjach 6 i 12 [Podręcznik referencyjny LuaTeX](https://ctan.org/pkg/luatex?lang=en).

Aby używać czcionek OpenType z XeLaTeX i LuaLaTeX, musisz wczytać [`fontspec`](https://ctan.org/pkg/fontspec?lang=en), potężny i bogaty w funkcje pakiet, który zapewnia interfejs do zaawansowanych możliwości składu czcionek OpenType.

* **Uwaga**: Nie musisz używać `\usepackage[T1]{fontenc}` (lub `\usepackage[utf8]{inputenc}`) podczas korzystania z czcionek OpenType z XeLaTeX lub LuaLaTeX.

### Przykład: wprowadzenie fontspec

Proces jest prosty, ponieważ nie wymaga instalacji czcionek — nie ma potrzeby `.tfm`, `enc` lub `.map` plików ani zapisywania definicji czcionek (`.fd`) — to już historia! Wystarczy wykonać to tak:

1. Dodaj następującą linię do preambuły dokumentu:

```latex
\usepackage{fontspec}
```

3. Wybierz ikonę przesyłania pliku (![UploadIcon.png](/files/46aa4df1b6fcf4429fab733ec6d2d1cfa997ec16)), znajdującą się nad listą plików.
4. Przeciągnij i upuść czcionkę lub czcionki na okno modalne przesyłania albo wybierz je z komputera, aby dodać je do projektu Overleaf.
5. Użyj jednego z `fontspec` pakietu `\set*xxx*font` poleceń, aby skonfigurować i aktywować czcionkę lub czcionki.

Świetna `fontspec` dokumentacja pakietu zawiera mnóstwo przykładów, które możesz przejrzeć, więc tutaj zachowamy prostotę, aby ułatwić Ci start. Na przykład załóżmy, że przesyłasz plik czcionki o nazwie `CrimsonText-Regular.ttf`; po wczytaniu `fontspec` możesz ustawić główną czcionkę tekstu dokumentu, wpisując

```latex
\setmainfont{CrimsonText-Regular.ttf}
```

Możesz też zapisać składnię taką jak

```latex
\setmainfont{CrimsonText}[
Extension = .ttf,
UprightFont = *-Regular,
...]
```

Możesz także zadeklarować nową rodzinę czcionek do użycia w dowolnych sytuacjach:

```latex
\newfontfamily{\crimson}{CrimsonText}
[Extension = .ttf, UprightFont = *-Regular, ...]
{\crimson Ten tekst używa czcionki CrimsonText}
```

#### Zasoby

* Ta [`fontspec` dokumentacja pakietu](http://mirrors.ctan.org/macros/unicodetex/latex/fontspec/fontspec.pdf) to lektura obowiązkowa — nie tylko zawiera liczne pomocne przykłady, ale także wiele przydatnych informacji kontekstowych na temat czcionek OpenType.
* Strona pomocy Overleaf dotycząca [XeLaTeX](/latex/pl/czcionki/03-xelatex.md) zawiera [szczegółowy przykład](/latex/pl/czcionki/03-xelatex.md#using-fonts-not-installed-on-overleaf27s-servers-google-fonts-example) pokazujący, jak pobrać czcionki OpenType z Google i skonfigurować je za pomocą `fontspec`.

**Przykładowe projekty**

Overleaf Galley zawiera przykładowe projekty pokazujące użycie czcionek OpenType z XeLaTeX lub LuaLaTeX — możesz je otworzyć i przełączać kompilator między LuaLaTeX a XeLaTeX:

* [Używanie czcionek Google z XeLaTeX](https://www.overleaf.com/latex/templates/using-google-fonts-with-xelatex/xxkpcgfttjvd)
* [Używanie czcionek OpenType STIX2 z LuaLaTeX lub XeLaTeX](https://www.overleaf.com/latex/templates/using-the-stix2-opentype-fonts-with-lualatex-or-xelatex/hdfvhzqmhnpx)

Następna grafika łączy wyniki wygenerowane przez te projekty:

![Przykładowe projekty Overleaf z użyciem czcionek OpenType](/files/aa82815d745b1360d923369143abf64277d6fe20)

## Podstawy czcionek i kompilatora LaTeX

### Rozszerzenia plików czcionek

Poniższa tabela zawiera rozszerzenia plików używane do oznaczania różnych typów (formatów) plików czcionek:

|                                                                                                              |                   |
| ------------------------------------------------------------------------------------------------------------ | ----------------- |
| **Typ czcionki**                                                                                             | **Rozszerzenie**  |
| [PostScript Type 1](https://en.wikipedia.org/wiki/PostScript_fonts#Type_1)$$\displaystyle{}^{\mathbf\*}$$    | `.pfb`            |
| [TrueType](https://en.wikipedia.org/wiki/TrueType)                                                           | `.ttf`            |
| [Zbiory TrueType](https://learn.microsoft.com/en-us/typography/opentype/otspec150/otff#truetype-collections) | `.ttc`            |
| [OpenType](https://learn.microsoft.com/en-us/typography/opentype/)                                           | `.otf` lub `.ttf` |

$$\displaystyle{}^{\mathbf\*}$$ W styczniu 2023 r. wszystkie aplikacje do tworzenia Adobe [zaprzestały obsługi starszego formatu czcionek Type 1](https://helpx.adobe.com/uk/fonts/kb/postscript-type-1-fonts-end-of-support.html).

Czcionki OpenType występują w dwóch „odmianach”, często nazywanych „smakami”: PostScript i TrueType — nazwy te odzwierciedlają dane i mechanizmy używane do reprezentowania kształtów znaków (glifów), które zawierają. Dlatego czcionki OpenType mają dwa rozszerzenia plików: `.otf` lub `.ttf` które, zgodnie z *konwencją*, oznaczają:

* `*nazwa-pliku*.otf` jest czcionką OpenType w odmianie PostScript
* `*nazwa-pliku*.ttf` jest czcionką OpenType w odmianie TrueType

Na przykład pdfTeX zakłada, że rozszerzenie `.otf` oznacza czcionkę OpenType w odmianie PostScript.

* **Uwaga**: rola `.ttc` rozszerzenie jest używane tylko dla zestawów czcionek TrueType.

### O rozszerzeniu pliku .ttf

Mając plik czcionki z rozszerzeniem `.ttf` , może to być albo:

* starsza (nie-OpenType) czcionka TrueType, albo
* czcionka OpenType zawierająca dane TrueType oraz dodatkowe funkcje zapewniane przez OpenType.

Ustalenie, czy dany `.ttf` plik czcionki jest formatem OpenType czy zwykłym TrueType, może być trudne i wymaga od aplikacji sprawdzenia/zbadanua wewnętrznych struktur danych czcionki. Więcej szczegółów znajdziesz w [tej dyskusji (wątku)](https://typedrawers.com/discussion/2945/determine-whether-a-font-file-is-opentype-format-or-truetype-format) lub w tym [artykule Microsoftu](https://learn.microsoft.com/en-us/typography/opentype/#why-is-my-opentype-font-listed-as-a-truetype-font-by-my-application).

### Formaty czcionek i kompilatory LaTeX

Poniższa tabela podsumowuje (popularne) formaty czcionek obsługiwane przez trzy kompilatory LaTeX (ściślej mówiąc, obsługiwane przez podstawowe silniki TeX):

|                |                         |                                                         |                                                        |                                                |
| -------------- | ----------------------- | ------------------------------------------------------- | ------------------------------------------------------ | ---------------------------------------------- |
| **Kompilator** | **PostScript (Type 1)** | **TrueType (zwykły**$$\displaystyle{}^{\mathbf†}$$**)** | **OpenType (TrueType)**$$\displaystyle{}^{\mathbf\*}$$ | **OpenType (PostScript)**                      |
| pdfLaTeX       | Tak                     | Tak                                                     | Ograniczone$$\displaystyle{}^{\mathbf{\*\*}}$$         | Ograniczone$$\displaystyle{}^{\mathbf{\*\*}}$$ |
| XeLaTeX        | Tak                     | Tak                                                     | Tak                                                    | Tak                                            |
| LuaLaTeX       | Tak                     | Tak                                                     | Tak                                                    | Tak                                            |

$$\displaystyle{}^{\mathbf†}$$Przez „zwykły” rozumiemy czcionkę TrueType, która nie zawiera dodatkowych danych (tabel) zdefiniowanych przez specyfikację OpenType, a więc nie ma bardziej zaawansowanych funkcji składu czcionek OpenType w odmianie TrueType.

$$\displaystyle{}^{\mathbf\*}$$pdfTeX zapewnia ograniczoną obsługę [Zbiory TrueType](https://learn.microsoft.com/en-us/typography/opentype/otspec150/otff#truetype-collections) (rozszerzenie `.ttc`) — odczyta jedynie dane dla pierwszej czcionki zawartej w kolekcji.

$$\displaystyle{}^{\mathbf{\*\*}}$$„Ograniczona” obsługa OpenType w pdfTeX oznacza:

* nie obsługuje zaawansowanych funkcji składu zawartych w czcionkach OpenType;
* będzie tworzył podzbiór czcionek OpenType w odmianie TrueType, ale nie czcionek OpenType w odmianie PostScript, które muszą być osadzone w całości. Brak tworzenia podzbiorów czcionek powoduje większe pliki PDF i rodzi problemy licencyjne w przypadku czcionek komercyjnych, które zwykle zakazują pełnego osadzania;
* nie może wykorzystywać więcej niż 256 znaków na jedną czcionkę, podczas gdy pojedyncze czcionki OpenType obsługują ich dziesiątki tysięcy;
* wymaga utworzenia metryk czcionek TeX i innych plików pomocniczych (wymaganych przez LaTeX) — procesów wykraczających poza zakres tego artykułu (zob. [Dalsza lektura](#further-reading) linki do opisów tych procesów).

## Dalsza lektura

* [Jak działa OpenType](https://simoncozens.github.io/fonts-and-layout/opentype.html) (Simon Cozens).
* [Określ, czy plik czcionki jest formatem OpenType czy TrueType](https://typedrawers.com/discussion/2945/determine-whether-a-font-file-is-opentype-format-or-truetype-format)— omówienie trudności w ustaleniu, czy dany `.ttf` jest zwykłym TrueType czy OpenType w odmianie TrueType.
* [Bliższe spojrzenie na czcionki TrueType i pdfTeX](https://tug.org/TUGboat/tb30-1/tb94thanh.pdf)— artykuł w TUGboat napisany przez [Hàna Thế Thànha](https://tug.org/interviews/thanh.html), twórcę [pdfTeX](https://www.tug.org/applications/pdftex/).
* [Struktura katalogów dla plików TeX](https://tug.org/tds/tds.html), standardową hierarchię folderów/katalogów do organizowania plików związanych z TeX.
* [Instalacja i używanie czcionek OpenType w LaTeX](https://www.tug.org/TUGboat/tb27-2/tb87owens.pdf)— artykuł w TUGboat wyjaśniający, jak przygotować czcionki OpenType do użycia z pdfLaTeX.
* [Jak używać czcionek TrueType z PdfTeX za pomocą otftotfm?](https://tex.stackexchange.com/questions/52819/how-do-i-use-truetype-fonts-with-pdftex-using-otftotfm/52902#52902)— wątek na tex.stackexchange zawierający szczegółowy przykład.

### Uwaga o „wojnach czcionek”...

Lata 80. i 90. przyniosły tak zwane „wojny czcionek”, gdy dwa konkurujące formaty czcionek, PostScript Type 1 (od Adobe) i TrueType (stworzone przez Apple, licencjonowane Microsoftowi), rywalizowały o dominację — o serca i umysły wszystkich użytkowników, zwłaszcza projektantów i typografów. Ostatecznie [format czcionek OpenType](https://learn.microsoft.com/en-us/typography/opentype) pojawił się (w 1997 r.) jako rozwiązanie hybrydowe, obejmujące i rozwijające technologie czcionek Adobe i Apple. OpenType opiera się na oryginalnym formacie pliku TrueType, aby umożliwić zaawansowane możliwości składu i lepsze wsparcie Unicode dzięki czcionkom zawierającym ponad 65 000 kształtów znaków (glifów).


---

# 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/pl/pytania-i-odpowiedzi/58-i-have-a-custom-font-i-d-like-to-load-to-my-document.-how-can-i-do-this.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.
