我有以下 tex 代码
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usepackage{tikzscale}
\usepackage{filecontents}
\usepackage{graphicx}
\renewcommand{\includegraphics}[2][]{%
\setlength{\fboxsep}{-\fboxrule}%
\framebox{\rule{0pt}{0.6\linewidth}\rule{\linewidth}{0pt}}%
}
\begin{document}
\begin{filecontents}{tikzpicture.tikz}
\begin{tikzpicture}
\draw (0,0) grid (3,3);
\foreach \c in {(0,0), (1,0), (2,0), (2,1), (1,2)}
\fill \c + (0.5,0.5) circle (0.42);
\end{tikzpicture}
\end{filecontents}
\begin{figure}[ht]
\includegraphics[width=\linewidth]{tikzpicture.tikz}
\end{figure}
\end{document}
覆盖并用框架框替换我的所有像素图像\renewcomand
,\includegraphics
以便在文档编写期间缩短编译时间。但是,带有 .tikz 扩展名的图像仍会加载。
据我所知,它tikzscale
会覆盖\includegraphics
表单graphicx
,而我会用我的定义覆盖它。为什么这不起作用?有没有办法让它起作用?
答案1
该包延迟了对文档开头tikzscale
的重新定义,因此您应该这样做\includegraphics
\AtBeginDocument{%
\renewcommand{\includegraphics}[2][]{%
\setlength{\fboxsep}{-\fboxrule}%
\framebox{\rule{0pt}{0.6\linewidth}\rule{\linewidth}{0pt}}%
}%
}
也一样。