ボックスに番号を付けて、mdframed の目次に追加します。

ボックスに番号を付けて、mdframed の目次に追加します。

私は、目次でも参照できる番号付きボックス付きのテキストの例を作成しようとしています。この例は、2 つの質問を組み合わせたもので、そのうちの 1 つは私が尋ねたものです。目次内の MD フレーム ボックス

の引数として、startinnercode=\addcontentsline{mdbox}{subsection}\mdf@frametitleのコマンドを渡す必要があるように思えます。しかし、うまく動作しません。 を別々にしておくと、 で呼び出すと番号付きのボックスが作成されますが、ToC には作成されません。 で呼び出すと番号が付けられません。\newenvironment{infobox}mdframedinfoboxmdframedtoc

助けていただければ幸いです、ありがとうございます!

\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ラッパー 内で呼び出される必要があります。 は を開始コードとして使用し、 は番号付けされているため、リスト エントリが生成されます。 は をその番号付けスキームで設定するため、番号付けは正しいです。infoboxmdframedmdframedtoc\addcontentslineinfoboxinfoboxframetitle

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

関連情報