- Questo topic ha 10 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 5 anni, 11 mesi fa da
Tommaso.
-
CreatoreTopic
-
1 Ottobre 2011 alle 14:25 #64378::
Ho due immagini di dimensioni diverse che inserisco semplicemente come
`\begin{figure}
\centering
\includegraphics[width=.4\textwidth]{Diagrammi/rpw.eps}
\includegraphics[width=.4\textwidth]{Grafici/phaseNoise1.eps}
\end{figure}`il problema è che, come si vede dall’output allegati, le 2 figure vengono allineate orizzonatlmente prendendo a riferimento il bordo inferiore. E’ possibile allinearle usando come riferimento il centro della figura, in modo che – in poche parole – la fig a sx sia messa più in alto?
non riesco a uploadare il pdf,..lo metto sul mio dropbox pubblico http://dl.dropbox.com/u/320812/output.pdf
-
CreatoreTopic
-
AutoreRisposte
-
-
1 Ottobre 2011 alle 14:47 #64379::
Non occorre vedere il tuo pdf; è una questione nota e arcinota, Nell’Introduzione (GuidaGuIT — vedi qui sopra c’è un intero paragrafo dedicato all’allineamento delle figure in una tabella; il problema è lo stesso. Ogni oggetto viene allineato su una riga allineando i punti di riferimento; se vuoi le due figure allineate sulla base della loro mezzeria (l’asse orizzontale passante esattamente a metà fra il bordo inferiore e quello superiore allora fai così:
`
\begin{figure}
\centering
$\vcenter{\includegraphics[width=.45\textwidth]{Diagrammi/rpw.eps}}$
\hfill
$\vcenter{\includegraphics[width=.45\textwidth]{Grafici/phaseNoise1.eps}}$
\end{figure}
`Puoi aumentare anche un poco quel .45 senza però superare .5, visto che devi lasciare dello spazio in mezzo.
Il comando primitivo \vcenter, che si può usare solo in modo matematico e che sta alla base dell’ambiente minipage e del comando \parbox, ha come punto di riferimento cella scatola il punto di mezzo del bordo sinistro. Come tutti i comandi primitivi che accettano materiale verticale, non è necessario specificare la larghezza della scatola che viene formata (mentre con minipage e con \parbox} è necessario, se il materiale che costituisce il suo argomento è una scatola (se è testo questo viene composto in modo paragrafo interno e richiede la specificazione della giustezza); \includegraphics produce appunto una scatola larga quanto la figura che vi viene messa dentro, e questa scatola ci sta benissimo dentro \vcenter senza bisogno di dire a \vcenter quanto è largo il materiale che esso verrà a contenere.
Non ti preoccupare se trovi oscura questa spiegazione; quando vorrai studiare il TeXbook (non necessario per comporre bei documenti, ma necessario per scrivere belle macro) allora ti diventerà tutto più chiaro.
-
1 Ottobre 2011 alle 18:04 #64380::
spez” post=63423Ho due immagini di dimensioni diverse che inserisco semplicemente come
`\begin{figure}
\centering
\includegraphics[width=.4\textwidth]{Diagrammi/rpw.eps}
\includegraphics[width=.4\textwidth]{Grafici/phaseNoise1.eps}
\end{figure}`il problema è che, come si vede dall’output allegati, le 2 figure vengono allineate orizzonatlmente prendendo a riferimento il bordo inferiore. E’ possibile allinearle usando come riferimento il centro della figura, in modo che – in poche parole – la fig a sx sia messa più in alto?
non riesco a uploadare il pdf,..lo metto sul mio dropbox pubblico http://dl.dropbox.com/u/320812/output.pdf
Be’, “uploadare” non è proprio una parola che userei. 🙂
Il recente pacchetto adjustbox fa al caso nostro:
`\usepackage[export]{adjustbox}
…
\begin{figure}
\centering
\includegraphics[valign=c,width=.4\textwidth]{Diagrammi/rpw}\qquad
\includegraphics[valign=c,width=.4\textwidth]{Grafici/phaseNoise1}
\end{figure}`
Credo che anche OldClaudio sarà contento di sapere di questo pacchetto che risolve un bel po’ di problemi.Con l’opzione “export” è possibile dare nell’argomento facoltativo di \includegraphics molte delle opzioni di adjustbox, fra cui “valign”.
Altro esempio: vogliamo che in un ambiente tabular la prima colonna contenga un’immagine e la seconda una descrizione; vorremmo che l’immagine fosse verticalmente allineata con il testo:
`\begin{tabular}{p{6pc}l}
Immagine di un oggetto che non so come si chiami, ma che è molto carino &
\includegraphics[valign=t,width=6pc]{oggetto} \\
…
\end{tabular}`
Ciao
Enrico
-
1 Ottobre 2011 alle 20:21 #64381::
Grazie, Enrico; conoscevo troppo superficialmente il pacchetto adjustbox; grazie a te ho letto tutta la documentazione e in effetti è utilissimo.Anche se si tratta di una pignoleria di un paio di punti, \vcenter e il centraggio verticale con la lettera t non sono la stessa cosa; \vcenter centra l’asse matematico; t centra sull’altezza dell’occhio. Pignoleria, d’accordo, ma merita sapere anche questi dettagli che io ho appena scoperto e te ne ringrazio perché prima avevo classificato adjustbox come una cosetta di poco conto; non è vero: è utilissimo.
-
1 Ottobre 2011 alle 20:55 #64382::
OldClaudio” post=63435Grazie, Enrico; conoscevo troppo superficialmente il pacchetto adjustbox; grazie a te ho letto tutta la documentazione e in effetti è utilissimo.
Anche se si tratta di una pignoleria di un paio di punti, \vcenter e il centraggio verticale con la lettera t non sono la stessa cosa; \vcenter centra l’asse matematico; t centra sull’altezza dell’occhio. Pignoleria, d’accordo, ma merita sapere anche questi dettagli che io ho appena scoperto e te ne ringrazio perché prima avevo classificato adjustbox come una cosetta di poco conto; non è vero: è utilissimo.
Per centrare c’è “vcenter=c”; “vcenter=t” è per avere l’immagine alla stessa altezza della prima riga di testo (è simile a \parbox[t]). Nel messaggio ci sono due usi diversi!
Ciao
Enrico
-
2 Ottobre 2011 alle 7:47 #64383
-
2 Ottobre 2011 alle 8:22 #64384::
egreg9″ post=63436
Per centrare c’è “vcenter=c”; “vcenter=t” è per avere l’immagine alla stessa altezza della prima riga di testo (è simile a \parbox[t]). Nel messaggio ci sono due usi diversi!Evidentemente non mi sono spiegato bene:
`
\includegraphics[valign=m,…]{figura}
`
non dà lo stesso risultato di
`
$\vcenter{\includegraphics[…]{figura}}$
`
anche se la differenza è forse inferiore a un terzo di 1ex, e quindi si tratta di una pignoleria.Controlla a pagina 14 dove è specificato l’uso della chiave valign, (ma in tutto il documento non si parla mai di vcenter=…, almeno io non l’ho trovata nemmeno facendola cercare al comando mela+F). Nel mio messaggio precedente ho sbagliato a scrivere t invece di m (il valore della chiave specificato nella pagina 14 — non devo mai scrivere messaggi in fretta e dopo mezzanotte — a quell’ora non sono abbastanza lucido 🙁 )
-
2 Ottobre 2011 alle 9:12 #64385::
spez” post=63457grazie a tutti per la velocità e l’efficacia della risposta 😀
Domanda: come installo adjustbox su Ubuntu? con Synaptic non si trova 😕
Ah! Solito problema.
Qui c’è la guida per l’installazione di TeX Live 2010; cambia 2010 in 2011 nella procedura.
Ciao
Enrico
-
3 Ottobre 2011 alle 7:00 #64386::
egreg9″ post=63464
grazie a tutti per la velocità e l’efficacia della risposta 😀
Domanda: come installo adjustbox su Ubuntu? con Synaptic non si trova 😕
Ah! Solito problema.
Qui c’è la guida per l’installazione di TeX Live 2010; cambia 2010 in 2011 nella procedura.
Ciao
Enricoho provato a seguire la guida che mi hai consigliato ma mi da dei warning durante l’installazione e non riesco a completare la procedura. Comunque visto che il problema mi si presenta solo in una slide lo risolverò manualmente, creando un box invisibile attorno alla figura e centrandola con quella.
grazie a tutti per il supporto, in attesa che Ubuntu aggiorni Tex Live
-
3 Ottobre 2011 alle 7:48 #64387::
spez” post=63497
ho provato a seguire la guida che mi hai consigliato ma mi da dei warning durante l’installazione e non riesco a completare la procedura. Comunque visto che il problema mi si presenta solo in una slide lo risolverò manualmente, creando un box invisibile attorno alla figura e centrandola con quella.grazie a tutti per il supporto, in attesa che Ubuntu aggiorni Tex Live
Perché Ubuntu aggiorni TeX Live ci vogliono circa due anni; suppongo che tu non voglia aspettare tanto.
Scaricati adjustbox da CTAN, e installalo nel tuo albero personale radicato in $HOME/texmf (se non c’è, crealo) seguendo le indicazioni che sono contenute nella documentazione del pacchetto e anche nell’Arte recentemente aggiornata (vedi Downloads nel Vecchio Sito). Quello che temo è che dipenda dalla presenza di altri pacchetti recenti e/o da funzionalità che non erano ancora presenti nella versione TeX Live 2009.
Prova: al massimo ci avrai perso una decina di minuti.Se non funziona adjustbox, hai sempre la possibilità di usare \includegraphics dentro a $\vcenter{…}$ per allineamento a metà; \vbox{…} per allineamento in basso; \vtop{\null …} per allineamento in alto.
Vuoi un altro allineamento che ti soddisfi di più in relazione alla forma o al contenuto delle immagini? Usa il buon vecchio ambiente picture e con il comando \put(
){ } metti le due figure incluse con \includegraphics come , e scegli le come ti pare, così che puoi spostare una immagine rispetto all’altra nel modo meno vincolato possibile. Provo a buttare giù un esempio:
`
\begin{figure}
\unitlength=0.01\textwidth
\begin{picture}(100,50)
\put(0,0){\includegraphics[width=47\unitlength, height=50\unitlength, keepaspectratio]{figura1}}
\put(53,10){\includegraphics[width=47\unitlength, height=30\unitlength, keepaspectratio]{figura2}}
\end{picture}
\caption{Due figure allineate, la seconda delle quali è più bassa della prima}\label{fig:duefigureallineate}
\end{figure}
`Porre l’unità di misura grafica \unitlength pari all’1% della larghezza del testo, ti permette di stabilire le dimensioni di quanto contenuto in picture senza uscire dai margini. Puoi scegliere qualunque altro valore; se decidi che le figure sono troppo grandi messe una accanto all’altra a giustezza piena, si può scalare semplicemente il disegno diminuendo il valore di \unitlength e mettendo un \centering prima di \begin{picture}.
Occhio alle parentesi graffe e alle parentesi tonde!
L’ambiente picture sembra un po’ rozzo, ma non lo è (io ci disegno i circuiti elettronici, disdegnando il pacchetto circuitikz, basato su tikz), e certamente non fa le cose meravigliose che si possono fare con tikz, ma lo si impara ad usare in dieci minuti:smile: , mentre tikz ha un manuale di 700 pagine circa:sad:.
-
9 Ottobre 2020 alle 10:21 #64388::
OldClaudio” post=63426Non occorre vedere il tuo pdf; è una questione nota e arcinota, Nell’Introduzione (GuidaGuIT — vedi qui sopra c’è un intero paragrafo dedicato all’allineamento delle figure in una tabella; il problema è lo stesso. Ogni oggetto viene allineato su una riga allineando i punti di riferimento; se vuoi le due figure allineate sulla base della loro mezzeria (l’asse orizzontale passante esattamente a metà fra il bordo inferiore e quello superiore allora fai così:
`
\begin{figure}
\centering
$\vcenter{\includegraphics[width=.45\textwidth]{Diagrammi/rpw.eps}}$
\hfill
$\vcenter{\includegraphics[width=.45\textwidth]{Grafici/phaseNoise1.eps}}$
\end{figure}
`Puoi aumentare anche un poco quel .45 senza però superare .5, visto che devi lasciare dello spazio in mezzo.
Il comando primitivo \vcenter, che si può usare solo in modo matematico e che sta alla base dell’ambiente minipage e del comando \parbox, ha come punto di riferimento cella scatola il punto di mezzo del bordo sinistro. Come tutti i comandi primitivi che accettano materiale verticale, non è necessario specificare la larghezza della scatola che viene formata (mentre con minipage e con \parbox} è necessario, se il materiale che costituisce il suo argomento è una scatola (se è testo questo viene composto in modo paragrafo interno e richiede la specificazione della giustezza); \includegraphics produce appunto una scatola larga quanto la figura che vi viene messa dentro, e questa scatola ci sta benissimo dentro \vcenter senza bisogno di dire a \vcenter quanto è largo il materiale che esso verrà a contenere.
Non ti preoccupare se trovi oscura questa spiegazione; quando vorrai studiare il TeXbook (non necessario per comporre bei documenti, ma necessario per scrivere belle macro) allora ti diventerà tutto più chiaro.
Grazie OldClaudio, avendo letto altre tue risposte più polemiche in altri thread, mi stupisco di non averne percepita leggendo questa risposta datata; tuttavia mi stupisce il fatto che tu non abbia chiuso le parentesi tonde. In ogni caso: rispetto.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.