Der Befehl \displaygraphics[width-1in]{figure=some_fig.pdf}
zeigt eine Grafik an. Manchmal möchte ich einen Satz erstellen, wenn ich die Grafikdateien nicht zur Verfügung habe. Dann mache ich etwas wie:
\renewcommand{\includegraphics}[1][]{\verb|#2|}
Die Absicht besteht darin, einfach den Namen der zu verwendenden Datei anzuzeigen, anstatt zu versuchen, die Grafik anzuzeigen. Beachten Sie, dass Grafiknamen Unterstriche haben, weshalb ich etwas wie „wörtlich“ möchte. Der Befehl
\renewcommand{\includegraphics}[1][]{#2}
funktioniert also nicht.
Natürlich funktioniert die obige Lösung auch nicht, da sie \verb
so nicht innerhalb eines verwendet werden kann \renewcommand
. Wie mache ich das?
Antwort1
Der Grund, warum Ihre Neudefinition nicht funktioniert, ist, dass Sie die falsche Anzahl von Argumenten in angeben \renewcommand
. Wenn ich Ihre Frage richtig verstehe, möchten Sie nur Dateinamen-Platzhalter für Ihre Bilder. Hier ist ein Beispiel:
\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}
Alternativ können Sie die [demo]
Option verwenden graphicx
, die alle Befehle durch ein schwarzes Kästchen ersetzt, \includegraphics
wie unten. In diesem Fall werden die Dateinamen natürlich nicht ausgedruckt, aber Sie müssen auch nicht neu definieren \includegraphics
.
Antwort2
Ihr Code enthält mehrere Fehler:
\renewcommand{displaygraphics}[1][]{\verb|#2|}
Das erste Argument
\renewcommand
muss ein Makroname (mit Backslash (in der Frage behoben)) sein.Der Befehl zum Neudefinieren lautet
\includegraphics
(in der Frage behoben)Die Anzahl der Argumente sollte 2 und nicht 1 betragen: Wenn ein weiteres Klammerpaar folgt, ist der Inhalt der Standardwert des optionalen Arguments, das
#1
im Ersetzungstext durch gekennzeichnet ist; Sie möchten auch ein obligatorisches Argument, also zwei.\verb
kann nicht im Argument eines anderen Makros verwendet werden.
Lösung:
\renewcommand{\includegraphics}[2][]{\texttt{\detokenize{#2}}}
Dadurch werden auch Unterstriche zugelassen.
Antwort3
Wie wäre es mit einer ersten Prüfung \IfFileExists
und wenn diese bereits vorhanden ist, einfach \includegraphics
oder anderweitig, auch für Unterstriche und lange Pfade, im Fernschreibstil, besser ein ? verwenden \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}