summaryrefslogtreecommitdiff
path: root/info/italian/itgrfguide/itgrfguide.tex
blob: cb8cd8825a4a441a2a8a1be56961016c790bcf21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
%% grfguide.tex Copyright (C) 1994 1995 1996 1998 1999 David Carlisle
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
%% License, as described in lppl.txt in the base LaTeX distribution.
%% Either version 1.0 or, at your option, any later version.
%%
%%
%% Modificato da Tommaso Pecorella 
%% Modifiche: traduzione in Italiano
%%

\ifx\pdfoutput\undefined % if we are not running pdftex
\begin{filecontents*}{a.ps}
%!
%%BoundingBox:100 100 172 172
100 100 moveto
72 72 rlineto
72 neg 0 rlineto
72 72 neg rlineto
stroke
100 100 moveto
/Times-Roman findfont
72 scalefont
setfont
(A) show
showpage
\end{filecontents*}
\else			 % if we are running pdftex
\begin{filecontents*}{a.pdf}
%PDF-1.3
%glda
5 0 obj
<</Length 6 0 R>>
stream
0.1 0 0 0.1 0 0 cm
q
1 i
10 w
0 0 m
720 720 l
0 720 l
720 0 l
S
q 10 0 0 10 0 0 cm BT
/R8 72 Tf
1 0 0 1 0 0 Tm
(A)Tj
ET Q
Q
endstream
endobj
6 0 obj
124
endobj
9 0 obj
<</R8
8 0 R>>
endobj
4 0 obj
<</Type/Page/MediaBox [0 0 72 72]
/Parent 3 0 R
/Resources<</ProcSet[/PDF /Text]
/Font 9 0 R
>>
/Contents 5 0 R
>>
endobj
3 0 obj
<< /Type /Pages /Kids [
4 0 R
] /Count 1
>>
endobj
1 0 obj
<</Type /Catalog /Pages 3 0 R
>>
endobj
8 0 obj
<</Subtype/Type1/BaseFont/Times-Roman/Type/Font/Name/R8>>
endobj
7 0 obj
<</Type/FontDescriptor/FontName/Times-Roman>>
endobj
2 0 obj
<</Producer (Aladdin Ghostscript 6.01)
>>endobj
xref
0 10
0000000000 65535 f 
0000000426 00000 n 
0000000608 00000 n 
0000000367 00000 n 
0000000237 00000 n 
0000000015 00000 n 
0000000189 00000 n 
0000000547 00000 n 
0000000474 00000 n 
0000000208 00000 n 
trailer
<< /Size 10 /Root 1 0 R /Info 2 0 R
>>
startxref
664
%%EOF
\end{filecontents*}
\fi

\documentclass[a4paper]{ltxguide}

%%% No driver option specified
%%% set up the files color.cfg and graphics.cfg for your site.
%%% for example:
%%%
%%% \ExecuteOptions{dvips}
%%%
\usepackage{color,graphicx,shortvrb}
\usepackage[italian]{babel}
\usepackage{url}

\ifx\pdfoutput\undefined % if we are not running pdftex
	\usepackage[T1]{fontenc}
