該命令\displaygraphics[width-1in]{figure=some_fig.pdf}
將顯示一個圖形。有時我想在沒有可用的圖形檔案時進行排版,所以我想做類似的事情:
\renewcommand{\includegraphics}[1][]{\verb|#2|}
目的是它只會顯示要使用的文件的名稱,而不是嘗試顯示圖形。請注意,圖形名稱有下劃線,這就是我想要逐字記錄之類的內容的原因。所以該命令
\renewcommand{\includegraphics}[1][]{#2}
不起作用。
當然,上面的解決方案也不起作用,因為\verb
不能在\renewcommand
.我該怎麼做呢?
答案1
您的重新定義不起作用的原因是您在\renewcommand
.如果我正確理解你的問題,你只需要圖像的檔案名稱佔位符。這是一個例子:
\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}
或者,您可以使用將任何命令替換為黑框[demo]
的選項,如下所示。當然,在這種情況下,您不會列印出文件名,但也不需要重新定義.graphicx
\includegraphics
\includegraphics
答案2
您的程式碼中有很多錯誤:
\renewcommand{displaygraphics}[1][]{\verb|#2|}
第一個參數必須
\renewcommand
是巨集名稱(帶有反斜線(在問題中已修復)。重新定義的命令是
\includegraphics
(問題中已修復)#1
參數的數量應該是 2,而不是 1:當後面跟著另一對括號時,內容是可選參數的預設值,在替換文字中用表示;你還需要一個強制參數,這樣就可以得到兩個。\verb
不能在另一個巨集的參數中使用。
解決方案:
\renewcommand{\includegraphics}[2][]{\texttt{\detokenize{#2}}}
這也將允許使用下劃線。
答案3
首先檢查一下\IfFileExists
,如果已經存在,無論是簡單的 \includegraphics
還是其他的,對於下劃線和長路徑,在電傳打字機風格中,最好使用\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}