mdframed boxs в таблице содержания

mdframed boxs в таблице содержания

в связи с этим вопросом я задал здесь:Список полей в содержании, я попробовал следующий код, в котором я пытаюсь использовать startcode как опцию пакета mdframed, который создает запись оглавления. К сожалению, похоже, что он не работает (хотя предыдущий, закомментированный, работает отлично). Есть предложения о том, что я делаю неправильно? Цель состоит в том, чтобы избежать определения новой среды и продолжать использовать стандартные команды mdframed в тексте. Вот почему я действительно хотел бы определить часть строки addtocontents в опциях mdframed

Спасибо!

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

решение1

Основная проблема в том, что startcodeor startinnercode— это не опция пакета, а опция для mdframedсреды. Вы можете использовать его сразу после \begin{mdframed}или при определении mdframeстиля или среды.

Более того, \definecolorопределяется пакетом \xcolor, который загружается неявно mdframed, поэтому использовать его можно только после загрузки пакета.

Наконец, была неуравновешенная скобка.

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

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