[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]
Alml (1) è il sistema di composizione SGML di questo documento, Appunti di informatica libera. Si tratta di un programma Perl, alml, che controlla l'analizzatore SGML e altri programmi necessari per arrivare alla composizione finale del documento.(2)
Alml si avvale di altri programmi per l'analisi SGML e per la generazione di alcuni formati finali. In particolare, è necessario disporre di nsgmls che fa parte generalmente del pacchetto SP (anche se la propria distribuzione GNU/Linux potrebbe nominarlo in modo differente); inoltre è fondamentale la presenza di LaTeX per generare la composizione da stampa. La tabella 271.1 riepiloga gli applicativi da cui dipende il buon funzionamento di Alml.
Tabella 271.1. Applicativi da cui dipende Alml.
Alml viene fornito solo attraverso archivi tradizionali di tipo tar+gzip, in file con nomi del tipo:
alml-versione.tar.gz
Estraendo il contenuto dell'archivio, si dovrebbero ottenere in particolare i file e le sottodirectory elencati nella tabella 271.2, che rappresentano l'essenziale.
Tabella 271.2. Contenuto essenziale dell'archivio di distribuzione di Alml.
Gli eseguibili, che nel pacchetto di distribuzione si trovano nella directory bin/
, devono essere raggiungibili attraverso il percorso di ricerca del sistema, rappresentato dalla variabile di ambiente PATH. Pertanto vanno collocati opportunamente, oppure vanno predisposti dei collegamenti adeguati.
Quanto contenuto nella directory share/
, va collocato nella directory /usr/share/alml/
, oppure vanno realizzati dei collegamenti equivalenti.
I messaggi di Alml possono essere tradotti. Se si dispone del file PO relativo alla lingua preferita, è necessario compilarlo come nell'esempio seguente:
$
msgfmt -vvvv -o alml.mo it.po
In questo esempio, il file it.po
viene compilato generando il file alml.mo
. Trattandosi evidentemente della traduzione italiana, questo file può essere collocato in /usr/share/locale/it/LC_MESSAGES/
, o in un'altra posizione analoga in base agli standard del proprio sistema operativo.
Se non è disponibile il modulo Perl-gettext,(3) che serve a Alml per accedere alle traduzioni, è possibile eliminare il suo utilizzo e simulare la funzione di Gettext. In pratica si commentano le istruzioni seguenti all'inizio dei programmi alml, alml-sp2sp, alml-sp2be e alml-extra:
# We *don't* want to use gettext. #use POSIX; #use Locale::gettext; #setlocale (LC_MESSAGES, ""); #textdomain ("alml"); |
Inoltre, si tolgono i commenti dalla dichiarazione della funzione fittizia gettext(), come si vede qui:
sub gettext { return $_[0]; } |
Un esempio iniziale può servire per comprendere il funzionamento generale di Alml.
<!DOCTYPE ALML PUBLIC "-//Daniele Giacomini//DTD Alml//EN"> <alml lang="it" spacing="uniform"> <head> <admin> <description>Un esempio per l'utilizzo del sistema Alml</description> <keywords>SGML, XML, HTML, Alml</keywords> </admin> <title>Esempio di utilizzo di Alml</title> <author>Pinco Pallino <pinco.pallino@brot.dg></author> <date>2011.11.11</date> <legal> <p>Copyright © Pinco Pallino, <pinco.pallino@brot.dg></p> <p>Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".</p> </legal> <maincontents levels="2">Indice generale</maincontents> </head> <intro> <h1> Introduzione al documento </h1> <p>Questo documento è scritto per... bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla...</p> <p>Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla...</p> </intro> <body> <h1 id="capitolo-primo"> Lavorando con bla bla bla... <indexentry>lavorare con bla bla</indexentry> <indexentry>bla bla</indexentry> </h1> <p>Lavorare con bla bla è molto semplice... bla bla bla bla bla bla bla bla bla bla bla bla bla...</p> <p>Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla...</p> <h2> Fare di meglio </h2> <p>C'è anche un modo migliore per... bla bla bla bla bla bla bla bla bla bla bla bla bla...</p> <p>Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla...</p> <h1 id="capitolo-secondo"> Non dover lavorare più <indexentry>relaxing</indexentry> </h1> <p>Se non si lavora ci si può riposare, ma questo si può fare solo se si dispone già di una certa disponibilità economica... bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla...</p> <p>Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla...</p> </body> <appendix> <h1> Alcune note </h1> <p>Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla...</p> <p>Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla...</p> </appendix> <index> <h1> Index </h1> <printindex index="main"> </index> </alml> |
Se tutto viene copiato correttamente nel file ipotetico esempio.sgml
, con il comando seguente si ottiene la composizione in PostScript, attraverso LaTeX e Dvips:
$
alml --ps esempio.sgml
Con il comando seguente, si ottiene la composizione in HTML, su più file distinti:
$
alml --html esempio.sgml
L'utilizzo di Alml può generare file differenti a seconda del tipo di operazione che viene richiesta. La tabella 271.3 riepiloga questi file.
Tabella 271.3. File generati dall'utilizzo di Alml. I file nome.sgml
e nome.css
devono essere già presenti.
È bene sottolineare che i file indicati come nome.sgml
e nome.css
devono essere già presenti perché si possa usare Alml; inoltre, il sorgente SGML principale potrebbe a sua volta incorporare altri file SGML.
Se il sorgente SGML fa riferimento a immagini collocate in file esterni, è necessario che queste siano in formato PNG.(4) In generale, conviene prevedere una directory apposita per questi file, in modo da non essere intralciati quando la composizione in HTML, o in PostScript, genera la copia delle immagini richieste nella directory corrente, utilizzano i nomi nella forma n.jpg
o n.ps
.
Il programma frontale attraverso cui si gestisce il sistema di composizione Alml è alml:
alml opzioni sorgente_sgml
alml --help
alml --version
Come si vede dal modello sintattico, a parte i casi delle opzioni --help e --version, è sempre richiesta l'indicazione di un file sorgente SGML, a cui applicare un qualche tipo di elaborazione.
--help
Mostra la guida rapida interna e conclude il funzionamento.
--version
Mostra le informazioni sulla versione e conclude il funzionamento.
--paper={a4|letter}
Permette di specificare le dimensioni della carta in base a un nome standard. Il formato predefinito è A4, che corrispondente alla parola chiave a4.
--paper-orientation={normal|inverted}
Permette di specificare l'orientamento della carta. Si osservi che non vengono usate le definizioni tipiche, corrispondenti a portrait e landscape, perché qui il contesto è un po' diverso. A ogni modo, se si seleziona il formato di carta A4 e poi si aggiunge l'opzione --paper-orientation=inverted, si intende arrivare a una composizione in orizzontale.
--draft
Quando il contesto lo permette, serve per ottenere una composizione particolare, con più informazioni utili alla correzione o alla revisione del testo. A differenza di quanto si potrebbe essere portati a pensare, in questo modo l'elaborazione è più complessa del normale, proprio per portare in risalto tali informazioni.
--compact
Quando il contesto lo permette, serve per ottenere una composizione compatta, risparmiando spazio.
--long
Quando si usa in abbinamento all'opzione --ps, cioè quando si vuole ottenere un risultato in formato PostScript, permette di ottenere una composizione speciale, a due colonne con il testo ridotto della metà. Di solito si abbina a questa anche l'opzione --compact.
Le opzioni --long, --extralong, --large, --extralarge e --thin, sono delle estensioni al formato selezionato con --paper, che possono essere disponibili solo con pochi formati di partenza. Oltre a questo, va considerato il fatto che si possono utilizzare solo quando l'orientamento richiesto è di tipo «normale», tenendo conto che il risultato finale potrebbe essere orizzontale o verticale, in base al tipo di estensione. |
--extralong
Come --long, su tre colonne verticali, molto rimpicciolite.
--large
Come --long, su tre colonne in orizzontale.
--extralarge
Come --large, su quattro colonne in orizzontale, molto rimpicciolite.
--thin
Un formato ridotto che si traduce in pratica in un A7x4, ovvero mezzo A4 diviso in verticale.
--clean
Rimuove alcuni file temporanei abbinati al file sorgente indicato. Si tratta per la precisione di nome.pageref
, nome.diag
, nome.aux
e nome.log
.
--verbose
Segnala il procedere dell'elaborazione con informazioni dettagliate. In generale tali informazioni sono ottenibili dal file nome.diag
; tuttavia, in presenza di file sorgenti di grandi dimensioni, può servire per sapere a che punto è l'elaborazione.
--sgml-include=entità_parametrica
Attraverso questa opzione, che può essere usata anche più volte, è possibile «includere» delle entità parametriche. Per la precisione, è come se nel sorgente venisse dichiarata un'entità parametrica corrispondente, assegnandole la parola chiave INCLUDE. Ciò viene usato per controllare l'inclusione di porzioni di sorgente, secondo le convenzioni dell'SGML.
--page-numbering={plain|default}
Questa opzione permette di definire in che modo gestire la numerazione delle pagine nei formati di composizione cartacei. In condizioni normali, la numerazione è realizzata attraverso sequenze differenti: una per la parte iniziale fino alla fine dell'introduzione, una per il corpo (comprese le appendici) e una finale per gli indici analitici. Assegnando la parola chiave plain si fa in modo che la numerazione sia unica, cosa che potrebbe essere conveniente per il formato PDF.
--sgml-syntax | --sgml-check
Una qualunque di queste due opzioni permette di ottenere la verifica formale del sorgente, in base al DTD.
--sp
Con questa opzione si vuole raggiungere solo un formato intermedio per il controllo diagnostico del funzionamento di Alml.
--tex | --latex
Con questa opzione si vuole raggiungere solo un formato intermedio in LaTeX per il controllo diagnostico del funzionamento di Alml.
--dvi
Genera un risultato in formato DVI. L'elaborazione crea una serie di file EPS per le immagini, secondo il modello n.ps
.
--ps | --postscript
Genera un risultato in formato PostScript. L'elaborazione crea una serie di file EPS per le immagini, secondo il modello n.ps
; una volta ottenuto il file PostScript finale, questi file non servono più.
--pdf
Genera un risultato in formato PDF.
--html
Genera un risultato in formato HTML, articolato in più file, dove il primo è nome.html
e gli altri sono nomen.html
. Inoltre, viene fatta una copia dei file delle immagini, secondo il modello n.jpg
(le due numerazioni sono indipendenti).
--html-text
Genera un risultato in formato HTML speciale, in un file unico, senza riferimenti a immagini esterne e con tabelle testuali. Il file ottenuto può essere consultato con Links e con questo può essere convertito in un testo puro e semplice, attraverso il comando:
links -dump nome.html > nome.txt
--html-check | --html401-check
Se sono stati installati i file necessari, consente la verifica formale di un file HTML secondo le specifiche della versione 4.01.
--html320-check
Se sono stati installati i file necessari, consente la verifica formale di un file HTML secondo le specifiche della versione 3.2.
--xml
Se sono stati installati i file necessari, consente la verifica formale di un file XML secondo le specifiche del DTD relativo (attualmente solo XHTML).
Un file-make opportuno può facilitare l'uso di Alml. Viene proposto un esempio elementare, riferito al file example.sgml
, in cui si può vedere anche l'utilizzo proposto di alml.
# file name prefix. DOC_PREFIX=example # Notice that "text" generates an HTML file with the same name # for the first HTML page. This is why it is before the standard # HTML typesetting. # all: \ clean \ text \ html \ ps \ longps \ extralongps \ largeps \ extralargeps \ pdf clean: @echo "Cleaning..." ; \ find . -name core -exec rm -f \{\} \; ; \ rm -f $(DOC_PREFIX)*.tex ; \ rm -f $(DOC_PREFIX)*.dvi ; \ rm -f $(DOC_PREFIX)*.sp ; \ rm -f $(DOC_PREFIX)*.sp2 ; \ rm -f $(DOC_PREFIX)*.ps ; \ rm -f $(DOC_PREFIX)*.pdf ; \ rm -f $(DOC_PREFIX)*.txt ; \ rm -f $(DOC_PREFIX)*.log ; \ rm -f $(DOC_PREFIX)*.aux ; \ rm -f $(DOC_PREFIX)*.tmp ; \ rm -f $(DOC_PREFIX)*.diag ; \ rm -f $(DOC_PREFIX)*.pageref ; \ rm -f $(DOC_PREFIX)*.pageloc ; \ rm -f *.html ; \ rm -f *.bak ; \ rm -f *.jpg ; \ rm -f *.ps ; \ rm -f *\~ check: @alml --sgml-check \ --verbose \ $(DOC_PREFIX).sgml dvi: @alml --dvi \ --verbose \ $(DOC_PREFIX).sgml ps: @alml --ps \ --verbose \ $(DOC_PREFIX).sgml longps: @alml --ps \ --verbose \ --compact \ --long \ --page-numbering=plain \ $(DOC_PREFIX).sgml extralongps: @alml --ps \ --verbose \ --compact \ --extralong \ --page-numbering=plain \ $(DOC_PREFIX).sgml largeps: @alml --ps \ --verbose \ --compact \ --large \ --page-numbering=plain \ $(DOC_PREFIX).sgml extralargeps: @alml --ps \ --verbose \ --compact \ --extralarge \ --page-numbering=plain \ $(DOC_PREFIX).sgml pdf: @alml --pdf \ --verbose \ --page-numbering=plain \ $(DOC_PREFIX).sgml html: @alml --html \ --verbose \ $(DOC_PREFIX).sgml text: @alml --html-text \ --verbose \ $(DOC_PREFIX).sgml ; \ links -dump \ $(DOC_PREFIX).html \ > $(DOC_PREFIX).txt |
Si può osservare in particolare l'obiettivo clean che elimina tutti i file non indispensabili e in particolare tutti i file il cui nome termina per .html
e per .ps
.
Se per esempio si utilizza il comando make ps, si otterrà la composizione in PostScript, generando in particolare il file example.ps
.
Recentemente, Alml è stato modificato e alcune sue funzionalità particolari, non sono più disponibili.
Non esiste più la gestione delle derivazioni, pertanto, non si possono più usare strutture come quelle seguenti:
<!-- START derivazione -->
...
...
<!-- STOP derivazione -->
Gli elementi verbatimpre, asciiart e uri, vanno usati assieme a una sezione marcata di tipo CDATA:
<verbatimpre>
<![CDATA[
...
...
...
]]>
</verbatimpre>
<asciiart>
<![CDATA[
...
...
...
]]>
</asciiart>
<uri><![CDATA[indirizzo]]></uri>
Textchk e Checkbot, descritti rispettivamente nel capitolo 270 e nella sezione 259.5, possono essere usati facilmente con Alml. In generale, si passa per una composizione in formato HTML singolo, quindi si utilizzano questi programmi. Supponendo di avere generato il file mio_file.html
:
$
textchk --input-type=html mio_file.html mio_file.tchk mio_file.tdiag
$
checkbot --url file://`pwd`/mio_file.html
Per usare Ispell, è conveniente generare prima una versione del documento in formato testo puro. Per questo si potrebbe usare Lynx o Links, ma all'interno del pacchetto di Alml è disponibile un programma di supporto speciale, in grado di convertire opportunamente un file HTML per questo scopo. Si tratta di alml-extra che va usato con l'opzione --html-to-text-for-spell:
alml-extra --html-to-text-for-spell < file_html > file_testo_non_formattato
In particolare, per evitare problemi con Ispell, nel file che si ottiene sono eliminate la barre oblique inverse (\).
Naturalmente, usando poi Ispell nel file generato in questo modo, non ha senso fare delle correzioni, che invece vanno applicate al sorgente originale, in modo manuale. |
Il file LaTeX generato da Alml tende a richiedere risorse impreviste a TeX. È molto probabile che per documenti di dimensioni medie, sia necessario espandere i limiti posti dalla configurazione di TeX.
In generale, si dovrebbe disporre di una distribuzione teTeX, per la quale si interviene nel file texmf/web2c/texmf.cnf
(eventualmente potrebbe trattarsi meglio di /etc/texmf/texmf.cnf
, o simile).
Per la composizione di Appunti di informatica libera si è resa necessaria la modifica di alcune variabili; quello che si vede sotto sono i valori minimi da assegnare alle variabili rispettive:
main_memory = 2000000 font_mem_size = 800000 pool_size = 250000 hash_extra = 10000 buf_size = 100000 save_size = 40000 |
Si può tenere in considerazione l'abbinamento seguente, tra il rapporto generato da TeX e il file di configurazione texmf.cnf
, tenendo conto che in situazioni particolari il programma può segnalare la mancanza di una risorsa differente da quelle comuni:
Here is how much of TeX's memory you used:
42853 strings out of 55918
Dipende dalla variabile max_string. In questo caso gli era stato assegnato il valore 60 000.
510063 string characters out of 647843
Dipende dalla variabile pool_size. In questo caso gli era stato assegnato il valore 700 000.
200381 words of memory out of 1000001
Dipende dalla variabile main_memory. In questo caso gli era stato assegnato il valore 1 000 000.
44744 multiletter control sequences out of 10000+40000
Il valore finale che si somma a 10 000, dipende dalla variabile hash_extra, a cui era stato assegnato il valore 40 000.
221835 words of font info for 188 fonts, out of 400000 for 1000
I due valori finali dipendono rispettivamente da font_mem_size e da font_max.
14 hyphenation exceptions out of 1000
Dipende dalla variabile hiph_size a cui corrisponde esattamente il valore finale.
Al termine delle modifiche a questo file, occorre ricordare di lanciare il comando texconfig init, con i privilegi dell'utente root:(5)
#
texconfig init
Nel caso particolare della distribuzione Debian, il file di configurazione /etc/texmf/texmf.cnf
è ottenuto attraverso la fusione di file differenti, contenuti nella directory /etc/texmf/texmf.d/
. In tal caso, per modificare le voci descritte in precedenza, occorre intervenire probabilmente nel file /etc/texmf/texmf.d/95NonPath
; successivamente occorre eseguire il comando update-texmf, il quale ricostruisce un file /etc/texmf/texmf.cnf
nuovo; infine si deve eseguire texconfig init.
Le distribuzioni normali di TeX potrebbero non essere in grado di gestire un gran numero di comandi \label, anche se si tenta di intervenire nella configurazione. Questo si traduce in pratica in un limite insuperabile per ciò che nella configurazione viene mostrato come la variabile save_size.
I comandi \label generano delle annotazioni in un file con estensione .aux
, simili all'esempio seguente:
\newlabel{anchor7}{{}{25}} |
In questo caso si afferma che l'etichetta anchor7 corrisponde alla pagina 25.
Generalmente, la composizione con i programmi *tex viene ripetuta per tre volte, allo scopo di acquisire le informazioni contenute in questo file: la prima volta viene costruito da zero, la seconda volta il testo viene reimpaginato utilizzando queste informazioni, rigenerandole nuovamente; infine, la terza volta non ci dovrebbero essere ulteriori spostamenti nell'impaginazione e il procedimento termina. Pertanto, la seconda e la terza volta viene letto il file con estensione .aux
.
Sia i comandi \label, sia i comandi \newlabel contenuti nel file ausiliario che viene incluso automaticamente, vanno a ridurre la memoria definita dalla variabile save_size. Così succede normalmente che si riesca a completare la prima elaborazione del file, mentre nella successiva, caricando anche il file ausiliario la memoria non basta più. La segnalazione di errore tipica è la seguente:
! TeX capacity exceeded, sorry [save size=40000].
Di fatto, questa variabile non può superare il valore 65 535, anche se si tenta di modificare i sorgenti di teTeX intervenendo nel file texk/web2c/tex.ch
. Dovrebbe esserci una riga simile a quella seguente:
@!inf_save_size = 600; @!sup_save_size = 40000; |
Si può anche provare, aumentando il valore assegnato a sup_save_size, per esempio come nel caso seguente, ma in pratica, il limite massimo che si riesce a raggiungere resta quello di 65 535:(6)
@!inf_save_size = 600; @!sup_save_size = 100000; |
Alml è un sistema di composizione pensato per la realizzazione di opere molto grandi, con indici generali e analitici gestiti autonomamente. In questo modo, la composizione tradizionale attraverso TeX genererebbe un file .aux
con una quantità di voci molto grande. Per evitare di saturare il limite di TeX, questi riferimenti vengono inseriti in un altro file, con estensione .pageref
e gestiti esternamente a TeX.
In breve, Alml gestisce le cose nel modo seguente.
Viene creato un file TeX in cui le etichette (le ancore) usano il comando \AlmlLabel
\AlmlLabel{etichetta}
e i riferimenti alle pagine si fanno con comandi del tipo
\AlmlPageRef{0}{000}{etichetta}
Viene avviato TeX che elabora il file e genera un file .pageref
in base ai comandi \AlmlLabel.
Viene letto il file .pageref
e con quelle informazioni, il file TeX viene modificato intervenendo sui riferimenti alle pagine, che diventano:
\AlmlPageRef{1}{pagina}{etichetta}
Viene letto il file .pageref
e con quelle informazioni, il file TeX viene modificato intervenendo sui riferimenti alle pagine, che diventano:
\AlmlPageRef{2}{pagina}{etichetta}
Per facilitare la suddivisione della composizione PostScript in file contenenti solo un tomo o solo una parte, vengono inserite nel sorgente TeX delle istruzioni per creare un file con estensione .pageloc
, contenente le informazioni necessarie:
BOF tome{1}pageoffset{12}relativepage{1} part{1}pageoffset{12}relativepage{7} part{2}pageoffset{12}relativepage{19} part{3}pageoffset{12}relativepage{105} part{4}pageoffset{12}relativepage{121} part{5}pageoffset{12}relativepage{171} part{6}pageoffset{12}relativepage{203} part{7}pageoffset{12}relativepage{269} part{8}pageoffset{12}relativepage{319} part{9}pageoffset{12}relativepage{351} part{10}pageoffset{12}relativepage{383} part{11}pageoffset{12}relativepage{411} part{12}pageoffset{12}relativepage{415} part{13}pageoffset{12}relativepage{469} tome{2}pageoffset{12}relativepage{541} part{14}pageoffset{12}relativepage{545} eof{}pageoffset{12}relativepage{552} EOF |
Il significato dovrebbe essere intuitivo. Per esempio, il primo tomo inizia dalla 13-esima pagina (ottenuta sommando 12 a 1) e termina all'inizio del tomo successivo, ovvero alla 552-esima pagina (541+12-1). L'ultima pagina è la 564-esima.
In questo esempio, il valore 12 ricorrente rappresenta le pagine che precedono il contenuto vero e proprio del documento, in cui ci possono essere indici generali e introduzioni. Questo valore, definito qui come page offset, viene semplicemente sommato a quello finale.
Alml dispone di un programma di supporto, costituito dall'eseguibile alml-extra, che consente di facilitare lo svolgimento di funzioni accessorie, in particolare per la riorganizzazione dei file PostScript.
alml-extra opzione [argomento]
A seconda dell'opzione utilizzata, può essere richiesto un argomento o meno, che fa riferimento a un file.
Dal momento che le opzioni che riguardano la conversione di file PostScript sono piuttosto difficili da ricordare, è disponibile anche uno script molto semplice che ne facilita l'uso:
alml-extra-menu file_ps
Le opzioni che vengono descritte nel seguito si riferiscono a alml-extra, usato direttamente.
--help
Mostra la guida rapida interna e conclude il funzionamento.
--version
Mostra le informazioni sulla versione e conclude il funzionamento.
--ps-group-pages=n_pagine
Prevede che l'argomento finale sia un file PostScript, in cui vengono modificate le stringhe di definizione delle pagine, in modo che si possano individuare raggruppamenti di n pagine, di solito per facilitare la rilegatura. In pratica, in questo modo, si individuano più facilmente le pagine che compongono una segnatura.
--ps-renumber-pages
Prevede che l'argomento finale sia un file PostScript, in cui vengono modificate le stringhe di definizione delle pagine, in modo che la sequenza sia rinumerata a partire da uno.
--alml-ps-split-tome=file_posizione_pagine
Prevede che l'argomento finale sia un file PostScript, generato attraverso Alml, per il quale sia disponibile un file contenente la posizione di inizio dei vari tomi (dovrebbe trattarsi di un file con estensione .pageloc
), che va indicato come argomento dell'opzione stessa. Quello che si ottiene sono diversi file PostScript, con estensione .n.ps
, dove in particolare .0.ps
contiene le pagine precedenti al primo tomo effettivo, con la presenza eventuale di file con estensione .app.ps
e ndx.ps
, per le pagine delle appendici e degli indici analitici rispettivamente.
--alml-ps-split-part=file_posizione_pagine
Prevede che l'argomento finale sia un file PostScript, generato attraverso Alml, per il quale sia disponibile un file contenente la posizione di inizio dei vari tomi (dovrebbe trattarsi di un file con estensione .pageloc
), che va indicato come argomento dell'opzione stessa. Quello che si ottiene sono diversi file PostScript, con estensione .n.ps
, dove in particolare .0.ps
contiene le pagine precedenti alla prima parte effettiva, con la presenza eventuale di file con estensione .app.ps
e ndx.ps
, per le pagine delle appendici e degli indici analitici rispettivamente.
Se il documento che si va a suddividere prevede una suddivisione in tomi, la scomposizione che si ottiene non è perfetta, perché la fine di una parte che precede un tomo, si trova a includere le pagine che rappresentano l'inizio del tomo stesso, fino alla pagina che precede la parte successiva.
--html-index=directory
Genera, attraverso lo standard output, un file HTML che potrebbe essere utilizzato come file index.html
, contenente un elenco molto semplice dei file contenuti nella directory indicata.
--html-index-basic=directory
Come --html-index, senza mostrare le date dei file.
--html-index-basic-recursive
Genera una serie di file index.html
, a partire dalla directory corrente e in tutte le sottodirectory.
--html-to-text-for-spell
Legge lo standard input, che dovrebbe essere costituito da un file HTML, filtrandolo allo scopo di generare un file di testo puro, utilizzabile per un controllo ortografico di qualche tipo. Il file che si ottiene viene emesso attraverso lo standard output.
--perl-to-gettext
Legge lo standard input, che dovrebbe essere costituito da un file sorgente Perl, filtrandolo allo scopo di generare un file di testo, adatto all'analisi da parte di Gettext, che solitamente riconosce bene solo le stringhe del linguaggio C. Il file che si ottiene viene emesso attraverso lo standard output.
--a4-to-a5-2-a4
Prevede che l'argomento finale sia un file PostScript, in formato A4, che viene rielaborato in modo da ottenere due pagine A5 per ogni pagina A4 finale.
Si ottiene un file con estensione .a5-2-a4.ps
.
--a4-to-a6-4-a4
Prevede che l'argomento finale sia un file PostScript, in formato A4, che viene rielaborato in modo da ottenere quattro pagine A6 per ogni pagina A4 finale.
Si ottiene un file con estensione .a6-4-a4.ps
.
--a4-to-a5-2-a4-1h-1
Prevede che l'argomento finale sia un file PostScript, in formato A4, che viene rielaborato in modo da ottenere due pagine A5 per ogni pagina A4 finale, che deve essere piegata a metà, in orizzontale, rilegando il tutto a segnature di un solo foglio.
Si ottiene un file con estensione .a5-2-a4-1h-1.ps
.
--a4-to-a5-2-a4-1h-10
Prevede che l'argomento finale sia un file PostScript, in formato A4, che viene rielaborato in modo da ottenere due pagine A5 per ogni pagina A4 finale, che deve essere piegata a metà, in orizzontale, rilegando il tutto a segnature di 10 fogli.
Si ottiene un file con estensione .a5-2-a4-1h-10.ps
.
--a4-to-a6-4-a4-2h-2
Prevede che l'argomento finale sia un file PostScript, in formato A4, che viene rielaborato in modo da ottenere quattro pagine A6 per ogni pagina A4 finale, che deve essere piegata a metà, in orizzontale, per due volte, rilegando il tutto a segnature di due fogli. In pratica, ogni segnatura si ottiene da un solo foglio A4 che viene piegato due volte.
Si ottiene un file con estensione .a6-4-a4-2h-2.ps
.
--a4-to-a6-4-a4-2h-4
Prevede che l'argomento finale sia un file PostScript, in formato A4, che viene rielaborato in modo da ottenere quattro pagine A6 per ogni pagina A4 finale, che deve essere piegata a metà, in orizzontale, per due volte, rilegando il tutto a segnature di quattro fogli. In pratica, ogni segnatura si ottiene da due fogli A4 che vengono piegati assieme per due volte.
Si ottiene un file con estensione .a6-4-a4-2h-4.ps
.
--a4-to-a6-4-a4-2h-6
Prevede che l'argomento finale sia un file PostScript, in formato A4, che viene rielaborato in modo da ottenere quattro pagine A6 per ogni pagina A4 finale, che deve essere piegata a metà, in orizzontale, per due volte, rilegando il tutto a segnature di sei fogli. In pratica, ogni segnatura si ottiene da tre fogli A4 che vengono piegati assieme per due volte.
Si ottiene un file con estensione .a6-4-a4-2h-6.ps
.
--a4-to-a6-4-a4-2h-8
Prevede che l'argomento finale sia un file PostScript, in formato A4, che viene rielaborato in modo da ottenere quattro pagine A6 per ogni pagina A4 finale, che deve essere piegata a metà, in orizzontale, per due volte, rilegando il tutto a segnature di otto fogli. In pratica, ogni segnatura si ottiene da quattro fogli A4 che vengono piegati assieme per due volte.
Si ottiene un file con estensione .a6-4-a4-2h-8.ps
.
--a4-to-a6-4-a4-2h-10
Prevede che l'argomento finale sia un file PostScript, in formato A4, che viene rielaborato in modo da ottenere quattro pagine A6 per ogni pagina A4 finale, che deve essere piegata a metà, in orizzontale, per due volte, rilegando il tutto a segnature di 10 fogli. In pratica, ogni segnatura si ottiene da cinque fogli A4 che vengono piegati assieme per due volte.
Si ottiene un file con estensione .a6-4-a4-2h-10.ps
.
--a4-to-a6-4-a4-1v-1
Prevede che l'argomento finale sia un file PostScript, in formato A4, che viene rielaborato in modo da ottenere quattro pagine A6 per ogni pagina A4 finale, che deve essere piegata a metà, in verticale, rilegando il tutto a segnature di un foglio.
Si ottiene un file con estensione .a6-4-a4-1v-1.ps
.
--a7x4-to-a7x4-2-a4-1v-1
Prevede che l'argomento finale sia un file PostScript, in formato A7x4, che viene rielaborato in modo da ottenere due pagine A7x4 per ogni pagina A4 finale, che deve essere piegata a metà, in verticale, rilegando il tutto a segnature di un foglio.
Si ottiene un file con estensione .a7x4-2-a4-1v-1.ps
.
--a7x4-to-a7x4-2-a4-1v-10
Prevede che l'argomento finale sia un file PostScript, in formato A7x4, che viene rielaborato in modo da ottenere due pagine A7x4 per ogni pagina A4 finale, che deve essere piegata a metà, in verticale, rilegando il tutto a segnature di 10 fogli.
Si ottiene un file con estensione .a7x4-2-a4-1v-10.ps
.
daniele @ swlibero.org
2) Questo capitolo e i successivi descrivono il sistema di composizione Alml. Tuttavia, per poter comprendere quanto esposto, è necessario prima conoscere ciò che è stato descritto a proposito dell'SGML, di TeX e dei sistemi comuni di composizione basati sull'SGML.
3) Nelle distribuzioni Debian si tratta del pacchetto liblocale-gettext-perl.
4) A seconda del tipo di composizione finale, può darsi che sia necessario convertire le immagini in un altro formato. In questi casi, viene usato ImageMagick per generare automaticamente ciò che serve. Per la precisione, il formato PNG di partenza è ciò che serve per la composizione in PDF; per la composizione in PostScript servono immagini EPS; per la composizione HTML vengono generati file in formato JPG.
5) Non tutte le modifiche che si apportano a questo file richiedono l'esecuzione di texconfig init; tuttavia è meglio ripeterlo, anche per quelle situazioni in cui non serve.
6) Il limite strutturale sembra dipendere da un'organizzazione del programma pensata per l'elaborazione su architetture a 16 bit.
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome alml_preparazione_e_visione_generale.html
[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]