> 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/el/se-vathos-arthra/27-how-to-use-latexdiff-on-overleaf.md).

# Πώς να χρησιμοποιήσετε το latexdiff στο Overleaf

Αυτό το άρθρο παρουσιάζει δύο τρόπους για να χρησιμοποιήσετε [latexdiff](https://ctan.org/pkg/latexdiff?lang=en) στο Overleaf.

## Τι είναι το latexdiff;

`latexdiff` είναι ένα Perl script σχεδιασμένο να συγκρίνει το περιεχόμενο δύο αρχείων LaTeX. Δημιουργεί κώδικα LaTeX που εμφανίζει οπτικά τυχόν σημαντικές διαφορές μεταξύ αυτών των αρχείων.

Για να συγκρίνετε `new.tex` με `old.tex` και να εξαγάγετε τα αποτελέσματα σε ένα αρχείο με όνομα `diff.tex`, θα χρησιμοποιούσατε `latexdiff` ως εξής:

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

`OPTIONS` είναι παράμετροι γραμμής εντολών που μπορείτε να χρησιμοποιήσετε για να διαμορφώσετε `latexdiff`τη συμπεριφορά του—ανατρέξτε στην [`latexdiff` τεκμηρίωση](http://mirrors.ctan.org/support/latexdiff/doc/latexdiff-man.pdf) για μια λίστα των διαθέσιμων επιλογών.

## Πώς να χρησιμοποιήσετε το latexdiff στο Overleaf

Παρέχουμε δύο λύσεις, και οι δύο δημοσιευμένες και συζητημένες στο tex.stackexchage. Η [πρώτη μέθοδος](#david-carlisles-solution) ήταν [προτάθηκε από τον David Carisle](https://tex.stackexchange.com/a/603311), η [δεύτερη λύση](#tom-hejdas-solution) ήταν [προτάθηκε από τον Tom Hejda](https://tex.stackexchange.com/a/603351), τον Υπεύθυνο Υποστήριξης του Overleaf.

### Η λύση του David Carlisle

Τα αρχεία πηγαίου κώδικα για την επίδειξη αυτής της λύσης παρατίθενται παρακάτω, μαζί με συνδέσμους για να τα ανοίξετε ως έργο Overleaf. Δείτε [Πώς λειτουργεί αυτή η πρώτη λύση](#how-this-first-solution-works) για μια σύντομη εξήγηση αυτού του κώδικα.

[Ανοίξτε τη λύση του David Carlisle στο 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 Carlisle}
\author{εγώ}
\date{Μάιος 2024}
\begin{document}
\maketitle
\section{Εισαγωγή}
zzz
\end{document}
```

**main2.tex**

```latex
\documentclass{article}
\title{latexdiff}
\author{εγώ\and εσύ}
\date{Μάιος 2023}

\begin{document}

\maketitle

\section{Εισαγωγή}
zzz zzz

\section{Ενότητα}
zzz
\end{document}
```

**latexmkrc**

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

[Ανοίξτε τη λύση του David Carlisle στο 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)

Αυτό το παράδειγμα παράγει το ακόλουθο αποτέλεσμα:

![Γραφικό που δείχνει το αποτέλεσμα που παράγεται από το latexdiff](/files/2abdfb0b4fe37eccc32fd7647817376981467f59)

#### Πώς λειτουργεί αυτή η πρώτη λύση

Αυτή η λύση συγκρίνει τα αρχεία `main.tex` και `main2.tex` και γράφει τα αποτελέσματα σε ένα αρχείο με όνομα `main-d.tex`. Σημειώστε ότι επειδή `main-d.tex` το αρχείο είναι ένα *παραγόμενο* αρχείο, δηλαδή δημιουργημένο από τον κώδικά μας, δεν θα είναι ορατό (καταχωρισμένο) στα αρχεία του έργου.

Λειτουργεί χρησιμοποιώντας ένα αρχείο με όνομα `latexmkrc` το οποίο περιέχει κώδικα Perl για την προσαρμογή της διαδικασίας μεταγλώττισης του Overleaf. Εδώ, η εντολή για μεταγλώττιση με pdfLaTeX επαναορίζεται ώστε πρώτα να εκτελεί `latexdiff` και έπειτα να εκτελεί το pdfLaTeX για να μεταγλωττίσει `main-d.tex`, το αρχείο που δημιουργείται από `latexdiff`.

Όπως [σημειώνει ο συγγραφέας της λύσης](https://tex.stackexchange.com/a/603311), για να σταματήσει να εκτελείται `latexdiff` και να στοιχειοθετήσει το πραγματικό περιεχόμενο του `main.tex` ή `main2.tex`, απλώς προσθέστε ένα `#`, τον δείκτη σχολίου της Perl, στην `latexmkrc` γραμμή εντολών, κάνοντάς το να μοιάζει ως εξής:

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

Τώρα μπορείτε να μεταγλωττίσετε `main.tex` ή `main2.tex` για να στοιχειοθετήσετε το πραγματικό τους περιεχόμενο, όχι τις διαφορές μεταξύ τους.

Για περισσότερες πληροφορίες, ανατρέξτε στο άρθρο του Overleaf [Πώς να χρησιμοποιήσετε `latexmkrc` με το Overleaf](/latex/el/se-vathos-arthra/28-how-to-use-latexmkrc-with-overleaf.md).

### Η λύση του Tom Hejda

Τα αρχεία πηγαίου κώδικα για την επίδειξη αυτής της λύσης παρατίθενται παρακάτω, μαζί με συνδέσμους για να τα ανοίξετε ως έργο Overleaf. Δείτε [Πώς λειτουργεί αυτή η δεύτερη λύση](#how-this-second-solution-works) για μια σύντομη εξήγηση αυτού του κώδικα.

[Ανοίξτε τη λύση του Tom Hejda στο 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}
```

**main.tex**

```latex
\documentclass{article}
\title{Η λύση του Tom Hejda}
\author{εγώ}
\date{Μάιος 2024}
\begin{document}
\maketitle
\section{Εισαγωγή}
zzz
\end{document}
```

**main2.tex**

```latex
\documentclass{article}
\title{latexdiff}
\author{εγώ\and εσύ}
\date{Μάιος 2023}

\begin{document}

\maketitle

\section{Εισαγωγή}
zzz zzz

\section{Ενότητα}
zzz
\end{document}
```

[Ανοίξτε τη λύση του Tom Hejda στο 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)

Αυτό το παράδειγμα παράγει το ακόλουθο αποτέλεσμα:

![Γραφικό που δείχνει το αποτέλεσμα που παράγεται από το latexdiff](/files/3a40c74c441cae49473115d408e1d067df49d92a)

#### Πώς λειτουργεί αυτή η δεύτερη λύση

Αυτή η λύση συγκρίνει τα αρχεία `main.tex` και `main2.tex` και γράφει τα αποτελέσματα σε ένα αρχείο με όνομα `main-d.tex`. Σημειώστε ότι επειδή `main-d.tex` το αρχείο είναι ένα *παραγόμενο* αρχείο, δηλαδή δημιουργημένο από τον κώδικά μας, δεν θα είναι ορατό (καταχωρισμένο) στα αρχεία του έργου.

Ένα αρχείο με όνομα `diff.tex` χρησιμοποιεί την `\ShellEscape` εντολή, που παρέχεται από το [`shellesc` πακέτο](https://ctan.org/pkg/shellesc?lang=en), για να εκτελέσει `latexdiff`. Τα αποτελέσματα της σύγκρισης, που περιέχονται στο `main-d.tex`, είναι `\input` στο `diff.tex` για στοιχειοθέτηση.

`diff.tex` περιέχει τη γραμμή `\documentclass{dummy}` για να ξεγελάσει τον μεταγλωττιστή του Overleaf ώστε να πιστεύει `diff.tex` ότι μπορεί να μεταγλωττιστεί. Αυτό λειτουργεί επειδή η διαδικασία μεταγλώττισης του Overleaf ελέγχει το τρέχον ανοιχτό αρχείο για την παρουσία του `\documentclass`. Αν δεν το βρει, το Overleaf μεταγλωττίζει το αρχείο που αναφέρεται στο Μενού ως το **Κύριο** αρχείο.

Αν επιλέξετε **Επαναμεταγλώττιση** με `diff.tex` άνοιγμα στον επεξεργαστή, θα στοιχειοθετήσει τα αποτελέσματα της σύγκρισης. Μπορείτε να επιλέξετε και να μεταγλωττίσετε `main.tex` ή `main2.tex` επειδή και τα δύο περιέχουν ένα `\documentclass` εντολή.

Για περισσότερες πληροφορίες σχετικά με το `latexdiff` ρίξτε μια ματιά στην [επίσημη τεκμηρίωση](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/el/se-vathos-arthra/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.
