我如何重新显示 tcolorbox 环境

我如何重新显示 tcolorbox 环境

我使用 创建了一个新环境\newtcolorbox,具有自动编号和正常工作的目录条目等。各个项目在章节中出现在它们应该出现的位置。我想要的是再次显示所有这些项目,在章节末尾或部分末尾,或在附录或其他地方。我不想要另一个目录;我想显示实际的环境项目,它们在文本主体中出现的方式,再次在一个大集合中。我在寻找这个问题的答案方面没有任何运气,所以任何建议都将不胜感激。

答案1

功能简化recordingtcolorbox内容的重新显示。有几种方法可以使用recording,我这里只介绍其中一种:

  1. 定义一个tcolorbox环境,比如说displaythis用于首次显示内容并将内容存储到名为的文件中\jobname.display\thetcbcounter,该文件扩展为\jobname.display1\jobname.display2等等。
  2. record={\string\redisplaythis[#1]{\jobname.display\thetcbcounter}} 
    

    在环境的选项列表中displaythis,指示tcolorbox写入\redisplaythis{#1}{\jobname.display\thetcbcounter}记录文件。

  3. 定义一个tcolorbox reddisplaythis使用强制参数的总计,以便加载已存储的内容。(\NewTotalTColorBox与 相比, 的优点是,也可以指定框的内容tcolorbox

  4. \tcbstartrecording[myenvironments.env]在第一个要保存的环境之前和\tcbstoprecording最后一个要保存的环境之后使用。

  5. \tcbinputrecords[myenvironments.env]最后申请重新展示。


\documentclass{book}

\usepackage[most]{tcolorbox}


\usepackage{blindtext}

\makeatletter

\NewTColorBox[auto counter,list type=section,list inside=red]{displaythis}{O{}}{%
  enhanced, 
  sharp corners, 
  title={My nice Environment \thetcbcounter},
  saveto={\jobname.display\thetcbcounter},
  record={\string\redisplaythis[#1]{\jobname.display\thetcbcounter}},
  #1,
}

\NewTotalTColorBox[auto counter]{\redisplaythis}{O{}m}{
  enhanced, 
  sharp corners, 
  title={My nice Environment (again) \thetcbcounter},
  #1
}{\input{#2}}
\makeatother

\begin{document}

\tcbstartrecording[myenvironments.env]
\tcblistof{red}{List of environments}


\begin{displaythis}
\blindtext 
\end{displaythis}


\begin{displaythis}[colback=white!60!yellow]
\blindtext[2]
\end{displaythis}
\tcbstoprecording

\tcbinputrecords[myenvironments.env]

\end{document}

在此处输入图片描述

相关内容