이 질문과 관련하여 나는 여기에 물었습니다.목차의 상자 목록, 나는 목차 항목을 생성하는 패키지 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}