Che cosa avresti in mente di fare?
Sto realizzando una delle mie tante classi personalizzate per fare esercizio. In essa sto definendo un frontespizio un po’ particolare per conto mio.
Ti illustro quello che ho ho intenzione di fare con un esempio. Immaginiamo che il documento sia pensato per essere stampato su fogli A4. In tal caso, la base di ciascuna pagina è larga 21 cm.
` .——————————.
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
`——————————'<---------------------------- 21cm` Immaginiamo di voler inserire un logo in secondo piano (sotto il testo) nella sola pagina iniziale, quella del frontespizio, grazie ai comandi offerti da graphicx e da eso-pic. Immaginiamo che il file grafico sia largo 14 cm. Si può immaginare che sia di forma circolare, ma di seguito lo illustro come se fosse rettangolare per semplicità. ` .------------------------------. | | | | | | | | | .------------------. | | | | | | | | | | | | | | | | | | `------------------' | | | | <---------------- | | 14cm | | | | | | | | | | | | | | | | | `------------------------------' <---------------------------- 21cm` L'idea è quella di avere questo logo centrato orizzontalmente nella pagina, mentre non è importante che sia centrato verticalmente. Proprio per questa ragione, non mi è possibile usare il comando \AtPageCenter di eso-pic, perché questa condizione non verrebbe rispettata. Se desidero però che il logo sia centrato orizzontalmente, devo: [ol][li] conoscere la larghezza della pagina (\the\paperwidth, in questo caso 21 cm); [li] conoscere la larghezza del logo (ne discutiamo qui, in questo caso 14 cm);
[li] sottrarre il secondo dal primo (21 – 14 = 7 cm);
[li] dividere questo valore a metà (7 / 2 = 3.5 cm);
[li] il risultato ottenuto è quanto devo passare al comando \AddToShipoutPicture* per ottenere correttamente la centratura:
`\AddToShipoutPicture*{\put(\LenToUnit{3.5cm},){ }}`[/ol]Per inciso, la ragione per cui ho aperto l’altra discussione è quella di catturare tutti questi valori in diverse lunghezze in modo tale da non dover scrivere a mano «3.5cm» e da poter passare ad \AddToShipoutPicture* un’espressione con un po’ di sottrazioni e di divisioni da elaborare attraverso il pacchetto calc in modo che sia il sistema a fare i calcoli. In questa discussione chiedo invece se sia possibile spostare l’origine di un’immagine in modo che essa venga collocata al centro della figura (a voler essere precisi, per questo esempio è sufficiente la centratura rispetto al solo asse orizzontale) perché in questo modo potrei scrivere semplicemente
`\AddToShipoutPicture*{\put(\LenToUnit{.5\paperwidth},
){ }}`
senza fare tanti conti.Comunque sarebbe interessante sapere come spostare l’origine anche lungo l’asse verticale; ho la sensazione che potrebbe tornare utile in futuro…
Grazie e a presto.
P.S. nell’ipotesi di scegliere l’approccio con i calcoli, sarebbe fantastico se potessi inserire un’istruzione nel file di classe in grado di impedire la composizione se la larghezza del logo è maggiore di paperwidth!
Grazie e a presto.
Da’ un’occhiata al pacchetto atbegshi e alla sua documentazione. C’è sempre a disposizione \makebox(0,0){…}.
Ciao
Enrico