如何在不删除 TikZpicture 编码的情况下使其无效?

如何在不删除 TikZpicture 编码的情况下使其无效?

我有一个文档,其中包含一百多张与下面所示的类似的 tikzpicture。

我想(如果可能的话,很容易)从该组代码中生成两个不同的文档---(1)原样;(2)除 tikzpictures 之外的所有内容。

我知道我可以复制文档代码,然后手动删除所有 100 多个 tikzpictures——但我希望有更好的方法来生成我想要的内容。

考虑以下代码:

\documentclass[a5paper,12pt,openany]{book}
\usepackage[paperwidth=5.5in,paperheight=8.25in]{geometry}
\textwidth=4.25in \textheight=7.0in \voffset -7pt

\usepackage[tracking=true]{microtype}  
\usepackage{tikz,lipsum}
\usepackage{mathptmx} 
\definecolor{lightblue}{RGB}{197,213,255}

\begin{document}
\thispagestyle{empty}
\parskip 10pt
\lipsum[13]

\begin{center}
\begin{tikzpicture}[pencildraw/.style={ %
    decorate,
    decoration={random steps,segment length=4pt,amplitude=2.5pt}
    } %
]
\node[preaction={fill=black,opacity=.7,transform canvas={xshift=1mm,yshift=-1mm}},
%pencildraw,
draw,fill=lightblue,text width=0.85\textwidth,inner sep=4mm]
{\begin{minipage}{3.42in} \footnotesize
\selectfont \textbf{\lipsum[13]} \hfill \textbf{\emph{---L. Iipsum}} \end{minipage}};
\end{tikzpicture}
\end{center}

\lipsum[13]

\begin{center}
\begin{tikzpicture}[pencildraw/.style={ %
    decorate,
    decoration={random steps,segment length=4pt,amplitude=2.5pt}
    } %
]
\node[preaction={fill=black,opacity=.7,transform canvas={xshift=1mm,yshift=-1mm}},
%pencildraw,
draw,fill=lightblue,text width=0.85\textwidth,inner sep=4mm]
{\begin{minipage}{3.42in} \footnotesize
\selectfont \textbf{\lipsum[13]} \hfill \textbf{\emph{---L. Iipsum}} \end{minipage}};
\end{tikzpicture}
\end{center}

\lipsum[13]

\begin{center}
\begin{tikzpicture}[pencildraw/.style={ %
    decorate,
    decoration={random steps,segment length=4pt,amplitude=2.5pt}
    } %
]
\node[preaction={fill=black,opacity=.7,transform canvas={xshift=1mm,yshift=-1mm}},
%pencildraw,
draw,fill=lightblue,text width=0.85\textwidth,inner sep=4mm]
{\begin{minipage}{3.42in} \footnotesize
\selectfont \textbf{\lipsum[13]} \hfill \textbf{\emph{---L. Iipsum}} \end{minipage}};
\end{tikzpicture}
\end{center}
\end{document}

生成结果:

在此处输入图片描述

在此处输入图片描述

问题:是否有一种(相当简单的)方法来修改上述代码,以便 LaTeX 不执行编码tikzpicture,而只有文本出现在输出中?(我用编译代码pdflatex。)

谢谢。

答案1

使用包environ和命令\RenewEnviron

\documentclass[a5paper,12pt,openany]{book}
\usepackage[paperwidth=5.5in,paperheight=8.25in]{geometry}
\textwidth=4.25in \textheight=7.0in \voffset -7pt

\usepackage[tracking=true]{microtype}  
\usepackage{tikz,lipsum}
\usepackage{mathptmx} 
\definecolor{lightblue}{RGB}{197,213,255}


\usepackage{environ}  %change
\RenewEnviron{tikzpicture}{}{}


\begin{document}
\thispagestyle{empty}
\parskip 10pt
\lipsum[13]

\begin{center}
\begin{tikzpicture}[pencildraw/.style={ %
    decorate,
    decoration={random steps,segment length=4pt,amplitude=2.5pt}
    } %
]
\node[preaction={fill=black,opacity=.7,transform canvas={xshift=1mm,yshift=-1mm}},
%pencildraw,
draw,fill=lightblue,text width=0.85\textwidth,inner sep=4mm]
{\begin{minipage}{3.42in} \footnotesize
\selectfont \textbf{\lipsum[13]} \hfill \textbf{\emph{---L. Iipsum}} \end{minipage}};
\end{tikzpicture}
\end{center}

\lipsum[13]

\begin{center}
\begin{tikzpicture}[pencildraw/.style={ %
    decorate,
    decoration={random steps,segment length=4pt,amplitude=2.5pt}
    } %
]
\node[preaction={fill=black,opacity=.7,transform canvas={xshift=1mm,yshift=-1mm}},
%pencildraw,
draw,fill=lightblue,text width=0.85\textwidth,inner sep=4mm]
{\begin{minipage}{3.42in} \footnotesize
\selectfont \textbf{\lipsum[13]} \hfill \textbf{\emph{---L. Iipsum}} \end{minipage}};
\end{tikzpicture}
\end{center}

\lipsum[13]

\begin{center}
\begin{tikzpicture}[pencildraw/.style={ %
    decorate,
    decoration={random steps,segment length=4pt,amplitude=2.5pt}
    } %
]
\node[preaction={fill=black,opacity=.7,transform canvas={xshift=1mm,yshift=-1mm}},
%pencildraw,
draw,fill=lightblue,text width=0.85\textwidth,inner sep=4mm]
{\begin{minipage}{3.42in} \footnotesize
\selectfont \textbf{\lipsum[13]} \hfill \textbf{\emph{---L. Iipsum}} \end{minipage}};
\end{tikzpicture}
\end{center}
\end{document}

答案2

我不确定它是否会产生附带影响,现在我无法进行广泛测试,但它在 MWE 中有效:添加

\RenewDocumentEnvironment{tikzpicture}{o +b}{}{}

就在之前\begin{document}。它基本上重新定义了tikzpicture环境以使其不执行任何操作。

您还可以轻松添加“路标”,例如

\RenewDocumentEnvironment{tikzpicture}{o +b}{\par***Removed tikzpicture***\par}{}或类似的东西。

注释/删除该行将切换是否编译 tikzpicures。

在此处输入图片描述

相关内容