> 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/nl/diepgaande-artikelen/27-how-to-use-latexdiff-on-overleaf.md).

# Hoe latexdiff op Overleaf te gebruiken

Dit artikel laat twee manieren zien om [latexdiff](https://ctan.org/pkg/latexdiff?lang=en) op Overleaf te gebruiken.

## Wat is latexdiff?

`latexdiff` is een Perl-script dat is ontworpen om de inhoud van twee LaTeX-bestanden te vergelijken. Het genereert LaTeX-code die visueel alle significante verschillen tussen die bestanden weergeeft.

Om `new.tex` te vergelijken met `old.tex` en de resultaten uit te voeren naar een bestand met de naam `diff.tex`, zou je `latexdiff` zo gebruiken:

```
latexdiff OPTIONS old.tex new.tex > diff.tex
```

`OPTIONS` zijn opdrachtregelparameters die je kunt gebruiken om `latexdiff`'s gedrag te configureren—raadpleeg de [`latexdiff` documentatie](http://mirrors.ctan.org/support/latexdiff/doc/latexdiff-man.pdf) voor een lijst met beschikbare opties.

## Hoe latexdiff te gebruiken op Overleaf

We bieden twee oplossingen, beide gepubliceerd en besproken op tex.stackexchange. De [eerste methode](#david-carlisles-solution) werd [voorgesteld door David Carisle](https://tex.stackexchange.com/a/603311), de [tweede oplossing](#tom-hejdas-solution) werd [voorgesteld door Tom Hejda](https://tex.stackexchange.com/a/603351), de supportmanager van Overleaf.

### De oplossing van David Carlisle

Bronbestanden om deze oplossing te demonstreren staan hieronder vermeld, samen met links om ze als een Overleaf-project te openen. Zie [Hoe deze eerste oplossing werkt](#how-this-first-solution-works) voor een korte uitleg van deze code.

[Open de oplossing van David Carlisle in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Ctitle%7BDavid+Carlisle%27s+solution%7D%0A%5Cauthor%7Bme%7D%0A%5Cdate%7BMay+2024%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cmaketitle%0A%5Csection%7BIntroduction%7D%0Azzz%0A%5Cend%7Bdocument%7D\&snip_name\[]=main2.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Ctitle%7Blatexdiff%7D%0A%5Cauthor%7Bme%5Cand+you%7D%0A%5Cdate%7BMay+2023%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cmaketitle%0A%0A%5Csection%7BIntroduction%7D%0Azzz+zzz%0A%0A%5Csection%7BSection%7D%0Azzz%0A%5Cend%7Bdocument%7D\&snip_name\[]=latexmkrc\&snip\[]=%24pdflatex+%3D+%22latexdiff+main.tex+main2.tex+%3E+main-d.tex%3B+pdflatex+%25O++main-d%22\&main_document=main.tex)

**main.tex**

```latex
\documentclass{article}
\title{De oplossing van David Carlisle}
\author{ik}
\date{mei 2024}
\begin{document}
\maketitle
\section{Inleiding}
zzz
\end{document}
```

**main2.tex**

```latex
\documentclass{article}
\title{latexdiff}
\author{ik\and jij}
\date{mei 2023}

\begin{document}

\maketitle

\section{Inleiding}
zzz zzz

\section{Sectie}
zzz
\end{document}
```

**latexmkrc**

```latex
$pdflatex = "latexdiff main.tex main2.tex > main-d.tex; pdflatex %O  main-d"
```

[Open de oplossing van David Carlisle in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Ctitle%7BDavid+Carlisle%27s+solution%7D%0A%5Cauthor%7Bme%7D%0A%5Cdate%7BMay+2024%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cmaketitle%0A%5Csection%7BIntroduction%7D%0Azzz%0A%5Cend%7Bdocument%7D\&snip_name\[]=main2.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Ctitle%7Blatexdiff%7D%0A%5Cauthor%7Bme%5Cand+you%7D%0A%5Cdate%7BMay+2023%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cmaketitle%0A%0A%5Csection%7BIntroduction%7D%0Azzz+zzz%0A%0A%5Csection%7BSection%7D%0Azzz%0A%5Cend%7Bdocument%7D\&snip_name\[]=latexmkrc\&snip\[]=%24pdflatex+%3D+%22latexdiff+main.tex+main2.tex+%3E+main-d.tex%3B+pdflatex+%25O++main-d%22\&main_document=main.tex)

Dit voorbeeld levert de volgende uitvoer op:

![Afbeelding die de uitvoer toont die door latexdiff is geproduceerd](/files/3d3c0f10e3bbcff35caf7e1c4b909717df4ea471)

#### Hoe deze eerste oplossing werkt

Deze oplossing vergelijkt de bestanden `main.tex` en `main2.tex` en schrijft de resultaten naar een bestand met de naam `main-d.tex`. Merk op dat omdat `main-d.tex` bestand een *gegenereerd* bestand is, d.w\.z. gemaakt door onze code, zal het niet zichtbaar zijn (vermeld) binnen de bestanden van het project.

Het werkt door gebruik te maken van een bestand met de naam `latexmkrc` dat Perl-code bevat om het compilatieproces van Overleaf aan te passen. Hier wordt het commando om te compileren met pdfLaTeX opnieuw gedefinieerd om eerst uit te voeren `latexdiff` vervolgens pdfLaTeX uit te voeren om te compileren `main-d.tex`, het bestand gegenereerd door `latexdiff`.

Zoals [opgemerkt door de auteur van de oplossing](https://tex.stackexchange.com/a/603311), om te stoppen met uitvoeren `latexdiff` en de werkelijke inhoud van `main.tex` of `main2.tex`, voeg gewoon een `#`, de Perl-opmerkingsteken, toe aan de `latexmkrc` opdrachtregel, zodat het er als volgt uitziet:

```
# $pdflatex = "latexdiff main.tex main2.tex > main-d.tex; pdflatex %O  main-d"
```

Nu kun je `main.tex` of `main2.tex` om hun werkelijke inhoud op te maken, niet de verschillen ertussen.

Raadpleeg voor meer informatie het Overleaf-artikel [Hoe te gebruiken `latexmkrc` met Overleaf](/latex/nl/diepgaande-artikelen/28-how-to-use-latexmkrc-with-overleaf.md).

### De oplossing van Tom Hejda

Bronbestanden om deze oplossing te demonstreren staan hieronder vermeld, samen met links om ze als een Overleaf-project te openen. Zie [Hoe deze tweede oplossing werkt](#how-this-second-solution-works) voor een korte uitleg van deze code.

[Open de oplossing van Tom Hejda in Overleaf.](https://www.overleaf.com/docs?engine=\&snip_name\[]=diff.tex\&snip\[]=%5CRequirePackage%7Bshellesc%7D%0A%5CShellEscape%7Blatexdiff+main.tex+main2.tex+%3E+main-d.tex%7D%0A%5Cinput%7Bmain-d%7D%0A%5Cdocumentclass%7Bdummy%7D%0A%5Ctitle%7BDemonstrating+latexdiff%7D\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Ctitle%7BTom+Hejda%27s+solution%7D%0A%5Cauthor%7Bme%7D%0A%5Cdate%7BMay+2024%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cmaketitle%0A%5Csection%7BIntroduction%7D%0Azzz%0A%5Cend%7Bdocument%7D\&snip_name\[]=main2.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Ctitle%7Blatexdiff%7D%0A%5Cauthor%7Bme%5Cand+you%7D%0A%5Cdate%7BMay+2023%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cmaketitle%0A%0A%5Csection%7BIntroduction%7D%0Azzz+zzz%0A%0A%5Csection%7BSection%7D%0Azzz%0A%5Cend%7Bdocument%7D\&main_document=diff.tex)

**diff.tex**

```latex
\RequirePackage{shellesc}
\ShellEscape{latexdiff main.tex main2.tex > main-d.tex}
\input{main-d}
\documentclass{dummy}
\title{latexdiff demonstreren}
```

**main.tex**

```latex
\documentclass{article}
\title{De oplossing van Tom Hejda}
\author{ik}
\date{mei 2024}
\begin{document}
\maketitle
\section{Inleiding}
zzz
\end{document}
```

**main2.tex**

```latex
\documentclass{article}
\title{latexdiff}
\author{ik\and jij}
\date{mei 2023}

\begin{document}

\maketitle

\section{Inleiding}
zzz zzz

\section{Sectie}
zzz
\end{document}
```

[Open de oplossing van Tom Hejda in Overleaf.](https://www.overleaf.com/docs?engine=\&snip_name\[]=diff.tex\&snip\[]=%5CRequirePackage%7Bshellesc%7D%0A%5CShellEscape%7Blatexdiff+main.tex+main2.tex+%3E+main-d.tex%7D%0A%5Cinput%7Bmain-d%7D%0A%5Cdocumentclass%7Bdummy%7D%0A%5Ctitle%7BDemonstrating+latexdiff%7D\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Ctitle%7BTom+Hejda%27s+solution%7D%0A%5Cauthor%7Bme%7D%0A%5Cdate%7BMay+2024%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cmaketitle%0A%5Csection%7BIntroduction%7D%0Azzz%0A%5Cend%7Bdocument%7D\&snip_name\[]=main2.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Ctitle%7Blatexdiff%7D%0A%5Cauthor%7Bme%5Cand+you%7D%0A%5Cdate%7BMay+2023%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cmaketitle%0A%0A%5Csection%7BIntroduction%7D%0Azzz+zzz%0A%0A%5Csection%7BSection%7D%0Azzz%0A%5Cend%7Bdocument%7D\&main_document=diff.tex)

Dit voorbeeld levert de volgende uitvoer op:

![Afbeelding die de uitvoer toont die door latexdiff is geproduceerd](/files/6d140b7c7a52da0296a15a851e58214dc9d1ba9e)

#### Hoe deze tweede oplossing werkt

Deze oplossing vergelijkt de bestanden `main.tex` en `main2.tex` en schrijft de resultaten naar een bestand met de naam `main-d.tex`. Merk op dat omdat `main-d.tex` bestand een *gegenereerd* bestand is, d.w\.z. gemaakt door onze code, zal het niet zichtbaar zijn (vermeld) binnen de bestanden van het project.

Een bestand met de naam `diff.tex` gebruikt de `\ShellEscape` opdracht, aangeboden door de [`shellesc` pakket](https://ctan.org/pkg/shellesc?lang=en), om uit te voeren `latexdiff`. De resultaten van de vergelijking, vervat in `main-d.tex`, worden `\input` in `diff.tex` voor opmaak.

`diff.tex` bevat regel `\documentclass{dummy}` om de compiler van Overleaf te laten geloven `diff.tex` kan worden gecompileerd. Dat werkt omdat het compilatieproces van Overleaf het momenteel geopende bestand controleert op de aanwezigheid van `\documentclass`. Als het dat niet vindt, compileert Overleaf het bestand dat in het Menu staat vermeld als het **Hoofd** bestand.

Als je selecteert **Opnieuw compileren** te vergelijken met `diff.tex` openen in de editor, zal het de resultaten van de vergelijking opmaken. Je kunt selecteren en compileren `main.tex` of `main2.tex` omdat ze allebei een `\documentclass` opdracht moet interpreteren.

Voor meer informatie over `latexdiff` bekijk de [officiële documentatie](http://mirrors.ctan.org/support/latexdiff/doc/latexdiff-man.pdf).


---

# 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/nl/diepgaande-artikelen/27-how-to-use-latexdiff-on-overleaf.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.
