в связи с этим вопросом я задал здесь:Список полей в содержании, я попробовал следующий код, в котором я пытаюсь использовать startcode как опцию пакета mdframed, который создает запись оглавления. К сожалению, похоже, что он не работает (хотя предыдущий, закомментированный, работает отлично). Есть предложения о том, что я делаю неправильно? Цель состоит в том, чтобы избежать определения новой среды и продолжать использовать стандартные команды mdframed в тексте. Вот почему я действительно хотел бы определить часть строки addtocontents в опциях mdframed
Спасибо!
\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
or 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}