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

# Hvordan bruke latexdiff i Overleaf

Denne artikkelen viser to måter å bruke [latexdiff](https://ctan.org/pkg/latexdiff?lang=en) på Overleaf.

## Hva er latexdiff?

`latexdiff` er et Perl-skript utviklet for å sammenligne innholdet i to LaTeX-filer. Det genererer LaTeX-kode som visuelt viser eventuelle betydelige forskjeller mellom disse filene.

For å sammenligne `new.tex` med `old.tex` og skrive resultatene til en fil kalt `diff.tex`, bruker du `latexdiff` slik:

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

`OPTIONS` er kommandolinjeparametere du kan bruke til å konfigurere `latexdiff`sin oppførsel — se [`latexdiff` dokumentasjonen](http://mirrors.ctan.org/support/latexdiff/doc/latexdiff-man.pdf) for en liste over tilgjengelige alternativer.

## Hvordan bruke latexdiff på Overleaf

Vi tilbyr to løsninger, begge publisert og diskutert på tex.stackexchage. Den [første metoden](#david-carlisles-solution) ble [foreslått av David Carisle](https://tex.stackexchange.com/a/603311), den [andre løsningen](#tom-hejdas-solution) ble [foreslått av Tom Hejda](https://tex.stackexchange.com/a/603351), Overleafs supportansvarlige.

### David Carlisles løsning

Kildefiler som demonstrerer denne løsningen er listet nedenfor, sammen med lenker for å åpne dem som et Overleaf-prosjekt. Se [Hvordan denne første løsningen fungerer](#how-this-first-solution-works) for en kort forklaring av denne koden.

[Åpne David Carlisles løsning i 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{David Carlisles løsning}
\author{meg}
\date{mai 2024}
\begin{document}
\maketitle
\section{Innledning}
zzz
\end{document}
```

**main2.tex**

```latex
\documentclass{article}
\title{latexdiff}
\author{meg\and deg}
\date{mai 2023}

\begin{document}

\maketitle

\section{Innledning}
zzz zzz

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

**latexmkrc**

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

[Åpne David Carlisles løsning i 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)

Dette eksemplet gir følgende resultat:

![Grafikk som viser utdataene produsert av latexdiff](/files/df9558b2fd5ef4e0fb535ecf8b0ac1c7bd2f02ab)

#### Hvordan denne første løsningen fungerer

Denne løsningen sammenligner filene `main.tex` og `main2.tex` og skriver resultatene til en fil kalt `main-d.tex`. Merk at fordi `main-d.tex` filen er en *generert* fil, dvs. opprettet av koden vår, vil den ikke være synlig (oppført) blant prosjektets filer.

Den fungerer ved å bruke en fil kalt `latexmkrc` som inneholder Perl-kode for å tilpasse Overleafs kompileringsprosess. Her redefineres kommandoen for å kompilere med pdfLaTeX til først å kjøre `latexdiff` deretter kjøre pdfLaTeX for å kompilere `main-d.tex`, filen generert av `latexdiff`.

Som [påpekt av forfatteren av løsningen](https://tex.stackexchange.com/a/603311), for å stoppe kjøringen av `latexdiff` og sette faktisk innhold av `main.tex` eller `main2.tex`, bare legg til en `#`, Perl-kommentartegnet, til `latexmkrc` kommandolinjen, slik at den ser slik ut:

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

Nå kan du kompilere `main.tex` eller `main2.tex` for å sette deres faktiske innhold, ikke forskjellene mellom dem.

For mer informasjon, se Overleaf-artikkelen [Hvordan bruke `latexmkrc` med Overleaf](/latex/no/dybdeartikler/28-how-to-use-latexmkrc-with-overleaf.md).

### Tom Hejdas løsning

Kildefiler som demonstrerer denne løsningen er listet nedenfor, sammen med lenker for å åpne dem som et Overleaf-prosjekt. Se [Hvordan denne andre løsningen fungerer](#how-this-second-solution-works) for en kort forklaring av denne koden.

[Åpne Tom Hejdas løsning i 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{Demonstrerer latexdiff}
```

**main.tex**

```latex
\documentclass{article}
\title{Tom Hejdas løsning}
\author{meg}
\date{mai 2024}
\begin{document}
\maketitle
\section{Innledning}
zzz
\end{document}
```

**main2.tex**

```latex
\documentclass{article}
\title{latexdiff}
\author{meg\and deg}
\date{mai 2023}

\begin{document}

\maketitle

\section{Innledning}
zzz zzz

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

[Åpne Tom Hejdas løsning i 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)

Dette eksemplet gir følgende resultat:

![Grafikk som viser utdataene produsert av latexdiff](/files/21b57bb3bd5e960ea21474b1de4824eeee07001c)

#### Hvordan denne andre løsningen fungerer

Denne løsningen sammenligner filene `main.tex` og `main2.tex` og skriver resultatene til en fil kalt `main-d.tex`. Merk at fordi `main-d.tex` filen er en *generert* fil, dvs. opprettet av koden vår, vil den ikke være synlig (oppført) blant prosjektets filer.

En fil kalt `diff.tex` bruker `\ShellEscape` kommandoen, levert av [`shellesc` pakken](https://ctan.org/pkg/shellesc?lang=en), for å kjøre `latexdiff`. Resultatene av sammenligningen, som finnes i `main-d.tex`, blir `\input` inn i `diff.tex` for typsetting.

`diff.tex` inneholder linjen `\documentclass{dummy}` for å lure Overleafs kompilator til å tro `diff.tex` kan kompileres. Det fungerer fordi Overleafs kompileringsprosess sjekker den filen som for øyeblikket er åpnet, for tilstedeværelsen av `\documentclass`. Hvis den ikke finner den, kompilerer Overleaf filen som er listet i menyen som **Hoved** filen.

Hvis du velger **Rekompiler** med `diff.tex` åpne i redigeringsprogrammet, vil den sette resultatene av sammenligningen. Du kan velge og kompilere `main.tex` eller `main2.tex` fordi begge inneholder en `\documentclass` kommandoen.

For mer informasjon om `latexdiff` ta en titt på [den offisielle dokumentasjonen](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/no/dybdeartikler/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.
