Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
T
tese
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package registry
Harbor Registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Tony Alexander Hild
tese
Commits
6cd8e7e9
Commit
6cd8e7e9
authored
5 years ago
by
Carlos Maziero
Browse files
Options
Downloads
Patches
Plain Diff
removido arquivo titlesec.sty, não mais necessário
parent
369f0ed6
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
changelog
+4
-0
4 additions, 0 deletions
changelog
ppginf.cls
+0
-1
0 additions, 1 deletion
ppginf.cls
titlesec.sty
+0
-1350
0 additions, 1350 deletions
titlesec.sty
with
4 additions
and
1351 deletions
changelog
+
4
−
0
View file @
6cd8e7e9
Changelog:
23/04/20
- removido arquivo titlesec.sty, que tinha sido adicionado para corrigir
um bug na versão do pacote titlesec distribuída em 03/2016.
30/03/20
- opção "metadados" para incluir metadados (título, author, etc) no PDF;
por default não os inclui, pois a Bib/UFPR parece não gostar deles...
...
...
This diff is collapsed.
Click to expand it.
ppginf.cls
+
0
−
1
View file @
6cd8e7e9
...
...
@@ -121,7 +121,6 @@
% ajustar formato dos títulos nas seções
% ATENCAO: https://tex.stackexchange.com/questions/299969/titlesec-loss-of-section-numbering-with-the-new-update-2016-03-15
\RequirePackage
[explicit]
{
titlesec
}
\newcommand
{
\numberspacing
}{
1.5ex
}
% espaço entre número e título
...
...
This diff is collapsed.
Click to expand it.
titlesec.sty
deleted
100644 → 0
+
0
−
1350
View file @
369f0ed6
% +--------------------------------------------------+
% | Typeset titlesec.tex to get the documentation. |
% +--------------------------------------------------+
%
% Copyright (c) 1998-2016 by Javier Bezos.
% All Rights Reserved.
%
% This file is part of the titlesec distribution release 2.10.2
% -----------------------------------------------------------
%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
%
% The Current Maintainer of this work is Javier Bezos.
%
% Notes
% ~~~~~
%
% The following tags are used:
% ttl@ : the generic tag used through the style
% ttlh@ : a shape definition
% ttlf@ : a macro containing the title format
% ttls@ : id. the title space
% ttlp@ : page key related macros
% ttll@ : level number
%
% The ttlf@ and ttls@ contains data in the form {..}{..}.
% Perhaps in future releases they should be converted
% to a prop-like list, similar to that proposed by the
% latex team.
%
% Admittedly, the current implementation seems too
% complicated, but that's necessary in order to provide
% certain compatibility with the sections as defined by the
% used class. Other packages opt for providing the sections
% as defined by standard classes ignoring the class; for
% instance sectsty which does a simple task in a simple and
% nice way. However, that was not my goal.
%
% Release
% ~~~~~~~
\NeedsTeXFormat
{
LaTeX2e
}
\ProvidesPackage
{
titlesec
}
[2016/03/21 v2.10.2 Sectioning titles]
% Initialization
% ~~~~~~~~~~~~~~
\newif\ifttl
@ps
\ttl
@psfalse
% The \ttl@label switch is used when printing the label in titles.
% A numberless variant makes it to true.
% There is a \ttl@toclabel as well, which is true iff the
% title is numbered; used in toc entries (except default part
% and chapter) and marks (only in titlesec pagestyles).
\newif\ifttl
@label
\newif\ifttl
@toclabel
\newbox\ttl
@box
% A provision for the report style:
\@
ifundefined
{
if@mainmatter
}
{
\let\if
@mainmatter
\iftrue
}{}
\@
ifundefined
{
if@openright
}
{
\let\if
@openright
\iftrue
}{}
% and the ams styles as well
\@
ifundefined
{
@chapapp
}
{
\let\@
chapapp
\chaptername
}{}
\def\ttl
@trylist
{
\ttl
@try
{}}
\def\ttl
@getkeys#1#2
{
%
\if\expandafter
@
\@
gobble#1@
\@
empty
\edef\ttl
@b
{
\expandafter\@
gobble
\string
#1
}
%
\let\ttl
@a
\ttl
@b
\else
\makeatletter
\edef\ttl
@d
{
%
\noexpand\input
{
ttlkeys.def
}
%
\catcode
`
\noexpand\@
=
\the\catcode
`
\@
}
%
\ttl
@d
\ttl
@getkeys
{
#1
}{
#2
}
%
\fi
}
% A more meaningful error for \@notdefinable
\expandafter\AtEndOfPackage\expandafter
{
\expandafter
\gdef\expandafter\@
notdefinable
\expandafter
{
\@
notdefinable
}}
\def\@
notdefinable
{
%
\PackageError
{
titlesec
}
%
{
Incompatible package
}
%
{
Titlesec cannot continue defining its own macros
because
\MessageBreak
\@
backslashchar
\reserved
@a
\space
is already used by other package,
the class
\MessageBreak
or the document.
}}
% +-----------------+
% | C L A S S E S |
% +-----------------+
\def\ttl
@useclass#1#2
{
%
\@
ifstar
{
\ttl
@labelfalse#1
{
#2
}
[]
}
%
{
\ttl
@labeltrue
\@
dblarg
{
#1
{
#2
}}}}
\def\ttl
@straightclass
{
\ttl
@useclass
\ttl
@straight@i
}
\def\ttl
@partclass
{
\ttl
@useclass
\ttl
@part@i
}
\def\ttl
@topclass
{
\ttl
@useclass
\ttl
@top@i
}
\def\ttl
@pageclass
{
\ttl
@useclass
\ttl
@page@i
}
% Here \scantokens is used to make sure the unescaped name
% has `letters' and no `others'. Mainly for hyperref, so there
% should be no problems.
\newcommand\titleclass
[1]
{
%
\edef\ttl
@a
{
\expandafter\@
gobble
\string
#1
}
%
\ifx\scantokens\@
undefined
\else
\scantokens\expandafter
{
\expandafter
\def\expandafter\ttl
@a
\expandafter
{
\ttl
@a
}}
%
\fi
\@
ifnextchar[
{
\@
tempswatrue
\ttl
@class@i
{
#1
}}
%
{
\@
tempswafalse
\ttl
@class@ii
{
#1
}}}
\def\ttl
@class@i#1[#2]
{
%
\@
namedef
{
ttll@
\ttl
@a
}{
#2
}
%
\expandafter\providecommand\csname\ttl
@a title
\endcsname
{}
%%%%
\@
ifundefined
{
ttl@toplevel
}{}
%
{
\expandafter\let\csname
ttlss@
\ttl
@a
\expandafter\endcsname
\csname
ttlss@
\ttl
@toplevel
\endcsname
}
%
\edef\ttl
@toplevel
{
\ttl
@a
}
%
\ttl
@class@ii
{
#1
}}
\def\ttl
@class@ii#1#2
{
%
\@
ifundefined
{
ttl@#2class
}
%
{
\PackageError
{
titlesec
}{
Unknown sectioning class
}
%
{
Valid names are top, page and straight
}}
%
{
\expandafter\let\csname
ttl@compat
\ttl
@a
\endcsname\relax
\@
ifundefined
{
\ttl
@a mark
}
%
{
\@
namedef
{
\ttl
@a mark
}{
\@
gobble
}}
%
{}
%
\edef
#1
{
%
\expandafter\noexpand\csname
ttl@#2class
\endcsname
{
\ttl
@a
}}}
%
\if
@tempswa
\expandafter\@
gobble
\else
\expandafter\@
firstofone
\fi
{
\@
ifnextchar[
%
{
\ttl
@class@iii
}
%
{
\@
ifundefined
{
ttll@
\ttl
@a
}
%
{
\PackageError
{
titlesec
}{
Unknown sectioning level
}
%
{
\string\titleclass\space
with no optional arguments
\MessageBreak
only changes the class of an *existing* level
}}}}}
\def\ttl
@class@iii[#1]
{
%
\edef\ttl
@b
{
\expandafter\@
gobble
\string
#1
}
%
\expandafter\let\csname
ttlss@
\ttl
@a
\expandafter\endcsname
\csname
ttlss@
\ttl
@b
\endcsname
\expandafter\edef\csname
ttlss@
\ttl
@b
\endcsname
{
\ttl
@a
}
%
\let\ttl
@a
\ttl
@toplevel
\count
@
\csname
ttll@
\ttl
@toplevel
\endcsname
\ttl
@class@iv
}
\def\ttl
@class@iv
{
%
\@
ifundefined
{
ttlss@
\ttl
@a
}{}
%
{
\advance\count
@
\@
ne
\edef\ttl
@a
{
\csname
ttlss@
\ttl
@a
\endcsname
}
%
\expandafter\edef\csname
ttll@
\ttl
@a
\endcsname
{
\the\count
@
}
%
\ttl
@class@iv
}}
% Typesetting Classes: General tools
% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
% The following command handles the *n spacing
% Some tricks are necessary to multiply a
% skip by a non integer number
\newskip\beforetitleunit
\beforetitleunit
=1ex
\@
plus.3ex
\@
minus.06ex
\newskip\aftertitleunit
\aftertitleunit
=1ex
\@
plus.1ex
\newdimen\ttl
@plus
\newdimen\ttl
@minus
\def\ttl
@assign#1
{
%
\@
ifstar
{
\ttl
@assign@i
{
#1
}}
%
{
\ttl
@assign@d
{
#1
}}}
\def\ttl
@assign@i#1#2
\relax
#3
{
%
\ttl
@plus
\z
@
\ttl
@minus
\z
@
\afterassignment\ttl
@assign@ii
\dimen
@
\the
#3,
% <- space
#1 = #2
\dimen
@
plus #2
\ttl
@plus
minus #2
\ttl
@minus
}
\def\ttl
@assign@ii#1
{
% <- space
\if
#1,
\else\afterassignment\ttl
@assign@ii
\fi
\csname
ttl@
\string
#1
\endcsname
}
\def\ttl
@assign@d#1#2
\relax
#3
{
\setlength
#1
{
#2
}}
% To be used with \v/vspace to make them calc-savvy
\def\ttl
@calc#1#2
{
%
{
\setlength\@
tempskipa
{
#2
}
%
#1
\@
tempskipa
}}
\def\ttl
@calcneg#1#2
{
%
{
\setlength\@
tempskipa
{
#2
}
%
#1
{
-
\@
tempskipa
}}}
% Gets from ttls@ and passes the spacing parameters:
\def\ttl
@startargs#1#2
{
% Get the first arguments, with the spacing
\@
ifundefined
{
ttlp@#2
}
%
{
\let\ttl
@key@page
\@
empty
}
%
{
\ttlp
@fetch
{
#2
}}
%
\begingroup
\def\ttl
@b
{
ttls@#2
}
%
\edef\ttl
@key@numberless
{
\ifttl
@label//
\else
/*
\fi
}
%
\def\ttl
@a##1
{
\csname
ttl@key@##1
\endcsname
}
% Used as elt in try
\ttl
@trylist
\xdef\ttl
@b
{
\ttl
@c
}
%
\endgroup
\ifx\ttl
@b
\@
empty
\PackageError
{
titlesec
}{
Format/spacing not found
}
%
{
I was unable to find the format corresponding to #2.
\MessageBreak
Maybe you haven't set it with
\string\titleformat\space
and
\string\titlespacing
}
\fi
\expandafter
#1
\ttl
@b
{
#2
}}
% Used in ttl@select
\def\ttl
@savefn#1[#2]#3
{
%
\ifcase
#1
%
\footnotemark
[#2]
%
\gdef\ttl
@fn
{
\footnotetext
[#2]
{
#3
}}
%
\else
\footnotemark
\gdef\ttl
@fn
{
\footnotetext
{
#3
}}
%
\fi
}
\def\ttl
@nest@error
{
%
\PackageError
{
titlesec
}{
Nested titles
}{
Titles must not be nested
}}
\def\ttl
@hmode@error
{
%
\PackageError
{
titlesec
}{
Entered in horizontal mode
}
{
The <format> argument cannot contain horizontal material
\MessageBreak
such as text,
\string\noindent
,
\string\makebox
, etc.
}}
% \ttl@select not only selects the right version to be
% used. It also take steps to ensure that a mark
% is not lost inside a box by saving it into \ttl@mk,
% which in turn is used by the sect and chap commands.
\newif\ifttl
@explicit
\def\ttl
@gmk#1
{
\gdef\ttl
@mk
{
#1
}}
\def\ttl
@select#1#2#3#4
{
%
\ttl
@Hy@saveanchor
\global\let\ttl
@mk
\@
empty
% global because of rigidchapters
\global\let\ttl
@fn
\@
empty
\begingroup
\if
@inlabel
\else
% Keep item's \everypar
\everypar
{
\setbox\z
@
\lastbox\strut
}
%
\fi
\let\ttl
@straight@i
\ttl
@nest@error
\let\ttl
@top@i
\ttl
@nest@error
\let\ttl
@part@i
\ttl
@nest@error
\let\ttl
@page@i
\ttl
@nest@error
\let\ttl
@newpage
\newpage
\def\newpage
{
\ttl
@savewrite
\ttl
@newpage
}
%
\def\markboth
##1##2
{
\protect\ttl
@gmk
{
\protect\markboth
{
##1
}{
##2
}}}
%
\def\markright
##1
{
\protect\ttl
@gmk
{
\protect\markright
{
##1
}}}
%
\def\@
mkboth##1##2
{
\protect\ttl
@gmk
{
\protect\@
mkboth
{
##1
}{
##2
}}}
%
\def\footnote
{
\@
ifnextchar[
%
{
\ttl
@savefn
\z
@
}{
\ttl
@savefn
\@
ne[]
}}
%
\edef\ttl
@key@numberless
{
\ifttl
@label//
\else
/*
\fi
}
%
\def\ttl
@b
{
ttlf@#1
}
%
\def\ttl
@a##1
{
\csname
ttl@key@##1
\endcsname
}
% Used as elt in try
\ttl
@trylist
\ifttl
@explicit
\def\ttl
@passexplicit
{
\ttl
@case
{
#4
}}
%
\ttl
@c
{
#4
}{
#2
}{
#3
}{}
% ttl@c is returned by ttl@try with ttlf@...
\else
\let\ttl
@passexplicit
\ttl
@case
\ttl
@c
{
#2
}{
#3
}{
#4
}
% ttl@c is returned by ttl@try with ttlf@...
\fi
\endgroup
}
\let\ttl
@savewrite
\@
empty
\def\ttl
@finmarks
{
%
\ttl
@savewrite
\ttl
@mk
% Contains a possible mark, returned by \ttl@select
\ttl
@fn
}
% And a footnote
\def\ttl
@try#1
{
%
\edef\ttl
@c
{
#1
}
% #1 is a list in the form \ttl@a{key}\ttl@a{key}
\@
ifundefined
{
\ttl
@b
\ttl
@c
}{}{
%
\edef\ttl
@c
{
\expandafter\noexpand\csname\ttl
@b
\ttl
@c
\endcsname
}
%
\def\ttl
@a##1
{
\csname
ttl@extra@##1
\endcsname
}
%
#1
%
\let\ttl
@try
\@
gobble
}}
% locally modified to `break' testings
% \ttl@write writes marks and toc. tocdepth is taken care of when
% the toc is typesetted and not here. Used always through
% ttl@savewrite, which is reset to \@empty to avoid duplicated
% calls.
\def\ttl
@write#1#2
{
%
\ttl
@blinemarks
\csname
#1mark
\endcsname
{
#2
}
%
\def\ttl
@a
{
\protect\numberline
{
\@
nameuse
{
the#1
}}}
%
\@
nameuse
{
ttl@toc#1
}
% eg, \ttl@tocpart modifies \ttl@a
\ttl
@addcontentsline
{
#1
}{
#2
}
% Depends on toctitles, uses \ttl@a
\ttl
@elinemarks
\global\ttl
@toclabelfalse
\global\let\ttl
@savewrite
\@
empty
}
\newif\ifttl
@premark
% to be used in ttlps.def
\ttl
@premarkfalse
\def\ttl
@premark#1#2
{
%
\protected
@xdef
\ttl
@prevmarks
{
\ttl
@marks
}
%
\ttl
@blinemarks
\csname
#1mark
\endcsname
{
#2
}
%
\ttl
@elinemarks
\gdef\ttl
@prevmarks
{
\ttl
@marks
}}
% Must be preceded by a default \ttl@savewrite, which is used
% in starred variants--\@empty in top and straight classes.
% In straight class, it is preceded by the setting of
% prev marks to provide a "fixed" top mark. Otherwise,
% the default prev mark (= curr mark) is used (restored
% after ttl@labelling in straight). This is the command
% to be hacked if you want to change the behaviour of
% starred variants.
\def\ttl
@labelling#1#2
{
%
\let\ttl
@Hy@saveanchor
\@
empty
\ifttl
@label
% 1st - if star
\def\ttl
@savewrite
{
\ttl
@write
{
#1
}{
#2
}}
%
\@
nameuse
{
ttl@#1label
}
% eg, sets if mainmatter in chapter.
\ifttl
@label
% 2nd - eg, if not main matter
\ifnum\@
nameuse
{
ttll@#1
}
>
\c
@secnumdepth
\relax
\ttl
@labelfalse
% 3rd - if too deep
\else
\ttl
@Hy@refstepcounter
{
#1
}
%
\@
nameuse
{
ttl@#1out
}
%
\fi
\fi
\fi
\let\ifttl
@toclabel
\ifttl
@label
\ifx\ttl
@savewrite
\@
empty
\else
% If marks
\ifttl
@ps
\ifttl
@premark
\global\ttl
@premarkfalse
\else
% if no \pretitlemark
\ttl
@premark
{
#1
}{
#2
}
%
\fi
\fi
\ifttl
@label
\else\ttl
@Hy@steplink
{
#1
}
\fi
\fi
}
% Executed by ttl@labelling if the name of section is chapter:
\def\ttl
@chapterlabel
{
\if
@mainmatter
\else\ttl
@labelfalse
\fi
}
% Executed by ttl@labelling if chapter has a number. Note
% you can define messages for other sectioning levels (eg,
% \ttl@sectionout).
\def\ttl
@chapterout
{
\typeout
{
\chaptertitlename\space\thechapter
.
}}
% Straight class
% ~~~~~~~~~~~~~
% Default for nobottomtitles. Changed by nobottomtitles*
\def\ttl
@addstretch
{
\advance\@
tempskipa-
\pagestretch
}
% 1:name 2:level 3:indent 4:before 5:after 6:afind [7]:cap 8:title
% The second argument of ttl@sect is the level, which
% is empty if the star version is used. In this case
% neither the toc nor the marks are written.
\def\ttl
@straight@i#1[#2]#3
{
%
\def\@
currentlabelname
{
#2
}
% for nameref
\gdef\ttl
@savemark
{
\csname
#1mark
\endcsname
{
#3
}}
%
\let\ttl
@savewrite
\@
empty
\def\ttl
@savetitle
{
#3
}
%
\gdef\thetitle
{
\csname
the#1
\endcsname
}
%
\if
@noskipsec
\leavevmode
\fi
\par
\ttl
@labelling
{
#1
}{
#2
}
%
\ttl
@startargs
\ttl
@straight@ii
{
#1
}{
#3
}}
% 1:left 2:right 3:before 4:after 5:afterindent 6:name 7:title
\def\ttl
@straight@ii#1#2#3#4#5#6#7
{
%
\ttl
@assign
\@
tempskipa#3
\relax\beforetitleunit
\@
ifundefined
{
ttl@ps@#6
}{}
%
{
\PackageWarning
{
titlesec
}{
Page style in straight class ignored
}}
%
\if
@nobreak
\ttl
@titlespace
{
\@
tempskipa
}
%
\else
\@
ifundefined
{
#6break
}
%
{
\addpenalty
{
\@
secpenalty
}}
%
{
\csname
#6break
\endcsname
}
%
\addvspace
{
\@
tempskipa
}
%
\ifdim\bottomtitlespace
<
\z
@
\else
\begingroup
\@
tempskipb
\pagegoal
\@
tempskipa
\pagegoal
\ttl
@addstretch
% \relax if nobottomtitle*
\advance\@
tempskipa-
\bottomtitlespace\relax
% not a register
\pagegoal\@
tempskipa
\def\@
textbottom
{
\vskip\z
@
\@
plus.0001fil
}
%
\penalty
9999
\pagegoal\@
tempskipb
\endgroup
\fi
\fi
\@
afterindenttrue
\ifcase
#5
\@
afterindentfalse
\fi
\ttl
@assign
\@
tempskipb#4
\relax\aftertitleunit
\ttl
@select
{
#6
}{
#1
}{
#2
}{
#7
}
%
\ttl
@finmarks
\@
ifundefined
{
ttlp@#6
}{}{
\ttlp
@write
{
#6
}}
%
\if
@noskipsec
\global\@
nobreakfalse
\everypar
{
%
\if
@noskipsec
\global\@
noskipsecfalse
\clubpenalty\@
M
\hskip
-
\parindent
\begingroup
\@
svsechd
\unskip
{
\hspace
{
\@
tempskipb
}}
%
\endgroup
\else
\clubpenalty\@
clubpenalty
\everypar
{}
%
\fi
}
%
\else
\par\nobreak
\vspace
{
\@
tempskipb
}
%
\@
afterheading
\fi
\ignorespaces
}
% Part class
% ~~~~~~~~~~
\providecommand\partmark
[1]
{
\markboth
{}{}}
\def\ttl
@part@i#1[#2]#3
{
%
\gdef\ttl
@savemark
{
\csname
#1mark
\endcsname
{
#3
}}
%
\ifx\ttl
@notocparts
\@
undefined
\def\ttl
@savewrite
{
\ttl
@write
{
#1
}{
#3
}}
% Not #2!
\else
\let\ttl
@savewrite
\@
empty
\fi
\def\ttl
@savetitle
{
#3
}
%
\ttl
@labelling
{
#1
}{
#2
}
%
\ttl
@startargs
\ttl
@part@ii
{
#1
}{
#3
}}
\def\ttl
@part@ii#1#2#3#4#5#6#7
{
%
\ttl
@assign
\@
tempskipa#3
\relax\beforetitleunit
\vspace*
{
\@
tempskipa
}
%
\@
ifundefined
{
ttl@ps@#6
}{}
%
{
\PackageWarning
{
titlesec
}{
Page style in part class ignored
}}
%
\global\@
afterindenttrue
\ifcase
#5
\global\@
afterindentfalse
\fi
\ttl
@assign
\@
tempskipb#4
\relax\aftertitleunit
\ttl
@select
{
#6
}{
#1
}{
#2
}{
#7
}
%
\ttl
@finmarks
\@
ifundefined
{
ttlp@#6
}{}{
\ttlp
@write
{
#6
}}
%
\par\nobreak
\vspace
{
\@
tempskipb
}
%
\@
afterheading
}
% Page class
% ~~~~~~~~~~
\def\ttl
@page@i#1[#2]#3
{
%
\gdef\ttl
@savemark
{
\csname
#1mark
\endcsname
{
#3
}}
%
\ifx\ttl
@notocparts
\@
undefined
\def\ttl
@savewrite
{
\ttl
@write
{
#1
}{
#3
}}
% Not #2!
\else
\let\ttl
@savewrite
\@
empty
\fi
\def\ttl
@savetitle
{
#3
}
%
\ttl
@labelling
{
#1
}{
#2
}
%
\ttl
@startargs
\ttl
@page@ii
{
#1
}{
#3
}}
\def\ttl
@page@ii#1#2#3#4#5#6#7
{
%
\ttl
@assign
\@
tempskipa#3
\relax\beforetitleunit
\if
@openright
\cleardoublepage
\else
\clearpage
\fi
\@
ifundefined
{
ttl@ps@#6
}
%
{
\thispagestyle
{
plain
}}
%
{
\thispagestyle
{
\@
nameuse
{
ttl@ps@#6
}}}
%
\if
@twocolumn
\onecolumn
\@
tempswatrue
\else
\@
tempswafalse
\fi
\vspace*
{
\@
tempskipa
}
%
\@
afterindenttrue
\ifcase
#5
\@
afterindentfalse
\fi
\ttl
@assign
\@
tempskipb#4
\relax\aftertitleunit
\ttl
@select
{
#6
}{
#1
}{
#2
}{
#7
}
%
\ttl
@finmarks
\@
ifundefined
{
ttlp@#6
}{}{
\ttlp
@write
{
#6
}}
%
\vspace
{
\@
tempskipb
}
%
\newpage
\if
@twoside
\if
@openright
\null
\@
ifundefined
{
ttl@ps@#6
}
%
{
\thispagestyle
{
empty
}}
%
{
\thispagestyle
{
\@
nameuse
{
ttl@ps@#6
}}}
%
\newpage
\fi
\fi
\if
@tempswa
\twocolumn
\fi
\ignorespaces
}
% Top class and some makechapterhead stuff
% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%
% \ttl@mkchap is the new make(s)chapterhead.
\def\ttl
@mkchap#1#2#3#4#5#6#7
{
%
\gdef\ttl
@savemark
{
\csname
#6mark
\endcsname
{
#7
}}
%
\let\ttl
@savewrite
\@
empty
\let\ttl
@Hy@saveanchor
\@
empty
\@
ifundefined
{
ttl@ps@#6
}{}
%
{
\thispagestyle
{
\@
nameuse
{
ttl@ps@#6
}}}
%
\let\ifttl
@toclabel
\ifttl
@label
\ttl
@mkchap@i
{
#1
}{
#2
}{
#3
}{
#4
}{
#5
}{
#6
}{
#7
}}
% But \ttl@mkchap@i is used by both makechapterhead and
% the top class.
\def\ttl
@mkchap@i#1#2#3#4#5#6#7
{
%
\ttl
@assign
\@
tempskipa#3
\relax\beforetitleunit
\vspace*
{
\@
tempskipa
}
%
\global\@
afterindenttrue
\ifcase
#5
\global\@
afterindentfalse
\fi
\ttl
@assign
\@
tempskipb#4
\relax\aftertitleunit
\ttl
@topmode
{
\@
tempskipb
}{
%
\ttl
@select
{
#6
}{
#1
}{
#2
}{
#7
}}
%
\ttl
@finmarks
% Outside the box!
\@
ifundefined
{
ttlp@#6
}{}{
\ttlp
@write
{
#6
}}}
\def\ttl
@top@i#1[#2]#3
{
%
\gdef\ttl
@savemark
{
\csname
#1mark
\endcsname
{
#3
}}
%
\let\ttl
@savewrite
\@
empty
\def\ttl
@savetitle
{
#3
}
%
\ttl
@labelling
{
#1
}{
#2
}
%
\ttl
@startargs
\ttl
@top@ii
{
#1
}{
#3
}}
\def\ttl
@top@ii#1#2#3#4#5#6#7
{
%
\@
ifundefined
{
#6break
}
%
{
\if
@openright
\cleardoublepage
\else
\clearpage
\fi
}
%
{
\csname
#6break
\endcsname
}
%
\@
ifundefined
{
ttl@ps@#6
}
%
{
\thispagestyle
{
plain
}}
%
{
\thispagestyle
{
\@
nameuse
{
ttl@ps@#6
}}}
%
\global\@
topnum
\z
@
\@
ifundefined
{
#6tolists
}
%
{
\addtocontents
{
lof
}{
\protect\ttl
@tocsep
}
%
\addtocontents
{
lot
}{
\protect\ttl
@tocsep
}}
{
\@
nameuse
{
#6tolists
}}
%
\if
@twocolumn
\@
topnewpage[
\ttl
@mkchap@i
{
#1
}{
#2
}{
#3
}{
#4
}{
#5
}{
#6
}{
#7
}
]
%
\else
\ttl
@mkchap@i
{
#1
}{
#2
}{
#3
}{
#4
}{
#5
}{
#6
}{
#7
}
%
\@
afterheading
\fi
\ignorespaces
}
% \def\ttl@noskipsectrue{%
% \if@noskipsec
% \PackageError{titlesec}{Invalid shape for top class}%
% {The selected shape only makes sense when merged into\MessageBreak
% a paragraph. That is impossible in the top class}%
% \else
\newcommand\chaptertitlename
{
\@
chapapp
}
\def\ttl
@tocsep
{
\addvspace
{
10
\p
@
}}
% +-----------------+
% | S H A P E S |
% +-----------------+
%
% % Reformatting Titles: Interface
% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
% The surrounding space is stored in a macro
% named \ttls@<section> whose content is
% {left}{right}{before}{after}{afterindent}.
% But if there is the page key, the name is
% \ttls@<section>/<page>
\newcommand\titlespacing
{
%
\@
ifstar
{
\ttl
@spacing@i
{
\z
@
}}{
\ttl
@spacing@i
{
\@
ne
}}}
\def\ttl
@spacing@i#1#2#3#4#5
{
%
\ttl
@getkeys
{
#2
}{
titlesec
}
%
\@
ifnextchar[
{
%
\ttl
@spacing@ii
{
#1
}{
#3
}{
#4
}{
#5
}
%
}{
%
\ttl
@spacing@ii
{
#1
}{
#3
}{
#4
}{
#5
}
[
\z
@]
}}
\def\ttl
@spacing@ii#1#2#3#4[#5]
{
%
\expandafter\def\csname
ttls@
\ttl
@a
\endcsname
{{
#2
}{
#5
}{
#3
}{
#4
}{
#1
}}}
% The section name is built in \ttl@a.
% The format is stored in a macro named \ttlf@<section>,
% or \ttlf@<section>/<page> if there is the page spec,
% or \ttlf@.../* if numberless is true
% whose content is
% \ttl@<shape>{format}{label}{sep}{before}{after}
\newtoks\ttl
@toksa
\newcommand\titleformat
{
%
\@
ifstar
{
\ttl
@format@s
}
%
{
\ttl
@format@i
}}
\def\ttl
@format@s#1#2
{
%
\edef\ttl
@a
{
\expandafter\@
gobble
\string
#1
}
%
\@
ifundefined
{
ttlf@
\ttl
@a
}
%
{
\PackageError
{
titlesec
}{
Not allowed in `easy' settings
}
{
The sectiong command you are trying to redefine
\MessageBreak
is not handled by the starred variant (eg,
\string\part
)
}}{}
\expandafter\expandafter\expandafter
\ttl
@format@si
\csname
ttlf@
\ttl
@a
\endcsname
{
#2
}}
\def\ttl
@format@si#1#2#3#4#5#6#7
{
%
\@
namedef
{
ttlf@
\ttl
@a
}{
#1
{
#7
}{
#3
}{
#4
}{
#5
}{
#6
}}}
\def\ttl
@format@i#1
{
%
\@
ifnextchar[
{
\ttl
@format@ii
{
#1
}}{
\ttl
@format@ii
{
#1
}
[hang]
}}
\def\ttl
@format@ii#1[#2]#3#4#5#6
{
%
\ttl
@getkeys
{
#1
}{
titlesec
}
%
\ttl
@toksa
{{
#3
}{
#4
}{
#5
}{
#6
}}
% Save arguments
\@
ifnextchar[
{
%
\ttl
@format@iii
{
#2
}
%
}{
%
\ttl
@format@iii
{
#2
}
[]
}}
% First, we get the shape -- if not defined it loads
% the corresponding file.
\def\ttl
@format@iii#1[#2]
{
%
\@
ifundefined
{
ttlh@#1
}{
%
\begingroup
\makeatletter
\InputIfFileExists
{
#1.tss
}{}{
%
\PackageError
{
titlesec
}{
Unknown shape
}
%
{
Shapes are defined in files with extension tss
\MessageBreak
Either you have misspelled the shape
\MessageBreak
or there is no a #1.tss file
}}
%
\endgroup
}{}
%
\@
temptokena
{
#2
}
%
\ifttl
@explicit
\edef\ttl
@b
{
%
\def\expandafter\noexpand\csname
ttlf@
\ttl
@a
\endcsname
####1
%
{
\expandafter\noexpand\csname
ttlh@#1
\endcsname
\the\ttl
@toksa
{
\the\@
temptokena
}}}
%
\else
\edef\ttl
@b
{
%
\def\expandafter\noexpand\csname
ttlf@
\ttl
@a
\endcsname
{
\expandafter\noexpand\csname
ttlh@#1
\endcsname
\the\ttl
@toksa
{
\the\@
temptokena
}}}
%
\fi
\ttl
@b
\csname
ttl@compat
\ttl
@a
\endcsname
}
% Styles
% ~~~~~~
% 1:global 2:label 3:sep 4:style 5:after 6:left 7:right 8:title
% \ttl@<shape> and \ttlh@<shape> take the following eight
% arguments:
% {format}{label}{sep}{before}{after}{left}{right}{title}
% where before and after refer to the format.
% With the option explicit, #4 contains the title and #8 is
% empty.
\def\ttlh
@display#1#2#3#4#5#6#7#8
{
%
\gdef\ttl
@makeline##1
{
\ttl
@calc
\hspace
{
#6
}
##1
\ttl
@calc
\hspace
{
#7
}}
%
\setlength\leftskip
{
#6
}
%
\setlength\rightskip
{
#7
}
%
\interlinepenalty\@
M
\ttl
@changecentercr
\ttl
@beginlongest
#1
\ifhmode\ttl
@hmode@error
\fi
\ttl
@glcmds
\parindent\z
@
\ifttl
@label
{
#2
\strut\@
@par
}
\nobreak\ttl
@calc
\vspace
{
#3
}
%
\fi
#4
{
#8
}
%
\kern\z
@
\strut\@
@par
\nobreak\ttl
@midlongest#5
\@
@par
\ttl
@endlongest
}
\def\ttlh
@hang#1#2#3#4#5#6#7#8
{
%
\gdef\ttl
@makeline##1
{
\ttl
@calc
\hspace
{
#6
}
##1
\ttl
@calc
\hspace
{
#7
}}
%
\setlength\leftskip
{
#6
}
%
\setlength\rightskip
{
#7
}
%
\interlinepenalty\@
M
\ttl
@changecentercr
\ttl
@beginlongest
#1
{
\ifhmode\ttl
@hmode@error
\fi
\ttl
@glcmds
\parindent\z
@
\begingroup
\ifttl
@label
\noindent
\sbox\z
@
{
#2
\strut\ttl
@calc
\hspace
{
#3
}}
%
\hangindent\wd\z
@
\box\z
@
\fi
#4
{
#8
}
%
\kern\z
@
\strut\@
@par
\endgroup
\nobreak\ttl
@midlongest#5
\@
@par
}
%
\ttl
@endlongest
}
\def\ttlh
@runin#1#2#3#4#5#6#7#8
{
%
\global\@
noskipsectrue
\gdef\ttl
@makeline##1
{
##1
}
%
\ttl
@changecentercr
#1
{
\ifhmode\ttl
@hmode@error
\fi
\global\sbox\ttl
@box
{
%
\ttl
@calc
\hspace
{
#6
}
%
\ifttl
@label
{
\strut
#2
}
\ttl
@calc
\hspace
{
#3
}
\fi
#4
{
#8
}
#5
\unskip
}}
%
\gdef\@
svsechd
{
\unhbox\ttl
@box
}}
% +-----------------+
% | T O O L S |
% +-----------------+
%
% calcwidth
% ~~~~~~~~~
% Implemented after code from soul (but much modified...)
\newdimen\titlewidth
\newdimen\titlewidthlast
\newdimen\titlewidthfirst
\let\ttl
@glcmds
\relax
\let\ttl
@beginlongest
\@
empty
\let\ttl
@midlongest
\@
empty
\let\ttl
@endlongest
\@
empty
\let\iftitlemeasuring\@
secondoftwo
\def\ttl
@xbeginlongest#1
\ttl
@endlongest
{
%
\titlewidth\z
@
\titlewidthlast\z
@
\let\iftitlemeasuring\@
firstoftwo
\setbox\ttl
@box
\vbox
{
%
\def\ttl
@glcmds
{
%
\def\\
{
\@
ifstar
{
\@
ifnextchar[
{
\ttl
@bs
}{
\newline
}}
%
{
\@
ifnextchar[
{
\ttl
@bs
}{
\newline
}}}
%
\def\ttl
@bs[####1]
{
\newline
}
%
\let\@
centercr
\\
%
\def\ttl
@midlongest####1
\@
@par
{}
% Very dirty...
\advance\rightskip
1
\leftskip
plus 1fil
\leftskip
=
\z
@
}
%
#1
}
%
\let\iftitlemeasuring\@
secondoftwo
\ttl
@boxprocess
#1
}
\def\ttl
@boxprocess
{
%
\setbox\ttl
@box=
\vbox
{
%
\unvcopy\ttl
@box
\unskip\unpenalty
\global\setbox\@
ne=
\lastbox
}
%
\ifvoid\@
ne
\else
\setbox\tw
@=
\hbox
{
\hskip
-
\leftskip\unhbox\@
ne
\hskip
-
\rightskip
}
%
\titlewidthfirst\wd\tw
@
\ifdim\titlewidth
<
\titlewidthfirst
\titlewidth\titlewidthfirst
\fi
\ifdim\titlewidthlast
=
\z
@
\titlewidthlast\titlewidthfirst
\fi
\expandafter\ttl
@boxprocess
\fi
}
% Rules
% ~~~~~
\providecommand\titleline
{
%
\@
ifstar
{
\ttl
@line@i
{
\hb
@xt@
\titlewidth
}}
%
{
\ttl
@line@i
{}}}
\def\ttl
@line@i#1
{
%
\@
ifnextchar[
{
\ttl
@line
{
#1
}}{
\ttl
@line
{
#1
}
[s]
}}
\def\ttl
@line#1[#2]#3
{
%
\vskip\topskip
\hrule
\@
height
\z
@
\nobreak
\vskip
-
\topskip
\begingroup
\parindent\z
@
\everypar
{}
%
\leftskip\z
@
\rightskip\z
@
% #1 is either \hb@xt@\titlewidth or empty:
\@
makebox[
\hsize
][#2]
{
\ttl
@makeline
{
#1
{
#3
}}}
%
\par
\endgroup
\hrule
height
\z
@
\nobreak
}
\providecommand\titlerule
{
\@
ifstar
{
\ttl
@row
}{
\ttl
@rule
}}
\let\ttl
@leaders
\xleaders
% For titletoc compatibility
\def\ttl
@row
{
\@
ifnextchar[
{
\ttl
@row@i
}{
\ttl
@row@i[
\wd\z
@]
}}
\def\ttl
@row@i[#1]#2
{
%
\ifvmode\expandafter\titleline\fi
{
\sbox\z
@
{
#2
}
%
\ttl
@calcneg
\hspace
{
#1
}
%
\hskip\wd\z
@
\ttl
@leaders
\hb
@xt@#1
{
\hss\box\z
@
}
%
\hfill\kern\z
@
}}
\def\ttl
@rule
{
\@
ifnextchar[
{
\ttl
@rule@i
}{
\ttl
@rule@i[.4
\p
@]
}}
\def\ttl
@rule@i[#1]
{
%
\ifvmode\expandafter\titleline\fi
{
\leaders\hrule
height #1
\hfill\kern\z
@
}}
% Par shapes and space
% ~~~~~~~~~~~~~~~~~~~~
\providecommand\filright
{
%
\gdef\ttl
@filleft##1
{
\hskip
##1
}
%
\gdef\ttl
@filright##1
{
\hfill
}
%
\let\\\@
centercr
\advance\rightskip\z
@
\@
plus 1fil
\relax
}
\providecommand\filleft
{
%
\gdef\ttl
@filleft##1
{
\hfill
}
%
\gdef\ttl
@filright##1
{
\hskip
##1
}
%
\let\\\@
centercr
\advance\leftskip\z
@
\@
plus 1fil
\parfillskip\z
@
}
\providecommand\filcenter
{
\filleft\filright
\gdef\ttl
@filleft##1
{
\hfill
}}
\providecommand\fillast
{
%
\gdef\ttl
@filleft##1
{
\hfill
}
%
\gdef\ttl
@filright##1
{
\hfill
}
%
\let\\\@
centercr
\filleft\advance\rightskip\z
@
\@
plus -1fil
\parfillskip\z
@
\@
plus 2fil
\relax
}
\newcommand\filinner
{
%
\if
@twoside
\ifodd\count\z
@
\filleft\else\filright\fi
\else
\filleft
\fi
}
\newcommand\filouter
{
%
\if
@twoside
\ifodd\count\z
@
\filright\else\filleft\fi
\else
\filright
\fi
}
\newcommand\wordsep
{
\fontdimen\tw
@
\font
\@
plus
\fontdimen\thr
@@
\font
\@
minus
\fontdimen
4
\font
}
% +-----------------+
% | O P T I O N S |
% +-----------------+
\DeclareOption
{
pagestyles
}{
\let\sectiontitle\@
empty
}
\DeclareOption
{
extramarks
}{
\let\ttl
@fetchmark
\@
empty
}
\DeclareOption
{
floatps
}{
%
\ifx\sectiontitle\@
empty
\let\ttl
@replace
\space
\else
\PackageWarning
{
titlesec
}{
Ignoring `floatps' without
`pagestyles'. This option is now deprecated.
}
%
\fi
}
\DeclareOption
{
psfloats
}{
%
\ifx\sectiontitle\@
empty
\let\ttl
@replace
\@
empty
\else
\PackageWarning
{
titlesec
}{
Ignoring `psfloats' without
`pagestyles'
}
%
\fi
}
\DeclareOption
{
loadonly
}{
\let\ttl
@extract
\@
empty
}
\DeclareOption
{
outermarks
}{
%
\def\ttl
@titlemarks
{
\outertitlemarks
}}
\DeclareOption
{
topmarks
}{
\def\ttl
@titlemarks
{
\toptitlemarks
}}
\DeclareOption
{
botmarks
}{
%
\def\ttl
@titlemarks
{
\bottitlemarks
}}
\DeclareOption
{
innermarks
}{
%
\def\ttl
@titlemarks
{
\innertitlemarks
}}
\DeclareOption
{
footmarks
}{}
% Backward compat
\DeclareOption
{
explicit
}{
\ttl
@explicittrue
}
\DeclareOption
{
clearempty
}{
%
\def\cleardoublepage
{
%
\clearpage
{
\ps
@empty
\if
@twoside
\ifodd\c
@page
\else
\hbox
{}
\newpage\if
@twocolumn
\hbox
{}
\newpage\fi\fi\fi
}}}
\DeclareOption
{
rigidchapters
}{
%
\def\ttl
@topmode#1#2
{
\vbox
to #1
{
#2
\vfil
}}
%
\def\ttl
@chapafter
{
.26
\textheight
}}
\DeclareOption
{
rubberchapters
}{
%
\def\ttl
@topmode#1#2
{{
#2
}
\ttl
@calc
\vspace
{
#1
}}
%
\def\ttl
@chapafter
{
40
\p
@
}}
\DeclareOption
{
bottomtitles
}{
%
\def\bottomtitlespace
{
-1
\p
@
}}
\DeclareOption
{
nobottomtitles
}{
%
\def\bottomtitlespace
{
.2
\textheight
}}
\DeclareOption
{
nobottomtitles*
}{
%
\let\ttl
@addstretch
\relax
\def\bottomtitlespace
{
.2
\textheight
}}
\DeclareOption
{
calcwidth
}{
%
\let\ttl
@beginlongest
\ttl
@xbeginlongest
}
\DeclareOption
{
aftersep
}{
%
\let\ttl
@titlespace
\@
gobble
}
\DeclareOption
{
largestsep
}{
%
\let\ttl
@titlespace
\addvspace
}
\DeclareOption
{
oldparttoc
}{
%
\def\ttl
@tocpart
{
\def\ttl
@a
{
\thepart\hspace
{
1em
}}}}
\DeclareOption
{
newparttoc
}{
%
\let\ttl
@tocpart
\relax
}
\DeclareOption
{
notocpart*
}{
%
\let\ttl
@notocparts
\@
empty
}
\DeclareOption
{
rm
}{
%
\protected
@xdef
\ttl
@fonts
{
\ttl
@fonts
\protect\rmfamily
}}
\DeclareOption
{
sf
}{
%
\protected
@xdef
\ttl
@fonts
{
\ttl
@fonts
\protect\sffamily
}}
\DeclareOption
{
tt
}{
%
\protected
@xdef
\ttl
@fonts
{
\ttl
@fonts
\protect\ttfamily
}}
\DeclareOption
{
md
}{
%
\protected
@xdef
\ttl
@fonts
{
\ttl
@fonts
\protect\mdseries
}}
\DeclareOption
{
bf
}{
%
\protected
@xdef
\ttl
@fonts
{
\ttl
@fonts
\protect\bfseries
}}
\DeclareOption
{
up
}{
%
\protected
@xdef
\ttl
@fonts
{
\ttl
@fonts
\protect\upshape
}}
\DeclareOption
{
it
}{
%
\protected
@xdef
\ttl
@fonts
{
\ttl
@fonts
\protect\itshape
}}
\DeclareOption
{
sl
}{
%
\protected
@xdef
\ttl
@fonts
{
\ttl
@fonts
\protect\slshape
}}
\DeclareOption
{
sc
}{
%
\protected
@xdef
\ttl
@fonts
{
\ttl
@fonts
\protect\scshape
}}
\DeclareOption
{
big
}{
%
\gdef\ttl
@sizes#1
{
\ifcase
#1
\relax\Huge\or\Large\or\large
\or\normalsize\or\or\or\huge\fi
}}
\DeclareOption
{
medium
}{
%
\gdef\ttl
@sizes#1
{
\ifcase
#1
\relax\huge\or\Large\or\large
\or\normalsize\or\or\or\LARGE\fi
}}
\DeclareOption
{
small
}{
%
\gdef\ttl
@sizes#1
{
\ifcase
#1
\relax\LARGE\or\large
\or\normalsize\or\normalsize\or\or\or\Large\fi
}}
\DeclareOption
{
tiny
}{
%
\gdef\ttl
@sizes#1
{
\ifcase
#1
\relax\large\or\normalsize\or
\normalsize\or\normalsize\or\or\or\normalsize\fi
}}
\DeclareOption
{
raggedleft
}{
%
\gdef\ttl
@fil
{
\filleft
}}
\DeclareOption
{
center
}{
%
\gdef\ttl
@fil
{
\filcenter
}}
\DeclareOption
{
raggedright
}{
%
\gdef\ttl
@fil
{
\filright
}}
\DeclareOption
{
uppercase
}{
%
\gdef\ttl
@case
{
\MakeUppercase
}}
\DeclareOption
{
compact
}{
%
\gdef\ttl
@space
{
1
}
%
\gdef\ttl
@chapafter
{
30
\p
@
}}
% Deprecated. To be remmoved in a major upgrade (3.0)
\DeclareOption
{
indentfirst
}{
%
\gdef\@
afterindentfalse
{
\let\if
@afterindent
\iftrue
}
%
\@
afterindenttrue
\def\titlespacing
{
%
\@
ifstar
{
\ttl
@spacing@i
{
\@
ne
}}{
\ttl
@spacing@i
{
\@
ne
}}}}
\DeclareOption
{
nonindentfirst
}{
%
\def\titlespacing
{
%
\@
ifstar
{
\ttl
@spacing@i
{
\z
@
}}{
\ttl
@spacing@i
{
\z
@
}}}}
% New names
\DeclareOption
{
indentafter
}{
%
\gdef\@
afterindentfalse
{
\let\if
@afterindent
\iftrue
}
%
\@
afterindenttrue
\def\titlespacing
{
%
\@
ifstar
{
\ttl
@spacing@i
{
\@
ne
}}{
\ttl
@spacing@i
{
\@
ne
}}}}
\DeclareOption
{
noindentafter
}{
%
\def\titlespacing
{
%
\@
ifstar
{
\ttl
@spacing@i
{
\z
@
}}{
\ttl
@spacing@i
{
\z
@
}}}}
% newlinetospace
\let\ttl
@blinemarks
\relax
\let\ttl
@elinemarks
\relax
\DeclareRobustCommand\ttl
@linetosp
{
%
\@
ifstar
{
\ttl
@linetosp@i
}{
\ttl
@linetosp@i
}}
%
\def\ttl
@linetosp@i
{
%
\ifdim\lastskip
>
\z
@
\else\space\fi
\ignorespaces
}
\DeclareOption
{
newlinetospace
}{
%
\def\ttl
@blinemarks
{
%
\let\ttl
@e
\\
%
\def\\
{
\ttl
@linetosp
}}
%
\def\ttl
@elinemarks
{
\let\\\ttl
@e
}}
%
% toctitles
\def\ttl
@addcontentsline#1#2
{
%
\addcontentsline
{
toc
}{
#1
}{
\ifttl
@toclabel
\ttl
@a
\fi
#2
}
%
\nobreak
}
\DeclareOption
{
toctitles
}{
%
\def\ttl
@addcontentsline#1#2
{
%
\addcontentsline
{
toc
}{
#1
}{
\ifttl
@toclabel
\ttl
@a
\fi\ttl
@savetitle
}
%
\nobreak
}}
% pageatnewline
\def\ttl
@changecentercr
{
%
\let\ttl
@centercr
\@
centercr
\def\@
centercr
{
\@
ifstar
{
\ttl
@centercr*
}{
\ttl
@centercr*
}}}
\DeclareOption
{
pageatnewline
}{
\let\ttl
@changecentercr
\relax
}
\def\ttl
@fonts
{}
\ExecuteOptions
{
rubberchapters,bottomtitles,aftersep,oldparttoc,
%
innermarks
}
\ProcessOptions
% +-----------------+
% | H Y P E R R E F |
% +-----------------+
%
% These two commands are provided by hyperref. But if they
% are not defined at \begin{document} hyperref has not been
% loaded or it is an old version.
\AtBeginDocument
{
%
\ifx\ttl
@Hy@steplink
\@
undefined
\let\ttl
@Hy@steplink
\@
gobble
\let\ttl
@Hy@refstepcounter
\refstepcounter
\fi
}
% +-----------------+
% | PAGE STYLES |
% +-----------------+
%
% This is generic:
\newcommand\assignpagestyle
[2]
{
%
\@
namedef
{
ttl@ps@
\expandafter\@
gobble
\string
#1
}{
#2
}}
% Old pagestyles
% ~~~~~~~~~~~~~~
\providecommand\newpagestyle
{
%
\let\ttl
@compatps
\@
empty
% marks the ``old interface''
\makeatletter
\edef\ttl
@d
{
%
\noexpand\input
{
ttlps.def
}
%
\catcode
`
\noexpand\@
=
\the\catcode
`
\@
}
%
\ttl
@d
\newpagestyle
}
\providecommand\renewpagestyle
{
%
\let\ttl
@compatps
\@
empty
% marks the ``old interface''
\makeatletter
\edef\ttl
@d
{
%
\noexpand\input
{
ttlps.def
}
%
\catcode
`
\noexpand\@
=
\the\catcode
`
\@
}
%
\ttl
@d
\renewpagestyle
}
\providecommand\widenhead
{
%
\let\ttl
@compatps
\@
empty
% marks the ``old interface''
\makeatletter
\edef\ttl
@d
{
%
\noexpand\input
{
ttlps.def
}
%
\catcode
`
\noexpand\@
=
\the\catcode
`
\@
}
%
\ttl
@d
\widenhead
}
% New pagestyles
% ~~~~~~~~~~~~~~
\@
ifundefined
{
sectiontitle
}{}{
\input
{
ttlps.def
}}
% +-----------------+
% | C O M P A T |
% +-----------------+
% Easy setup, i.e., that of package options, is
% taken care of, if necessary.
\renewcommand\secdef
[2]
{
%
\@
ifstar
{
\ttl
@labelfalse
#2
}
{
\ttl
@labeltrue
\ifx
#1
\@
chapter
\if
@mainmatter
\else\ttl
@labelfalse
\fi
\ifnum\ttll
@chapter>
\c
@secnumdepth
\ttl
@labelfalse
\fi
\else\ifx
#1
\@
part
\ifnum\ttll
@part>
\c
@secnumdepth
\ttl
@labelfalse
\fi
\fi\fi
\let\ifttl
@toclabel
\ifttl
@label
\@
dblarg
{
#1
}}}
\@
ifundefined
{
ttl@extract
}{}{
\endinput
}
\newcommand\titlelabel
[1]
{
%
\def\@
seccntformat##1
{
#1
}}
\expandafter\ifx\csname
chapter
\endcsname\relax
\def\ttl
@compatpart
{
\titleclass
{
\part
}{
part
}
\relax
}
\else
\def\ttl
@compatchapter
{
%
\def\@
makechapterhead
{
%
\ttl
@labeltrue
\if
@mainmatter
\else\ttl
@labelfalse
\fi
\ifnum\ttll
@chapter>
\c
@secnumdepth
\ttl
@labelfalse
\fi
\ttl
@startargs
\ttl
@mkchap
{
chapter
}}
%
\def\@
makeschapterhead
{
%
\ttl
@labelfalse
\if
@mainmatter
\else\ttl
@labelfalse
\fi
\ifnum\ttll
@chapter>
\c
@secnumdepth
\ttl
@labelfalse
\fi
\ttl
@startargs
\ttl
@mkchap
{
chapter
}}}
\def\ttl
@compatpart
{
\titleclass
{
\part
}{
page
}
\relax
}
\fi
\def\ttl
@@extract#1
\@
startsection#2#3#4#5#6#7#8
{
%
\@
tempskipa=#5
\@
tempskipb=#6
\ifdim\@
tempskipa<
\z
@
\toks
@
{
\titlespacing*
#8
{
#4
}}
%
\@
tempskipa-
\@
tempskipa
\else
\toks
@
{
\titlespacing
#8
{
#4
}}
%
\fi
\@
ifundefined
{
ttl@space
}{}{
%
\ttl
@assign
\@
tempskipa*
\ttl
@space
\relax\beforetitleunit
}
%
\ifdim\@
tempskipb<
\z
@
\if
@tempswa
\titleformat
#8[runin]
%
{
\ttl
@fonts
\ttl
@sizes
{
#3
}}{
\@
seccntformat
{
#2
}}
%
{
\z
@
}
\ttl
@passexplicit
\else
\titleformat
#8[runin]
%
{
#7
}{
\@
seccntformat
{
#2
}}
%
{
\z
@
}
\ttl
@passexplicit
\fi
\@
tempskipb-
\@
tempskipb
\else
\if
@tempswa
\titleformat
#8
%
{
\ttl
@fil
\ttl
@fonts
\ttl
@sizes
{
#3
}}{
\@
seccntformat
{
#2
}}
%
{
\z
@
}
\ttl
@passexplicit
\else
\titleformat
#8
%
{
#7
}{
\@
seccntformat
{
#2
}}
%
{
\z
@
}
\ttl
@passexplicit
\fi
\@
ifundefined
{
ttl@space
}{}{
%
\ttl
@assign
\@
tempskipb*
\ttl
@space
\relax\aftertitleunit
}
%
\fi
\edef\ttl
@a
{
\the\toks
@
{
\the\@
tempskipa
}{
\the\@
tempskipb
}}
\ttl
@a
}
\def\ttl
@extract#1
{
%
\expandafter\in
@
\expandafter\@
startsection
\expandafter
{
#1
}
%
\ifin
@
\expandafter\ttl
@@extract#1#1
%
\else
\PackageWarningNoLine
{
titlesec
}
%
{
Non standard sectioning command detected
\MessageBreak
Using default spacing and no format
}
\titlespacing*
#1
{
\z
@
}{
*3
}{
*2
}
%
\fi
}
\@
tempswafalse
\ifx\ttl
@fonts
\@
empty
\def\ttl
@fonts
{
\bfseries
}
\else
\@
tempswatrue
\fi
\expandafter\ifx\csname
ttl@sizes
\endcsname\relax
\gdef\ttl
@sizes#1
{
\ifcase
#1
\relax\Huge\or\Large\or\large
\or\normalsize\or\or\or\huge\fi
}
\else
\@
tempswatrue
\fi
\expandafter\ifx\csname
ttl@fil
\endcsname\relax
\let\ttl
@fil
\@
empty
\else
\@
tempswatrue
\fi
\expandafter\ifx\csname
ttl@case
\endcsname\relax
\let\ttl
@case
\@
firstofone
\else
\@
tempswatrue
\fi
\if
@tempswa
\expandafter\ifx\csname
chapter
\endcsname\relax\else
\titleformat\chapter
[display]
%
{
\@
ifundefined
{
ttl@fil
}{
\raggedright
}{
\ttl
@fil
}
\ttl
@fonts
\ttl
@sizes6
}
{
\@
chapapp
\space\thechapter
}{
.8
\baselineskip
}{
\ttl
@sizes
\z
@
\ttl
@passexplicit
}
\fi
\fi
\ttl
@extract
\section
\ttl
@extract
\subsection
\ttl
@extract
\subsubsection
\ttl
@extract
\paragraph
\ttl
@extract
\subparagraph
\let\ttl
@extract
\@
undefined
\let\ttl
@@extract
\@
undefined
\def\ttl
@toplevel
{
part
}
\expandafter\ifx\csname
chapter
\endcsname\relax
\@
namedef
{
ttll@part
}{
0
}
\titleclass
{
\section
}{
straight
}
[
\part
]
\titlespacing*
{
\part
}
{
\z
@
}
{
4ex
}
{
3ex
}
\else
\let\ttl
@save@mkchap
\@
makechapterhead
\let\ttl
@save@mkschap
\@
makeschapterhead
\def\@
makechapterhead#1
{
%
\gdef\ttl
@savemark
{
\chaptermark
{
#1
}}
%
\ttl
@save@mkchap
{
#1
}
%
\@
ifundefined
{
ttl@ps@chapter
}{}
%
{
\thispagestyle
{
\@
nameuse
{
ttl@ps@chapter
}}}}
\def\@
makeschapterhead#1
{
%
\gdef\ttl
@savemark
{
\chaptermark
{
#1
}}
%
\ttl
@save@mkschap
{
#1
}
%
\@
ifundefined
{
ttl@ps@chapter
}{}
%
{
\thispagestyle
{
\@
nameuse
{
ttl@ps@chapter
}}}}
\@
namedef
{
ttll@part
}{
-1
}
\@
namedef
{
ttlss@part
}{
chapter
}
\@
namedef
{
ttll@chapter
}{
0
}
\titleclass
{
\section
}{
straight
}
[
\chapter
]
% The following is unoperant, unless when \chapter / \part
% format is redefined
\titlespacing*
{
\part
}
{
\z
@
}
{
\z
@
\@
plus1fil
}
{
\z
@
\@
plus1fil
}
\titlespacing*\chapter
{
\z
@
}
%
{
50
\p
@
}
%
{
\ttl
@chapafter
}
%
\fi
\titleclass
{
\subsection
}
{
straight
}
[
\section
]
\titleclass
{
\subsubsection
}{
straight
}
[
\subsection
]
\titleclass
{
\paragraph
}
{
straight
}
[
\subsubsection
]
\titleclass
{
\subparagraph
}
{
straight
}
[
\paragraph
]
\endinput
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment