
Я пытаюсь создать стилизованное оглавление, основанное на ответе(ах) на этот вопрос:Как изменить стиль и цвет оглавления?
Ниже показан TeX, который у меня есть:
\definecolor{secnum}{RGB}{241,129,39}
\definecolor{ptcbackground}{RGB}{247,247,247}
\definecolor{ptctitle}{RGB}{177,177,177}
\pretocmd{\tableofcontents}{\begin{mdframed}[backgroundcolor=ptcbackground,hidealllines=true]}{}{}
\apptocmd{\tableofcontents}{\end{mdframed}}{}{}
\patchcmd{\tableofcontents}{\begin{mdframed}[backgroundcolor=ptctitle,hidealllines=true]}{}{}
\titlecontents{section}
[3.3em]{\sffamily}
{\color{secnum}\contentslabel{2.3em}\normalcolor}{}
{\titlerule*[1000pc]{.}\contentspage\\\hspace*{-3em}\vspace*{-3pt}%
\color{white}\rule{\dimexpr\textwidth-20pt\relax}{0pt}}
\titlecontents{lsection}
[3.3em]{\sffamily}
{\color{secnum}\contentslabel{2.3em}\normalcolor}{}
{\titlerule*[1000pc]{.}\contentspage\\\hspace*{-5.8em}\vspace*{-3pt}%
\color{white}\rule{\dimexpr\textwidth-15.5pt\relax}{0pt}}
\titlecontents{lsubsection}
[5.8em]{\sffamily}
{\color{secnum}\contentslabel{2.3em}\normalcolor}{}
{\titlerule*[1000pc]{.}\contentspage\\\hspace*{-5.8em}\vspace*{-3pt}%
\color{white}\rule{\dimexpr\textwidth-15.5pt\relax}{0pt}}
\titlecontents{subsection}
[5.8em]{\sffamily}
{\color{secnum}\contentslabel{2.3em}\normalcolor}{}
{\titlerule*[1000pc]{.}\contentspage\\\hspace*{-5.8em}\vspace*{-3pt}%
\color{white}\rule{\dimexpr\textwidth-15.5pt\relax}{0pt}}
\makeatletter
\renewcommand*\l@chapter[2]{%
\ifnum \c@tocdepth >\m@ne
\addpenalty{-\@highpenalty}%
\vskip 0em \@plus\p@
\setlength\@tempdima{0em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode
\advance\@tempdima
\hskip
\colorbox{ptctitle}{\strut%
\makebox[\dimexpr\textwidth\fboxsep100pt\relax][l]{%
\color{white}\bfseries\sffamily#1%
\nobreak\hfill\nobreak\hb@xt@\@pnumwidth{\hss #2}}}\par\smallskip
\penalty\@highpenalty
\endgroup
\fi}
\makeatother
\newcommand\PartialToC{%
\startcontents[chapters]%
\begin{mdframed}[backgroundcolor=ptcbackground,hidealllines=true]
\printcontents[chapters]{1}{1}{\colorbox{ptctitle}{%
\parbox[t][][t]{\dimexpr\textwidth-2\fboxsep\relax}{%
\strut\color{white}\bfseries\sffamily\makebox[.5em]{%
}\large Contents}}\vskip5pt}
\end{mdframed}%
}
Проблема в том, что фон панели «Содержимое» не совпадает с фоном, как показано на изображении ниже:
В идеале я хотел бы, чтобы темно-серый прямоугольник соответствовал высоте и ширине более светлого фона. Я пытаюсь уже некоторое время, но, похоже, не могу понять (честно говоря, я не до конца понимаю код, предоставленный в предыдущем ответе). Это кажется таким тривиальным. Любая помощь будет оценена по достоинству.
Ваше здоровье.
решение1
Так ты никогда не публиковалминимальный рабочий пример, но так как задача казалась довольно простой, я собрал ее извопрос, на который вы ссылались. Вам нужно добавить одну строку:
\mdfsetup{innerleftmargin=0pt,innerrightmargin=0pt}
Это сделает это для всех полей в вашем TOC. Обратите внимание, что простое чтение документации mdframed
решило бы эту проблему для вас. Добавление этого перед выполнением любых mdframed
команд должно дать вам следующее:
Что, я думаю, то, что вы хотите. Надеюсь, это поможет. Пожалуйста, прочитайте создание MWE, однако; вы, скорее всего, получитемногоболее быстрый и подробный ответ.