Μάθημα 13

Δομή κώδικα για μεγάλα έγγραφα

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

Όταν γράφετε ένα μεγαλύτερο κείμενο, θα θελήσετε πιθανώς να χωρίσετε τον κώδικα σε πολλαπλά αρχεία. Για παράδειγμα, είναι πολύ συνηθισμένο να έχετε ένα «κύριο» αρχείο, και στη συνέχεια ένα αρχείο κώδικα ανά κεφάλαιο (για ένα βιβλίο ή διατριβή), ή ανά σημαντική ενότητα (για ένα μεγάλο άρθρο).

Δομή κώδικα

Το LaTeX μάς επιτρέπει να χωρίζουμε τον κώδικά μας με ελεγχόμενο τρόπο. Υπάρχουν δύο σχετικές εντολές, οι \input και \include. Με την εντολή \input εισάγουμε ένα αρχείο και αυτό λειτουργεί «σαν να πληκτρολογήθηκε εδώ», έτσι η εντολή αυτή μπορεί να χρησιμοποιηθεί για να εισαχθεί (ουσιαστικά) οποιοδήποτε υλικό. Η εντολή \include λειτουργεί μόνο για κεφάλαια: ξεκινά μια νέα σελίδα και κάνει κάποιες εσωτερικές ρυθμίσεις. Όμως έχει ένα μεγάλο πλεονέκτημα: μάς επιτρέπει να επιλέξουμε ποια κεφάλαια θα συμπεριλάβουμε, και έτσι μπορούμε να εργαστούμε με μέρος του κειμένου μας αντί για το σύνολο.

Επομένως, ένα μεγαλύτερο έγγραφο θα μπορούσε να μοιάζει κάπως έτσι:

\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}

\title{A Sample Book}
\author{John Doe \and Joe Bloggs}

\IfFileExists{\jobname.run.xml}
{
\includeonly{
  front,
%  chap1,
  chap2,
%  append
  }
}
{
% Do a full document initially to generate
% all the aux files
}

\begin{document}
\frontmatter
\include{front}

% =========================
\mainmatter
\include{chap1}
\include{chap2}
\appendix
\include{append}

% ========================
\backmatter
\printbibliography
\newpage
\input{backcover}
\end{document}

Θα εξετάσουμε τα διάφορα στοιχεία αυτού του αρχείου παρακάτω. (Τα υποστηρικτικά αρχεία βρίσκονται στο τέλος αυτής της σελίδας.)

Χρήση της εντολής \input

Η εντολή \input είναι χρήσιμη για μέρη ενός μεγάλου κειμένου που δεν είναι ξεχωριστά κεφάλαια. Στο παράδειγμα, την έχουμε χρησιμοποιήσει για να ξεχωρίσουμε το εξώφυλλο και το οπισθόφυλλο, διατηρώντας το κύριο αρχείο σύντομο και σαφές, και επίσης με τον τρόπο αυτό θα μπορούσαμε να επαναχρησιμοποιήσουμε τα εξώφυλλα σε άλλο έγγραφο. Την έχουμε χρησιμοποιήσει επίσης για τις κάποιες ενότητες στην αρχή του «βιβλίου» μας που δεν είναι κεφάλαια, όπως ο πρόλογος. Και πάλι, αυτό γίνεται ώστε το κύριο αρχείο να παραμείνει σαφές.

Χρήση των εντολών \include και \includeonly

Η εντολή \include είναι χρήσιμη για κεφάλαια, και έτσι την έχουμε χρησιμοποιήσει για κάθε πλήρες κεφάλαιο· ξεκινά πάντα μία νέα σελίδα. Επιλέγουμε ποια κεφάλαια θα στοιχειοθετηθούν χρησιμοποιώντας την εντολή \includeonly, η οποία, όπως μπορείτε να δείτε, δέχεται μια λίστα ονομάτων αρχείων διαχωρισμένων με κόμματα. Με τη χρήση της \includeonly μπορείτε να συντομεύσετε τον χρόνο μεταγλώττισης και να παραγάγετε ένα αρχείο PDF μόνο με αυτά τα κεφάλαια, χρήσιμο για έλεγχο. Επιπλέον, το κύριο πλεονέκτημα της \includeonly είναι ότι το LaTeX θα χρησιμοποιήσει όλες τις πληροφορίες αναφορών από τα βοηθητικά αρχεία .aux όλων των συμπεριλαμβανόμενων αρχείων.

Δημιουργία πίνακα περιεχομένων

Η εντολή \tableofcontents χρησιμοποιεί τις πληροφορίες από τις εντολές δημιουργίας ενοτήτων για να δημιουργήσει τον πίνακα περιεχομένων. Έχει το δικό της βοηθητικό αρχείο, με κατάληξη .toc, οπότε μπορεί να χρειαστεί να τρέξετε το LaTeX δύο φορές για να περιληφθούν σωστά οι πληροφορίες. Ο πίνακας δημιουργείται αυτόματα από τους τίτλους των ενοτήτων. Υπάρχουν παρόμοιες εντολές για τη δημιουργία καταλόγων εικόνων και πινάκων, οι \listoffigures και \listoftables αντίστοιχα, οι οποίες αντλούν πληροφορίες από τις λεζάντες (\caption) των αντίστοιχων περιβαλλόντων και χρησιμοποιούν βοηθητικά αρχεία με κατάληξη .lof και .lot αντίστοιχα.

Διαχωρισμός του κειμένου σε τμήματα

Οι εντολές \frontmatter, \mainmatter, και \backmatter επηρεάζουν τη μορφοποίηση στοιχείων του εγγράφου. Για παράδειγμα, η εντολή \frontmatter αλλάζει την αρίθμηση των σελίδων σε λατινικούς αριθμούς. Η εντολή \appendix αλλάζει την αρίθμηση των κεφαλαίων σε A, B, κ.λπ., έτσι ώστε για παράδειγμα στο πρώτο κεφάλαιο μετά την \appendix, η κεφαλίδα να είναι Appendix A.

Ασκήσεις

Πειραματιστείτε με τη βασική δομή του εγγράφου που δίνεται στο παράδειγμα. Προσπαθήστε να προσθέσετε και να αφαιρέσετε αρχεία από την εντολή \includeonly και δείτε το αποτέλεσμα.

Προσθέστε μερικές εικόνες (figure) και πίνακες (table) και παραγάγετε τους καταλόγους εικόνων και πινάκων. Αν χρησιμοποιείτε μια τοπική εγκατάσταση του LaTeX, μπορείτε να δείτε πόσα τρεξίματα του LaTeX απαιτούνται; (Τα διαδικτυακά συστήματα τρέχουν το LaTeX όσες φορές χρειάζεται χωρίς να σας ειδοποιούν, οπότε οι επιπλέον απαιτούμενες εκτελέσεις δεν είναι τόσο εμφανείς.)


front.tex

\input{frontcover}
\maketitle
\input{dedication}
\input{copyright}
\tableofcontents
\input{pref}

pref.tex

\chapter{Preface}
The preface text. See \cite{doody}.

chap1.tex

\chapter{Introduction}
The first chapter text.

chap2.tex

\chapter{Something}
The second chapter text.

append.tex

\chapter*{Appendix}
The first appendix text.

frontcover.tex

\begin{center}
The front cover
\end{center}

dedication.tex

\begin{center}
\large
For \ldots
\end{center}

copyright.tex

\begin{center}
Copyright 2020 learnlatex.
\end{center}

backcover.tex

\begin{center}
The back cover
\end{center}