- Questo topic ha 7 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 14 anni, 4 mesi fa da
Marco87.
-
CreatoreTopic
-
22 Aprile 2012 alle 14:00 #72896::
Ciao a tutti,in documento che sto redigendo, mi piacerebbe poter inserire degli schemi che ho fatto con TikZ in alcune pagine a sé. Vorrei che, a priori dei margini impostati, in quelle pagine (e in quelle soltanto) la figura risulti esattamente centrata nella pagina (non nella gabbia del testo) sia orizzontalmente che verticalmente. C’è modo di farlo?
Grazie e buona domenica a tutti,
Marco.
-
CreatoreTopic
-
AutoreRisposte
-
-
22 Aprile 2012 alle 16:30 #72897
-
22 Aprile 2012 alle 17:43 #72898::
Ciao,chiedo venia, al posto di “a priori” nel messaggio precedente, si legga “indipendentemente”. Se anche questo non è chiaro, o erroneo, provo a spiegarmi in termini diversi.
Vorrei che la figura (o, in questo caso, il disegno realizzato con TikZ) fosse centrata rispetto alla pagina. Se io scrivo questo codice:
`\begin{figure}
\centering
…
\end{figure}`
La figura inserita risulta centrata nella gabbia del testo e non rispetto ai “limiti fisici” della pagina. Vorrei invece ottenere quest’ultimo risultato, ma solo per la pagina in questione (quella dove inserisco la figura).Ciao e grazie,
Marco.
-
22 Aprile 2012 alle 19:24 #72899::
Marco87″ post=71898Ciao,
chiedo venia, al posto di “a priori” nel messaggio precedente, si legga “indipendentemente”. Se anche questo non è chiaro, o erroneo, provo a spiegarmi in termini diversi.
Vorrei che la figura (o, in questo caso, il disegno realizzato con TikZ) fosse centrata rispetto alla pagina. Se io scrivo questo codice:
`\begin{figure}
\centering
…
\end{figure}`
La figura inserita risulta centrata nella gabbia del testo e non rispetto ai “limiti fisici” della pagina. Vorrei invece ottenere quest’ultimo risultato, ma solo per la pagina in questione (quella dove inserisco la figura).Ciao e grazie,
Marco.Non che abbia molto senso.
Ciao
Enrico
-
22 Aprile 2012 alle 19:27 #72900::
Marco, questo l’avevo capito, ma la tua frase precedente, sgrammaticata e con parole scelte male voleva dire “prima di avere fissato i margini”.Allora so che c’è un pacchetto che fa quello che vuoi tu, ma non l’ho mai usato e non sono siciro che sia changepage o altro.
Io faccio così:, in modo meno elegante, e molto ruspante:
`
\begingroup\clearpage
\oddsidemargin=\dimexpr (\oddsidemargin + \evensidemargin) / 2 \relax
\evensidemargin=\oddsidemargin
\vspace*{\hfill}
\centering %per il centraggio orizzontale
\includegraphics[…]{…}
\par\vstretch*{\hfill}
\clearpage
\endgroup
`Ovviamente, se vuoi puoi definirti un comando; i \begingroup e \endgroup servono per limitare la ridefinizione dei margini a solo questo gruppo, senza che si propaghino alle pagine successive; questa impostazione funziona sia sulle pagine pari sia su quelle dispari.
Se invece vuoi mettere nel centro del foglio una immagine di sfondo, allora devi usare i pacchetti eso-pic oppure watermark.
In entrambi i casi pensaci bene, perché cambiare geometria del layout di pagina a metà del documento, sia pure per metterci qualcosa di speciale come una immagine, in generale non è una idea molto buona.
-
24 Aprile 2012 alle 12:10 #72901::
Ciao Claudio,OldClaudiola tua frase precedente, sgrammaticata e con parole scelte male
Hai ragione.
Ho provato a usare il codice che mi hai fornito tu, in questo modo:
`\begingroup\clearpage
\oddsidemargin=\dimexpr (\oddsidemargin + \evensidemargin) / 2 \relax
\evensidemargin=\oddsidemargin
\vspace*{\hfill}
\centering %per il centraggio orizzontale
\begin{tikzpicture}
…
\end{tikzpicture}
\par\vstretch*{\hfill}
\clearpage
\endgroup`
Ma mi viene indicato il seguente errore:! Undefined control sequence.
l.117 \par\vstretch
*{\hfill}
The control sequence at the end of the top line
of your error message was never \def’ed. If you have
misspelled it (e.g., `\hobx’), type `I’ and the correct
spelling (e.g., `I\hbox’). Otherwise just continue,
and I’ll forget about whatever was undefined.
[3
]Se tolgo la riga [tt]\par\vstretch*{\hfill},[/tt] allora la compilazione termina senza errori, ma non ottengo il risultato desiderato. Forse conviene che cerchi di ridisegnare gli schemi affinché stiano nei margini impostati…
Grazie e buona giornata,
Marco.
-
24 Aprile 2012 alle 19:24 #72902::
Un volgare errore si “stampa” mio’ volevo scrivere \vspace e volevo evitare il comando \stretuch; oi sai come vanno queste cose quando si fa una cosa e se ne pensa un’altra. ci vuole \vspace*{\hfill} come qualche riga sopra.edit Dopo 600 km di guida ero un po’ ritardato mentalmente…:sad:
Riprendiamo da capo: il trucchetto di \oddsidemargin e \evensidemargin serve per rendere i margini uguali; il tutto racchiuso dentro a \begingroup e \endgroup serve per mantenere locale questo cambiamento’ i duce comandi \clearpage servono per assicurarsi che le code di oggetti flottanti prima e dopo siano vuote. Magari il primo \clearpage potrebbe andare prima di \begingroup.
A questo punto la gabbai è centrata fra il bordi laterali della paginal la testatina e il piedino sono spostati lateralmente insieme alla gabbai del testo; in veritcale non si è fatto nulla, quindi la gabbia non è necessariamente centrata verticalmente.
Ora si tratta di mettere la figura al centro della gabbia; a me parrebbe che
`
\begin{figure}[p]
\centering
\includegraphics[…]{…}
\end{figure}
`
dovrebbe essere sufficiente a centrare la figura inclusa con \includegraphics sia verticalmente sia orizzontalmente dentro la gabbia; se non è questo quello che vuoi allora devi usare eso-pic o simili programmi; anche tikz ha una funzione per centrare una immagine di sfondo nella pagina, non nella gabbia, ma non l’ho mai usato.
Infine ci sarebbe anche la possibilità di usare l’ambiente picture col quale si può mettere quasliasi cosa in qualunque punto, ma non è proprio la cosa più semplice da fare, anche se con un po’ di pratica non si tratta di una cosa impossibile. Visto che ci sono già programmai come eso-pic che usano picture dietro le quinte, perché rompersi la testa per rifare ciò che è già disponibile?
-
27 Aprile 2012 alle 12:29 #72903::
Ciao Claudio,grazie mille della spiegazione e delle indicazioni. Sostituendo [tt]\par\vstretch*{\hfill}[/tt] con [tt]\par\vspace*{\hfill},[/tt] il risultato è quello che mi aspettavo. Come mi avevate suggerito, comunque, ho evitato questa soluzione. Ho ridisegnato gli schemi in modo da non doverla usare. In ogni caso, credo che appena ho tempo guarderò la documentazione relativa alle tue indicazioni.
Grazie ancora e ciao,
Marco.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.