推薦

推薦

半年前,下面的程式碼

\documentclass[             fontsize=12pt,
% monochrome,
a4paper,               
parskip=half,      
ngerman,
headinclude=true,
footinclude=false,
captions=tableheading,
numbers=noenddot,
headings=big]
%chapterprefix=true]   % 
{scrreprt}

\usepackage[english,ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{color}
\usepackage{blindtext}
\usepackage{etoolbox}

% Define own Chapter style
% Pretty chapter pages
%------------------------------------------
\definecolor{nicered}{rgb}{.647,.129,.149}
\usepackage{soul}
\usepackage{pdfpages}

\makeatletter
\newsavebox{\feline@chapter}
\newcommand\feline@chapter@marker[1][4cm]{%
    \sbox\feline@chapter{%
        \resizebox{!}{#1}{\fboxsep=1pt%
            \colorbox{nicered}{\color{white}\bfseries\sffamily\thechapter}%
        }}%
        \rotatebox{90}{%
            \resizebox{%
                \heightof{\usebox{\feline@chapter}}+\depthof{\usebox{\feline@chapter}}}%
            {!}{\scshape\so\@chapapp}}\quad%
        \raisebox{\depthof{\usebox{\feline@chapter}}}{\usebox{\feline@chapter}}%
    }
    \newcommand\feline@chm[1][4cm]{%
        \sbox\feline@chapter{\feline@chapter@marker[#1]}%
        \makebox[0pt][l]{% aka \rlap
            \makebox[1cm][r]{\usebox\feline@chapter}%
        }}   

        \renewcommand*{\chapterformat}{%
            \hspace{\leftmargin} \feline@chm[2.5cm] % Height of the colored box
            \hspace{2cm}
        }

        \patchcmd{\@@makechapterhead}
        {\size@chapter{#1}}
        {\size@chapter{\parbox[b]{\dimexpr\textwidth-4cm\relax}{\raggedright#1}}}
        {}
        {}
        \makeatother
        %------------------------------------------

        \begin{document}


            \chapter{Lorem ipsum dolor sit amet, consectetuer adipiscing elit}
            \blindtext[2]
        \end{document}

創建了這個文檔在此輸入影像描述,但不,它似乎不再工作了(我格式化了我的電腦並重新安裝了 Miktex 和 Texstudio),現在它看起來像這張圖片一樣在此輸入影像描述 我該怎麼做才能恢復舊的輸出?

答案1

推薦

當您使用時\patchcmd,在事情停止工作時放置標記非常重要,例如

\patchcmd{\@@makechapterhead}
{\size@chapter{#1}}
{\size@chapter{\parbox[b]{\dimexpr\textwidth-4cm\relax}{\raggedright#1}}}
{\typeout{great}}
{\typeout{too bad}}

當您檢查輸出時,這表示修補程式未成功。 (當然,通常,您應該使用比上面內容更豐富的內容,這樣您就知道出了什麼問題。但這僅用於演示目的。)

因此,顯然您正在修補的命令已更改,因此您的修補程式不再需要。

解釋

該命令的目前定義是:

\newcommand*{\@@makechapterhead}[1]{%
  \@tempskipa=\glueexpr \scr@chapter@sectionbeforeskip\relax
  \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
  \chapterheadstartvskip
  {%
    \setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}%
    \normalfont\sectfont\nobreak\nobreak\usekomafont{chapter}{}%
     \def\IfUseNumber{\ifnumbered{chapter}}%
    \if@chapterprefix
      \raggedchapter
      \let\IfUsePrefixLine\@firstoftwo
      \let\@tempa\@firstofone
    \else
      \let\IfUsePrefixLine\@secondoftwo
      \let\@tempa\@hangfrom
    \fi
    \@tempa{%
      \IfUseNumber{%
        \usekomafont{chapter}{%
          \IfUsePrefixLine{%
            {\usekomafont{chapterprefix}{%
                \chapterformat\chapterheadmidvskip
            }}%
          }{%
            \chapterformat
          }%
        }%
      }{}%
    }%
    {%
      \IfUsePrefixLine{}{\raggedchapter}%
      \interlinepenalty \@M
      \usekomafont{chapter}{#1}\par
    }%
  }%
  \nobreak\par\nobreak
  \@tempskipa=\glueexpr \scr@chapter@sectionafterskip\relax
  \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
  \chapterheadendvskip
}

所以\size@chapter{#1}不再使用,也etoolbox找不到任何可以修補的東西。

修補

也許,您想要更多類似這樣的東西:

\patchcmd{\@@makechapterhead}
{\usekomafont{chapter}{#1}}
{\parbox[b]{\dimexpr\textwidth-4cm\relax}{\raggedright\usekomafont{chapter}{#1}}}
{\typeout{great}}
{\typeout{too bad}}
\makeatother

重新修補的

相關內容