Saltar al contenido

¿Cómo controlo la dimensión exacta de una imagen en LaTeX?

Hola usuario de nuestro sitio, descubrimos la solución a tu búsqueda, has scroll y la obtendrás un poco más abajo.

Solución:

Si todo lo que quiere es limitar el ancho de su imagen a un valor máximo (como linewidth), simplemente puede usar el enfoque descrito en las preguntas frecuentes de TeX:

documentclass[a5paper]article
usepackagegraphicx 

makeatletter
defmaxwidth%
  ifdim[email protected]
@width>linewidth linewidth else [email protected]@width fi makeatother begindocument centeringincludegraphics[width=maxwidth]largebottle includegraphics[width=maxwidth]largesidebottle enddocument

Para medir y generar las dimensiones, settoheight y settowidth Deberia trabajar. Puedes convertir el pt unidades a otras unidades usando el printlen paquete, como señaló Werner en los comentarios.

imagenmagia (identify -verbose bottle.jpg) muestra que la geometría es de 1408×714 píxeles, con una resolución de 300×300 píxeles por pulgada, lo que se traduce en 1408 px/300 px per in*72.27 pt per in=339.1872 pt y 714 px/300 px per in * 72.27 pt per in = 172.0026 pt.

documentclass[11pt ]article
usepackagegraphicx 
usepackageprintlen
uselengthunitcm

newlengthimageheight
newlengthimagewidth

begindocument

settoheightimageheightincludegraphicsbottle
settowidthimagewidthincludegraphicsbottle
includegraphicsbottle

Height: theimageheight (printlengthimageheight)

Width: theimagewidth (printlengthimagewidth)

enddocument

LaTeX no utiliza píxeles. Los píxeles no son un formato de impresión. pdflatex permite un px unidad pero esto simplemente se convierte a puntos (pt) como todo lo demás en TeX. La relación píxel a punto depende de la imagen. densidad que está en puntos por pulgada (DPI). Por defecto se utilizan 72 DPI. Un punto TeX es 1/72,27 pulgadas y un punto PostScript/PDF (bp en TeX) es 1/72 pulgadas. Si su imagen tiene un gran valor DPI pero pdflatex no puedo leer que a partir de los metadatos de las imágenes, esta conversión podría ser incorrecta (porque se suponen 72 DPI) y su imagen tiene un tamaño incorrecto. A veces, simplemente convertir su imagen o abrirla y guardarla corrige los metadatos.


Acerca de cómo medir todas las dimensiones de la imagen:

No incluya la imagen varias veces para medir sus diferentes tamaños. Guárdelo manualmente en una caja (p. ej. mybox) y luego puede acceder a las dimensiones de la caja directamente usando htmybox (altura), wdmybox (ancho) y dpmybox (profundidad). Todos setto... las macros que ha mencionado hacen exactamente lo mismo con un cuadro temporal.

newsaveboxmybox

newcommandpic[1]%
   sboxmyboxincludegraphics#1%
   Height: thehtmybox
   Width: thewdmybox
   Depth: thedpmybox % For images usually 0 except if rotated 
   ifdimwdmybox>.6textwidth
     % width is larger than 60% of the text width ...
   fi
   % Insert the image:
   useboxmybox

También puede necesitar el @tempboxa caja registradora (requiere makeatletter .. makeatother) o directamente el número de registro de la casilla 0: sbox0... ht0 ...

Aunque la pregunta es cómo hacer esto en LaTeX, también estoy agregando una respuesta para mostrar cómo hacerlo usando una interfaz de alto nivel en ConTeXt.

siempre que uses externalfigureConTeXt hace que las dimensiones (y el número de páginas de las imágenes en PDF) estén disponibles mediante las macros figurenaturalwidth, figurenaturalheighty noffigurepages. Si no desea que la imagen se incluya en el documento, pero solo desea medir sus dimensiones, utilice getfiguredimensions. El siguiente ejemplo obtiene las dimensiones de una imagen alojada remota:

starttext
getfiguredimensions[http://placekitten.com/500/300][method=png]
startTABLE
  NC Width  NC thedimexprfigurenaturalwidth  NC NR
  NC Height NC thedimexprfigurenaturalheight NC NR
  NC Pages  NC noffigurepages                  NC NR
stopTABLE
stoptext

figurenaturalwidth y ...height devolver las unidades en sp. yo suelothedimexpr para convertir el resultado en puntos. También se podría usar la función Lua number.todimen(...) para una rutina de conversión más versátil.

NOTA Al igual que en LaTeX, los cálculos de dimensión utilizan el DPI predeterminado especificado en pdftex/luatex. Entonces, el comentario de Jake de comparar px y pt sigue siendo relevante.

Según la pregunta editada, en ConTeXt puede usar:

externalfigure[figurename][maxwidth=textwidth, maxheight=textheight]

Esto reducirá la imagen para que su alto y ancho no excedan maxheight y maxwidth. Si necesita configurar estas opciones para muchas cifras, puede usar:

defineexternalfigure[MaxWidthAndHeight][maxwidth=textwidth, maxheight=textheight]
externalfigure[figurename][MaxWidthAndHeight][frame=on]

(donde usé frame=on solo para mostrar cómo agregar otras opciones, si es necesario).

Eres capaz de sustentar nuestro ensayo escribiendo un comentario o dejando una puntuación te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *