O comando \displaygraphics[width-1in]{figure=some_fig.pdf}
exibirá um gráfico. Às vezes quero compor quando não tenho os arquivos gráficos disponíveis, então quero fazer algo como:
\renewcommand{\includegraphics}[1][]{\verb|#2|}
A intenção é que ele simplesmente exiba o nome do arquivo a ser utilizado, ao invés de tentar exibir o gráfico. Observe que os nomes dos gráficos têm sublinhados, e é por isso que eu gostaria de algo como literalmente. Portanto o comando
\renewcommand{\includegraphics}[1][]{#2}
não funciona.
É claro que a solução acima também não funciona, pois \verb
não pode ser usada assim dentro de um arquivo \renewcommand
. Como eu faço isso?
Responder1
A razão pela qual sua redefinição não funciona é que você está especificando o número errado de argumentos no arquivo \renewcommand
. Se entendi sua pergunta corretamente, você deseja apenas espaços reservados para nomes de arquivos para suas imagens. Aqui está um exemplo:
\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, você pode usar a [demo]
opção graphicx
que substituirá qualquer \includegraphics
comando por uma caixa preta conforme abaixo. Nesse caso, é claro, você não imprime os nomes dos arquivos, mas também não precisa redefinir o arquivo \includegraphics
.
Responder2
Existem vários erros no seu código:
\renewcommand{displaygraphics}[1][]{\verb|#2|}
O primeiro argumento
\renewcommand
deve ser um nome de macro (com a barra invertida (corrigida na pergunta).O comando para redefinir é
\includegraphics
(corrigido na pergunta)O número de argumentos deve ser 2, não 1: quando outro par de colchetes segue, o conteúdo é o valor padrão do argumento opcional, que é indicado por
#1
no texto de substituição; você também quer um argumento obrigatório, o que dá dois.\verb
não pode ser usado no argumento para outra macro.
Solução:
\renewcommand{\includegraphics}[2][]{\texttt{\detokenize{#2}}}
Isso também permitirá sublinhados.
Responder3
Que tal primeiro verificar \IfFileExists
e se já estiver lá, simplesmente \includegraphics
ou não, também para sublinhados e caminhos longos, no estilo teletipo, é melhor usar um \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}