如何仅保留带有标题的图形及其原始位置

如何仅保留带有标题的图形及其原始位置

我们书的出版商要求我们修改书的来源,以便只有带有标题的图表保留在文档中的原始位置,就好像文档的其余部分(即段落、章节和节标题、表格等)仍然存在一样。因此,除了图表及其标题之外,所有内容都应该变成白色。

这可能吗?如果可以,如何实现?

答案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}

相关内容