我们书的出版商要求我们修改书的来源,以便只有带有标题的图表保留在文档中的原始位置,就好像文档的其余部分(即段落、章节和节标题、表格等)仍然存在一样。因此,除了图表及其标题之外,所有内容都应该变成白色。
这可能吗?如果可以,如何实现?
答案1
notext
该软件包的选项会crop
删除所有文本,以达到类似的目的,例如,彩色图形只能用彩色打印机打印。(它还有一个nographics
选项。)
它将颜色变为白色并禁用所有颜色宏,以避免之后切换到不同的颜色。您必须保存并在图形中恢复这些命令,如下所示,以获得图形中的正常颜色。这在我的测试中运行良好。
\documentclass{article}
\usepackage{tikz}
% Save away the color command incl. their internal macros:
\let\origcolor\color
\expandafter\let\csname origcolor \expandafter\endcsname\csname color \endcsname
\let\origtextcolor\textcolor
\expandafter\let\csname origtextcolor \expandafter\endcsname\csname textcolor \endcsname
% there is also `\pagecolor` but it isn't of relevance here
\newcommand{\restorecolorcmds}{%
\let\color\origcolor
\expandafter\let\csname color \expandafter\endcsname\csname origcolor \endcsname
\let\textcolor\origtextcolor
\expandafter\let\csname textcolor \expandafter\endcsname\csname origtextcolor \endcsname
\color{black}%
}
\usepackage[notext]{crop}% must be after tikz
\usepackage{lipsum}% dummy text
\begin{document}
\lipsum
\begin{figure}
\restorecolorcmds
\centering
\begin{tikzpicture}
\draw (0,0) -- (1,1);
\draw [blue] (1,0) -- (0,1);
\end{tikzpicture}
\caption{caption text}
\end{figure}
\lipsum
\begin{figure}
\restorecolorcmds
\centering
\includegraphics[width=.8\textwidth]{image}
\caption{caption text}
\end{figure}
\lipsum
\end{document}
更新:
使用该包可以更轻松、更好地编写解决方案etoolbox
,它还允许自动将所需的宏添加到所有图形和表格中。
\documentclass{article}
\usepackage{tikz}
\usepackage{etoolbox}
% Save away the color command incl. their internal macros:
\let\origcolor\color
\csletcs{origcolor }{color }
\let\origtextcolor\textcolor
\csletcs{origtextcolor }{textcolor }
\csletcs{origdefault@color}{default@color}
% there is also `\pagecolor` but it isn't of relevance here
\newcommand{\restorecolorcmds}{%
\let\color\origcolor
\csletcs{color }{origcolor }%
\let\textcolor\origtextcolor
\csletcs{textcolor }{origtextcolor }%
\def\normalcolor{\origcolor{black}}%
\normalcolor
}
\AtBeginEnvironment{figure}{\restorecolorcmds}
\AtBeginEnvironment{table}{\restorecolorcmds}
\usepackage[notext]{crop}% must be after tikz
\usepackage{lipsum}% dummy text
\begin{document}
\lipsum
\begin{figure}
\centering
\begin{tikzpicture}
\draw (0,0) -- (1,1);
\draw [blue] (1,0) -- (0,1);
\end{tikzpicture}
\caption{caption text}
\end{figure}
\lipsum
\begin{figure}
\centering
\includegraphics[width=.8\textwidth]{image}
\caption{caption text}
\end{figure}
\lipsum
\end{document}