latex - subtitulos - overleaf
Escala la imagen hacia abajo, pero no hacia arriba en látex (4)
Tengo un comando que incluye un comando de inclusión: puedo pasar una imagen a mi comando y se hará un formato estándar antes de incluir realmente la imagen. Algunas de las imágenes que estoy incluyendo a través de este comando son más pequeñas que / textwidth, mientras que algunas son más grandes. Me gustaría escalar las imágenes más grandes a / textwidth, sin escalar las imágenes más pequeñas, esto significa que no puedo hacer
/includegraphics[width=/textwidth]{img}
¿Hay alguna manera de especificar un maxwidth? ¿O puedo obtener el ancho de la imagen de alguna manera para poder hacer algo como
/ifthenelse{/imagewidth > /textwidth}{%
/includegraphics[width=/textwidth]{img}}{%
/includegraphics{img}}
Para obtener el ancho de la imagen puede usar este código:
/newlength{/imgwidth}
/settowidth{/imgwidth}{/includegraphics{img}}
Puede usar esto en el preámbulo del documento para crear un nuevo comando para establecer automáticamente el ancho:
/usepackage{graphicx}
/usepackage{calc}
/newlength{/imgwidth}
/newcommand/scalegraphics[1]{%
/settowidth{/imgwidth}{/includegraphics{#1}}%
/setlength{/imgwidth}{/minof{/imgwidth}{/textwidth}}%
/includegraphics[width=/imgwidth]{#1}%
}
y luego, en tu documento:
/scalegraphics{img}
¡Espero que esto ayude!
Después de unos minutos de búsqueda a través de los manuales de CTAN y los resultados de Google, creo que puedo decir con seguridad que lo que quieres hacer es imposible o muy difícil. Mi única recomendación es que tenga dos comandos, uno para imágenes pequeñas y otro para grande, o un comando con una opción.
Puede haber una manera, pero dejo que otros asistentes SO LaTeX brinden una mejor respuesta.
Editar: estoy equivocado, ver arriba.
Me gusta un parámetro adicional para aumentar o reducir la escala de la imagen, por lo que mi versión de / scalegraphics se ve así:
/newcommand/scalegraphics[2][]{%
/settowidth{/imgwidth}{/includegraphics{#2}}%
/setlength{/imgwidth}{/minof{#1/imgwidth}{/textwidth}}%
/includegraphics[width=/imgwidth]{#2}%
}
El paquete de adjustbox
es útil para esto. A continuación encontrará un breve ejemplo. Permite lo siguiente (además de recorte, recorte, adición de márgenes y escala relativa):
/documentclass[a4paper]{article}
/usepackage[demo]{graphicx}
/usepackage[export]{adjustbox}
/begin{document}
/adjustbox{max width=/linewidth}{/includegraphics[width=.5/linewidth,height=3cm]{}}
/adjustbox{max width=/linewidth}{/includegraphics[width=2/linewidth,height=3cm]{}}
/includegraphics[width=2/linewidth,height=3cm,max width=/linewidth]{}
/end{document}
Si utiliza la opción de paquete de export
, la mayoría de sus claves se pueden usar directamente con /includegraphics
. Por ejemplo, la clave relevante para usted, max width
.