> 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/perissotera-themata/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md).

# Πώς να γράψετε ένα αρχείο κλάσης LaTeX και να σχεδιάσετε το δικό σας βιογραφικό (Μέρος 1)

Μέρος 1 | [Μέρος 2](/latex/el/perissotera-themata/26-how-to-write-a-latex-class-file-and-design-your-own-cv-part-2.md)

**Συγγραφέας: James Allen (Μάρτιος 2011)**

Όλοι θέλουν ένα βιογραφικό με επαγγελματική εμφάνιση και δεν υπάρχει έλλειψη από πρότυπα LaTeX που θα σας δώσουν ένα. Αν όμως είστε σαν εμένα, θα θέλετε να έχετε το βιογραφικό σας και να το κάνετε δικό σας. Αυτό σημαίνει ότι πρέπει να μπορείτε να προσαρμόζετε μόνοι σας την εμφάνιση και την αίσθηση, κάτι που στο LaTeX μπορεί να είναι διαβόητα δύσκολο. Σε αυτή τη σειρά αναρτήσεων στο blog ελπίζω να σας καθοδηγήσω στη δημιουργία του δικού σας προσαρμοσμένου αρχείου κλάσης και να σας δείξω ότι μπορεί να είναι εύκολο να μορφοποιήσετε το βιογραφικό σας ακριβώς όπως θέλετε. Θα επικεντρωθούμε σε ένα στυλ βιογραφικού, αλλά οι μέθοδοι θα είναι ίδιες για κάθε είδους έγγραφο.

### Τι είναι ένα αρχείο κλάσης;

Όταν γράφετε `\documentclass{article}` στο αρχείο LaTeX σας, συμπεριλαμβάνετε το αρχείο κλάσης `article.cls`. Αυτό ορίζει όλες τις εντολές όπως `\section` και `\title` οι οποίες συμβάλλουν στη δομή του εγγράφου σας. Επίσης ρυθμίζει το πώς αυτές οι εντολές επηρεάζουν τη μορφή και τη διάταξη της σελίδας.

### Ρύθμιση του δικού σας αρχείου κλάσης

Ο πιο κομψός τρόπος για να προσαρμόσετε τη μορφή ενός εγγράφου είναι να κρατάτε όλες αυτές τις πληροφορίες σε ένα προσωπικό αρχείο κλάσης. Αυτό διατηρεί τη δομή του εγγράφου σας καθαρά διαχωρισμένη από τη μορφοποίηση και επιτρέπει εύκολη επαναχρησιμοποίηση. Είναι εύκολο να το ρυθμίσετε, οπότε δημιουργήστε ένα έγγραφο με το όνομα cv.tex με το ακόλουθο περιεχόμενο:

```latex
\documentclass{my_cv}
\begin{document}
\section{Εκπαίδευση}
\subsection{Πανεπιστήμιο του Πουθενά}
\section{Εργασία}
\subsection{ABC Limited.}
\end{document}
```

Αυτό προσπαθεί να φορτώσει το προσαρμοσμένο σας αρχείο κλάσης `my_cv.cls`, το οποίο δεν υπάρχει ακόμη. Δημιουργήστε `my_cv.cls` στον ίδιο κατάλογο με το `cv.tex` και γράψτε την ακόλουθη γραμμή μέσα του:

```latex
\LoadClass{article}
```

Αν μεταγλωττίσετε το έγγραφό σας τώρα, θα πρέπει να δείτε τις επικεφαλίδες στο προεπιλεγμένο στυλ article.

Λοιπόν τι έχει συμβεί εδώ; Τα αρχεία κλάσης πρέπει να περιέχουν πολλές πληροφορίες μορφοποίησης και εσωτερικές ρυθμίσεις για να λειτουργεί σωστά το LaTeX, αλλά δεν θέλουμε να χρειάζεται να τις εισάγουμε όλες χειροκίνητα. Αντίθετα μπορούμε να βασίσουμε το νέο μας αρχείο κλάσης στο `article.cls`. `\LoadClass` να περιλαμβάνουν `article.cls` και φορτώνουμε όλες τις εντολές και τα στυλ που ορίζονται σε αυτό. Σημειώστε ότι δεν χρησιμοποιούμε τη συνηθισμένη `\documentclass` εντολή για να συμπεριλάβουμε `article.cls` επειδή `\documentclass` θα πρέπει να καλείται μόνο μία φορά, ακριβώς στην αρχή του εγγράφου LaTeX σας.

### Γνωστοποίηση της κλάσης σας στο LaTeX

Όλα τα αρχεία κλάσης θα πρέπει να ξεκινούν με δύο γραμμές παρόμοιες με τις ακόλουθες, τις οποίες πρέπει να προσθέσετε στην κορυφή του `my_cv.cls` τώρα:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[2011/03/26 Η προσαρμοσμένη μου κλάση βιογραφικού]
```

Η `\NeedsTeXFormat` Οι εντολές λένε στον μεταγλωττιστή για ποια έκδοση του LaTeX προορίζεται το πακέτο. Η τρέχουσα έκδοση του LaTeX είναι η LaTeX2e και σχεδόν όλες οι διανομές τη χρησιμοποιούν.

Η `\ProvidesClass` Η εντολή δίνει στον μεταγλωττιστή κάποιες πληροφορίες για το πακέτο σας. Το πρώτο όρισμα θα πρέπει να ταιριάζει με το όνομα αρχείου του αρχείου κλάσης σας και λέει στο LaTeX πώς ονομάζεται το πακέτο σας. Το δεύτερο όρισμα είναι προαιρετικό και παρέχει μια περιγραφή της κλάσης σας η οποία θα εμφανιστεί στο αρχείο καταγραφής και σε άλλα σημεία. Η περιγραφή πρέπει να αρχίζει με μια ημερομηνία ακριβώς στη μορφή που φαίνεται παραπάνω και θα πρέπει να είναι η ημερομηνία της τελευταίας τροποποίησης του πακέτου. Αυτό μπορεί να χρησιμοποιηθεί κατά τη συμπερίληψη της κλάσης για να ελέγξετε ότι έχετε μια αρκετά πρόσφατη έκδοσή της. Για παράδειγμα, αν τη συμπεριλάβετε μέσω `\documentclass{my_cv}[2012/01/01]` με ημερομηνία νεότερη από την ημερομηνία στην περιγραφή της κλάσης, τότε θα εμφανιστεί μια προειδοποίηση που θα λέει ότι η κλάση είναι ξεπερασμένη.

### Τροποποίηση των επικεφαλίδων των ενοτήτων

Οι τυπικές επικεφαλίδες ενοτήτων του article δεν ταιριάζουν πραγματικά σε ένα βιογραφικό, οπότε θα θέλαμε να τις αντικαταστήσουμε με κάτι πιο κομψό. Για να το κάνουμε αυτό, μπορούμε να επαναορίσουμε την `\section` εντολή ώστε να εμφανίζει μια προσαρμοσμένη επικεφαλίδα.

Ευτυχώς υπάρχει ήδη ένα εξαιρετικό πακέτο που ονομάζεται `titlesec` το οποίο παρέχει έναν εύκολο τρόπο να προσαρμόσουμε τα στυλ των επικεφαλίδων μας. Συμπεριλάβετε το στο αρχείο κλάσης σας με:

```latex
\RequirePackage{titlesec}
```

Παρατηρήστε ότι θα πρέπει να χρησιμοποιούμε `\RequirePackage` αντί για το συνηθισμένο `\usepackage` εντολή επειδή βρισκόμαστε σε αρχείο κλάσης. Η `\RequirePackage` εντολή διασφαλίζει ότι κάθε πακέτο φορτώνεται μόνο μία φορά, ακόμη κι αν καλείται πολλές φορές από διαφορετικά αρχεία στυλ και κλάσης.

Η `titlesec` πακέτο παρέχει την εντολή `\titleformat` που μας επιτρέπει να προσαρμόζουμε τις επικεφαλίδες των ενοτήτων μας. Προσθέστε τα ακόλουθα στο τέλος του `my_cv.cls` για να προσαρμόσετε τη μορφή της επικεφαλίδας:

```latex
\titleformat{\section}         % Προσαρμόστε την εντολή \section
  {\Large\scshape\raggedright} % Κάνει τις επικεφαλίδες \section μεγάλες (\Large),
                               % με μικρά κεφαλαία (\scshape) και αριστερή στοίχιση (\raggedright)
  {}{0em}                      % Μπορεί να χρησιμοποιηθεί για να δοθεί ένα πρόθεμα σε όλες τις ενότητες, όπως 'Section ...'
  {}                           % Μπορεί να χρησιμοποιηθεί για να εισαχθεί κώδικας πριν από την επικεφαλίδα
  [\titlerule]                 % Εισάγει μια οριζόντια γραμμή μετά την επικεφαλίδα
