Como posso reexibir ambientes tcolorbox

Como posso reexibir ambientes tcolorbox

Criei um novo ambiente usando \newtcolorbox, com numeração automática e uma entrada de TOC funcionando corretamente e tudo mais. Os itens individuais aparecem exatamente onde deveriam dentro dos capítulos. O que eu gostaria é de exibir todos esses itens novamente, no final de um capítulo ou no final de uma parte, ou em um apêndice ou algo assim. Não quero outro TOC; Quero exibir os itens reais do ambiente, da forma como aparecem no corpo principal do texto, novamente em uma grande coleção. Não tive sorte em procurar uma resposta para isso, então qualquer conselho será muito apreciado.

Responder1

O recordingrecurso tcolorboxsimplifica a reexibição do conteúdo. Existem algumas abordagens para usar recording, apresento aqui apenas uma:

  1. Defina um tcolorboxambiente, digamos displaythis, que se destina à primeira exibição de conteúdo e armazena o conteúdo em um arquivo chamado \jobname.display\thetcbcounter, que se expande para \jobname.display1, \jobname.display2etc.
  2. Dizer

    record={\string\redisplaythis[#1]{\jobname.display\thetcbcounter}} 
    

    na lista de opções do displaythisambiente, que instrui tcolorboxa gravação \redisplaythis{#1}{\jobname.display\thetcbcounter}no arquivo de registro.

  3. Defina um total tcolorbox reddisplaythisque utilize o argumento obrigatório para carregar o conteúdo já armazenado. (O \NewTotalTColorBoxtem a vantagem de que o conteúdo da caixa também pode ser especificado, ao contrário de tcolorbox)

  4. Utilize \tcbstartrecording[myenvironments.env]antes do primeiro ambiente a ser salvo e \tcbstoprecordingdepois do último.

  5. Inscreva-se \tcbinputrecords[myenvironments.env]para reexibição finalmente.


\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}

insira a descrição da imagem aqui

informação relacionada