cuadros mdframed en la tabla de contenido

cuadros mdframed en la tabla de contenido

en referencia a esta pregunta que hice aquí:Lista de cuadros en la tabla de contenido, Probé el siguiente código, en el que intento usar startcode como una opción para el paquete mdframed que crea una entrada de tabla de contenido. Lamentablemente no parece funcionar (mientras que el anterior comentado funciona perfectamente). ¿Alguna sugerencia sobre lo que estoy haciendo mal? El objetivo es evitar definir un nuevo entorno y seguir usando los comandos estándar mdframed en el texto. Es por eso que realmente me gustaría definir la parte de la línea addtocontents en las opciones de mdframed

¡Gracias!

\documentclass[12pt,a4paper,final]{book}
\definecolor{grigiochiaro}{gray}{0.90}
 \makeatletter
\usepackage[startcode=\addcontentsline{mdbox}{subsection}\mdf@frametitle},framemethod=tikz,rightmargin=5,leftmargin=5,backgroundcolor=grigiochiaro,roundcorner=10pt]{mdframed}
\newcommand{\listofboxes}{%
\section*{List of Focus}
\@starttoc{mdbox}%
}
\makeatother
\begin{document}
\tableofcontents
\listofboxes

\chapter{Chapter 1}

text text text text text text text text text text text text text 
text text text text text 

\section{Section 1}
text text text text text text text text text text text text text 
text text text text text 
\begin{mdframed}[frametitle={Title of frame}]
\vspace{-15pt}
\singlespacing
text of frame text of frame text of frame text of frame text of frame 
text of frame text of frame text of frame 
text of frame text of frame 
\end{mdframed}
text text text text text text text text text text text text text 

\end{document}

Respuesta1

El principal problema es que startcodeo startinnercodeno es una opción de paquete, sino una opción para un mdframedentorno. Puede usarlo directamente después \begin{mdframed}o al definir un mdframeestilo o entorno.

Además, \definecolorestá definido por el paquete \xcolor, que se carga implícitamente mdframed, por lo que puede usarlo solo después de cargar el paquete.

Finalmente, hubo una llave desequilibrada.

\documentclass[12pt,a4paper,final]{book}
 \makeatletter
\usepackage[framemethod=tikz,rightmargin=5,leftmargin=5,backgroundcolor=grigiochiaro,roundcorner=10pt]{mdframed}
\newmdenv[startinnercode=\addcontentsline{mdbox}{subsection}\mdf@frametitle]{mdframedtoc}
\newcommand{\listofboxes}{%
\section*{List of Focus}
\@starttoc{mdbox}%
}
\makeatother
\definecolor{grigiochiaro}{gray}{0.90}
\begin{document}
\tableofcontents
\listofboxes

\chapter{Chapter 1}

text text text text text text text text text text text text text 
text text text text text 

\section{Section 1}
text text text text text text text text text text text text text 
text text text text text 
 \makeatletter
\begin{mdframedtoc}[frametitle={Title of frame}]
\vspace{-15pt}
%\singlespacing
text of frame text of frame text of frame text of frame text of frame 
text of frame text of frame text of frame 
text of frame text of frame 
\end{mdframedtoc}
\makeatother
text text text text text text text text text text text text text 

\end{document}

información relacionada