```

Αν μεταγλωττίσουμε `cv.tex` τώρα θα δούμε ότι έχουμε ορισμένες κύριες επικεφαλίδες πιο κατάλληλες για ένα βιογραφικό:

![Screenshot1.png](/files/3e8530524bafd1752ec2157f6632906cc74053b4)

Μπορούμε να προσαρμόσουμε και τις επικεφαλίδες \subsection:

```latex
\titleformat{\subsection}
  {\large\scshape\raggedright}
  {}{0em}
  {}
```

Οι υποενότητες έχουν τώρα το ίδιο στυλ:

![Screenshot2.png](/files/446c0344814d59805ccd1e9ff5a9486c8e283813)

Θα πρέπει να δοκιμάσετε μερικές από τις διαθέσιμες επιλογές μορφοποίησης για να δείτε τι σας αρέσει:

* `\bfseries`, `\itshape`: κάντε την επικεφαλίδα έντονη ή πλάγια;
* `\scshape`:μικρά κεφαλαία;
* `\small`, `\normalsize`, `\large`, `\Large`, `\LARGE`, `\huge`, `\Huge`: ορίστε το μέγεθος της γραμματοσειράς;
* `\rmfamily`, `\sffamily`, `\ttfamily`: ορίστε τον τύπο γραμματοσειράς σε με πατούρες, χωρίς πατούρες ή γραφομηχανής αντίστοιχα.

### Προσθήκη ημερομηνιών στις επικεφαλίδες ενοτήτων

Μπορούμε να ορίσουμε μερικές νέες εντολές που μας επιτρέπουν να συμπεριλάβουμε ημερομηνίες στις επικεφαλίδες των ενοτήτων μας. Συμπεριλάβετε τα ακόλουθα στο αρχείο κλάσης σας:

```latex
\newcommand{\datedsection}[2]{%
  \section[#1]{#1 \hfill #2}%
}
\newcommand{\datedsubsection}[2]{%
  \subsection[#1]{#1 \hfill #2}%
}
```

Αυτό ορίζει δύο νέες εντολές `\datedsection` και `\datedsubsection` οι οποίες δέχονται δύο ορίσματα: το όνομα της ενότητας όπως πριν και μια ημερομηνία που θα στοιχειοθετηθεί στη δεξιά πλευρά της σελίδας. Η `\hfill` εντολή λέει στο LaTeX να γεμίσει όσο το δυνατόν περισσότερο χώρο και έτσι σπρώχνει το δεύτερο όρισμα (`#2`) στα δεξιά της σελίδας. Τροποποιήστε `cv.tex` για να χρησιμοποιήσετε αυτές τις εντολές:

```latex
\documentclass{my_cv}

\begin{document}

\section{Εκπαίδευση}
\datedsubsection{Πανεπιστήμιο του Πουθενά}{2004--2008}
Φοίτησα στο Πανεπιστήμιο του Πουθενά από το 2004 έως το 2008.

\section{Εργασία}
\datedsubsection{ABC Limited.}{2008--Now}
Εργάζομαι στην ABC Limited από το 2008 και έπειτα.

\end{document} ​
```

Το βιογραφικό μας τώρα περιέχει ημερομηνίες:

![Screenshot3.png](/files/d4c83c76e87dc59fc9c6e442d00131daa4debb94)

### Συμπεράσματα

Αυτό ήταν όλο για το πρώτο μέρος αυτού του οδηγού, αλλά ελπίζω να κάλυψα αρκετά ώστε να μπορέσετε να ξεκινήσετε να φτιάχνετε χρήσιμα αρχεία κλάσης. Δεν χρειάστηκαν πολλές εντολές για να δημιουργήσουμε κάτι που ήδη μοιάζει με ένα λογικό πρότυπο βιογραφικού και έχουμε αγγίξει μόνο την επιφάνεια όσων ακόμη θα μπορούσαμε να προσαρμόσουμε. Στα επόμενα μέρη αυτού του οδηγού θα μιλήσω για τη μεταβίβαση επιλογών στην κλάση σας για να τη ρυθμίσετε, τη δημιουργία ενός όμορφου τίτλου και για το πώς να ορίσετε ορισμένες γενικές επιλογές διάταξης.

Ευχαριστώ για την ανάγνωση!

Σημειώστε ότι είμαι σχετικά νέος στη δημιουργία αρχείων κλάσης ο ίδιος, οπότε αν κάποιος μπορεί να επισημάνει καλύτερους τρόπους για να κάνω τα πράγματα που ανέφερα εδώ, παρακαλώ ενημερώστε με.

Μέρος 1 | [Μέρος 2](/latex/el/perissotera-themata/26-how-to-write-a-latex-class-file-and-design-your-own-cv-part-2.md)


---

# 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/perissotera-themata/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.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.
