Operador matemático en la especificación del ancho de la figura en LaTeX

StackOverflow https://stackoverflow.com/questions/622502

  •  05-07-2019
  •  | 
  •  

Pregunta

En las figuras de LaTeX, se puede usar \ textwidth y \ columnwidth para especificar los tamaños del gráfico en relación con el tamaño del texto circundante, por ejemplo. \ includegraphics [width = .5 \ textwidth] {myimage} .

Me gustaría cambiar fácilmente de una columna a una plantilla de dos columnas (y viceversa) sin que la cifra crezca demasiado para la plantilla de una columna. Para la plantilla de dos columnas (donde \ columnwidth es aproximadamente la mitad del \ textwidth ), me gustaría tener algo como: \ includegraphics [width = .9 \ columnwidth] {myimage} . y para la plantilla de una columna (donde \ columnwidth y \ textwidth son iguales):
\ includegraphics [width = .5 \ textwidth] {myimage} .

Ahora, pensé que podría limitar esto usando algún tipo de operador mínimo: \ includegraphics [width = min (.5 \ textwidth, .9 \ columnwidth)] {myimage} pero esta sintaxis no es válida. ¿Hay algo como esto para resolver este problema, posiblemente a través del uso del sistema macro LaTeX?

¿Fue útil?

Solución

Aunque es posible escribir este tipo de macro, no me gustaría incluirla en cada figura; ¿Qué tal algo como esto?

\makeatletter
\newlength \figwidth
\if@twocolumn
  \setlength \figwidth {0.9\columnwidth}
\else
  \setlength \figwidth {0.5\textwidth}
\fi
\makeatother

y luego use

\includegraphics[width=\figwidth]{myimage}

para insertar el gráfico.

Otros consejos

\ textwidth es el ancho horizontal del cuerpo de la página y no es realmente apropiado para sus propósitos.

\ linewidth es el ancho de la línea actual; se actualizará según las columnas, la sangría, etc.

El siguiente párrafo produce una imagen que debe ajustarse con precisión a todo el ancho de línea (es decir, sin advertencias):

\noindent\includegraphics[width=\linewidth]{myimage}

Si prefiere márgenes pequeños a la izquierda y a la derecha, puede usar:

\begin{center}
\includegraphics[width=.9\linewidth]{myimage}
\end{center}

O, si desea especificar los márgenes en un tamaño absoluto:

\usepackage{calc}
...
\begin{center}
\includegraphics[width=\linewidth-20pt]{myimage}
\end{center}

Hmm ... el código de arriba (\ if @ twocolumn etc.) no funciona para mí en absoluto. No tengo idea de por qué no. :( tetex en osX usando fink. Intentando usar revtex4, así que quizás ese sea el problema. Realmente me gusta la idea de este tipo de cambio porque voy a trabajar con anchos, etc. para mi tesis y varios artículos de revistas, y tener estas distancias especificadas con una macro puede ser útil para este tipo de conversiones.

Cualquier comentario muy apreciado! -Allen

Alguien que esté más familiarizado con esto probablemente contestará, pero tenga en cuenta que también necesitará cambiar su tipo de figura para que aparezca * si va a dos columnas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top