重命名环境:tikz 中使用的代码示例

重命名环境:tikz 中使用的代码示例

我尝试重命名codeexampletikz 文档中使用的环境,但无法使用如下技巧包装环境

这与tkzexample:源和输出并排。 这pgfmanual-en-宏.tex用于\input{pgfmanual-en-macros.tex} (我不知道如何最小化它并上传为附件)

\documentclass{article}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{tikz}
\usepackage{amsmath,amssymb}
\usepackage{tkzexample} 
\usepackage[a4paper,left=2.25cm,right=2.25cm,top=2.5cm,bottom=2.5cm,nohead]{geometry}%pgfmanual-en-main-preamble.tex

\input{pgfmanual-en-macros.tex}
\let\bcExample\codeexample
\let\ecExample\endcodeexample
\renewenvironment{codeexample}  {\bcExample[]}  {\ecExample}
\let\cExample\codeexample
\let\endcExample\endcodeexample
\newenvironment{eExample}   {\bcExample[]}  {\ecExample}

\begin{document}


When executed, that is, run via |pdflatex| or via |latex| followed by |dvips|,
the resulting will contain something that looks like this:
%
\begin{codeexample}
We are working on
\begin{tikzpicture}
  \draw (-1.5,0) -- (1.5,0);
  \draw (0,-1.5) -- (0,1.5);
\end{tikzpicture}.
\end{codeexample}

cExample

%\begin{cExample}
We are working on
\begin{tikzpicture}
  \draw (-1.5,0) -- (1.5,0);
  \draw (0,-1.5) -- (0,1.5);
\end{tikzpicture}.
%\end{cExample}

eExample

%\begin{eExample}
We are working on
\begin{tikzpicture}
  \draw (-1.5,0) -- (1.5,0);
  \draw (0,-1.5) -- (0,1.5);
\end{tikzpicture}.
%\end{eExample}

\end{document}

使用renewenvironment{codeexample}有效,但使用\let\cExample\codeexample\newenvironment{eExample}重命名/复制新环境codeexample会引发错误。

答案1

我读了 中的代码pgfmanual-en-macros.tex。我发现环境endcodeexample是硬编码的,它定义为

  1. \def\codeexample[#1]
  2. \def\endcodeexample{\endgroup}
  3. \def\endofcodeexample#1
  4. 在第 1502 行:\end{codeexample}[|endofcodeexample[#1]]|

此外,codeexample是硬编码在pgfmanual.stypgfmanual.prettyprinter.code.texpgfmanual.pdflinks.code.tex

相关内容