Numere as caixas e adicione-as ao índice em mdframed

Numere as caixas e adicione-as ao índice em mdframed

Estou tentando construir um exemplo de texto com caixas numeradas, que também possa ser referenciado no índice. Este exemplo é uma mistura das duas perguntas, uma das quais feita por mim:caixas mdframed no índice.

Parece-me que deveria passar o startinnercode=\addcontentsline{mdbox}{subsection}\mdf@frametitlecomando no \newenvironment{infobox}, como argumento do mdframed. Mas não consigo fazer funcionar. Mantendo-o separado, ou eu chamo com infobox, e então tenho caixas numeradas, mas não no ToC, ou chamo com mdframedtoc, e elas não são numeradas.

Ajuda apreciada, obrigado!

\documentclass{book}
\usepackage{lipsum}
 \usepackage[english]{babel}
  \newcounter{infobox}[chapter]

 \renewcommand{\theinfobox}{\thechapter.\arabic{infobox}}


  \usepackage[framemethod=tikz,rightmargin=5,
  leftmargin=5,backgroundcolor=gray!10,
   frametitlerule=true,frametitlebackgroundcolor=gray!30,roundcorner=10pt]
  {mdframed}

\newenvironment{infobox}[1][]{%
 \refstepcounter{infobox}
 \begin{mdframed}[%
    frametitle={Infobox \theinfobox\ #1},

]%
 }{%
  \end{mdframed}
 }


\makeatletter
\newmdenv[startinnercode=\addcontentsline{mdbox}{subsection}\mdf@frametitle]
{mdframedtoc}
\newcommand{\listofboxes}{%
 \section*{Liste des focus}
 \@starttoc{mdbox}%
  }
 \makeatother


  \begin{document}

  \tableofcontents
   \listofboxes

   \chapter{Stuff}

   \lipsum[1]

   \begin{infobox}[Sausage]
   \lipsum[2]
    \label{ibx:sausage}
    \end{infobox}

    Infobox \ref{ibx:sausage} says:
      \lipsum[2]
  \chapter{Other Stuff}

  \begin{infobox}[Fried eggs]
  \lipsum[4-5]
  \label{ibx:eggs}
  \end{infobox}

  Infobox \ref{ibx:eggs} says:
  % 
  \lipsum[4]

   \lipsum[5]

    \end{document}

Responder1

O mdframedtocambiente deve ser chamado dentro do wrapper infobox, não mdframed. As entradas da lista são geradas desde que mdframedtocutilizem um \addcontentslinecódigo inicial e sejam numeradas, pois infoboxsão numeradas. A numeração está correta, pois infoboxdefine o frametitlecom seu esquema de numeração.

\documentclass{book}
\usepackage{lipsum}
\usepackage[english]{babel}
\newcounter{infobox}[chapter]

\renewcommand{\theinfobox}{\thechapter.\arabic{infobox}}


\usepackage[framemethod=tikz,rightmargin=5,
leftmargin=5,backgroundcolor=gray!10,
frametitlerule=true,frametitlebackgroundcolor=gray!30,roundcorner=10pt]
{mdframed}

\newenvironment{infobox}[1][]{%
  \refstepcounter{infobox}
  \begin{mdframedtoc}[%
    frametitle={Infobox \theinfobox\ #1},
    ]%
  }{%
  \end{mdframedtoc}
}


\makeatletter
\newmdenv[startinnercode=\addcontentsline{mdbox}{subsection}\mdf@frametitle]
{mdframedtoc}
\newcommand{\listofboxes}{%
 \section*{Liste des focus}
 \@starttoc{mdbox}%
}
\makeatother


\begin{document}

\tableofcontents
\listofboxes

\chapter{Stuff}

\lipsum[1]

\begin{infobox}[Sausage]
  \lipsum[2]
  \label{ibx:sausage}
\end{infobox}


\begin{infobox}[Garam Masala]
 A delicious and important spice mixture from India!
 \label{ibx:garammasala}
\end{infobox}

Infobox \ref{ibx:sausage} says:
\lipsum[2]
\chapter{Other Stuff}

\begin{infobox}[Fried eggs]
  \lipsum[4-5]
  \label{ibx:eggs}
\end{infobox}

Infobox \ref{ibx:eggs} says:
% 
\lipsum[4]

\lipsum[5]

\end{document}

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Atualização com uso do babel

\documentclass{book}
\usepackage{lipsum}
\usepackage[T1]{fontenc}
\usepackage[english,french]{babel}
\newcounter{infobox}[chapter]

\renewcommand{\theinfobox}{\thechapter.\arabic{infobox}}



\usepackage[framemethod=tikz,rightmargin=5,
leftmargin=5,backgroundcolor=gray!10,
frametitlerule=true,frametitlebackgroundcolor=gray!30,roundcorner=10pt]
{mdframed}

\usetikzlibrary{babel}



\newenvironment{infobox}[1][]{%
  \refstepcounter{infobox}
  \begin{mdframedtoc}[%
    frametitle={Infobox \theinfobox\ #1},
    ]%
  }{%
  \end{mdframedtoc}
}


\makeatletter
\newmdenv[startinnercode=\addcontentsline{mdbox}{subsection}\mdf@frametitle]
{mdframedtoc}
\newcommand{\listofboxes}{%
 \section*{Liste des focus}
 \@starttoc{mdbox}%
}
\makeatother


\begin{document}

\tableofcontents
\listofboxes

\chapter{Stuff}

\lipsum[1]

\begin{infobox}[Sausage]
  \lipsum[2]
  \label{ibx-sausage}
\end{infobox}


\begin{infobox}[Garam Masala]
  A delicious and important spice mixture from India!
  \label{ibx-garammasala}
\end{infobox}


Infobox \ref{ibx-sausage} says:
\lipsum[2]
\chapter{Other Stuff}

\begin{infobox}[Fried eggs]
  \lipsum[4-5]
  \label{ibx-eggs}
\end{infobox}

Infobox \ref{ibx-eggs} says:
% 
\lipsum[4]

\lipsum[5]

\end{document}

informação relacionada