Как мне переотобразить окружение tcolorbox?

Как мне переотобразить окружение tcolorbox?

Я создал новую среду с помощью \newtcolorbox, с автоматической нумерацией и правильно работающей записью TOC и всем остальным. Отдельные элементы отображаются именно там, где они должны отображаться в главах. Я хотел бы снова отобразить все эти элементы, в конце главы или в конце части, или в приложении или где-то еще. Мне не нужен еще один TOC; я хочу отображать фактические элементы среды, как они отображаются в основном тексте, снова в одной большой коллекции. Мне не удалось найти ответ на этот вопрос, поэтому любые советы будут высоко оценены.

решение1

Функция recordingупрощает tcolorboxповторное отображение контента. Есть несколько подходов к использованию 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}

введите описание изображения здесь

Связанный контент