この質問に関して、私はここで尋ねました:目次のボックス一覧、次のコードを試しました。このコードでは、目次エントリを作成するパッケージ mdframed のオプションとして startcode を使用しようとしています。残念ながら、うまくいかないようです (前のコメントは完璧に機能します)。何が間違っているのか、何かアドバイスはありますか? 目的は、新しい環境を定義することを避け、テキストで標準の mdframed コマンドを使い続けることです。これが、mdframed のオプションで addtocontents 行部分を定義したいと思う理由です。
ありがとう!
\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
主な問題は、startcode
または が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}