summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/titlesec/titlesec.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/titlesec/titlesec.sty')
-rw-r--r--Master/texmf-dist/tex/latex/titlesec/titlesec.sty296
1 files changed, 48 insertions, 248 deletions
diff --git a/Master/texmf-dist/tex/latex/titlesec/titlesec.sty b/Master/texmf-dist/tex/latex/titlesec/titlesec.sty
index 7125c5a9055..a89802497ed 100644
--- a/Master/texmf-dist/tex/latex/titlesec/titlesec.sty
+++ b/Master/texmf-dist/tex/latex/titlesec/titlesec.sty
@@ -2,10 +2,10 @@
% | Typeset titlesec.tex to get the documentation. |
% +--------------------------------------------------+
%
-% Copyright (c) 1998-2007 by Javier Bezos.
+% Copyright (c) 1998-2011 by Javier Bezos.
% All Rights Reserved.
%
-% This file is part of the titlesec distribution release 2.8
+% This file is part of the titlesec distribution release 2.9
% -----------------------------------------------------------
%
% It may be distributed and/or modified under the
@@ -19,229 +19,7 @@
% This work has the LPPL maintenance status "maintained".
%
% The Current Maintainer of this work is Javier Bezos.
-
-% History of v1.0
-% ~~~~~~~~~~~~~~~
-% 1998/02/25: Added nops option
-% 1998/02/28: Added \@mkboth stuff in \setmarks
-% 1998/03/01: Changed test in \ttl@secnum
-% 1998/03/03: Corrected some \fil... commands
-% 1998/03/03: Replaced the faulty \@hangfrom by new commands
-% 1998/03/03: Some \def replaced by \newcommand
-% 1998/03/04: .dtx/.ins scheme finally rejected. Useless
-% for users, obtrusive for `readers' and proned
-% to errors
-% 1998/03/04: Tidied up documentation
-% 1998/03/06: \wordsep renamed and documented
-% 1998/03/06: Added dummy asignation in \ttl@chap.
-% 1998/03/06: Removed \ttl@xsect and merged into \tl@sect
-% 1998/03/06: Added \ProvidesPackage
-
-% History of v1.1
-% ~~~~~~~~~~~~~~~~
-% 1998/03/25: \chapter corrected, as well as the size options
-% 1998/03/26: Added compact option
-% 1998/03/26: Added flushleft, flushright and center options
-% 1998/04/08: Changed all instances of \noindent by \parindent\z@
-% 1998/04/14: Added \filinner, \filouter
-% 1998/04/14: Added drop shape
-% 1998/05/01: Added rightmargin shape (and margin renamed to
-% leftmargin)
-% 1998/05/03: Added \setheadindent
-%
-% History of v1.2 (unreleased)
-% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-%
-% 1998/06/01: Compatibility with AMS classes
-% 1998/06/08: On-demand loading of shapes
-% 1998/06/11: Frame shape. Some \fil... command
-% modified to work in the label of this
-% chapter shape.
-% 1998/07/03: Bottomtitle option (at last...)
-% 1998/07/14: ...margin styles bug fixed using a method
-% similar to bottomtitle.
-% 1998/07/29: \titleline
-
-%
-% History of v2.0
-% ~~~~~~~~~~~~~~~~
-%
-% 1998/08/05 to
-% 1998/08/29: Fully reimplemented
-%
-% History of v2.1
-% ~~~~~~~~~~~~~~~~
-% 1999/01/05: We define in this file the three basic shapes.
-% Additional ones remain defined in external files.
-% Unified the shapes for sections and chapters.
-% 1999/01/05: \ttl@shape merged into \ttl@format@iii.
-% 1999/01/05: \titlerule
-% 1999/01/07: \ttl@defkeys splitted from \ttl@keys
-% 1999/01/10: Added the \part stuff, including a definition of \@openright
-% 1999/01/11: Removed unnecessary \ttl@numsecfalse in \ttl@sect@i.
-% 1999/01/14: Optimized \titlerule
-% 1999/01/27: Changed \titleline to correct the spacing at the
-% top page and to fix a bug which changed the mode
-% to horizontal, thus introducing unwanted space
-% (\makebox -> \@makebox).
-% 1999/02/02: \ttl@secnum renamed to \ttl@write and introduced the
-% \ttl@savewrite mechanism to sincronize the toc/marks
-% with the title in case there is a \newpage in <after>.
-% 1999/02/03: wrap shape
-% 1999/02/03: Added a \kern\z@ for not to avoid hyphenation
-% of the last word. Not strictly necessary, but
-% it is more LaTeX-like.
-% 1999/02/05: \partmark defined (and in \setmarks, too).
-% 1999/02/08: \ttl@row@i simplified.
-% 1999/02/08: \ttl@savefn mechanism.
-% 1999/02/10: Removed extra \leavevmode in display
-% 1999/02/13: Now \titleline doesn't add the width. It's set.
-% 1999/02/17: The part mark is catched, even if unused.
-% 1999/02/17: old/newparttoc added.
-% 1999/02/18: Changed many TeX assignments to the LaTeX
-% counterpart.
-% 1999/02/19: Introduced \ttl@startargs.
-%
-% History of v2.1.1
-% ~~~~~~~~~~~~~~~~~
-% 1999/08/04: Moved misplaced lines in \ttl@makeboth
-%
-% History of v2.2 (unreleased)
-% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-% 1999/11/03: We load titleps if pagestyles are required, but
-% some old definitions are restored.
-% 1999/11/06: Improved outermarks test in \ttl@sect@i. Formerly
-% the section number could be printed if a page ended
-% with an unnumebered section followed by a numbered one.
-% 1999/11/06: \ttl@startargs now adds (and passes) automatically the
-% section name. Involved macros modified accordingly.
-% 1999/11/06: Replaced explicit part names by the parameter in
-% \ttl@part@i. The same for chapter.
-% 1999/11/21: \ttl@try's are not given explicitly, but built by
-% \ttl@setkeys. Intruduced the \ttl@key@... and
-% \ttl@extra@... commands.
-% 1999/11/23: Minor problems with keys fixed.
-% 1999/12/10: Added the nobottomtitles* option and \ttl@addstretch.
-% 2000/01/07: First steps towards the calcwidth feature (basic code).
-% 2000/01/08: (Continued.) \titleline* for rules of width \titlewidth.
-% Option calcwidth implemented.
-% 2000/01/12: Finished with changes in wrap.tss (no longer
-% "experimental" :-) )
-%
-% History of v2.3
-% ~~~~~~~~~~~~~~~
-% 2000/01/19: All keys are grouped in a single file tttkeys. Removed
-% page.tsk and deleted the corresponding code in the sty.
-% 2000/01/19: Classes begun.
-% 2000/01/19: The level numbers are stored in \ttll@ macros, and not
-% passed as arguments.
-% 2000/01/21: Introduced the new mark scheme. It's mostly compatible
-% with the old one, but a compatibility mode seems
-% imposible (it was introduced in a preliminary test
-% but eventually removed).
-% 2000/01/23: loadonly package option.
-% 2000/02/01: Classes finished. Many things had to be rewritten.
-% 2000/02/02: Made partially compatible with hyperref (dvips).
-% 2000/02/08: \ttl@savewrite moved from shapes to classes. But
-% explicit page breaks expand it, too, to avoid wrong
-% toc entries.
-% 2000/02/18: A new box named \ttl@box stores the title in runin
-% leftmargin etc shapes, to increase reliability.
-%
-% (2.3.1 -- 2.3.3: No changes on this file)
-%
-% History of v2.3.4
-% ~~~~~~~~~~~~~~~~~
-% 2000/05/12: nonindentfirst redefine \titlespacing instead of
-% \@afterindent... so that they don't interfere with
-% the first entry in tocs.
-% 2000/05/17: The marks in \ttl@select are protected to prevent
-% endless loop if the title is expanded, say, by
-% \MakeUppercase.
-%
-% History of v2.3.5
-% ~~~~~~~~~~~~~~~~~
-% 2000/05/21: Restores missing test for secnumdepth in \ttl@mkchap,
-% and instead of setting \ttl@toclevel in ttlps now is
-% done in \secdef. Except inside the macros, \ttl@toclevel
-% is false, so that an explicit \...mark works.
-% 2000/06/04: \partmark defined with \providecommand
-% 2000/06/14: A patch mechanism added, for small bug fixes.
-%
-% History of v2.4
-% ~~~~~~~~~~~~~~~~
-% 2001/01/18: Minor changes in code. Essentialy an incremental
-% update.
-% 2001/01/22: \titleformat has a new "easy" starred variant.
-%
-% History of v2.5
-% ~~~~~~~~~~~~~~~
-% 2002/01/02 New macros for \ttl@assign. Now * length allow
-% non integer values.
-% 2002/03/22 Added \ttl@calc and \ttl@calcneg to make titlesec
-% calc-savvy.
-% - Merged bug fixes of .new into this file.
-% - Bugs in frame fixed -- gap in lines, misplaced
-% label, wrong margins (sometimes),
-% - \leftskip, \rightskip and \linewidth (re)set in
-% margin shapes.
-% - Removed obsolete flush... options.
-% - indentafter and noindentafter, new names for
-% indentfirst and nonindentfirst.
-% - A new level (\titleclass) without its "location"
-% now raises a meaningful error.
-% - Bug in top-level \titleclass fixed.
-% 2002/03/23 Tests for undefined and unformatted sectioning levels,
-% and horizontal material in <format>.
-% - Missing \if@openright inside \if@twoside in
-% page class added.
-% - Removed extra (but inoffensive) \expandafter
-% in \ttl@class@iii.
-% 2002/03/27 Added \titlewidthfirst and ...last
-% - "Not definable" gives a more meaningful message in
-% the context of the package.
%
-% History of v.2.6
-% ~~~~~~~~~~~~~~~~
-% 2004/08/30 Corrected typo in margin \hsiz -> \hsize.
-% 2004/10/17 Added a couple of missing \noexpand's in drop.
-% 2004/12/01 Removed the error about the mode in block because this
-% style is general purpose.
-% 2005/01/16 Missing braces around #2 in the last else part of
-% \ttl@headinline added
-% - Replaced explicit \makeatother's by a saved value as
-% the macros can be used in a class/package file.
-% 2005/01/18 newlinetospace mechanism
-% 2005/01/18 // does not break pages; option pageatnewline to
-% restore the LaTeX behaviour.
-% 2005/01/19 \...break in top shape.
-% - Renumbered several scratch registers to follow the
-% TeXbook (p. 346), with \ttl@box in a few cases. In
-% wrap \titlewidthfirst and \titlewidthlast made global.
-% - Float heads and foots have now a further argument for
-% additional stuff (eg, to remove rules). Option is now
-% psfloats while floatps enters in compatibility mode.
-% - \ttl@savetitle in all classes. Option toctitles.
-% 2005/01/21 Changed pageatnewline to make it compatible with
-% titletoc, with \ttl@changecentercr.
-% 2005/01/22 \...tolist in top class.
-%
-% History of v.2.7
-% ~~~~~~~~~~~~~~~~
-% 2007-03-27 Added the `explicit' option.
-% 2007-03-27 Added \titlepagestyle.
-% 2007-03-29 Fixed wrong number for chapter in log
-% 2007-03-29 Patch file named .270 instead of .new
-% 2007-05-09 Added <after> to leftmargin, so that you can add stuff
-% at the beginning of the paragraph, eg, the sec number.
-% 2007-07-07 Removed the patch mechanism.
-% 2007-08-07 `explicit' improved.
-%
-% History of v.2.8
-% ~~~~~~~~~~~~~~~~
-% 2007-08-12 \titlepagestyle already used by KOMA-Script. Renamed
-% to \assignpagestyle.
-%
% Notes
% ~~~~~
%
@@ -270,7 +48,7 @@
% ~~~~~~~
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{titlesec}[2007/08/12 v2.8 Sectioning titles]
+\ProvidesPackage{titlesec}[2011/07/25 v2.9 Sectioning titles]
% Initialization
% ~~~~~~~~~~~~~~
@@ -345,8 +123,16 @@
\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}}}
@@ -362,7 +148,7 @@
\def\ttl@class@ii#1#2{%
\@ifundefined{ttl@#2class}%
{\PackageError{titlesec}{Unknown sectioning class}%
- {Valid names are top, page and stright}}%
+ {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}}%
@@ -512,10 +298,10 @@
\def\ttl@a##1{\csname ttl@key@##1\endcsname}% Used as elt in try
\ttl@trylist
\ifttl@explicit
- \def\ttl@passexplicit{#4}%
+ \def\ttl@passexplicit{\ttl@case{#4}}%
\ttl@c{#4}{#2}{#3}{}% ttl@c is returned by ttl@try with ttlf@...
\else
- \let\ttl@passexplicit\@empty
+ \let\ttl@passexplicit\ttl@case
\ttl@c{#2}{#3}{#4}% ttl@c is returned by ttl@try with ttlf@...
\fi
\endgroup}
@@ -623,14 +409,14 @@
\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}%
- \@ifundefined{ttl@ps@\string#6}{}%
- {\PackageWarning{titlesec}{Page style in straight class ignored}}%
\addvspace{\@tempskipa}%
\ifdim\bottomtitlespace<\z@
\else
@@ -687,7 +473,7 @@
\def\ttl@part@ii#1#2#3#4#5#6#7{%
\ttl@assign\@tempskipa#3\relax\beforetitleunit
\vspace*{\@tempskipa}%
- \@ifundefined{ttl@ps@\string#6}{}%
+ \@ifundefined{ttl@ps@#6}{}%
{\PackageWarning{titlesec}{Page style in part class ignored}}%
\global\@afterindenttrue
\ifcase#5 \global\@afterindentfalse \fi
@@ -716,9 +502,9 @@
\else
\clearpage
\fi
- \@ifundefined{ttl@ps@\string#6}%
+ \@ifundefined{ttl@ps@#6}%
{\thispagestyle{plain}}%
- {\thispagestyle{\@nameuse{ttl@ps@\string#6}}}%
+ {\thispagestyle{\@nameuse{ttl@ps@#6}}}%
\if@twocolumn
\onecolumn
\@tempswatrue
@@ -737,9 +523,9 @@
\if@twoside
\if@openright
\null
- \@ifundefined{ttl@ps@\string#6}%
+ \@ifundefined{ttl@ps@#6}%
{\thispagestyle{empty}}%
- {\thispagestyle{\@nameuse{ttl@ps@\string#6}}}%
+ {\thispagestyle{\@nameuse{ttl@ps@#6}}}%
\newpage
\fi
\fi
@@ -757,8 +543,8 @@
\gdef\ttl@savemark{\csname#6mark\endcsname{#7}}%
\let\ttl@savewrite\@empty
\let\ttl@Hy@saveanchor\@empty
- \@ifundefined{ttl@ps@\string#6}{}%
- {\thispagestyle{\@nameuse{ttl@ps@\string#6}}}%
+ \@ifundefined{ttl@ps@#6}{}%
+ {\thispagestyle{\@nameuse{ttl@ps@#6}}}%
\let\ifttl@toclabel\ifttl@label
\ttl@mkchap@i{#1}{#2}{#3}{#4}{#5}{#6}{#7}}
@@ -791,9 +577,9 @@
\clearpage
\fi}%
{\csname#6break\endcsname}%
- \@ifundefined{ttl@ps@\string#6}%
+ \@ifundefined{ttl@ps@#6}%
{\thispagestyle{plain}}%
- {\thispagestyle{\@nameuse{ttl@ps@\string#6}}}%
+ {\thispagestyle{\@nameuse{ttl@ps@#6}}}%
\global\@topnum\z@
\@ifundefined{#6tolists}%
{\addtocontents{lof}{\protect\ttl@tocsep}%
@@ -859,7 +645,7 @@
{\ttl@format@i}}
\def\ttl@format@s#1#2{%
- \edef\ttl@a{\expandafter\@gobble\string #1}%
+ \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
@@ -885,7 +671,6 @@
% First, we get the shape -- if not defined it loads
% the corresponding file.
-
\def\ttl@format@iii#1[#2]{%
\@ifundefined{ttlh@#1}{%
\begingroup
@@ -990,10 +775,12 @@
\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}}%
@@ -1004,6 +791,7 @@
\advance\rightskip 1\leftskip plus 1fil
\leftskip=\z@}%
#1}%
+ \let\iftitlemeasuring\@secondoftwo
\ttl@boxprocess
#1}
@@ -1215,6 +1003,9 @@
\DeclareOption{raggedright}{%
\gdef\ttl@fil{\filright}}
+\DeclareOption{uppercase}{%
+ \gdef\ttl@case{\MakeUppercase}}
+
\DeclareOption{compact}{%
\gdef\ttl@space{1}%
\gdef\ttl@chapafter{30\p@}}
@@ -1258,11 +1049,13 @@
% toctitles
\def\ttl@addcontentsline#1#2{%
- \addcontentsline{toc}{#1}{\ifttl@toclabel\ttl@a\fi#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}}}
+ \addcontentsline{toc}{#1}{\ifttl@toclabel\ttl@a\fi\ttl@savetitle}%
+ \nobreak}}
% pageatnewline
@@ -1299,7 +1092,8 @@
%
% This is generic:
-\newcommand\assignpagestyle[2]{\@namedef{ttl@ps@\string#1}{#2}}
+\newcommand\assignpagestyle[2]{%
+ \@namedef{ttl@ps@\expandafter\@gobble\string#1}{#2}}
% Old pagestyles
% ~~~~~~~~~~~~~~
@@ -1453,6 +1247,12 @@
\@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
@@ -1492,14 +1292,14 @@
\def\@makechapterhead#1{%
\gdef\ttl@savemark{\chaptermark{#1}}%
\ttl@save@mkchap{#1}%
- \@ifundefined{ttl@ps@\string\chapter}{}%
- {\thispagestyle{\@nameuse{ttl@ps@\string\chapter}}}}
+ \@ifundefined{ttl@ps@chapter}{}%
+ {\thispagestyle{\@nameuse{ttl@ps@chapter}}}}
\def\@makeschapterhead#1{%
\gdef\ttl@savemark{\chaptermark{#1}}%
\ttl@save@mkschap{#1}%
- \@ifundefined{ttl@ps@\string\chapter}{}%
- {\thispagestyle{\@nameuse{ttl@ps@\string\chapter}}}}
+ \@ifundefined{ttl@ps@chapter}{}%
+ {\thispagestyle{\@nameuse{ttl@ps@chapter}}}}
\@namedef{ttll@part}{-1}
\@namedef{ttlss@part}{chapter}