Μάθημα 9

Παραπομπές

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

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

Ο μηχανισμός \label και \ref

Για να έχει το LaTeX τη δυνατότητα να θυμάται μια θέση στο έγγραφό σας, πρέπει να της δώσετε μία ετικέτα (label) και στη συνέχεια μπορείτε να αναφερθείτε (refer) σε αυτή σε άλλα σημεία.

\documentclass{article}
\usepackage[T1]{fontenc}

\begin{document}
Hey world!

This is a first document.

\section{Title of the first section}

Text of material for the first section.


\subsection{Subsection of the first section}
\label{subsec:labelone}

Text of material for the first subsection.
\begin{equation}
  e^{i\pi}+1 = 0
\label{eq:labeltwo}
\end{equation}

In subsection~\ref{subsec:labelone} is equation~\ref{eq:labeltwo}.
\end{document}

Υπάρχουν δύο εντολές \label{...}, μία μετά την υποενότητα και η άλλη μέσα στο περιβάλλον equation. Χρησιμοποιούνται αντίστοιχα στις εντολές \ref{...} της τελευταίας φράσης. Όταν τρέχετε το LaTeX, αποθηκεύει πληροφορίες σχετικά με τις ετικέτες σε ένα βοηθητικό (auxiliary) αρχείο. Για την ετικέτα \label{subsec:labelone}, το LaTeX γνωρίζει ότι τότε βρίσκεται μέσα σε μία υποενότητα, και επομένως αποθηκεύει τον αριθμό αυτής της υποενότητας. Για την ετικέτα \label{eq:labeltwo}, το LaTeX γνωρίζει ότι το πιο πρόσφατο περιβάλλον ενδιαφέροντος είναι μία εξίσωση (equation), και επομένως αποθηκεύει την πληροφορία για αυτή την εξίσωση. Όταν ζητάτε μία αναφορά, το LaTeX την βρίσκει στο βοηθητικό αρχείο.

Τα προθέματα subsec: και eq: δεν χρησιμοποιούνται από το LaTeX· αυτό απλώς αποθηκεύει πληροφορίες για το στοιχείο που επεξεργάστηκε πιο πρόσφατα. Όμως καθώς γράφετε το κείμενό σας, τέτοια προθέματα σας βοηθούν να θυμάστε σε τι αντιστοιχεί η ετικέτα.

Μπορεί σε ένα αρχείο PDF να δείτε αναφορές που εμφανίζονται ως διπλά ερωτηματικά με έντονη γραμματοσειρά, ??. Η εξήγηση είναι ότι λόγω αυτού του μηχανισμού με τα βοηθητικά αρχεία, την πρώτη φορά που θα τρέξετε το LaTeX η ετικέτα δεν θα έχει ακόμα αποθηκευτεί. Τρέξτε το LaTeX μία φορά ακόμα και θα είστε έτοιμοι. (Συνήθως κατά τη συγγραφή θα τρέχετε το LaTeX αρκετές φορές ούτως ή άλλως, οπότε στην πράξη αυτό δεν είναι πρόβλημα.)

Σημειώστε τον χαρακτήρα ~ πριν τις αναφορές. Δεν θα θέλαμε να υπάρχει αλλαγή γραμμής μεταξύ της λέξης subsection και του αριθμού της υποενότητας, ή μεταξύ της λέξης equation και του αριθμού της εξίσωσης. Η προσθήκη του χαρακτήρα ~ σημαίνει ότι το LaTeX δεν θα κάνει αλλαγή γραμμής εκεί.

Πού πρέπει να δίνεται το \label

Η εντολή \label αναφέρεται πάντα στο προηγούμενο αριθμημένο στοιχείο: μια ενότητα, μια εξίσωση, ένα float, κ.λπ. Αυτό σημαίνει ότι η \label πρέπει πάντα να δίνεται μετά το στοιχείο στο οποίο θέλετε να αναφερθείτε. Ιδιαίτερα, όταν δημιουργείτε floats, η \label πρέπει να έρχεται μετά (ή καλύτερα, μέσα), στην εντολή \caption, αλλά εντός του περιβάλλοντος float.

Ασκήσεις

Προσπαθήστε να προσθέσετε νέα αριθμημένα στοιχεία (ενότητες, υποενότητες, αριθμημένες λίστες) στο δοκιμαστικό έγγραφο και να δείτε πόσες φορές πρέπει να τρέξετε το LaTeX για να λειτουργήσουν οι εντολές \label.

Προσθέστε μερικά floats και δείτε τι συμβαίνει όταν τοποθετήσετε το \label πριν την εντολή \caption αντί για μετά. Μπορείτε να προβλέψετε το αποτέλεσμα;

Τι συμβαίνει αν τοποθετήσετε ένα \label για μια εξίσωση μετά το \end{equation};