Пронумеруйте поля и добавьте их в оглавление в mdframed

Пронумеруйте поля и добавьте их в оглавление в mdframed

Я пытаюсь построить пример текста с пронумерованными полями, на который также можно ссылаться в оглавлении. Этот пример представляет собой смесь двух вопросов, один из которых задан мной:mdframed boxs в таблице содержания.

Мне кажется, что я должен передать startinnercode=\addcontentsline{mdbox}{subsection}\mdf@frametitleкоманду в \newenvironment{infobox}, как аргумент mdframed. Но я не могу заставить ее работать. Если оставить ее отдельно, то либо я вызываю ее с infobox, и тогда у меня есть пронумерованные поля, но не в ToC, либо я вызываю ее с mdframedtoc, и они не пронумерованы.

Помощь оценена по достоинству, спасибо!

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

решение1

Окружение mdframedtocдолжно вызываться внутри оболочки infobox, а не mdframed. Записи списка генерируются, так как mdframedtocиспользует \addcontentslineкак стартовый код и они пронумерованы, так как infoboxпронумерован. Нумерация правильная, так как infoboxзадает frametitleс его схемой нумерации.

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

введите описание изображения здесь

введите описание изображения здесь

Обновление с использованием 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}

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