我可以重新定义 \chapter 吗?我在哪里可以找到标准命令的默认值?

我可以重新定义 \chapter 吗?我在哪里可以找到标准命令的默认值?

我需要在一个文档中使用两种不同类型的第一章页面。一种类型(类型 I)用于以章节形式出现的“普通”章节。另一种类型(类型 II)用于附录(“Anhang”)、表格列表和其他一些内容。首先,我有一组类型 II 章节,然后是一组类型 I,然后是一组类型 II。为了让问题不那么难,我想知道在哪里可以找到命令的默认设置\chapter。我已经通过重新定义解决了这个问题\chapter,但表格列表的标题也发生了变化,这是不应该的。

\documentclass[a4paper,12pt]{report}
\usepackage{inputenc}\usepackage[T1]{fontenc}\usepackage[german]{babel}
\usepackage{graphicx}\usepackage{graphics}
\usepackage[onehalfspacing]{setspace}\usepackage{fancyhdr}\usepackage{layout}\usepackage[top=25mm,bottom=25mm,left=3cm,right=3cm,headheight=15pt]{geometry}\usepackage{atbegshi}
\usepackage{titlesec}\titleformat{\chapter}{\normalfont\bfseries\Large}{\thechapter.\quad}{0pt}{}\titlespacing{\chapter}{0pt}{-4cm}{40pt}
\usepackage{float}
\usepackage{subfig}
\usepackage{rotating}\usepackage[graphicx]{realboxes}\usepackage{lipsum}
\usepackage{eurosym}
\usepackage{amsmath}\usepackage{amssymb}\usepackage{calc}\usepackage{array}
\usepackage{caption}\usepackage{section}\usepackage{csquotes}
\usepackage[style=numeric,sorting=none,backend=bibtex8]{biblatex}\addbibresource{Literatur.bib}
\usepackage{caption}\usepackage{section}\usepackage{csquotes}\usepackage{listings}
\usepackage{hyperref}\usepackage[all]{hypcap}
%\makeatletter
    %\def\@makeschapterhead#1{\vspace*{-50\p@}{\parindent 
    %\z@ 
    %\raggedright    \normalfont    \interlinepenalty\@M    \Huge \bfseries    \thechapter.\quad    #1\par\nobreak    \vskip 20\p@}}
%\makeatother
\titleformat{\chapter}{\normalfont\bfseries\Large}{\thechapter.\quad}{0pt}{}
\titlespacing{\chapter}{0pt}{-50pt}{40pt}
\setlength{\parindent}{0pt}
\begin{document}
\include{Titelseite}
\renewcommand{\baselinestretch}{1.5}
\tableofcontents                    %Typ II
\fancyhf{}
\renewcommand{\headrulewidth}{1pt}
\fancyhead[L]{\leftmark \rightmark}
\renewcommand{\footrulewidth}{1pt}
\fancyfoot[C]{\thepage}
\include{Zusatz}                    %Typ II
\pagestyle{fancy}
\restoregeometry
\include{Einleitung}            %Typ I
\include{Theorie}                   %Typ I
\include{Motivation}            %Typ I
\include{Diskussion}            %Typ I
\include{Zusammenfassung}    %Typ I
\include{Durchfuhrung}      %Typ I
\pagenumbering{Roman}
\newgeometry{top=2cm,bottom=2cm,left=3cm,right=3cm}
\setcounter{page}{6}
\singlespacing
\include{Anhang}                    %Typ II
\pagestyle{fancy}
\include{Eidesstatt}            %Typ II
\end{document}

我还想为 Type II 的图表添加另一个编号。

(当我手动创建 TYP I 时,我也需要这些设置。(因为表格列表是 Type II,我认为我不能重新定义表格列表的标题,可以吗?)

答案1

\chapter这是来自的定义report.cls

\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
                    \thispagestyle{plain}%
                    \global\@topnum\z@
                    \@afterindentfalse
                    \secdef\@chapter\@schapter}
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
                         \refstepcounter{chapter}%
                         \typeout{\@chapapp\space\thechapter.}%
                         \addcontentsline{toc}{chapter}%
                                   {\protect\numberline{\thechapter}#1}%
                    \else
                      \addcontentsline{toc}{chapter}{#1}%
                    \fi
                    \chaptermark{#1}%
                    \addtocontents{lof}{\protect\addvspace{10\p@}}%
                    \addtocontents{lot}{\protect\addvspace{10\p@}}%
                    \if@twocolumn
                      \@topnewpage[\@makechapterhead{#2}]%
                    \else
                      \@makechapterhead{#2}%
                      \@afterheading
                    \fi}
\def\@makechapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \raggedright \normalfont
    \ifnum \c@secnumdepth >\m@ne
        \huge\bfseries \@chapapp\space \thechapter
        \par\nobreak
        \vskip 20\p@
    \fi
    \interlinepenalty\@M
    \Huge \bfseries #1\par\nobreak
    \vskip 40\p@
  }}
\def\@schapter#1{\if@twocolumn
                   \@topnewpage[\@makeschapterhead{#1}]%
                 \else
                   \@makeschapterhead{#1}%
                   \@afterheading
                 \fi}
\def\@makeschapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \raggedright
    \normalfont
    \interlinepenalty\@M
    \Huge \bfseries  #1\par\nobreak
    \vskip 40\p@
  }}

一个关键的命令是

\def\secdef#1#2{\@ifstar{#2}{\@dblarg{#1}}}

另请参阅文件课程.pdf也解释了章节设置。(最好也读source2e一下)

相关内容