Operatore matematico nel specificare la larghezza della figura in LaTeX
-
05-07-2019 - |
Domanda
Nelle figure di LaTeX, si può usare \ textwidth
e \ columnwidth
per specificare le dimensioni del grafico in relazione alle dimensioni del testo circostante, ad es.
\ includegraphics [width = 0,5 \ textwidth] {myimage}
.
Vorrei passare facilmente da un modello a colonna a un modello a colonna (e viceversa) senza che la figura diventi troppo grande per il modello a colonna. Per il modello a due colonne (dove \ columnwidth
è circa la metà di \ textwidth
), vorrei avere qualcosa del tipo:
\ includegraphics [width = 0,9 \ ColumnWidth] {myimage}
.
e per il modello onecolumn (dove \ columnwidth
e \ textwidth
sono uguali):
\ includegraphics [width = 0,5 \ textwidth] {myimage}
.
Ora, ho pensato di poterlo limitare usando una specie di operatore minimo:
\ includegraphics [larghezza = min (.5 \ textwidth, .9 \ columnwidth)] {myimage}
ma questa è sintassi non valida. Esiste qualcosa del genere per risolvere questo problema, probabilmente attraverso l'uso del sistema macro LaTeX?
Soluzione
Sebbene sia possibile scrivere questo tipo di macro, non vorrei codificarlo in ogni figura; che ne dici di qualcosa del genere
\makeatletter
\newlength \figwidth
\if@twocolumn
\setlength \figwidth {0.9\columnwidth}
\else
\setlength \figwidth {0.5\textwidth}
\fi
\makeatother
e quindi utilizzare
\includegraphics[width=\figwidth]{myimage}
per inserire l'immagine.
Altri suggerimenti
\ textwidth
è la larghezza orizzontale del corpo della pagina e non è davvero appropriata per i tuoi scopi.
\ linewidth
è la larghezza della riga corrente; sarà aggiornato in base alle colonne, al rientro, ecc.
Il paragrafo seguente produce un'immagine che dovrebbe adattarsi esattamente all'intera larghezza della linea (cioè nessun avviso eccessivo):
\noindent\includegraphics[width=\linewidth]{myimage}
Se preferisci piccoli margini a sinistra e a destra, puoi usare:
\begin{center}
\includegraphics[width=.9\linewidth]{myimage}
\end{center}
Oppure, se si desidera specificare i margini in una dimensione assoluta:
\usepackage{calc}
...
\begin{center}
\includegraphics[width=\linewidth-20pt]{myimage}
\end{center}
Hmm ... il codice sopra (\ if @ twocolumn ecc.) non funziona affatto per me. Non ho idea del perché no. :( tetex su osX usando fink. Sto provando a usare revtex4, quindi forse questo è il problema. Mi piace molto l'idea di questo tipo di cambiamento perché sto lavorando con larghezze ecc. per la mia tesi e vari articoli di giornale, e avere queste distanze specificate con una macro può essere utile per questi tipi di conversioni.
Qualsiasi commento molto apprezzato! -Allen
Qualcun altro che ha più familiarità con questo probabilmente risponderà, ma tieni presente che dovrai anche cambiare il tipo di figura in figura * se stai andando su due colonne.