如何使这个框架围绕我的部分全宽?

如何使这个框架围绕我的部分全宽?

代码

\documentclass{book}

\usepackage{lipsum,xcolor} 

\makeatletter
\def\section{\@ifstar\unnumberedsection\numberedsection}
\def\numberedsection{\@ifnextchar[%]
  \numberedsectionwithtwoarguments\numberedsectionwithoneargument}
\def\unnumberedsection{\@ifnextchar[%]
  \unnumberedsectionwithtwoarguments\unnumberedsectionwithoneargument}
\def\numberedsectionwithoneargument#1{\numberedsectionwithtwoarguments[#1]{#1}}
\def\unnumberedsectionwithoneargument#1{\unnumberedsectionwithtwoarguments[#1]{#1}}
\def\numberedsectionwithtwoarguments[#1]#2{%
\setlength{\fboxsep}{10pt}
\ifhmode\par\fi
%\removelastskip
  \vskip 3ex\goodbreak
  \refstepcounter{section}%
  \hbox to \hsize{%
    \colorbox{yellow}{%
      \hbox to 1cm{\hss\bfseries\Large\thesection \ \ }%
      \vtop{%
        \advance \hsize by 8cm
        \advance \hsize by -2\fboxrule
        \advance \hsize by 2\fboxsep
        \parindent=0pt
        \leavevmode\raggedright\bfseries\Large
       \strut\strut \linespread{1.4}\selectfont#2
       \noindent
        }%
      }
      }\nobreak
  \vskip 5mm\nobreak
  \addcontentsline{toc}{section}{%
    \hspace*{1mm}\protect\numberline{\thesection}%
    #1}%
    \noindent
    \sectionmark{#1}%
  \ignorespaces%
}

\makeatother 

\begin{document}
\chapter{A Test}
\section{A  Test}
\lipsum[1-4]
\end{document}  

给出了这个输出:

在此处输入图片描述

但我希望框架像下面这样全宽。我该怎么做?

在此处输入图片描述

答案1

这个快速变化使得技巧成为可能:

只需更换

\hbox to \hsize{%
\colorbox{yellow}{%
\hbox to 1cm{\hss\bfseries\Large\thesection \ \ }%

\hspace{-4cm}
\hbox to \hsize{%
\colorbox{yellow}{%
\hbox to 5cm{\hss\bfseries\Large\thesection \ \ }%

这可能不是最优雅的解决方案,但它确实有效!

例子

相关内容