Indice
In questo capitolo sono descritti strumenti e trucchi per convertire tra diversi formati di dati in un sistema Debian.
Gli strumenti standard sono eccellenti, ma il supporto per i formati proprietari per i dati è limitato.
Quelli che seguono sono pacchetti per la conversione dei dati testuali che hanno attirato la mia attenzione.
Tabella 11.1. Elenco di strumenti di conversione di dati testuali
pacchetto | popcon | dimensione | parola chiave | descrizione |
---|---|---|---|---|
libc6
|
V:933, I:999 | 10679 | set di caratteri | convertitore della codifica del testo tra localizzazioni usando iconv(1) (fondamentale) |
recode
|
V:5, I:35 | 608 | set caratteri+carattere fine riga | convertitore della codifica del testo tra localizzazioni (versatile, maggior numero di alias e funzionalità) |
konwert
|
V:2, I:58 | 123 | set di caratteri | convertitore della codifica tra localizzazioni (elegante) |
nkf
|
V:1, I:11 | 346 | set di caratteri | traduttore del set di caratteri per il giapponese |
tcs
|
V:0, I:0 | 479 | set di caratteri | traduttore del set di caratteri |
unaccent
|
V:0, I:0 | 36 | set di caratteri | sostituisce le lettere accentate con le equivalenti senza accento |
tofrodos
|
V:2, I:35 | 50 | carattere fine riga | convertitore del formato di testo tra DOS e Unix: fromdos(1) e todos(1) |
macutils
|
V:0, I:1 | 298 | carattere fine riga | convertitore del formato di testo tra Macintosh e Unix: frommac(1) e tomac(1) |
Suggerimento | |
---|---|
iconv(1)
viene fornito come parte del pacchetto |
Si può convertire la codifica di un file di testo con iconv(1) nel modo seguente.
$ iconv -f codifica1 -t codifica2 input.txt >output.txt
Nel trovare corrispondenze con i valori delle codifiche non viene tenuto
conto delle lettere maiuscole o minuscole e vengono ignorati i caratteri
"-
" e "_
". Si possono controllare le
codifiche supportate con il comando "iconv -l
".
Tabella 11.2. Elenco dei valori delle codifiche e loro uso
valore della codifica | uso |
---|---|
ASCII | American Standard Code for Information Interchange, codifica americana standard per lo scambio di informazioni, codice a 7 bit senza caratteri accentati |
UTF-8 | attuale standard multilingua per tutti i sistemi operativi moderni |
ISO-8859-1 | vecchio standard per le lingue europee occidentali, ASCII + caratteri accentati |
ISO-8859-2 | vecchio standard per le lingue europee orientali, ASCII + caratteri accentati |
ISO-8859-15 | vecchio standard per le lingue europee occidentali, ISO-8859-1 con simbolo dell'euro |
CP850 | code page 850, caratteri Microsoft DOS con caratteri grafici per le lingue europee occidentali, variante di ISO-8859-1 |
CP932 | code page 932, variante in stile Microsoft Windows di Shift-JIS per il giapponese |
CP936 | code page 936, variante in stile Microsoft Windows di GB2312, GBK o GB18030 per il cinese semplificato |
CP949 | code page 949, variante in stile Microsoft Windows di EUC-KR o Unified Hangul Code per il coreano |
CP950 | code page 950, variante in stile Microsoft Windows di Big5 per il cinese tradizionale |
CP1251 | code page 1251, codifica in stile Microsoft Windows per l'alfabeto cirillico |
CP1252 | code page 1252, variante in stile Microsoft Windows di ISO-8859-15 per le lingue europee occidentali |
KOI8-R | vecchio standard UNIX russo per l'alfabeto cirillico |
ISO-2022-JP | codifica standard per la posta elettronica in giapponese che usa solo codici a 7 bit |
eucJP | vecchio standard UNIX giapponese con codici a 8 bit completamente diverso da Shift-JIS |
Shift-JIS | standard JIS X 0208 Appendix 1 per il giapponese (vedere CP932) |
Nota | |
---|---|
Alcune codifiche non sono gestite in fase di conversione dei dati e non sono utilizzate come valori di localizzazione (Sezione 8.3.1, «Nozioni base sulla codifica»). |
Per i set di caratteri contenuti in un singolo byte, come i set di caratteri ASCII e ISO-8859, la codifica di carattere è quasi la stessa cosa del set di caratteri.
Per i set di caratteri con molti caratteri, come JIS X 0213 per il giapponese o Universal Character Set (UCS, Unicode, ISO-10646-1) per praticamente tutte le lingue, esistono molti schemi di codifica per inserirli nella sequenza dei byte dati.
EUC e ISO/IEC 2022 (chiamato anche JIS X 0202) per il giapponese
UTF-8, UTF-16/UCS-2 e UTF-32/UCS-4 per Unicode
In questi casi c'è una netta differenza tra il set di caratteri e la codifica di caratteri.
Il termine code page è usato come sinonimo di tabella di codifica dei caratteri per alcune tabelle specifiche di produttori.
Nota | |
---|---|
Notare che la maggior parte dei sistemi di codifica condividono con ASCII
gli stessi codici per i caratteri a 7 bit. Ci sono però alcune eccezioni. Se
si stanno convertendo dati di vecchi programmi C o URL in giapponese dal
formato di codifica volgarmente chiamato Shift-JIS in formato UTF-8, usare
" |
Suggerimento | |
---|---|
Si può anche usare
recode(1)
che offre più della semplice combinazione delle funzionalità di
iconv(1),
fromdos(1),
todos(1),
frommac(1)
e
tomac(1).
Per maggiori informazioni vedere " |
Si può controllare se un file di testo è nella codifica UTF-8 usando iconv(1) nel modo seguente.
$ iconv -f utf8 -t utf8 input.txt >/dev/null || echo "trovato non-UTF-8"
Suggerimento | |
---|---|
Usare l'opzione " |
Ecco uno script d'esempio per convertire in una directory la codifica dei nomi di file dai nomi creati in un vecchio sistema operativo a quelli UTF-8 moderni.
#!/bin/sh ENCDN=iso-8859-1 for x in *; do mv "$x" "$(echo "$x" | iconv -f $ENCDN -t utf-8)" done
La variabile "$ENCDN
" specifica la codifica originale
usata per i nomi di file nei sistemi operativi più vecchi come in Tabella 11.2, «Elenco dei valori delle codifiche e loro uso».
Per scenari più complessi, montare, usando come opzione di
mount(8)
la codifica appropriata (vedere Sezione 8.3.6, «Codifica per i nomi di file»), il
file system (ad esempio una partizione in un disco fisso) contenente tali
nomi di file e copiare usando il comando "cp-a
" il suo
intero contenuto in un altro file system montato come UTF-8.
Il formato dei file di testo e specificatamente il codice EOL (End of line, fine riga) è dipendente dalla piattaforma.
Tabella 11.3. Elenco di stili per EOL per differenti piattaforme
piattaforma | codice EOL | carattere di controllo | decimale | esadecimale |
---|---|---|---|---|
Debian (unix) | LF |
^J
|
10 | 0A |
MSDOS e Windows | CR-LF |
^M^J
|
13 10 | 0D 0A |
Macintosh di Apple | CR |
^M
|
13 | 0D |
I programmi di conversione del formato di EOL, fromdos(1), todos(1), frommac(1) e tomac(1), sono piuttosto comodi. Anche recode(1) è utile.
Nota | |
---|---|
Alcuni dati nel sistema Debian, come i dati della pagina wiki per il
pacchetto |
Nota | |
---|---|
La maggior parte degli editor (es. |
Suggerimento | |
---|---|
È meglio usare " |
Esistono alcuni programmi popolari specializzati nella conversione dei codici di tabulazione.
Tabella 11.4. Elenco di comandi di conversione di TAB dai pacchetti
bsdmainutils
e coreutils
funzione |
bsdmainutils
|
coreutils
|
---|---|---|
espande le tabulazioni in spazi |
"col -x "
|
expand
|
de-espande gli spazi in tabulazioni |
"col -h "
|
unexpand
|
indent(1)
nel pacchetto indent
riformatta completamente gli spazi
bianchi nei programmi C.
Anche programmi editor come vim
ed
emacs
possono essere usati per la conversione di TAB. Per
esempio con vim
, è possibile espandere i TAB con la
sequenza di comandi ":set expandtab
" e
":%retab
". Si può annullare questa azione con la sequenza
di comandi ":set noexpandtab
" e
":%retab!
".
Gli editor moderni intelligenti come il programmavim
sono
piuttosto bravi e gestiscono bene qualsiasi sistema di codifica e formato di
file. Per una migliore compatibilità questi editor andrebbero usati con la
localizzazione UTF-8 in console con capacità UTF-8.
Un vecchio file di testo Unix in lingua europea occidentale,
"u-file.txt
" salvato nella codifica latin1 (iso-8859-1)
può essere modificato con vim
semplicemente con il
comando seguente.
$ vim u-file.txt
Ciò è reso possibile dal fatto che il meccanismo di rivelazione automatica
della codifica dei file di vim
presuppone come prima cosa
che la codifica sia UTF-8 e, se ciò fallisce, presuppone che sia latin1.
Un vecchio file di testo Unix in lingua polacca,
"pu-file.txt
" salvato nella codifica latin1 (iso-8859-1)
può essere modificato con vim
con il comando seguente.
$ vim '+e ++enc=latin2 pu-file.txt'
Un vecchio file di testo Unix in giapponese,
"ju-file.txt
" salvato nella codifica eucJP può essere
modificato con vim
con il comando seguente.
$ vim '+e ++enc=eucJP ju-file.txt'
Un vecchio file di testo MS-Windows in giapponese,
"jw-file.txt
" salvato nella cosiddetta codifica shift-JIS
(più precisamente CP932) può essere modificato con vim
con il comando seguente.
$ vim '+e ++enc=CP932 ++ff=dos jw-file.txt'
Quando un file viene aperto con le opzioni "++enc
" e
"++ff
", l'uso di ":w
" nella riga di
comando di Vim lo salva nel formato originale sovrascrivendo il file
originale. Si può anche specificare nella riga di comando di Vim il formato
e il nome con cui salvare il file, ad esempio ":w ++enc=utf8
nuovo.txt
".
Fare riferimento a mbyte.txt per il "supporto di testi multi-byte"
nell'aiuto in linea di vim
e a Tabella 11.2, «Elenco dei valori delle codifiche e loro uso» per i valori delle localizzazione usati
con "++enc
".
La famiglia di programmi emacs
può svolgere funzioni
equivalenti.
Il comando seguente legge una pagina web mettendola in un file di testo. È molto utile quando si copiano configurazioni dal Web o per applicare strumenti di testo base Unix come grep(1) sulla pagina web.
$ w3m -dump http://www.sito-remoto.com/help-info.html >filetesto
In modo analogo, si possono estrarre dati in testo puro da altri formati con gli strumenti seguenti.
Tabella 11.5. Elenco di strumenti per estrarre dati in testo puro
pacchetto | popcon | dimensione | parola chiave | funzione |
---|---|---|---|---|
w3m
|
V:212, I:813 | 2294 | html→testo puro |
conversione da HTML a testo semplice con il comando "w3m
-dump "
|
html2text
|
V:21, I:74 | 258 | html→testo puro | convertitore avanzato da HTML a testo semplice (ISO 8859-1) |
lynx
|
V:32, I:104 | 1901 | html→testo puro |
conversione da HTML a testo semplice con il comando "lynx
-dump "
|
elinks
|
V:14, I:32 | 1587 | html→testo puro |
conversione da HTML a testo semplice con il comando "elinks
-dump "
|
links
|
V:17, I:46 | 2149 | html→testo puro |
conversione da HTML a testo semplice con il comando "links
-dump "
|
links2
|
V:2, I:17 | 5392 | html→testo puro |
conversione da HTML a testo semplice con il comando "links2
-dump "
|
antiword
|
V:6, I:14 | 623 | MSWord→testo puro, ps | converte file MSWord in testo puro o ps |
catdoc
|
V:27, I:45 | 676 | MSWord→testo puro, TeX | converte file MSWord in testo puro o TeX |
pstotext
|
V:4, I:7 | 126 | ps/pdf→testo puro | estrae testo da file PostScript e PDF |
unhtml
|
V:0, I:0 | 42 | html→testo puro | rimuove i tag marcatori da file HTML |
odt2txt
|
V:3, I:6 | 53 | odt→testo puro | converte da OpenDocument Text in testo puro |
È possibile evidenziare e formattare dati in testo puro usando gli strumenti seguenti.
Tabella 11.6. Elenco di strumenti per evidenziare dati in testo puro
pacchetto | popcon | dimensione | parola chiave | descrizione |
---|---|---|---|---|
vim-runtime
|
V:20, I:433 | 27580 | evidenziare |
MACRO Vim per convertire codice sorgente in HTML con ":source
$VIMRUNTIME/syntax/html.vim "
|
cxref
|
V:0, I:0 | 1174 | c→html | convertitore per programmi C in latex e HTML (linguaggio C) |
src2tex
|
V:0, I:0 | 622 | evidenziare | converte molti codici sorgenti in TeX (linguaggio C) |
source-highlight
|
V:1, I:7 | 2008 | evidenziare | converte molti codici sorgenti in file HTML, XHTML, LaTeX, Texinfo, sequenze di escape per colori ANSI e DocBook con evidenziazione (C++) |
highlight
|
V:1, I:16 | 997 | evidenziare | converte molti codici sorgenti in file HTML, XHTML, RTF, LaTeX, TeX o XSL-FO con evidenziazione (C++) |
grc
|
V:0, I:2 | 104 | testo→colori | colorazione generica per tutto (Python) |
txt2html
|
V:0, I:4 | 296 | testo→html | convertitore da testo semplice in HTML (Perl) |
markdown
|
V:0, I:7 | 56 | testo→html | formattatore markdown di documenti di testo in (X)HTML (Perl) |
asciidoc
|
V:0, I:14 | 63 | testo→tutto | formattatore AsciiDoc di documenti di testo in XML/HTML (Python) |
pandoc
|
V:4, I:26 | 69422 | testo→tutto | convertitore universale di marcatori (Haskel) |
python-docutils
|
V:41, I:569 | 1725 | testo→tutto | formattatore di documenti ReStructured Text in XML (Python) |
txt2tags
|
V:0, I:1 | 951 | testo→tutto | conversione di documenti da testo semplice a HTML, SGML, LaTeX, pagine man, MoinMoin, Magic Point e PageMaker (Python) |
udo
|
V:0, I:0 | 569 | testo→tutto | utilità universale di elaborazione di documenti - testo (linguaggio C) |
stx2any
|
V:0, I:0 | 264 | testo→tutto | convertitore di documenti da testo semplice strutturato in altri formati (m4) |
rest2web
|
V:0, I:0 | 526 | testo→html | convertitore di documenti da ReStructured Text in HTML (Python) |
aft
|
V:0, I:0 | 235 | testo→tutto | sistema di preparazione di documenti a "modello libero" (Perl) |
yodl
|
V:0, I:0 | 547 | testo→tutto | pre-linguaggio per documenti e strumenti per elaborarlo (linguaggio C) |
sdf
|
V:0, I:0 | 1445 | testo→tutto | semplice analizzatore di documenti (Perl) |
sisu
|
V:0, I:0 | 5338 | testo→tutto | infrastruttura per strutturazione, pubblicazione e ricerca di documenti (Ruby) |
XML (Extensible Markup Language) è un linguaggio a marcatori per documenti contenenti informazioni strutturate.
Vedere informazioni introduttive su XML.COM.
I testi XML hanno un aspetto simile all'HTML. Permettono di gestire formati di output multipli
per un documento. Un facile sistema per XML è il pacchetto
docbook-xsl
che è stato usato per questo documento.
Ogni file XML inizia con una dichiarazione XML standard come la seguente.
<?xml version="1.0" encoding="UTF-8"?>
La sintassi di base per un elemento XML usa un marcatore come il seguente.
<nome attributo="valore">contenuto</nome>
Gli elementi XML senza contenuto sono indicati nella seguente forma breve.
<nome attributo="valore"/>
La parte "attributo="valore"
" negli esempi precedenti è
opzionale.
In XML una sezione di commento è marcata nel modo seguente.
<!-- commento -->
A parte l'aggiunta dei marcatori, XML richiede solo una minima conversione dei contenuti usando entità predefinite per i caratteri seguenti.
Tabella 11.7. Elenco di entità predefinite per XML
entità predefinita | carattere in cui convertire |
---|---|
"
|
" : virgolette
|
'
|
' : apostrofo
|
<
|
< : minore-di
|
>
|
> : maggiore-di
|
&
|
& : e-commerciale
|
Attenzione | |
---|---|
" |
Nota | |
---|---|
Quando vengono usate entità definite in stile SGML, ad esempio
" |
Nota | |
---|---|
Fintanto che i marcatori XML sono usati in modo coerente con un certo set dei nomi di tag (qualche dato usato come contenuto o valore di attributo), la conversione in un altro XML è un compito banale usando XSLT (Extensible Stylesheet Language Trasformations. |
Sono disponibili molti strumenti per elaborare file XML, come l'XSL (Extensible Stylesheet Language).
Fondamentalmente, una volta creato un file XML ben formato, lo si può convertire in qualsiasi formato usando XSLT (Extensible Stylesheet Language Transformation).
XSL-FO (Extensible
Stylesheet Language for Formatting Object), linguaggio per fogli di
stile estensibile per la formattazione di oggetti, è pensato per essere una
soluzione per la formattazione. Il pacchetto fop
è una
novità nell'archivio Debian main
a causa delle sue
dipendenze dal linguaggio di
programmazione Java. Perciò il codice LaTeX è solitamente generato
dall'XML usando XSLT ed il sistema LaTeX viene usato per creare file adatti
alla stampa come DVI, PostScript e PDF.
Tabella 11.8. Elenco di strumenti XML
pacchetto | popcon | dimensione | parola chiave | descrizione |
---|---|---|---|---|
docbook-xml
|
I:530 | 2131 | xml | DTD (Document Type Definition) XML per DocBook |
xsltproc
|
V:15, I:120 | 149 | xslt | elaboratore a riga di comando XSLT (XML→ XML, HTML, testo semplice, ecc.) |
docbook-xsl
|
V:15, I:231 | 14998 | xml/xslt | fogli di stile XSL per elaborare XML DocBook con XSLT in vari formati di output |
xmlto
|
V:3, I:37 | 126 | xml/xslt | convertitore da-XML-a-tutto con XSLT |
dbtoepub
|
V:0, I:1 | 71 | xml/xslt | convertitore da XML DocBook a .epub |
dblatex
|
V:6, I:25 | 4639 | xml/xslt | converte file DocBook con XSLT in documenti DVI, PostScript, PDF |
fop
|
V:3, I:53 | 64 | xml/xsl-fo | converte file XML DocBook in PDF |
Dato che XML è un sottoinsieme di SGML (Standard Generalized Markup Language), può essere elaborato dagli strumenti completi disponibili per SGML, come DSSSL (Document Style Semantics and Specification Language).
Tabella 11.9. Elenco di strumenti DSSSL
pacchetto | popcon | dimensione | parola chiave | descrizione |
---|---|---|---|---|
openjade
|
V:3, I:36 | 988 | dsssl | elaboratore standard DSSSL ISO/IEC 10179:1996 (più recente) |
openjade1.3
|
V:0, I:0 | NOT_FOUND | dsssl | elaboratore standard DSSSL ISO/IEC 10179:1996 (serie 1.3.x) |
jade
|
V:0, I:11 | NOT_FOUND | dsssl | elaboratore DSSSL originale di James Clark (serie 1.2.x) |
docbook-dsssl
|
V:2, I:39 | 2604 | xml/dsssl | fogli di stile DSSSL per elaborare XML DocBook con DSSSL in vari formati di output |
docbook-utils
|
V:1, I:27 | 281 | xml/dsssl |
utilità per file DocBook, inclusa la conversione in altri formati (HTML,
RTF, PS, man, PDF) con comandi docbook2* con DSSSL
|
sgml2x
|
V:0, I:0 | 90 | SGML/dsssl | convertitore da SGML e XML che usa fogli di stile DSSSL |
Si possono esstrarre dati HTML o XML da altri formati usando gli strumenti seguenti.
Tabella 11.10. Elenco di strumenti di estrazione di dati XML
pacchetto | popcon | dimensione | parola chiave | descrizione |
---|---|---|---|---|
wv
|
V:6, I:9 | 717 | MSWord→tutto | convertitore di documenti da Microsoft Word a HTML, LaTeX, ecc. |
texi2html
|
V:0, I:10 | 1832 | texi→html | convertitore da texinfo a HTML |
man2html
|
V:0, I:3 | 141 | pagine man→html | convertitore da pagine man a HTML (supporto CGI) |
tex4ht
|
V:1, I:22 | 36 | tex↔html | convertitore tra (La)TeX e HTML |
unrtf
|
V:2, I:4 | 145 | rtf→html | convertitore di documenti da RTF a HTML, ecc. |
info2www
|
V:3, I:4 | 156 | info→html | convertitore da GNU info a HTML (supporto CGI) |
ooo2dbk
|
V:0, I:1 | 217 | sxw→xml | convertitore da documenti SXW OpenOffice.org in XML DocBook |
wp2x
|
V:0, I:0 | 215 | WordPerfect→tutto | da file WordPerfect 5.0 e 5.1 a TeX, LaTeX, troff, GML e HTML |
doclifter
|
V:0, I:0 | 457 | troff→xml | convertitore da troff a XML DocBook |
I file HTML non-XML possono essere convertiti in XHTML che è un'istanza di XML ben strutturato. XHTML può essere elaborato con strumenti XML.
Tabella 11.11. Elenco di strumenti per belle stampe XML
pacchetto | popcon | dimensione | parola chiave | descrizione |
---|---|---|---|---|
libxml2-utils
|
V:24, I:318 | 177 | xml↔html↔xhtml | strumento XML a riga di comando con xmllint(1) (controllo di sintassi, riformattazione, eliminazione sporcizia, …) |
tidy
|
V:2, I:17 | 83 | xml↔html↔xhtml | controllore della sintassi e riformattatore per HTML |
Una volta che è stato generato codice XML corretto, si può usare la tecnologia XSLT per estrarre dati in base al contesto dei marcatori
Per semplici impaginazioni si può usare il programma Unix troff sviluppato da AT&T. Viene di solito usato per creare pagine man.
TeX, creato da Donald Knuth è uno strumento di impaginazione molto potente ed è lo standard di fatto. LaTeX, scritto originariamente da Leslie Lamport, permette un accesso alla potenza di TeX a più alto livello.
Tradizionalmente il sistema di elaborazione di testi Unix principale è
roff. Vedere
roff(7),
groff(7),
groff(1),
grotty(1),
troff(1),
groff_mdoc(7),
groff_man(7),
groff_ms(7),
groff_me(7),
groff_mm(7)
e "info groff
".
Si può leggere o stampare un buon tutorial e documento di consultazione
sulla macro "-me
" in
"/usr/share/doc/groff/
", dopo aver installato il
pacchetto groff
.
Suggerimento | |
---|---|
" |
Suggerimento | |
---|---|
Per rimuovere i "^H" e "_" da un file di testo generato con
|
La distribuzione software TeX Live offre un
sistema TeX completo. Il metapacchetto texlive
fornisce
una buona selezione dei pacchetti TeX Live
che dovrebbe essere sufficiente per la maggior parte dei compiti più comuni.
Ci sono molti documenti consultabili disponibili per TeX e LaTeX.
tex(1)
latex(1)
texdoc(1)
texdoctk(1)
"The TeXbook", di Donald E. Knuth, (Addison-Wesley)
"LaTeX - A Document Preparation System", di Leslie Lamport, (Addison-Wesley)
"The LaTeX Companion", di Goossens, Mittelbach, Samarin, (Addison-Wesley)
Questo è l'ambiente di impaginazione più potente. Molti elaboratori SGML lo usano come backend per l'elaborazione del
testo. Lyx, fornito dal pacchetto
lyx
, e GNUTeXmacs,
fornito dal pacchetto texmacs
, offrono un bell'ambiente
WYSIWYG per LaTeX; inoltre molti usano Emacs e Vim come scelta di
editor per i sorgenti.
Sono disponibili molte risorse in rete.
The TEX Live Guide - TEX Live 2007
("/usr/share/doc/texlive-doc-base/english/texlive-en/live.html
")
(pacchetto texlive-doc-base
)
Quando i documenti crescono di dimensioni, a volte TeX può generare
errori. Per risolvere queto problema si deve aumentare la dimensione di pool
in "/etc/texmf/texmf.cnf
" (o in modo più corretto,
modificare "/etc/texmf/texmf.d/95NonPath
" ed eseguire
update-texmf(8)).
Nota | |
---|---|
Il sorgente TeX di "The TeXbook" è disponibile all'indirizzo http://tug.ctan.org/tex-archive/systems/knuth/dist/tex/texbook.tex.
Questo file contiene la maggior parte delle macro necessarie. Mi è stato
detto che si può elaborare questo documento con
tex(1)
dopo aver commentato le righe da 7 a 10 ed aggiungendo " |
Si può stampare una pagina di manuale in PostScript in un bel modo usando uno dei comandi seguenti.
$ man -Tps una_qualche_paginaman | lpr
$ man -Tps una_qualche_paginaman | mpage -2 | lpr
Il secondo esempio stampa 2 pagine in un foglio.
Benché sia possibile scrivere una pagina di manuale (pagina man) in formato troff semplice, ci sono alcuni pacchetti di aiuto per farlo.
Tabella 11.13. Elenco di pacchetti che aiutano a creare una pagina man
pacchetto | popcon | dimensione | parola chiave | descrizione |
---|---|---|---|---|
docbook-to-man
|
V:1, I:18 | 179 | SGML→paginaman | convertitore da SGML DocDook in macro roff man |
help2man
|
V:0, I:9 | 454 | testo→paginaman | generatore automatico di pagine man da --help |
info2man
|
V:0, I:0 | 134 | info→paginaman | convertitore da GNU info a POD o pagine man |
txt2man
|
V:0, I:1 | 65 | testo→paginaman | converte testo in puro ASCII nel formato delle pagine man |
In un sistema Debian i dati stampabili sono presentati in formato PostScript. CUPS (Common Unix Printing System) usa Ghostscript come suo programma backend per la rasterizzazione per le stampanti non-PostScript.
Il cuore centrale della manipolazione dei dati da stampare è l'interprete PostScript (PS) Ghostscript che genera immagini raster.
La licenza dell'ultima versione a monte di Ghostscript di Artifex è passata da AFPL a GPL e sono state fuse in un rilascio unificato tutte le più recenti modifiche alle versioni ESP, come quelle relative a CUPS nel rilascio 8.60.
Tabella 11.14. Elenco di interpreti PostScript Ghostscript
pacchetto | popcon | dimensione | descrizione |
---|---|---|---|
ghostscript
|
V:123, I:686 | 225 | interprete PostScript/PDF GPL Ghostscript |
ghostscript-x
|
V:25, I:76 | 211 | interprete PostScript/PDF GPL Ghostscript - supporto per display X |
libpoppler64
|
V:45, I:109 | 3214 | libreria di rendering per PDF risultato di un fork del visualizzatore di PDF xpdf |
libpoppler-glib8
|
V:233, I:525 | 435 | libreria di rendering per PDF (libreria condivisa basata su GLib) |
poppler-data
|
V:96, I:669 | 12123 | CMaps per la libreria di rendering per PDF (per supporto CJK: Adobe-*) |
Suggerimento | |
---|---|
La configurazione di Ghostscript può essere visualizzata con " |
È possibile unire due file PostScript (PS) o PDF (Portable Document Format) usando gs(1) di Ghostscript.
$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=bla.ps -f pippo1.ps pippo2.ps $ gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=bla.pdf -f pippo1.pdf pippo2.pdf
Nota | |
---|---|
Il formato PDF che è un formato ampiamente usato per dati stampabili multipiattaforma, è essenzialmente il formato PS compresso con alcune funzionalità ed estensioni aggiuntive. |
Suggerimento | |
---|---|
Per manipolare dalla riga di comando documenti PostScript sono utili
psmerge(1)
e altri comandi nel pacchetto |
Quello che segue è un elenco di pacchetti con utilità per dati stampabili che hanno attirato la mia attenzione.
Tabella 11.15. Elenco di utilità per dati stampabili
pacchetto | popcon | dimensione | parola chiave | descrizione |
---|---|---|---|---|
poppler-utils
|
V:53, I:488 | 526 | pdf→ps,testo,… |
utilità PDF: pdftops , pdfinfo ,
pdfimages , pdftotext ,
pdffonts
|
psutils
|
V:11, I:199 | 219 | ps→ps | strumenti di conversione di documenti PostScript |
poster
|
V:0, I:7 | 49 | ps→ps | crea grandi poster da pagine PostScript |
enscript
|
V:2, I:27 | 2111 | testo→ps, html, rtf | converte testo ASCII in PostScript, HTML, RTF o Pretty-Print |
a2ps
|
V:3, I:28 | 3624 | testo→ps | convertitore e creatore di belle stampe "Da tutto a PostScript" |
pdftk
|
V:8, I:57 | 3873 | pdf→pdf |
strumento di conversione di documenti PDF: pdftk
|
mpage
|
V:0, I:5 | 141 | testo,ps→ps | stampa più pagine in un foglio |
html2ps
|
V:0, I:5 | 320 | html→ps | converte da HTML aPostScript |
gnuhtml2latex
|
V:0, I:1 | 53 | html→latex | convertitore da HTML a latex |
latex2rtf
|
V:0, I:7 | 475 | latex→rtf | converte documenti da LaTeX a RTF leggibili da MS Word |
ps2eps
|
V:7, I:113 | 94 | ps→eps | converte da PostScript a EPS (Encapsulated PostScript) |
e2ps
|
V:0, I:0 | 112 | testo→ps | convertitore da testo a PostScript con supporto per la codifica giapponese |
impose+
|
V:0, I:1 | 180 | ps→ps | Utilità PostScript |
trueprint
|
V:0, I:0 | 138 | testo→ps | belle stampe di molti tipi di codice sorgente (C, C++, Java, Pascal, Perl, Pike, Sh e Verilog) in PostScript. (linguaggio C) |
pdf2svg
|
V:0, I:5 | 27 | ps→svg | convertitore da PDF al formato SVG (Scalable Vector Graphics) |
pdftoipe
|
V:0, I:0 | 63 | ps→ipe | convertitore da PDF al formato XML di IPE |
Entrambi i comandi lp(1) e lpr(1) forniti da CUPS (Common Unix Printing System) forniscono opzioni per stampe personalizzate dei dati stampabili.
Si possono stampare 3 copie fascicolate di un file usando uno dei comandi seguenti.
$ lp -n 3 -o Collate=True nomefile
$ lpr -#3 -o Collate=True nomefile
Si può personalizzare ulteriormente l'operazione di stampa usando opzioni
come "-o number-up=2
", "-o
page-set=even
", "-o page-set=odd
", "-o
scaling=200
", "-o natural-scaling=200
", ecc.,
documentate in Stampa dalla
riga di comando ed opzioni relative.
Quelli che seguono sono pacchetti per la conversione dei dati di posta che hanno attirato la mia attenzione.
Tabella 11.16. Elenco di pacchetto che aiutano a convertire dati di posta
pacchetto | popcon | dimensione | parola chiave | descrizione |
---|---|---|---|---|
sharutils
|
V:8, I:117 | 1385 | posta | shar(1), unshar(1), uuencode(1), uudecode(1) |
mpack
|
V:2, I:25 | 91 | MIME | codifica e decodifica di messaggiMIME: mpack(1) e munpack(1) |
tnef
|
V:6, I:11 | 98 | ms-tnef | spacchettamento di allegati MIME di tipo "application/ms-tnef" che è un formato esclusivo di Microsoft |
uudeview
|
V:0, I:5 | 97 | posta | codificatore e decodificatore per i seguenti formati: uuencode, xxencode, BASE64, quoted printable e BinHex |
readpst
|
I:1 | 21 | PST | converte file PST di Outlook di Microsoft nel formato mbox |
Suggerimento | |
---|---|
Se il software del programma di posta può essere configurato per usarlo, anche il server IMAP4 (Internet Message Access Protocol, versione 4) (vedere Sezione 6.7, «Server POP3/IMAP4») può essere usato per spostare la posta da sistemi proprietari. |
I dati di posta (SMTP) dovrebbero essere limitati a serie di 7 bit di dati. Perciò dati binari e testi a 8 bit sono codificati in un formato a 7 bit con MIME (Multipurpose Internet Mail Extensions) e la selezione del set di caratteri (vedere Sezione 8.3.1, «Nozioni base sulla codifica»).
Il formato standard per l'archiviazione della posta è mbox strutturato
seguendo la RFC2822 (che aggiorna
RFC822). Vedere
mbox(5)
(fornito dal pacchetto mutt
).
Per le lingue europee, per la posta viene di solito usato
"Content-Transfer-Encoding: quoted-printable
" con il set
di caratteri ISO-8859-1 dato che non ci sono molti caratteri a 8 bit. Se il
testo europeo è codificato in UTF-8, è probabile venga usato
"Content-Transfer-Encoding: quoted-printable
" dato che
sono per la maggior parte dati a 7 bit.
Per il giapponese, per la posta viene tradizionalmente usato
"Content-Type: text/plain; charset=ISO-2022-JP
" per
mantenere il testo a 7 bit. Ma sistemi Microsoft più vecchi possono inviare
dati di posta in Shift-JIS senza una dichiarazione appropriata. Se il testo
giapponese è codificato in UTF-8, è probabile venga usato Base64 dato che contiene molti dati a 8 bit. La
situazione delle altre lingue asiatiche è simile.
Nota | |
---|---|
Se i dati di posta non-Unix sono accessibili da un software di posta non-Debian che può comunicare con il server IMAP4, potrebbe essere possibile spostarli eseguendo un proprio server IMAP4 (vedere Sezione 6.7, «Server POP3/IMAP4»). |
Nota | |
---|---|
Se si usano altri formati di archiviazione, spostarli nel formato mbox è un buon primo passo. Un versatile programma client come mutt(1) può essere di aiuto in questo caso. |
Si può suddividere il contenuto di una casella di posta nei singoli messaggi usando procmail(1) e formail(1).
Ciascun messaggio di posta può essere spachettato usando
munpack(1),
dal pacchetto mpack
, (o con altri strumenti
specializzati) per ottenere i contenuti codificati MIME.
Quelli che seguono sono pacchetti per la conversione, la modifica e l'organizzazione di dati grafici che hanno attirato la mia attenzione.
Tabella 11.17. Elenco di strumenti per dati grafici
pacchetto | popcon | dimensione | parola chiave | descrizione |
---|---|---|---|---|
gimp
|
V:91, I:507 | 16278 | immagine(bitmap) | GNU Image Manipulation Program, programma GNU di manipolazione di immagini |
imagemagick
|
V:142, I:538 | 192 | immagine(bitmap) | programmi di manipolazione immagini |
graphicsmagick
|
V:7, I:15 | 4821 | immagine(bitmap) |
programmi di manipolazione di immagini (fork di
imagemagick )
|
xsane
|
V:22, I:191 | 909 | immagine(bitmap) | frontend X11 basato su GTK+ per SANE (Scanner Access Now Easy) |
netpbm
|
V:29, I:541 | 4302 | immagine(bitmap) | strumenti di conversione di dati grafici |
icoutils
|
V:8, I:80 | 191 | png↔ico(bitmap) | converte icone e puntatori MS Windows da e verso il formato PNG (favicon.ico) |
scribus
|
V:13, I:29 | 19136 | ps/pdf/SVG/… | editor DTP Scribus |
libreoffice-draw
|
V:320, I:478 | 8970 | immagine(vettoriale) | suite per ufficio LibreOffice - disegno |
inkscape
|
V:141, I:354 | 129840 | immagine(vettoriale) | editor SVG (Scalable Vector Graphics) |
dia-gnome
|
V:5, I:10 | 20 | immagine(vettoriale) | editor di diagrammi (GNOME) |
dia
|
V:25, I:41 | 3881 | immagine(vettoriale) | editor di diagrammi (Gtk) |
xfig
|
V:12, I:19 | 1795 | immagine(vettoriale) | strumento per la generazione interattiva di figure in X11 |
pstoedit
|
V:13, I:339 | 667 | ps/pdf→immagine(vettoriale) | convertitore di file PostScript e PDF in grafica vettoriale modificabile (SVG) |
libwmf-bin
|
V:13, I:359 | 104 | Windows/immagine(vettoriale) | strumenti di conversione di metafile windows (dati di grafica vettoriale) |
fig2sxd
|
V:0, I:0 | 149 | fig→sxd(vettoriale) | converte file XFig nel formato di Draw di OpenOffice.org |
unpaper
|
V:2, I:16 | 453 | immagine→immagine | strumento di post-elaborazione per pagine scansionate per OCR |
tesseract-ocr
|
V:4, I:28 | 558 | immagine→testo | software OCR libero basato sul motore OCR commerciale di HP |
tesseract-ocr-eng
|
I:29 | 37486 | immagine→testo | dati per motore OCR: file di lingua tesseract-ocr per testi in inglese |
gocr
|
V:1, I:23 | 477 | immagine→testo | software OCR libero |
ocrad
|
V:1, I:7 | 299 | immagine→testo | software OCR libero |
eog
|
V:95, I:329 | 10582 | immagine(Exif) | visualizzatore di immagini grafiche Eye of GNOME |
gthumb
|
V:15, I:26 | 3269 | immagine(Exif) | navigatore e visualizzatore di immagini (GNOME) |
geeqie
|
V:16, I:24 | 1588 | immagine(Exif) | visualizzatore d'immagini che usa GTK+ |
shotwell
|
V:15, I:126 | 5762 | immagine(Exif) | organizzatore di foto digitali (GNOME) |
gtkam
|
V:0, I:7 | 1079 | immagine(Exif) | applicazione per recuperare dati multimediali da fotocamere digitali (GTK+) |
gphoto2
|
V:1, I:14 | 969 | immagine(Exif) | client gphoto2 a riga di comando per le fotocamere digitali |
gwenview
|
V:29, I:104 | 4509 | immagine(Exif) | visualizzatore di immagini (KDE) |
kamera
|
V:3, I:104 | 230 | immagine(Exif) | supporto per fotocamere digitali in applicazioni KDE |
digikam
|
V:4, I:17 | 1760 | immagine(Exif) | applicazione per la gestione delle foto digitali per KDE |
exiv2
|
V:5, I:71 | 247 | immagine(Exif) | strumento di manipolazione di metadati EXIF/IPTC |
exiftran
|
V:2, I:25 | 71 | immagine(Exif) | trasforma immagini JPEG di fotocamere digitali |
jhead
|
V:1, I:13 | 105 | immagine(Exif) | manipola la parte non-immagine di file JPEG (fotografie digitali) aderenti conformi ad Exif |
exif
|
V:1, I:10 | 236 | immagine(Exif) | utilità a riga di comando per mostrare informazioni EXIF in file JPEG |
exiftags
|
V:0, I:4 | 288 | immagine(Exif) | utilità per leggere i tag EXIF da un file JPEG di una fotocamera digitale |
exifprobe
|
V:0, I:3 | 482 | immagine(Exif) | legge metadati da immagini digitali |
dcraw
|
V:3, I:24 | 384 | immagine(Raw)→ppm | decodifica immagini raw di fotocamere digitali |
findimagedupes
|
V:0, I:1 | 79 | immagine→fingerprint | trova immagini simili visivamente o duplicati |
ale
|
V:0, I:0 | 753 | immagine→immagine | fonde immagini per migliorarne la fedeltà o creare mosaici |
imageindex
|
V:0, I:0 | 144 | immagine(Exif)→html | genera gallerie HTML statiche da immagini |
outguess
|
V:0, I:1 | 216 | jpeg,png | strumento steganografico universale |
librecad
|
V:11, I:18 | 8039 | DXF | editor di dati CAD (KDE) |
blender
|
V:4, I:31 | 101399 | blend, TIFF, VRML, … | editor di contenuti 3D per animazioni, ecc. |
mm3d
|
V:0, I:0 | 5314 | ms3d, obj, dxf, … | editor di modelli 3D basato su OpenGL |
open-font-design-toolkit
|
I:0 | 11 | ttf, ps, … | metapacchetto per creazione di tipi di caratteri open |
fontforge
|
V:1, I:10 | 91 | ttf, ps, … | editor di tipi di carattere per caratteri PS, TrueType e OpenType |
xgridfit
|
V:0, I:0 | 898 | ttf | programma per gridfitting e hinting di tipi di carattere TrueType |
Suggerimento | |
---|---|
Cercare ulteriori strumenti per le immagini usando l'espressione regolare
" |
Sebbene programmi con interfaccia utente grafica come gimp(1) siano molto potenti, strumenti a riga di comando come imagemagick(1) sono piuttosto utili per manipolare in modo automatico immagini usando script.
Il formato standard di fatto per i file immagini delle fotocamere digitali è EXIF (Exchangeable Image File Format) che è il formato per file immagine JPEG con tag aggiuntivi con metadati. Può contenere informazioni come la data, l'orario e le impostazioni della fotocamera.
I diritti sulla compressione senza perdita di dati Lempel-Ziv-Welch (LZW) sono scaduti. Le utilità GIF (Graphics Interchange Format) che usano il metodo di compressione LZW sono ora disponibili liberamente sul sistema Debian.
Suggerimento | |
---|---|
Qualsiasi fotocamera digitale o scanner con un supporto di archiviazione removibile funziona in Linux attraverso i lettori di archiviazione USB dato che segue le regole progettuali per i file system delle fotocamere e usa il file system FAT. Vedere Sezione 10.1.7, «Supporti di archiviazione removibili». |
Ci sono molti altri programmi per convertire dati. I pacchetti seguenti,
trovati usando l'espressione regolare "~Guse::converting
"
in
aptitude(8)
(vedere Sezione 2.2.6, «Opzioni per i metodi di ricerca in aptitude»), hanno
catturato la mia attenzione.
Tabella 11.18. Elenco di strumenti di conversione di dati vari
pacchetto | popcon | dimensione | parola chiave | descrizione |
---|---|---|---|---|
alien
|
V:4, I:64 | 166 | rpm/tgz→deb | convertitore di pacchetti estranei in pacchetti Debian |
freepwing
|
V:0, I:0 | 421 | EB→EPWING | convertitore da "Electric Book" (popolare in Giappone) in un singolo formato JIS X 4081 (un sottoinsieme di EPWING V1) |
calibre
|
V:8, I:36 | 49341 | tutto→EPUB | convertitore e gestione di una biblioteca per libri elettronici |
Si possono estrarre i dati dal formato RPM anche nel modo seguente.
$ rpm2cpio file.src.rpm | cpio --extract