\else			 % if we are running pdftex
	\usepackage{ae,aecompl}
	\usepackage[pdftex]{thumbpdf}
	\pdfcompresslevel=9
	\usepackage[pdftex,linktocpage,colorlinks,%
	pdftitle={Pacchetti del gruppo `graphics'},%
	pdfauthor={D. P. Carlisle}]{hyperref}
\fi

%% Just as an example, and to make sure, in case some
%% driver option has not declared a default rule for
%% .ps files:
%%\DeclareGraphicsRule{.ps}{eps}{.ps}{}
%%\DeclareGraphicsExtensions{.ps}
%% Which means:
%% .ps files are (to be treated as) EncapsulatedPostScript
%% files. The .ps file is to be read for the BoundingBox.
%% No `special' commands need to be applied by the driver.

\newcommand{\ndt}[1]{\footnote{#1 [N.d.T.].}}

\renewcommand\star{{\ttfamily*}}

\newcommand{\package}[1]{\textsf{#1}}

\newlength{\gxlen}
\settowidth{\gxlen}{\package{graphicx}: }
\newcommand\gs{\makebox[\gxlen][l]{\package{graphics}:}}
\newcommand\gx{\makebox[\gxlen][l]{\package{graphicx}:}}

\MakeShortVerb{\|}

\renewcommand{\NEWfeature}[1]{%
   \hskip 1sp \marginpar{\small\sffamily\raggedright
     Nuova caratteristica\\#1}}
\renewcommand{\NEWdescription}[1]{%
   \hskip 1sp \marginpar{\small\sffamily\raggedright
     Nuova descrizione\\#1}}


\begin{document}
\title{Pacchetti del gruppo `graphics'}
\author{D. P. Carlisle}
\date{13/01/1999}

\maketitle

\tableofcontents

\section{Introduzione}
Questo documento serve come manuale utente per i pacchetti
\package{color}, \package{graphics} e \package{graphicx}.  Si pu\`{o}
ottenere ulteriore documentazione compilando i file sorgenti (|dtx|)
di ciascun pacchetto (la documentazione risultante sar\`{a} in
inglese).

%%% Nota del traduttore
\subsubsection*{Nota alla traduzione italiana}
Una copia di questo documento e altre traduzioni in italiano di
manuali \LaTeX\ sono reperibili presso:
\begin{itemize}
\item\url{http://guild.prato.linux.it}
\item\url{ftp://lorien.prato.linux.it/pub/guild}
\end{itemize}
e su ogni sito CTAN nella directory \url{/info/italian}.  Per un
elenco aggiornato dei siti mirror CTAN consultate
\url{http://www.ctan.org/} alla voce ``CTAN mirror''.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Supporto del \emph{driver}}\label{drivers}
Tutti questi pacchetti fanno uso di funzionalit\`{a} che non sono
fornite dal \TeX\ stesso, ma dal \emph{driver} usato per stampare il file
|dvi|.  Sfortunatamente non tutti i \emph{driver} supportano le stesse
funzionalit\`{a}, e anche il metodo interno di accesso a queste
estensioni varia tra i \emph{driver}.  Come conseguenza tutti questi pacchetti
hanno delle opzioni, come ad esempio `|dvips|', per specificare quale
\emph{driver} deve essere usato.

In genere \`{e} bene specificare un'opzione di \emph{default}, che indichi il
\emph{driver} che normalmente viene usato.  Supponendo che  per il
pacchetto \package{color}, normalmente, si vogliano usare i comandi
speciali definiti nel \emph{driver} PostScript |dvipsone|, allora si
deve creare un file |color.cfg| che contiene la linea:\\
|\ExecuteOptions{dvipsone}|\\
Di solito si crea anche un file |graphics.cfg|, per impostare
un'opzione analoga per il pacchetto \package{graphics}.

Nei pacchetti sono dichiarate le seguenti opzioni per i \emph{driver}:
\begin{quote}\raggedright
 |dvips|, |xdvi|, |dvipdf|, |dvipdfm|, |pdftex|,
 |dvipsone|, |dviwindo|, |emtex|, |dviwin|,
 |pctexps|,  |pctexwin|,  |pctexhp|,  |pctex32|,
 |truetex|, |tcidvi|, |vtex|,
 |oztex|, |textures|
\end{quote}

Se si vuole usare un \emph{driver} che non \`{e} presente nella lista
precedente, si pu\`{o} aggiungere un'opzione per quel \emph{driver} inserendo
una riga di tipo |\DeclareOption| adatta in |graphics.cfg| e
|color.cfg|, prima di renderla l'opzione predefinita tramite
|\ExecuteOptions| come descritto in precedenza.

Per esempio, per aggiungere l'opzione `|dvi2ps|' per il \emph{driver}
originario Unix di traduzione da |dvi| a |ps|, e per renderla l'opzione
standard, bisogna che i file di configurazione contengano:
\begin{verbatim}
\DeclareOption{dvi2ps}{\def\Gin@driver{dvi2ps.def}}
\ExecuteOptions{dvi2ps}
\end{verbatim}

C'\`{e} un apposito file |dvi2ps.def| nella distribuzione standard. 
Non \`{e} abilitato normalmente, dal momento che non \`{e} stato
controllato a fondo, poich\'{e} il \emph{driver} non \`{e} pi\`{u}
disponibile.  Analogamente, i seguenti file per \emph{driver} sono
distribuiti, ma normalmente disabilitati.  \begin{quote}\raggedright
|dvi2ps|, |dvialw|, |dvilaser|, |dvitops|, |psprint|, |pubps|, |ln|
\end{quote}

La maggior parte di questi file per \emph{driver} sono generati dal file
sorgente |drivers.dtx|.  Questo file contiene i sorgenti per altre
versioni dei \emph{driver} (per esempio vecchie versioni di dvips e textures)
che non sono normalmente generati.

Se si usa un \emph{driver} che non \`{e} coperto da nessuna di queste
possibilit\`{a}, si pu\`{o} provare a scrivere un file |.def| per
analogia con uno dei \emph{driver} esistenti e poi specificare un'opportuna
opzione in |graphics.cfg| e |color.cfg|, come per l'esempio precedente
riguardante |dvi2ps|.

\section{Colore}
Il supporto per il colore \`{e} basato sull'idea di un sistema di
\emph{modelli di colore}.  I modelli di colore supportati da ciascun
\emph{driver} sono diversi, ma tipicamente includono:
\begin{description}
        \item[rgb] Rosso [G]Verde Blu: una lista di tre numeri, compresi tra~0
        e~1, separati da virgole, che indicano le componenti del colore.
        
        \item[cmyk] Ciano Magenta [Y]Giallo [K]Nero: una lista di quattro numeri,
        compresi tra~0 e~1, separati da virgole, che indicano le componenti
        del colore in accordo con il modello additivo usato in molte stampanti.
        
        \item[gray] Toni di grigio: un solo numero compreso tra~0 e~1.
        
        \item[named] Colori scelti per nome, per esempio `JungleGreen'.  Non
        tutti i \emph{driver} supportano questo modello.  Il nome deve essere
        `noto' al \emph{driver} o aggiunto usando i comandi
        descritti in |color.dtx|.  Alcuni \emph{driver} supportano una forma estesa
        del modello \textbf{named}, in cui si pu\`{o} anche specificare
        un'intensit\`{a} del colore, cosicch\'{e} `\mbox{JungleGreen, 0.5}'
        indicher\`{a} quel colore con intensit\`{a} dimezzata.
\end{description}
Occorre notare come il modello \textbf{named} sia in realt\`{a} solo
un esempio di un modello di colore che usa nomi al posto di specifiche
numeriche.  Altre opzioni possono essere fornite localmente per avere
differenti modelli di colore, per esempio \textbf{pantone} (un set di colori
standard industriale), \textbf{x11} (nomi di colori del sistema X
Window), etc.  La distribuzione standard al momento non ha questi
modelli, ma il modello \textbf{named} pu\`{o} essere usato come
esempio di come definire un nuovo modello di colore.  I nomi usati nel
modello \textbf{named} sono quelli suggeriti da Jim Hafner nei suoi
pacchetti \package{colordvi} e \package{foiltex}, e implementati in
origine nell'header file |color.pro| del \emph{driver} \texttt{dvips}.

\subsection{Opzioni del pacchetto}
La maggior parte delle opzioni del pacchetto \package{color} serve
solamente a specificare il \emph{driver}, ad esempio |dvips|, come discusso
nel paragrafo~\ref{drivers}.

Un'interessante opzione speciale per il pacchetto \package{color}
\`{e} |monochrome.| Se si seleziona questa opzione, tutti i comandi
per il colore vengono disabilitati, in modo che non generino errori,
ma nemmeno colori.  Questo pu\`{o} essere utile se si usa un sistema
di visualizzazione che non gestisce i colori.

Altre tre opzioni del pacchetto controllano l'uso del modello
\textbf{named}.  Il \emph{driver} |dvips| (di \emph{default}) predefinisce 68 nomi
di colori.  L'opzione |dvips|, normalmente, rende questi nomi
disponibili nel modello di colore \textbf{named}.  Se non si vuole che
questi nomi siano definiti in questo modello (risparmiando cos\`{\i} un
po' di memoria \TeX) si pu\`{o} usare l'opzione |nodvipsnames|.  Al
contrario, se si usa un \emph{driver} differente, si pu\`{o} voler aggiungere
questi nomi al modello \textbf{named} di quel \emph{driver} (specialmente se si sta
lavorando ad un documento originariamente prodotto con |dvips|); in
questo caso si pu\`{o} usare l'opzione |dvipsnames|.  Infine l'opzione
|usenames| rende tutti i nomi del modello \textbf{named} direttamente
disponibili, come descritto in seguito.

\subsection{Definire i colori}

I colori |black| (nero), |white| (bianco), |red| (rosso), |green|
(verde), |blue| (blu), |cyan| (ciano), |magenta| e |yellow| (giallo)
sono predefiniti, ma si possono creare nuove definizioni di colori
tramite il comando |\definecolor|.

\begin{decl}
|\definecolor|\arg{nome}\arg{modello}\arg{specifica del colore}
\end{decl}

Questo comando definisce \m{nome} come un colore che pu\`{o} essere usato nei
successivi comandi di colore.  Ad esempio:
\begin{verbatim}
\definecolor{light-blue}{rgb}{0.8,0.85,1}
\definecolor{mygrey}{gray}{0.75}
\end{verbatim}
\definecolor{light-blue}{rgb}{0.8,0.85,1}
\definecolor{mygrey}{gray}{0.75}

Ora |light-blue| e |mygrey| possono essere usati in aggiunta ai
colori definiti precedentemente.

\subsection{Usare i colori}

\subsubsection{Usare i colori predefiniti}
La sintassi per cambiare colore ricalca quella del cambio di font.  La
sintassi base \`{e}:

\begin{decl}
|\color|\arg{nome}
\end{decl}

Questa \`{e} una \emph{dichiarazione}, come |\bfseries|.  Cambia il
colore corrente in \m{nome} fino alla fine del gruppo o ambiente
corrente.

Un metodo alternativo \`{e} quello di usare una forma di tipo
\emph{comando} che prende come \emph{argomento} il testo da colorare. 
Questo \`{e} simile ai comandi dei font come |\textbf|:

\begin{decl}
|\textcolor|\arg{nome}\arg{testo}
\end{decl}

Quindi il comando precedente \`{e} sostanzialmente equivalente a:\\
|{\color|\arg{nome}\emph{testo}|}|.

\subsubsection{Usare direttamente le specifiche di colore}

\begin{decl}
|\color|\oarg{modello}\arg{specifica}\\
|\textcolor|\oarg{modello}\arg{specifica}\arg{testo}
\end{decl}

Normalmente si dichiarano tutti i colori da usare successivamente in un
pacchetto o nel preambolo del documento, ma a volte \`{e} conveniente
usare direttamente un colore senza prima definirlo.  Per rendere
questo possibile, |\color| (e tutti gli altri comandi per il colore)
hanno un argomento opzionale per specificare il modello.  Se si usa
questo argomento opzionale, allora l'argomento obbligatorio deve
contenere una \m{specifica di colore} al posto di un \m{nome}.  Per
esempio:\\
|\color[rgb]{1,0.2,0.3}|\\
selezioner\`{a} direttamente quel colore.

Questo metodo \`{e} particolarmente utile per accedere al modello
\textbf{named}:\\
|\color[named]{BrickRed}|\\
seleziona il colore |dvips| BrickRed.

Piuttosto che usare ripetutamente |[named]|, si pu\`{o} usare
|\definecolor| per creare opportuni alias:\\
|\definecolor{myred}{named}{WildStrawberry}|
     \ldots\ |\color{myred}|\ \ldots

In alternativa, se si vogliono usare i nomi originali del modello
\textbf{named}, si pu\`{o} usare l'opzione di pacchetto |usenames|,
che in realt\`{a} attiva una |\definecolor| per ciascun colore del
modello \textbf{named}, rendendo cos\`{\i} |\color{WildStrawberry}|
equivalente a |\color[named]{WildStrawbery}|.

\subsection{Colori con nomi}
L'uso del modello di colore \textbf{named} presenta alcuni vantaggi
rispetto ad usare gli altri modelli.

Per prima cosa, dal momento che il file |dvi| contiene una richiesta
di colore fatta per \emph{nome}, la miscela di colori primari che
viene realmente usata per ottenere il colore richiesto pu\`{o} essere tarata
sulle caratteristiche di una particolare stampante.  Nel \emph{driver} |dvips|
il significato dei nomi dei colori \`{e} definito nel file di
intestazione |color.pro|. Gli utenti sono invitati a creare
versioni differenti di questo file per ogni stampante che usano.  In
questa maniera lo stesso file dvi produrr\`{a} colori simili anche se
stampato su stampanti con differenti caratteristiche cromatiche.

In secondo luogo, oltre ai cosiddetti `colori di processo' che sono
prodotti miscelando colori primari durante la fase di stampa, si
possono usare colori `spot' o `custom'.  In questo caso un
particolare nome di colore non si riferisce ad un mix di colori
primari, ma ad un particolare inchiostro.  Le parti di un documento
che usano questo colore saranno stampate separatamente usando
l'inchiostro che \`{e} rappresentato da quel nome di colore.

\subsection{Colore di pagina}


\begin{decl}
|\pagecolor|\arg{nome}\\
|\pagecolor|\oarg{modello}\arg{specifica}
\end{decl}

Si pu\`{o} impostare il colore dello sfondo di un'intera pagina
tramite |\pagecolor|.  Questo comando usa lo stesso tipo di argomenti
di |\color|, ma imposta il colore dello sfondo della pagina corrente e
di tutte le successive. \`{E} una dichiarazione globale, quindi occorre
usare |\pagecolor{white}| per `ritornare alla normalit\`{a}'.

\subsection{Sfondi dei riquadri}
Esistono due comandi simili a |\fbox| per produrre riquadri con lo
sfondo colorato.

\begin{decl}
|\colorbox|\arg{nome}\arg{text}\\
|\colorbox|\oarg{modello}\arg{specifica}\arg{testo}\\
|\fcolorbox|\arg{nome1}\arg{nome2}\arg{testo}\\
|\fcolorbox|\oarg{modello}%
            \arg{specifica1}\arg{specifica2}\arg{testo}
\end{decl}

Il primo crea una scatola colorata con \m{nome},
\colorbox{mygrey}{come questa}.  Il terzo \`{e} simile, ma mette un
bordo di colore \m{nome1} attorno a una scatola di colore
\m{nome2}.

Questi comandi usano i parametri di |\fbox|, |\fboxrule| e |\fboxsep|,
per determinare lo spessore della linea e la dimensione dell'area
colorata.

\subsection{Possibili problemi}

\TeX\ non \`{e} stato concepito con il colore in mente, e produrre
colori richiede un grande aiuto da parte del \emph{driver}.  Perci\`{o}, a
seconda del \emph{driver}, potrebbero non essere disponibili tutte le
possibilit\`{a} del pacchetto \package{color}.

Alcuni \emph{driver} non mantengono uno speciale `stack dei colori'.  Questi
\emph{driver}, con tutta probabilit\`{a}, produrranno strani risultati se si
annidano cambi di colore, o se si usano colori in ambienti
flottanti\ndt{ambienti |figure|, |table| e similari}.

Alcuni \emph{driver} non mantengono i colori durante i salti di pagina,
quindi se la pagina finisce in mezzo ad un capoverso colorato,
l'ultima parte del testo sar\`{a} stampata, erroneamente,
in nero.

C'\`{e} inoltre un altro tipo di problema che si presenta con tutti
i \emph{driver}.  A causa di certe difficolt\`{a} tecniche\footnote{Almeno
due le cause: 1) La presenza di uno \texttt{\char`\\special}
\m{qualcosa} impedisce a \texttt{\char`\\addvspace} di `vedere' lo
spazio della lista verticale corrente, causando quindi un'incorretta
aggiunta di spazio verticale.  2) Un \m{qualcosa} come primo
elemento in un \texttt{\char`\\vtop} fa spostare il punto di
riferimento della scatola.}%
, \`{e} possibile che, nei punti di cambio di colore, la spaziatura
sia diversa dal normale.  Per questo motivo l'opzione |monochrome| non
disabilita completamente i comandi di colore, ma li ridefinisce in
modo che scrivano su un file di log.  In questo modo si otterr\`{a} lo
stesso effetto sulla spaziatura, in modo da ottenere un documento in
bianco e nero che per\`{o} ha la stessa spaziatura del documento
finale a colori.


\section{I pacchetti grafici}
Ci sono due pacchetti grafici:
\begin{description}
\item[\package{graphics}] Il pacchetto grafico `standard'. 
\item[\package{graphicx}] Il pacchetto grafico `esteso', o `potenziato'.
\end{description}
I due differiscono solo nel formato degli argomenti opzionali dei vari
comandi; i nomi dei comandi e gli argomenti obbligatori sono gli
stessi in tutti e due i pacchetti.

\subsection{Opzioni del pacchetto}
Come osservato nel paragrafo~\ref{drivers}, i pacchetti grafici
condividono il \emph{driver} con il pacchetto \package{color}.  Come per il
colore, \`{e} bene impostare un \emph{driver} predefinito nel file
|graphics.cfg| che conterr\`{a} la linea (per usare |dvips|, ad esempio):\\
|\ExecuteOptions{dvips}|

I pacchetti grafici hanno altre opzioni per controllare quali
caratteristiche abilitare:
\begin{description}
		\item[draft] sopprime tutte le funzionalit\`{a} di tipo
		`special'.  In particolare non saranno inserite le figure (ma
		saranno ugualmente lette per determinarne le dimensioni); al
		loro posto verr\`{a} stampato un riquadro della giusta
		dimensione, contenente il nome del file.
        
        \item[final] L'opposto di |draft|.  Utile per annullare l'effetto di
        un'opzione globale |draft| specificata nel comando |\documentclass|.

        \item[hiderotate] Non fa vedere il testo ruotato (presumibilmente
        perch\'{e} il \emph{driver} non pu\`{o} effettuare la rotazione).
        
        \item[hidescale] Non fa vedere il testo ridimensionato (presumibilmente
        perch\'{e} il \emph{driver} non pu\`{o} effettuare il ridimensionamento).
        
        \item[hiresbb] Cerca le indicazioni di dimensione nelle linee
        |%%HiResBoundingBox| invece che nelle linee standard
        |%%BoundingBox|.%
        \NEWfeature{29/10/1996}
\end{description}

\subsection{Rotazione}

\begin{decl}
\gs |\rotatebox|\arg{angolo}\arg{testo}\\
\gx |\rotatebox|\oarg{lista valori chiave}\arg{angolo}\arg{testo}
\end{decl}

Questo comando mette \m{testo} in una scatola, come |\mbox|, ma
ruota la scatola di \m{angolo} gradi, \rotatebox{15}{come questo}.

La versione standard esegue la rotazione sempre attorno al punto di
riferimento della scatola, ma la versione \package{keyval} accetta le
seguenti chiavi:

\begin{decl}
|origin|=\m{etichetta}\\
|x|=\m{dimensioni}\\
|y|=\m{dimensioni}\\
|units|=\m{numero}
\end{decl}

Si possono, quindi, specificare |x| e |y|, che indicano le coordinate
del centro di rotazione relativamente al punto di riferimento della
scatola, per esempio |[x=2mm, y=5mm]|.  Alternativamente, per i punti
pi\`{u} comuni, si pu\`{o} usare |origin| con una \m{etichetta}
contenente uno o pi\`{u} dei seguenti dati: |lrctbB|\ndt{l=sinistra
(left), r=destra (right), c=centro, t=alto (top), b=basso} (|B| indica la
\emph{baseline}, come nel pacchetto \package{PSTricks}).  Per esempio,
si osservi la differenza tra una rotazione standard di $180^\circ$
\ldots\rotatebox{180}{Come Questa}\ldots\ e l'effetto ottenuto usando
la chiave |origin|:\\
|[origin = c]| rotazione intorno al centro della scatola,\ldots
\rotatebox[origin=c]{180}{Come Questa}\ldots\\
|[origin = tr]| rotazione intorno all'angolo superiore destro
\rotatebox[origin=tr]{180}{Come Questa}\ldots

La chiave |units| permette di cambiare l'unit\`{a} di misura
predefinita, che \`{e} gradi antiorari.  Si deve dare il numero di
nuove unit\`{a} in una rotazione antioraria completa.  Per esempio:\\
|[units = -360]| specifica i gradi in senso orario.\\
|[units = 6.283185]| specifica i radianti.

\subsection{Ridimensionamento}

\subsubsection{Ridimensionamento di un fattore di scala}

\begin{decl}
|\scalebox|\arg{scala-o}\oarg{scala-v}\arg{testo}
\end{decl}

Analogamente al comando precedente, questo comando \`{e} simile a
|\mbox|, ma ridimensiona il \m{testo}.  Se non viene specificata la
\m{scala-v}, essa viene posta di \emph{default} allo stesso valore di
\m{scala-o}.  Se viene specificata, il testo viene deformato, dal
momento che gli allungamenti verticale e orizzontale sono differenti,
\scalebox{3}[.7]{Cos\`{\i}}.

\begin{decl}
|\reflectbox|\arg{testo}
\end{decl}

Un'abbreviazione per |\scalebox{-1}[1]|\arg{testo}.

\subsubsection{Ridimensionamento ad una data dimensione}

\begin{decl}
|\resizebox|\star\arg{lunghezza-o}\arg{lunghezza-v}\arg{testo}
\end{decl}

Ridimensiona \m{testo} in modo che la sua larghezza sia
\m{lunghezza-o}.  Se viene usato |!| al posto di uno dei due
argomenti, viene usato l'altro per determinare il fattore di scala da
usare in entrambe le direzioni.  Normalmente \m{lunghezza-v} si
riferisce all'altezza della scatola, ma nella forma asteriscata si
riferisce a `altezza + profondit\`{a}'.  Come in tutti gli argomenti dei
riquadri \LaTeXe{}, si possono usare |\height|, |\width|, |\totalheight|
e |\depth| (rispettivamente altezza, larghezza, altezza totale e
profondit\`a) per riferirsi alle dimensioni originarie della scatola.

|\resizebox{1in}{\height}{Qualcosa}|: \resizebox{1in}{\height}{Qualcosa}

|\resizebox{1in}{!}{Qualcosa}|: \resizebox{1in}{!}{Qualcosa}

\subsection{Includere file grafici}
Le funzioni per l'inclusione di file grafici tentano di offrire
all'utente la medesima sintassi per includere tutti i tipi di file
grafici che possono essere trattati dal \emph{driver}.  Questo si basa sul
fatto che il file abbia un'estensione che ne identifichi il tipo.  Le
`opzioni del \emph{driver}' definiranno un insieme di estensioni che il
\emph{driver} pu\`{o} trattare, anche se questa lista pu\`{o} essere estesa
usando le dichiarazioni descritte in seguito.

Se l'estensione del file \`{e} sconosciuta per il \emph{driver}, il sistema
pu\`{o} provare ad usare un tipo di \emph{default}.  Il \emph{driver} PostScript
imposta questo \emph{default} a |eps| (PostScript), ma questo comportamento
pu\`{o} essere modificato se si vuole un altro tipo di trattamento predefinito.

\begin{decl}
\gs |\includegraphics|\star\oarg{llx,lly}\oarg{urx,ury}\arg{file}\\
\gx |\includegraphics|\star\oarg{lista valori chiave}\arg{file}
\end{decl}
Questo comando include un file grafico.

Se l'asterisco \`{e} presente, l'immagine \`{e} `tagliata' alla dimensione
specificata.  Se l'asterisco \`{e} omesso, allora qualsiasi parte
dell'immagine che si trova al di fuori del \emph{bounding
box}\ndt{Letteralmente `scatola delimitante', \`{e} la scatola
che delimita la porzione da visualizzare dell'immagine.  In realt\`{a}
esso definisce pi\`{u} propriamente la dimensione dell'area riservata
all'immagine nel documento.} specificato sovrascriver\`{a} il testo
circostante.

Se l'argomento opzionale viene omesso, allora la dimensione
dell'immagine verr\`{a} determinata leggendo un file esterno, come
descritto in seguito.

\paragraph{versione \package{graphics}}
Se \oarg{urx,ury} \`{e} presente, deve indicare le coordinate
dell'angolo in alto a destra dell'immagine, come coppia di dimensioni
\TeX. Se vengono omesse le unit\`{a} di misura, si assume che siano
|bp|, quindi |[1in,1in]| e |[72,72]| sono equivalenti.  Se viene usato
un solo argomento opzionale, si assume che l'angolo in basso a
sinistra sia a |[0,0]|; in alternativa, si pu\`{o} usare \oarg{llx,lly}
per indicare le coordinate di questo punto.

\paragraph{versione \package{graphicx}}
In questo caso la forma asteriscata \`{e} presente solo per
compatibilit\`{a} con la versione standard, e aggiunge solamente
|clip| alla lista delle chiavi specificate (in pi\`{u}, per
incrementare la compatibilit\`{a}, se si usano \emph{due} argomenti
opzionali, viene usata la versione `standard' di |\includegraphics|
anche se \`{e} caricato il pacchetto \package{graphicx}).

Sono ora elencate le possibili chiavi.
\begin{description}
        \item[bb] Gli argomenti devono essere quattro dimensioni, separate
        da spazi.  Queste indicano il \emph{bounding box} della regione da
        stampare all'interno del file\ndt{il pdf\TeX\ 14h non gestisce 
        correttamente i \emph{bounding box}, quindi \`{e} consigliabile 
        usare l'opzione viewport}.
        
        \item[bbllx,bblly,bburx,bbury] Imposta il \emph{bounding box}. 
        Principalmente per compatibilit\`{a} con i vecchi pacchetti. 
        |bbllx=a,bblly=b,bburx=c,bbury=d| \`{e} equivalente a
        |bb = a b c d|.
        
        \item[natwidth,natheight] Un'altra alternativa a |bb|. 
        |natheight=h,natwidth=w| \`{e} equivalente a |bb = 0 0 h w|.
        
        \item[hiresbb]\NEWfeature{29/10/1996} Chiave a valori booleani. 
        Se impostata a |true| (vero) (specificare solo |hiresbb| \`{e}
        equivalente a |hiresbb=true|) \TeX\ cercher\`{a} linee
        del tipo |%%HiResBoundingBox| invece che |%%BoundingBox|.  Pu\`{o}
        essere impostato a |false| (falso) per annullare l'effetto di
        un'impostazione di \emph{default} a |true| determinata dall'opzione 
        di pacchetto |hiresbb|.
        
      \item[viewport]\NEWfeature{01/06/1995} La chiave |viewport|
        accetta quattro argomenti, proprio come |bb|.  In questo caso,
        per\`{o}, i valori sono riferiti all'origine indicata dal
        \emph{bounding box} nel file.  In questo modo per `vedere' il
        quadrato di |1in| a partire dall'angolo in basso a sinistra
        dell'area specificata dal \emph{bounding box}, si pu\`{o}
        usare l'argomento |viewport=0 0 72 72|.
        
      \item[trim]\NEWfeature{01/06/1995} \`{E} simile a |viewport|, ma
        qui le quattro lunghezze indicano la quantit\`{a} di spazio da
        levare o aggiungere a ciascun lato.  |trim= 1 2 3 4| `taglia'
        l'immagine di |1bp| a sinistra, |2bp| in basso, |3bp| a destra
        e |4bp| in alto.
        
        \item[angle] Angolo di rotazione.
        
		\item[origin]\NEWfeature{28/09/1995} Origine della rotazione. 
		Si veda la documentazione di |\rotatebox|.
        
		\item[width] Larghezza richiesta.  L'immagine viene
		ridimensionata a questa larghezza.
        
		\item[height] Altezza richiesta.  L'immagine viene
		ridimensionata a questa altezza.
        
      \item[totalheight]\NEWfeature{01/06/1995} Specifica l'altezza
        totale (altezza $+$ profondit\`{a}) della figura.  Questa
        sar\`{a} differente dall'`altezza' se vi \`{e} stata una
        rotazione.  In particolare se la figura \`{e} stata ruotata di
        $-90^\circ$, essa avr\`{a} un'altezza nulla e una notevole
        profondit\`{a}.
        
		\item[keepaspectratio]\NEWfeature{27/09/1995} Chiave a valore
		booleano, come |clip|.  Se impostata a |true| (vero), allora
		anche specificando entrambe |width| e |height| (o
		|totalheight|) l'immagine non viene distorta, ma viene
		ridimensionata in modo tale che non si superi nessuna delle
		due dimensioni.
        
        \item[scale] Fattore di scala.
        
        \item[clip] Alternativamente |true| (vero) o |false| (falso) (o
        nessun valore, il che \`{e} equivalente a |true|).  L'immagine
        viene tagliata sul \emph{bounding box}.
        
        \item[draft] Chiave a valore booleano, come |clip|.  Passa
        temporaneamente alla modalit\`{a} \emph{draft}.
        
        \item[type] Specifica il tipo di immagine.
        
        \item[ext] Specifica l'estensione del file.  Va usato
        \emph{solamente} insieme a |type|.
        
        \item[read] Specifica l'estensione del `file di lettura'.  Va usato
        \emph{solamente} insieme a |type|.
        
        \item[command] Specifica un comando che deve essere applicato al
        file.  Va usato \emph{solamente} insieme a |type|.
\end{description}

Per le chiavi che specificano le dimensioni originali (ossia le chiavi
per il \emph{bounding box}, |trim|, e |viewport|) si pu\`{o} omettere
l'unit\`{a} di misura, e in questo caso si assume che essa sia |bp|
(ossia punti PostScript).

Le prime sei chiavi specificano le dimensioni originali dell'immagine. 
Queste devono essere specificate nel caso in cui il file non possa
essere letto da \TeX\ o contenga una specifica di \emph{bounding box} di
dimensioni errate.

|bbllx|\ldots\ |\bbury| sono principalmente per compatibilit\`{a} con
i vecchi pacchetti.\\
|bbllx=a, bblly=b, bburx=c, bbury=d|\\
\`{e} equivalente a\\
|bb = a b c d|.

|natheight| e |natwidth| sono solo delle abbreviazioni per impostare
la coordinata in basso a sinistra a |0 0|, e quella in alto a destra alla
larghezza e altezza specificate.

Le rimanenti chiavi servono a specificare un ridimensionamento o una
rotazione che deve essere applicata all'immagine.  Per ottenere questi
effetti usando il pacchetto \package{graphics}, la chiamata a
|\includegraphics| deve essere posta all'interno dell'argomento di un
comando |\rotatebox| o |\scalebox|.

Le chiavi vengono lette da sinistra a destra, quindi 
|[angle=90, height=1in]| significa ruotare di 90 gradi e dopo 
ridimensionare l'altezza a |1in|.\\
|[height=1in, angle=90]| avrebbe portato ad una \emph{larghezza}
finale di |1in|.

Se viene caricato anche il pacchetto \package{calc}, le lunghezze
possono usare la sintassi di \package{calc}, per esempio per specificare
una larghezza di 2\,cm inferiore alla larghezza del testo:
|[width=\textwidth-2cm]|.

\TeX\ lascia lo spazio equivalente al \emph{bounding box} che viene
specificato nel file, o negli argomenti opzionali.  Se vi \`{e} una
parte dell'immagine che eccede quest'area, essa di \emph{default}
sovrascriver\`{a} il testo circostante.  Se viene usata la forma
asteriscata, o viene specificata l'opzione |clip|, qualsiasi parte
dell'immagine al di fuori di quest'area non verr\`{a} stampata.

Le ultime quattro chiavi sopprimono la lettura dell'estensione del
nome del file.  Se vengono usate, l'argomento principale \m{file}
non deve contenere l'estensione.  Esse corrispondono agli argomenti di
|\DeclareGraphicsRule|, descritto pi\`{u} avanti.

Per vedere l'effetto che hanno le varie opzioni, si consideri il file
|a.ps|.  Questo file contiene la specifica di \emph{bounding box} 
\begin{verbatim}
%%BoundingBox:100 100 172 172
\end{verbatim}
Ossia, la regione stampata \`{e} formata da un quadrato di dimensione
1\,pollice a 100\,pt dall'angolo in basso a sinistra del foglio.

In tutti gli esempi che seguono l'input sar\`{a} del tipo 
\begin{verbatim}
sinistra---\fbox{\includegraphics{a}}---destra
\end{verbatim}
con differenti opzioni passate a |\includegraphics|.

Nessun argomento opzionale.\\
sinistra---\fbox{\includegraphics{a}}---destra

\gs |\scalebox{0.5}{\includegraphics{a}}|\\
\gx |\includegraphics[scale=.5]{a}|\\
sinistra---\fbox{\includegraphics[scale=.5]{a}}---destra

\gs |\includegraphics[115,110][135,145]{a}}|\\
\gx |\includegraphics[bb= 115 110 135 145]{a}|\\
\ifx\pdfoutput\undefined % if we are not running pdftex
sinistra---\fbox{\includegraphics[bb= 115 110 135 145]{a}}---destra
\else
sinistra---\fbox{\includegraphics[viewport= 15 10 35 45]{a}}---destra
\fi

\gs |\includegraphics*[115,110][135,145]{a}}|\\
\gx |\includegraphics[bb= 115 110 135 145,clip]{a}|\\
\ifx\pdfoutput\undefined % if we are not running pdftex
sinistra---\fbox{\includegraphics[bb= 115 110 135 145,clip]{a}}---destra
\else
sinistra---\fbox{\includegraphics[viewport= 15 10 35 45,clip]{a}}---destra
\fi

\gs |\scalebox{0.5}{\includegraphics{a}}|
                   e l'opzione |draft|.\\
\gx |\includegraphics[scale=.5, draft]{a}|\\
sinistra---\fbox{\includegraphics[scale=.5, draft]{a}}---destra

\subsection{Altri comandi nei pacchetti \package{graphics} e
\package{graphicx}}

\begin{decl}
|\graphicspath|\arg{dir-list}
\end{decl}
Questa dichiarazione opzionale pu\`{o} essere usata per specificare una
lista di directory in cui cercare i file grafici.  Il formato \`{e} lo
stesso della primitiva \LaTeXe\ |\input@path|: una lista di directory,
ciascuna racchiusa in un gruppo |{}| (anche se nella lista ce n'\`{e}
una sola).  Per esempio:\\
|\graphicspath{{eps/}{tiff/}}|\\
far\`{a} in modo che il sistema cerchi nelle sottodirectory |eps| e
|tiff| della directory corrente.  Questa \`{e} la sintassi Unix, su un
Mac sarebbe stato:\\
|\graphicspath{{:eps:}{:tiff:}}|\\
Si noti la differenza di convenzioni, sui Macintosh \`{e} necessario
un |:| per indicare la cartella corrente, mentre su Unix un |/|
iniziale avrebbe significato la directory radice `root'.

L'impostazione predefinita per questo percorso \`{e} |\input@path|,
cio\`{e}: i file grafici saranno cercati in tutti i posti
in cui vengono cercati i file \TeX.

\begin{decl}
|\DeclareGraphicsExtensions|\arg{ext-list}
\end{decl}
\NEWdescription{01/12/1994} Questa dichiarazione specifica il
comportamento del sistema quando non viene specificata un'estensione
tra gli argomenti di |\includegraphics|.  \m{ext-list} deve essere una
lista di estensioni separate da virgole (spazi bianchi tra gli
elementi vengono ignorati).  Viene creato un nome di file aggiungendo
la prima estensione presente nella lista; se il file viene trovato, il
sistema agisce come se fosse stata specificata quell'estensione,
altrimenti viene provata la successiva estensione nella \m{ext-list}.

Si noti che se non viene indicata un'estensione nel comando
|\includegraphics|, il file grafico deve esistere al momento della
compilazione \LaTeX, in quanto il nome completo del file viene usato
per determinare quale estensione della lista deve essere usata. 
D'altro canto, se viene specificata l'estensione, per esempio
|\includegraphics{a.ps}| invece di |\includegraphics{a}|, allora non
\`{e} necessario che il file esista quando viene effettuata la
compilazione (in particolare pu\`{o} essere creato `al volo' dal
\m{comando} specificato in |\DeclareGraphicsRule|, spiegato pi\`{u}
avanti).  \LaTeX\ deve, per\`{o}, essere in grado di determinare le
dimensioni dell'immagine, quindi le dimensioni devono essere
specificate negli argomenti o nel `file di lettura', che deve essere
presente al momento della compilazione \LaTeX.

\begin{decl}
|\DeclareGraphicsRule|\arg{ext}\arg{type}\arg{file-di-lettura}\arg{comando}
\end{decl}
Si possono fare un numero qualsiasi di dichiarazioni di questo tipo. 
Esse determinano il modo in cui il sistema reagisce quando viene
specificata un'estensione \m{ext}.  L'estensione pu\`{o} essere
specificata esplicitamente o, se l'argomento di |\includegraphics| non
ha un'estensione, pu\`{o} essere un'estensione predefinita dalla lista
\m{ext-list} specificata con |\DeclareGraphicsExtensions|.
 
\m{ext} \`e l'estensione dei file a cui si applica questa regola.  Come
caso speciale, \m{ext} pu\`{o} essere |*|, per indicare il
comportamento predefinito per tutte le estensioni non dichiarate (si
veda l'esempio pi\`{u} avanti).

\m{type} \`{e} il `tipo' del file in questione.  Tutti i file dello
stesso tipo saranno letti dallo stesso comando interno (che deve
essere definito in un `driver file').  Per esempio, i file con
estensione |ps|, |eps| e |ps.gz| possono essere tutti classificati
come di tipo |eps|.

\m{file-di-lettura} determina l'estensione del file che deve essere
letto per determinare le informazioni sulla dimensione dell'immagine.
Pu\`{o} essere lo stesso di \m{ext}, ma pu\`{o} essere differente.
Per esempio, i file |.ps.gz| non sono facilmente leggibili da \TeX,
cos\`{\i} si possono mettere le informazioni riguardanti il
\emph{bounding box} in un file separato con estensione |.ps.bb|.  Se
\m{file-di-lettura} non \`{e} indicato, |{}|, allora il sistema non
cercher\`{a} di trovare un file esterno contenente le informazioni di
dimensione, e queste dovranno essere specificate negli argomenti di
|\includegraphics|.  Se il \emph{driver} specifica una procedura per leggere
le dimensioni di file di tipo \m{type}, verr\`{a} usata quella,
altrimenti verr\`{a} usata la procedura per leggere i file |eps|.  In
questo modo la dimensione di un file di tipo \emph{bitmap} pu\`{o}
essere specificata in un file contenente una linea |%%BoundingBox|
come se fosse un PostScript, se non \`{e} disponibile un formato
pi\`{u} specifico.

Come caso speciale, si pu\`{o} usare |*| per indicare la stessa
estensione del file grafico.  Questo \`{e} utile principalmente nel
caso in cui si usi |*| come estensione, dal momento che in questo caso
l'estensione \`{e} ignota.  Per esempio
\begin{verbatim}
 \DeclareGraphicsRule{*}{eps}{*}{}
\end{verbatim}
Questo dichiara una regola di \emph{default} tale che tutte le
estensioni ignote sono trattate come file EPS, e il file sia letto
alla ricerca di un commento di tipo |%%BoundingBox|.

\m{comando} \`{e} di solito vuoto, ma se non lo \`{e} sar\`{a} usato
al posto del nome del file nello |\special|.  In questo argomento si
pu\`{o} usare |#1| per indicare il nome del file.  In questo modo, se
si usa il \emph{driver} |dvips|, si pu\`{o} usare\\
|\DeclareGraphicsRule{.ps.gz}{eps}{.ps.bb}{`zcat #1}|\\
l'argomento finale fa in modo che dvips usi il comando |zcat| per
decomprimere il file prima di inserirlo nell'output
PostScript.

Si noti che \LaTeX\ cercher\`{a} i file grafici per mezzo di una
ricerca nelle directory definite in TEXINPUTS (ed eventualmente in
altri posti, come specificato con |\graphicspath|), ma pu\`{o} darsi
che il comando che si specifica in quest'argomento non sia in grado di
trovare i file a meno che essi non siano nella directory corrente.  Su
alcuni sistemi \`{e} possibile modificare il comando in modo che possa
cercare i file in tutte le directory in cui vengono cercati da
\LaTeX{}.  Per esempio su Unix, con le pi\`{u} recenti versioni di
\TeX\ web2c, si pu\`{o} modificare il comando precedente in modo che
l'ultimo argomento sia:\\
|{`zcat `kpsewhich -n latex tex #1`}|\\
che fa in modo che il programma |kpsewhich| trovi il file, cercandolo
all'interno dei percorsi \LaTeX, e poi passi il percorso completo al
programma |zcat| in modo che possa decomprimere il file.  Qualsiasi
costrutto di questo tipo \`{e} strettamente dipendente dal sistema, e
sarebbe meglio metterlo in un file |graphics.cfg|, mantenendo
cos\`{\i} portabile il documento.

\subsection{Impostazione globale delle chiavi}

La maggior parte delle chiavi di tipo \package{keyval} usate nel pacchetto
\package{graphicx} possono essere impostate anche attraverso il
comando |\setkeys| fornito dal pacchetto \package{keyval}.

Per esempio, si supponga di volere che tutte le figure da inserire nel
documento corrente siano ridimensionate al 75\% della larghezza delle linee
del testo, in questo caso si pu\`{o} dare il seguente comando:\\
|\setkeys{Gin}{width=0.75\textwidth}|\\
`|Gin|' \`{e} il nome usato per le chiavi \package{keyval} associate
alla `Inclusione Grafica'.  Tutti i successivi comandi
|\includegraphics| (all'interno dello stesso gruppo o ambiente)
agiranno come se fosse specificato |[width=0.75\textwidth]| in
aggiunta alle altre chiavi impostate negli argomenti opzionali.

In maniera simile, per fare in modo che tutti gli argomenti di
|\rotatebox| accettino un argomento in radianti, occorre
specificare:\\
|\setkeys{Grot}{units=6.28318}|

\subsection{Compatibilit\`{a} tra \package{graphics} e
\package{graphicx}}

Per un autore di documenti non ci sono effettivi problemi di
compatibilit\`{a} tra i due pacchetti.  Si pu\`{o} scegliere
l'interfaccia che si preferisce e usare il pacchetto appropriato.

Per un autore di classi o pacchetti la situazione \`{e} leggermente
differente.  Si supponga di dover scrivere una classe per lettere che
deve stampare un logo della compagnia come parte dell'intestazione.

Come autore della classe si pu\`{o} voler dare all'utente la
possibilit\`{a} di usare entrambe le interfacce all'interno delle
lettere (nel caso in cui debbano includere ulteriori immagini nel
corpo della lettera).  In questo caso la classe deve caricare il
pacchetto \package{graphics}, e non il \package{graphicx}, in quanto
altrimenti si obbligherebbe ogni utente della classe ad usare
l'interfaccia di \package{keyval}.  Il logo deve essere incluso
tramite |\includegraphics| \emph{senza} argomenti opzionali (se la
dimensione corretta \`{e} nel file) o con \emph{tutti e due} gli
argomenti opzionali.  Non si deve usare la forma con \emph{un solo}
argomento opzionale dal momento che il significato di quest'argomento
cambierebbe (e genererebbe errori) se l'utente caricasse il pacchetto
\package{graphicx} insieme a questa classe di esempio.

\section{Gli altri pacchetti del gruppo `graphics'}

\subsection{\package{epsfig}}
Questo \`{e} un piccolo pacchetto ed \`{e} essenzialmente una serie di
ridefinizioni costruite sul pacchetto \package{graphicx}, in modo da
definire un comando |\psfig| che ha sintassi\\
|\psfig{file=xxx,...}| invece di |\includegraphics[...]{xxx}|.\\
Ha anche altri comandi per renderlo leggermente pi\`{u}
compatibile con il vecchio stile \LaTeX~2.09 che aveva lo stesso nome.

\subsection{\package{trig}}
Il pacchetto trig non \`{e} concepito per essere usato direttamente nei
documenti.  Calcola le funzioni trigonometriche seno, coseno e tangente.
Queste sono usate per calcolare lo spazio usato dai riquadri che hanno
subito una rotazione.  Questo pacchetto \`{e} usato anche dal programma
|fontinst|, che converte i file PostScript in una forma usabile da
\TeX.

Oltre ad essere usate come un pacchetto \LaTeX, le macro possono
essere estratte tramite \package{docstrip} con le opzioni
\texttt{plain,package}.  In questo caso le macro possono essere usate
direttamente come parte di un altro file di macro (funzionano con
qualsiasi formato basato sul plain \TeX\ndt{Con ``plain 
\TeX'' si intende il \TeX{} senza macro aggiuntive. \LaTeX, Con\TeX{}t, 
PDF\TeX, etc. \emph{non} sono plain \TeX.}).

\subsection{\package{keyval}}
Il pacchetto \package{keyval} \`{e} concepito per essere usato da
altri pacchetti.  Fornisce un metodo generico per impostare `chiavi'
come quelle usate dal pacchetto \package{graphicx}, e per dividere le
liste, separate da virgole, di coppie \m{chiave}~=~\m{valore}.

Come il pacchetto \package{trig}, queste macro possono essere estratte
e usate come parte di un'altro file di macro, basato sul plain \TeX,
oppure essere usate come normale pacchetto \LaTeX.

Di \emph{default} una chiave non dichiarata genera un errore, ma se viene
usata l'opzione \texttt{unknownkeysallowed}, allora le chiavi
sconosciute verranno silenziosamente ignorate (lasciando un messaggio
nel file |log|).  Questa opzione \`{e} accettata anche dal pacchetto
\package{graphicx}.

\subsection{\package{pstcol}}
\package{PSTricks}, di Timothy Van Zandt, \`{e} un pacchetto di
immensa potenza che implementa un'interfaccia veramente molto completa
tra PostScript e \TeX. Sfortunatamente, il supporto per il colore di
\package{PSTricks} \`{e} lievemente incompatibile con il meccanismo
dei colori definito nel pacchetto \package{color}.  Il pacchetto
\package{pstcol} \`{e} un pacchetto (temporaneo, si spera) che
modifica un numero molto piccolo di funzioni interne a
\package{PSTricks}, in modo da rimuovere questa incompatibilit\`{a}.
Se \package{PSTricks} viene caricato tramite questo pacchetto, si
possono usare tutti i colori definiti dai comandi del pacchetto
\package{color} all'interno dei comandi \package{PSTricks} e
viceversa.

\subsection{\package{lscape}}
Il pacchetto \package{lscape} richiede e accetta le stesse opzioni del
pacchetto \package{graphics}.  Definisce un ambiente |landscape|
all'interno del quale il corpo della pagina \`{e} ruotato di 90 gradi.
Le intestazioni e i pi\`e di pagina rimangono invariati, mantenendo il
loro normale posizionamento.
\end{document}