(¡La motivación de mi pregunta se encuentra al final!)
Pregunta:
¿Cómo puedo definir claves para las opciones de includegraphics
en un comando separado, es decir, no directamente en el gráfico que las usa? (Por ejemplo, para que las mismas opciones se puedan usar varias veces, o para que pueda simplemente definirlas centralmente en lugar de en la inclusión gráfica en sí).
Nota que graphicx
le permite definir unestándarpara estas opciones que se utiliza para todos los gráficos a menos que las anule especificando otras nuevas. Esto se hace con el comando setkeys y tiene el siguiente aspecto:
\documentclass{scrartcl}
\usepackage{graphicx}
\setkeys{Gin}{width=4cm,height=4cm}
\begin{document}
\hspace*{-3cm}
\includegraphics{example-image-a}
\includegraphics[width=2cm]{example-image-b}
\includegraphics[width=2cm,height=!]{example-image-c}
\includegraphics[width=!,height=!]{example-image}
\end{document}
Por lo tanto, el primer gráfico que ve utiliza elnuevoestándar de 4cm/4cm, mientras que los demás los anulan con valores individuales (an/al):
- R: 4cm/4cm, el nuevo estándar
- B: 2 cm/4 cm, porque la altura sigue siendo el nuevo estándar
- C: 2 cm/*, donde * es la altura en la relación correcta con el ancho
- imagen: */*, es decir, las medidas originales del gráfico
¡Sin embargo, me gustaría usar la definición de setkeys solo para un gráfico específico! (Por supuesto, podría establecer un nuevo estándar y usarlo para todos los demás gráficos width
y height
con !
, pero obviamente esa no es una solución aceptable). Es decir, lo hago.noQuiero cambiar el estándar, ¡pero me gustaría poder usar esta definición solo en cualquier gráfico de mi elección! Por ejemplo, me gustaría poder hacer algo como
\setkeys{MyKeys}{width=4cm,height=4cm}
..
\includegraphics[MyKeys]{example-image-X}
¿Es eso posible, de alguna manera?
Motivación:
Me gustaría definir mi propio paquete (es decir, un archivo sty) para diapositivas de proyector que debería ser lo suficientemente flexible como para que, en la mayoría de los casos, las personas que lo usan no tengan que tocarlo más. En su lugar, toda la edición/individualización necesaria debe realizarse en un archivo de configuración separado. (Donde puede, por ejemplo, definir el título y el autor de la diapositiva de título).
Una de esas cosas que se deben configurar ahí es el tamaño del gráfico que aparece en la diapositiva del título. De este modo,en principio, el archivo sty debería contener algo como: \includegraphics[\OptionsSpecifiedInConfigFile]{\LogoSpecifiedInConfigFile}
. Sin embargo, estas opciones (como width=2cm,height=3cm
) no se pueden almacenar simplemente en un comando (como \OptionsSpecifiedInConfigFile
), por lo que necesito una solución diferente.
Sé que pasar opciones a mi paquete también podría ser una opción (¡lo cual ya hago!), pero creo que hacer esto para estas opciones en particular no tiene sentido.
Publicaciones relacionadas con stackoverflow:
(No me ayudaron a resolver mi problema, pero todavía parecen muy relacionados, así que los publiqué en caso de que otros los consideren útiles).
¡Gracias por su ayuda!
Respuesta1
Si desea un valor predeterminado diferente para algunos casos, puede definir un nuevo comando para ese
\newcommand*{\myincludegraphics}[2][]{\includegraphics[width=4cm,height=4cm, #1]{#2}}
Si desea guardar las opciones en una macro especial, debe expandir la macro antes de pasarla a\includegraphics
\newcommand*{\OptionsSpecifiedInConfigFile}{width=4cm,height=4cm}
\expandafter\includegraphics\expandafter[\OptionsSpecifiedInConfigFile]{example-image-a}