Επόμενο Προηγούμενο Περιεχόμενα
Ας δούμε ένα μεγαλύτερο παράδειγμα. Σε ένα νέο αρχείο
γράψτε τα παρακάτω.
\input texinfo
@setfilename sample.info
@settitle A sample manual
@setchapternewpage odd
@titlepage
@title My first Texinfo manual
@subtitle Demo for Magaz
@author Kapelonis Kostis
@comment This is a comment
@page
@vskip 11pt plus 1fill1
Copyright @copyright{} 2002
@end titlepage
@comment name,next,prev,up
@node Top,First Chapter,,(dir)
@menu
* First Chapter:: The first chapter is the only chapter in this sample
* Concept Index:: This index has two entries
@end menu
@node First Chapter,Concept Index,Top,Top
@chapter First Chapter
@cindex Sample index entry
These are the contents of the first chapter
Here is a simple line of text.
@cindex Another sample index entry
Here is a numbered list
@enumerate
@item
This is the first item
@item
This is the second item
@end enumerate
@iftex
This paragraph should
appear only in a printed manual.
It is enclosed inside iftex keywords.
@end iftex
@ifinfo
This paragraph should
appear only in the info manual.
It is enclosed inside ifinfo keywords.
@end ifinfo
The @command{makeinfo} command will convert this manual
into an info file and @TeX{} to a printed file.
@node Concept Index ,,First Chapter,Top
@unnumbered Concept Index
@printindex cp
@comment Place here table of contents
@contents
@bye
Εδώ βλέπουμε αρκετές @εντολές. Δεν θα τις αναφέρω όλες,
για τις λεπτομέρειες δείτε το manual του texinfo. Οι
γνώστες του Latex ήδη θα έχουν δει πως το texinfo
"καλύπτει" με τις δικές του @εντολές τις αντίστοιχες του
Latex.
Το παράδειγμα δείχνει τις εντολές για την δημιουργία
indexing, την @menu για την δημιουργία μενού για το
browsing μέσα σε Info αρχείου, καθώς και την πολύ
σημαντική εντολή @node. H εντολή @vskip υπάρχει για να
δείξει ότι δεν έχει χαθεί η ευελιξία που διαθέτει το
Tex/Latex.
Ένα node (κόμβος στα ελληνικά) είναι το μικρότερο δομικό
στοιχείο ενός info αρχείου. Όταν πατήσατε previous,next
και up στο manual του flex, ουσιαστικά μετακινηθήκατε στα
αντίστοιχα nodes. Κάθε info αρχείο "κρέμεται" από έναν
top node που είναι ο αρχικός κόμβος του αντίστοιχου
manual. Όλοι οι top nodes από τα manuals που έχετε στο
σύστημα σας "κρέμονται" από έναν top node(supernode) του
συνολικού info tree. Αν γράψετε σκέτο info σε ένα
τερματικό (χωρίς όνομα manual δηλαδή) βλέπετε αυτόν τον
supernode και άρα έχετε μπροστά σας όλα τα manual που
έχετε εγκατεστημένα. To ίδιο συμβαίνει και όταν μπαίνετε
στο info mode του Emacs.
Πρακτικά αυτό σημαίνει ότι τελικά θα πρέπει να χωρίσετε
το κείμενο σας σε nodes. Τα @chapter και @section δεν
είναι αυτά που καθορίζουν την δομή του online manual.
Όπως είδατε και στην σελίδα της GNU
για τον flex ειδικά η html μορφή είναι δυνατόν να
κατασκευαστεί με διάφορους τρόπους ανάλογα με τα
nodes/chapters. Αυτή είναι και μια μεγάλη διαφορά που
ίσως δυσκολέψει όσους "σκέφτονται" σε Latex. (Αναφέρομαι
πάντα στο .info output που είναι browsable. Για ps/pdf
ισχύουν τα γνωστά, δηλαδή το texinfo είναι ένα πιο φιλικό
tex. Αν γράψετε ένα manual και ξέρετε από πριν ότι θα το
βγάλετε μόνο σε pdf δεν χρειάζεται να δώσετε σημασία σε
@node και @menu).
To @node command συντάσσεται ως εξής:
@node όνομα,όνομα-επόμενου,όνομα-προηγούμενου,όνομα-πατρικού.
Μία από τις πρώτες δυσκολίες που θα συναντήσετε κάθε φορά
που γράφετε ένα καινούριο node,είναι να συμπληρώσετε τα
παραπάνω ονόματα. Αν γράφετε σε Emacs υπάρχει βέβαια έτοιμη
εντολή που απλοποιεί τα πράγματα. Στην αμέσως επόμενη
γραμμή βάλτε ένα "συμβατικό" δομικό @command (π.χ.
@chapter, @section) για τα outputs se html/ps/pdf.
Τo @menu ορίζει το μενού που θα φαίνεται στην κάτω μεριά
του node που βρίσκεται ο χρήστης. Συνήθως περιέχουν
pointers σε άλλα nodes του ίδιου manual. Το supernode
(μετά από ένα εισαγωγικό κείμενο) δεν είναι παρά ένα
μεγάλο μενού με όλα τα manuals του συστήματος. Οι
λεπτομέρειες αφήνονται ως άσκηση στον αναγνώστη (Βασικά
δεν έχω ασχοληθεί πολύ με μενού ;-)
Τα outputs του παραπάνω αρχείου είναι τα παρακάτω
[PDF screenshot]
[HTML screenshot]
[INFO screenshot]
Επόμενο Προηγούμενο Περιεχόμενα