caixas mdframed no índice

caixas mdframed no índice

em referência a esta pergunta que fiz aqui:Lista de caixas no índice, tentei o código a seguir, no qual tento usar startcode como uma opção para o pacote mdframed que cria uma entrada de índice. Infelizmente parece não funcionar (enquanto o anterior comentado funciona perfeitamente). Alguma sugestão sobre o que estou fazendo de errado? O objetivo é evitar a definição de um novo ambiente e continuar usando os comandos mdframed padrão no texto. É por isso que eu realmente gostaria de definir a parte da linha addtocontents nas opções do mdframed

Obrigado!

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

Responder1

O principal problema é que startcodeou startinnercodenão é uma opção de pacote, mas sim uma opção de mdframedambiente. Você pode usá-lo logo após \begin{mdframed}ou ao definir um mdframeestilo ou ambiente.

Além disso, \definecoloré definido pelo pacote \xcolor, que é carregado implicitamente por mdframed, portanto você pode usá-lo somente após carregar o pacote.

Finalmente, houve uma chave 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}

informação relacionada