> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Extending TeX Live

> Extend TeX Live Docker images with packages and fonts for supported compile environments.

It's possible to extend an existing TeX Live image using a new Dockerfile and configure the application to use the new image.

Here we offer some guidelines to install new packages or fonts, but the configuration of a custom image is not covered by our support terms.

The TeX Live images receive infrequent updates. We suggest rebuilding custom images when upgrading Server Pro.

<Danger>
  The following sections apply to Server Pro and [Sandboxed Compiles](/on-premises/configuration/overleaf-toolkit/sandboxed-compiles) only.
</Danger>

### Installing and updating new packages

You can use `tlmgr` commands such as `tlmgr install` and `tlmgr update` to manage Tex Live packages as in the following example:

```dockerfile theme={null}
FROM ghcr.io/ayaka-notes/texlive-full:2023.1

RUN tlmgr update --force ebproof
```

### Using `tlmgr` in an older TeX Live image

By default `tlmgr` downloads resources from the latest TeX Live release. When patching an older TeX Live image, the downloads need to be switched to the respective archive. See the list in [https://www.tug.org/historic/](https://www.tug.org/historic/) for mirrors of archives.

```dockerfile theme={null}
FROM ghcr.io/ayaka-notes/texlive-full:2022.1

RUN tlmgr option repository <MIRROR>/systems/texlive/<YEAR>/tlnet-final
# e.g. RUN tlmgr option repository ftp://tug.org/historic/systems/texlive/2022/tlnet-final

RUN tlmgr update --force ebproof
```

### Installing new fonts

There are different procedures to install new fonts in a Tex Live distribution, and installing a custom font might require several steps. Checking the [instructions to install TeX fonts](https://tug.org/fonts/fontinstall.html) in the official Tex Live documentation is probably a good starting point.

The following `Dockerfile` shows an example of installing a TrueType font over an existing Tex Live 2022 image:

```dockerfile theme={null}
FROM ghcr.io/ayaka-notes/texlive-full:2022.1

COPY ./myfonts/*.ttf /usr/share/fonts/truetype/myfont/

# rebuild font information cache
RUN fc-cache
```

### Configuring Server Pro to use the new images

Use the name `ghcr.io/ayaka-notes/texlive-full` and a custom tag to build the new image, as in:

```bash theme={null}
docker build -t ghcr.io/ayaka-notes/texlive-full:2023.1-custom
```

We can now configure Server Pro to use the new `2023.1-custom` image updating the `TEX_LIVE_DOCKER_IMAGE` and `ALL_TEX_LIVE_DOCKER_IMAGES` environment variables:

```text wrap theme={null}
TEX_LIVE_DOCKER_IMAGE: "ghcr.io/ayaka-notes/texlive-full:2023.1-custom"
ALL_TEX_LIVE_DOCKER_IMAGES: "ghcr.io/ayaka-notes/texlive-full:2023.1,ghcr.io/ayaka-notes/texlive-full:2023.1-custom"
```

In the example above new projects are set by default to use the new `2023.1-custom` image, while `2023.1` is still available for when it's needed.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.