El comando \displaygraphics[width-1in]{figure=some_fig.pdf}
mostrará un gráfico. A veces quiero componer cuando no tengo los archivos de gráficos disponibles, entonces quiero hacer algo como:
\renewcommand{\includegraphics}[1][]{\verb|#2|}
La intención es que simplemente muestre el nombre del archivo que se utilizará, en lugar de intentar mostrar el gráfico. Tenga en cuenta que los nombres de los gráficos tienen guiones bajos, razón por la cual me gustaría algo así textualmente. Entonces el comando
\renewcommand{\includegraphics}[1][]{#2}
no funciona.
Por supuesto, la solución anterior tampoco funciona, ya que \verb
no se puede usar así dentro de un archivo \renewcommand
. ¿Cómo hago esto?
Respuesta1
La razón por la que su redefinición no funciona es que está especificando una cantidad incorrecta de argumentos en el archivo \renewcommand
. Si entiendo tu pregunta correctamente, solo quieres marcadores de posición de nombre de archivo para tus imágenes. He aquí un ejemplo:
\documentclass{article}
\usepackage[]{graphicx}
\renewcommand\includegraphics[2][]{\begin{center}\texttt{\detokenize{#2}\end{center}}
\begin{document}
\begin{figure}
\includegraphics[width=\linewidth]{Path/to/your/image/file}
\caption{When I finally get the file this will be a cool image}
\end{figure}
\end{document}
Alternativamente, puede usar la [demo]
opción graphicx
que reemplazará cualquier \includegraphics
comando con un cuadro negro como se muestra a continuación. En este caso, por supuesto, no se imprimen los nombres de los archivos, pero tampoco es necesario redefinirlos \includegraphics
.
Respuesta2
Hay una serie de errores en su código:
\renewcommand{displaygraphics}[1][]{\verb|#2|}
El primer argumento
\renewcommand
debe ser un nombre de macro (con la barra invertida (corregida en la pregunta).El comando para redefinir es
\includegraphics
(fijado en la pregunta)El número de argumentos debe ser 2, no 1: cuando sigue otro par de corchetes, el contenido es el valor predeterminado del argumento opcional, que se indica con
#1
en el texto de reemplazo; también quieres un argumento obligatorio, lo que suma dos.\verb
no se puede utilizar en el argumento de otra macro.
Solución:
\renewcommand{\includegraphics}[2][]{\texttt{\detokenize{#2}}}
Esto también permitirá guiones bajos.
Respuesta3
¿Qué pasa con la primera verificación \IfFileExists
y si ya está allí, simple \includegraphics
o no, para guiones bajos y caminos largos también, en estilo teletipo, es mejor usar un \url
?
\documentclass[twocolumn]{article}
\usepackage{url}
\usepackage{graphicx}
\parskip1em
\newcommand\extimg[1]{
\IfFileExists{#1}
{\includegraphics[width=.5\linewidth]{#1}}
{\fboxsep1em\fbox{\parbox{\dimexpr.5\linewidth-2em}{\url{#1}}}}}
\begin{document}
Some already made image:
\extimg{/usr/local/texlive/2015/texmf-dist/tex/latex/mwe/example-image-a.jpg}
Some image to do:
\extimg{/home/Richard/my_funny/proyect/more_carpets/and_more/images/todo_tomorrow/my_image.jpg}
\end{document}