summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/hepthesis/example
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-09-16 00:13:07 +0000
committerKarl Berry <karl@freefriends.org>2007-09-16 00:13:07 +0000
commit11826a2e3ed54621c66e5c34ebe977a0ba45c8ae (patch)
tree0fdd2516ae1c1675b81539c363888ab2ee078f71 /Master/texmf-dist/doc/latex/hepthesis/example
parentd85f248e3b38ea0ecda38c5340e3cadd08d65346 (diff)
hepthesis 1.4 (14sep07)
git-svn-id: svn://tug.org/texlive/trunk@4948 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/hepthesis/example')
-rw-r--r--Master/texmf-dist/doc/latex/hepthesis/example/abhep.sty9
-rw-r--r--Master/texmf-dist/doc/latex/hepthesis/example/appendices.tex7
-rw-r--r--Master/texmf-dist/doc/latex/hepthesis/example/backmatter.tex3
-rw-r--r--Master/texmf-dist/doc/latex/hepthesis/example/chap1.tex2
-rw-r--r--Master/texmf-dist/doc/latex/hepthesis/example/csquotes.sty2414
-rw-r--r--Master/texmf-dist/doc/latex/hepthesis/example/example.pdfbin338016 -> 378784 bytes
-rw-r--r--Master/texmf-dist/doc/latex/hepthesis/example/example.tex31
-rw-r--r--Master/texmf-dist/doc/latex/hepthesis/example/thesis.cls15
-rw-r--r--Master/texmf-dist/doc/latex/hepthesis/example/thesis.sty1
-rw-r--r--Master/texmf-dist/doc/latex/hepthesis/example/varwidth.sty302
10 files changed, 2776 insertions, 8 deletions
diff --git a/Master/texmf-dist/doc/latex/hepthesis/example/abhep.sty b/Master/texmf-dist/doc/latex/hepthesis/example/abhep.sty
index 9bb0d868770..a0145aca09a 100644
--- a/Master/texmf-dist/doc/latex/hepthesis/example/abhep.sty
+++ b/Master/texmf-dist/doc/latex/hepthesis/example/abhep.sty
@@ -81,9 +81,12 @@
\DeclareRobustCommand{\sqrtS}{\mymath{\sqrt{s}}\xspace}
%% CP violation
-\DeclareRobustCommand{\opC}{\mymath{\maybebm{\mathcal{C}}}\xspace}
-\DeclareRobustCommand{\opP}{\mymath{\maybebm{\mathcal{P}}}\xspace}
-\DeclareRobustCommand{\opT}{\mymath{\maybebm{\mathcal{T}}}\xspace}
+%% \DeclareRobustCommand{\opC}{\mymath{\maybebm{\mathcal{C}}}\xspace}
+%% \DeclareRobustCommand{\opP}{\mymath{\maybebm{\mathcal{P}}}\xspace}
+%% \DeclareRobustCommand{\opT}{\mymath{\maybebm{\mathcal{T}}}\xspace}
+\DeclareRobustCommand{\opC}{\texorpdfstring{\mymath{\maybebm{\mathcal{C}}}}{C}\xspace}
+\DeclareRobustCommand{\opP}{\texorpdfstring{\mymath{\maybebm{\mathcal{P}}}}{P}\xspace}
+\DeclareRobustCommand{\opT}{\texorpdfstring{\mymath{\maybebm{\mathcal{T}}}}{T}\xspace}
\DeclareRobustCommand{\opCP}{\mymath{\opC\opP}\xspace}
\DeclareRobustCommand{\opCPT}{\mymath{\opC\opP\opT}\xspace}
%% and for convenience...
diff --git a/Master/texmf-dist/doc/latex/hepthesis/example/appendices.tex b/Master/texmf-dist/doc/latex/hepthesis/example/appendices.tex
index 91b9dc1ee26..9d649510e62 100644
--- a/Master/texmf-dist/doc/latex/hepthesis/example/appendices.tex
+++ b/Master/texmf-dist/doc/latex/hepthesis/example/appendices.tex
@@ -2,6 +2,13 @@
%% of the "appendices" environment (see thesis.tex).
\chapter{Pointless extras}
\label{app:Pointless}
+
+\chapterquote[french]%
+{Le savant n'\'etudie pas la nature parce que cela est utile; \\
+\indent il l'\'etudie parce qu'il y prend plaisir, \\
+\indent et il y prend plaisir parce qu'elle est belle.}%
+{Henri Poincar\'e, 1854--1912}
+
Appendixes (or should that be ``appendices''?) make you look really clever, 'cos
it's like you had more clever stuff to say than could be fitted into the main
bit of your thesis. Yeah. So everyone should have at least three of them\dots
diff --git a/Master/texmf-dist/doc/latex/hepthesis/example/backmatter.tex b/Master/texmf-dist/doc/latex/hepthesis/example/backmatter.tex
index d00ed3fb8ad..3926f699a24 100644
--- a/Master/texmf-dist/doc/latex/hepthesis/example/backmatter.tex
+++ b/Master/texmf-dist/doc/latex/hepthesis/example/backmatter.tex
@@ -14,5 +14,6 @@
\listoftables
%% If you have time and interest to generate a (decent) index,
-%% then you've clearly spent more time on the write-up than the research :)
+%% then you've clearly spent more time on the write-up than the
+%% research ;-)
%\printindex
diff --git a/Master/texmf-dist/doc/latex/hepthesis/example/chap1.tex b/Master/texmf-dist/doc/latex/hepthesis/example/chap1.tex
index a7f50e0c1b3..dd3ad06e632 100644
--- a/Master/texmf-dist/doc/latex/hepthesis/example/chap1.tex
+++ b/Master/texmf-dist/doc/latex/hepthesis/example/chap1.tex
@@ -9,7 +9,7 @@
%% some point myself.
\chapterquote{Laws were made to be broken.}%
-{Christopher North 1785--1854}%: Blackwood's Magazine May 1830
+{Christopher North, 1785--1854}%: Blackwood's Magazine May 1830
Symmetries, either intact or broken, have proved to be at the heart
of how matter interacts. The Standard Model of fundamental interactions
diff --git a/Master/texmf-dist/doc/latex/hepthesis/example/csquotes.sty b/Master/texmf-dist/doc/latex/hepthesis/example/csquotes.sty
new file mode 100644
index 00000000000..f26ae8bae8d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/hepthesis/example/csquotes.sty
@@ -0,0 +1,2414 @@
+% $Id: csquotes.sty,v 3.7 2007/03/25 20:23:41 lehman stable $
+
+% Copyright (c) 2003--2007 Philipp Lehman, author-maintained.
+%
+% Permission is granted to copy, distribute and/or modify this
+% software under the terms of the LaTeX Project Public License
+% (LPPL), version 1.3.
+%
+% This software is provided `as is', without warranty of any kind,
+% either expressed or implied, including, but not limited to, the
+% implied warranties of merchantability and fitness for a particular
+% purpose.
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{csquotes}[2007/03/25 v3.7 Quotation facilities]
+
+%% Compatibility and requirements
+
+\RequirePackage{keyval}
+
+\@ifpackageloaded{inputenc}
+ {}
+ {\AtBeginDocument{%
+ \@ifpackageloaded{inputenc}
+ {\csq@warning
+ {Load `inputenc' before `csquotes'}
+ {`inputenc' package loaded too late}
+ {Always load `inputenc' before `csquotes'}}
+ {}}}
+
+\@ifpackageloaded{ucs}
+ {\let\csq@ifucs\@firstoftwo}
+ {\let\csq@ifucs\@secondoftwo
+ \AtBeginDocument{%
+ \@ifpackageloaded{ucs}
+ {\let\csq@ifucs\@firstoftwo}
+ {}}}
+
+%% Category codes
+
+\def\csq@docatcodes{\do\~\do\&\do\:\do\"}
+\def\do#1{\noexpand\do\noexpand#1{\the\catcode`#1}}
+\edef\csq@docatcodes{\csq@docatcodes}
+
+\AtEndOfPackage{%
+ \def\do#1#2{\catcode`#1=#2\relax}
+ \csq@docatcodes
+ \let\csq@docatcodes\csq@undefined
+ \let\do\noexpand}
+
+\catcode`\~=\active
+\catcode`\&=3
+\catcode`\:=12
+\catcode`\"=12
+
+%% General things
+
+\newif\ifcsq@block
+\newif\ifcsq@quiet
+\newif\ifcsq@active
+
+\newcount\csq@reset
+\newcount\csq@gtype
+\newcount\csq@glevel
+\newcount\csq@qlevel
+\newcount\csq@tshold
+
+\def\csq@ifcsundefined#1{%
+ \begingroup
+ \expandafter\ifx\csname#1\endcsname\relax
+ \endgroup\expandafter\@firstoftwo
+ \else
+ \endgroup\expandafter\@secondoftwo
+ \fi}
+
+\def\csq@ifundefined#1{%
+ \begingroup
+ \escapechar\m@ne
+ \expandafter\csq@ifcsundefined
+ \expandafter{\string#1}
+ {\endgroup\@firstoftwo}
+ {\endgroup\@secondoftwo}}
+
+\providecommand{\@gobblethree}[3]{}
+\providecommand{\@gobblefive}[5]{}
+
+% Hook management (and some syntactic sugar)
+
+\long\def\csq@add#1#2{%
+ \csq@ifundefined{#1}{\let#1\@empty}{}%
+ \begingroup
+ \toks@=\expandafter{#1#2}%
+ \edef#1{\endgroup\def\noexpand#1{\the\toks@}}#1}
+
+\long\def\csq@eadd#1#2{%
+ \csq@ifundefined{#1}{\let#1\@empty}{}%
+ \begingroup
+ \toks@=\expandafter{#1}%
+ \edef#1{\endgroup\def\noexpand#1{\the\toks@#2}}#1}
+
+\long\def\csq@gadd#1{%
+ \csq@ifundefined{#1}{\let#1\@empty}{}%
+ \g@addto@macro#1}
+
+\long\def\csq@xadd#1#2{%
+ \csq@ifundefined{#1}{\let#1\@empty}{}%
+ \begingroup
+ \toks@=\expandafter{#1}%
+ \xdef#1{\the\toks@#2}%
+ \endgroup}
+
+\def\csq@csdef#1{\expandafter\def\csname#1\endcsname}
+\def\csq@csedef#1{\expandafter\edef\csname#1\endcsname}
+\def\csq@csgdef#1{\expandafter\gdef\csname#1\endcsname}
+\def\csq@csxdef#1{\expandafter\xdef\csname#1\endcsname}
+\def\csq@csgadd#1{\expandafter\csq@gadd\csname#1\endcsname}
+\def\csq@csxadd#1{\expandafter\csq@xadd\csname#1\endcsname}
+
+\def\csq@cslet#1#2{\expandafter\let\csname#1\endcsname#2}
+\def\csq@letcs#1#2{\expandafter\let\expandafter#1\csname#2\endcsname}
+\def\csq@csletcs#1{\expandafter\csq@letcs\csname#1\endcsname}
+
+% {<item>}{<list>}{<separator>}
+
+\def\csq@addto@list#1{%
+ \expandafter\csq@addto@list@i\csname\string#1\endcsname}
+\def\csq@addto@list@i#1#2#3{%
+ \begingroup
+ \@tempswatrue
+ \def#3##1{\ifnum`#1=`##1\relax\@tempswafalse\fi}#2%
+ \expandafter\endgroup\if@tempswa
+ \csq@add#2{#3#1}%
+ \fi}
+
+\newtoks\csq@ltxeverypar
+\def\csq@addto@everypar#1{%
+ \let\csq@everypar\everypar
+ \csq@ltxeverypar=\expandafter{\the\everypar}%
+ \csq@everypar={\the\csq@ltxeverypar#1}%
+ \let\everypar\csq@ltxeverypar
+ \let\csq@addto@everypar\@gobble}
+
+% Miscellaneous tests
+
+\long\def\csq@ifblank#1{% from url.sty
+ \csq@ifblank@i#1&&\@secondoftwo\@firstoftwo:}
+\long\def\csq@ifblank@i#1#2&#3#4#5:{#4}
+
+\providecommand*{\ifstringblank}{\csq@ifblank}
+
+\newcommand*{\ifblockquote}{%
+ \ifcsq@block
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\def\csq@ifsafeactives{%
+ \ifx\if@safe@actives\iftrue
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\def\csq@iftypeset{%
+ \ifx\protect\@typeset@protect
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\def\csq@ifstrings{%
+ \ifx\protect\string
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\def\csq@ifmmode{%
+ \ifmmode
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\def\csq@ifnested{%
+ \ifcsq@block
+ \expandafter\@firstoftwo
+ \else
+ \ifnum\csq@qlevel>\z@
+ \expandafter\expandafter
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\expandafter
+ \expandafter\@secondoftwo
+ \fi
+ \fi}
+
+% Parsers for UTF-8
+
+\def\csq@string#1{\csq@string@i#1&}
+\def\csq@string@i#1#2&{%
+ \string#1\csq@ifblank{#2}{}{\csq@string@i#2&}}
+
+\def\csq@number#1{\csq@number@i#1&}
+\def\csq@number@i#1#2&{%
+ \number`#1 \csq@ifblank{#2}{}{.\csq@number@i#2&}}
+
+\def\csq@utfprint#1{u8:\csq@utfprint@i#1&}
+\def\csq@utfprint@i#1#2&{%
+ \number`#1 \csq@ifblank{#2}{}{:\csq@utfprint@i#2&}}
+
+% Grouping control
+
+\csq@ifcsundefined{eTeXversion}
+ {\let\csq@bqgroup\begingroup
+ \let\csq@eqgroup\endgroup}
+ {\def\csq@bqgroup{%
+ \bgroup\leavevmode
+ \csq@glevel\currentgrouplevel
+ \csq@gtype\currentgrouptype}
+ \def\csq@eqgroup{%
+ \ifnum\csq@gtype=\currentgrouptype
+ \ifnum\csq@glevel=\currentgrouplevel
+ \else
+ \csq@err@mismatch{%
+ I have detected a group level mismatch. Verify that all
+ groups\MessageBreak and all active quotes are properly
+ balanced and nested. If you\MessageBreak continue, I
+ will write a summary of all previously opened
+ groups\MessageBreak to the transcript file}%
+ \aftergroup\showgroups
+ \fi
+ \else
+ \csq@err@mismatch{%
+ I have detected a group type mismatch. Verify that all
+ groups\MessageBreak and all active quotes are properly
+ balanced and nested. If you\MessageBreak continue, I
+ will write a summary of all previously opened
+ groups\MessageBreak to the transcript file}%
+ \aftergroup\showgroups
+ \fi
+ \egroup}}
+
+%% User feedback
+
+\def\csq@error#1#2{%
+ \PackageError{csquotes}{#1}{#2.}}
+
+\def\csq@warning@loose#1#2#3{%
+ \PackageWarning{csquotes}{#1}}
+\def\csq@warning@strict#1#2#3{%
+ \PackageError{csquotes}{#2}{#3.}}
+\let\csq@warning\csq@warning@loose
+
+\def\csq@info#1{%
+ \ifcsq@quiet
+ \else
+ \PackageInfo{csquotes}{#1\csq@noline}%
+ \fi}
+
+\let\csq@noline\@gobble
+\AtEndOfPackage{\let\csq@noline\@empty}
+
+% Errors
+
+\def\csq@err@mismatch#1{%
+ \csq@errormark
+ \csq@error
+ {Unbalanced groups or invalid nesting}
+ {#1}}
+
+\def\csq@err@mmode#1{%
+ \csq@error
+ {`\string#1' invalid in math mode}
+ {This command may not be used in math mode}}
+
+\def\csq@err@notdef#1{%
+ \csq@error
+ {`\string#1' not defined}
+ {This command or environment environment appears to
+ be\MessageBreak undefined}}
+
+\def\csq@err@invldopt#1{%
+ \csq@error
+ {Option `#1' invalid}
+ {The option you have supplied is invalid. See the csquotes
+ manual\MessageBreak for valid option keys and their
+ possible values}}
+
+\def\csq@err@alloc{%
+ \csq@error
+ {Invalid argument}
+ {One of the arguments you have supplied is already allocated
+ as\MessageBreak active quote or delimiter}}
+
+\def\csq@err@invldchar{%
+ \csq@error
+ {Invalid argument}
+ {Only single characters with category code 12 or 13 may
+ be\MessageBreak allocated as active quotes. Numbers,
+ punctuation marks, and\MessageBreak characters which
+ are part of the LaTeX syntax or reserved\MessageBreak
+ for a specific purpose are invalid}}
+
+\def\csq@err@invldutf{%
+ \csq@error
+ {Invalid argument}
+ {Only valid UTF-8 sequences representing a single
+ character\MessageBreak may be allocated as active quotes}}
+
+\def\csq@err@ucs{%
+ \csq@error
+ {ucs package not supported}
+ {The ucs package is not supported. If you want to use
+ UTF-8\MessageBreak encoded active quotes, try
+ `\string\usepackage[utf8]{inputenc}'.\MessageBreak
+ If you continue now, I will reject all UTF-8 encoded
+ arguments\MessageBreak as invalid}}
+
+\def\csq@err@nbquote{%
+ \csq@err@mismatch{%
+ You have nested a block quotation. Block quotation
+ commands\MessageBreak may only be used on quotation level 0}}%
+
+% Warnings
+
+\def\csq@warn@nobabel#1{%
+ \csq@warning
+ {The `babel' package is not available.\MessageBreak #1}
+ {#1}
+ {Load the `babel' package to use this feature}}
+
+\def\csq@warn@noomega#1{%
+ \csq@warning
+ {Quote style `#1' requires Omega.\MessageBreak
+ Some features will be missing}
+ {Quote style `#1' requires Omega}
+ {Compile the document with `lambda' instead of `latex'}}
+
+\def\csq@warn@location#1{%
+ \csq@warning
+ {`\string#1' invalid at this point.\MessageBreak
+ Ignoring command}
+ {`\string#1' invalid at this point}
+ {This command may not be used at this particular
+ point.\MessageBreak See the user manual of the `csquotes'
+ package for details}}
+
+\def\csq@warn@legacy#1#2{%
+ \csq@warning
+ {`\string#1' is deprecated.\MessageBreak
+ Using `\string#2' instead}
+ {`\string#1' is deprecated}
+ {Please use `\string#2' instead}%
+ \let#1#2#2}
+
+%% Opening quotation mark
+
+% Outer marks
+
+\def\csq@oqmark{%
+ \ifnum\csq@qlevel>\z@
+ \csq@err@mismatch{%
+ Level 1 quote group invalid at this point:
+ the current level is \the\csq@qlevel}%
+ \csq@bqgroup
+ \advance\csq@qlevel\@ne
+ \let\csq@oqmark\csq@qerror
+ \else
+ \csq@bqgroup
+ \csq@qlevel\@ne
+ \csq@resetstyle
+ \csq@init
+ \let\csq@oqmark\csq@qclose
+ \let\csq@kerntok@i\csq@theqmark@oopen
+ \csq@theqmark@oopen
+ \csq@setmark@open
+ \expandafter\csq@restkern
+ \fi}
+
+% Inner marks
+
+\def\csq@iqmark{%
+ \ifnum\csq@qlevel>\@ne
+ \csq@err@mismatch{%
+ Level 2 quote group invalid at this point:
+ the current level is \the\csq@qlevel}%
+ \csq@bqgroup
+ \advance\csq@qlevel\@ne
+ \let\csq@iqmark\csq@qerror
+ \else
+ \csq@bqgroup
+ \csq@qlevel\tw@
+ \csq@resetstyle
+ \csq@init
+ \let\csq@iqmark\csq@qclose
+ \csq@addkern@open
+ \csq@theqmark@iopen
+ \fi}
+
+% Nestable marks
+
+\def\csq@qopen{%
+ \csq@bqgroup\csq@qopen@i}
+
+\def\csq@qopen@i{%
+ \ifnum\csq@qlevel>\@ne
+ \csq@err@mismatch{%
+ New quote group invalid at this point:
+ the current level is \the\csq@qlevel}%
+ \advance\csq@qlevel\@ne
+ \else
+ \advance\csq@qlevel\@ne
+ \csq@resetstyle
+ \csq@init
+ \ifnum\csq@qlevel=\@ne
+ \let\csq@kerntok@i\csq@theqmark@oopen
+ \csq@theqmark@oopen
+ \csq@setmark@open
+ \expandafter\expandafter
+ \expandafter\csq@restkern
+ \else
+ \csq@addkern@open
+ \csq@theqmark@iopen
+ \fi
+ \fi}
+
+\def\csq@iqopen{%
+ \csq@bqgroup\csq@iqopen@i}
+
+\def\csq@iqopen@i{%
+ \ifnum\csq@qlevel>\@ne
+ \csq@err@mismatch{%
+ Level 2 quote group invalid at this point:
+ the current level is \the\csq@qlevel}%
+ \advance\csq@qlevel\@ne
+ \else
+ \csq@qlevel\tw@
+ \csq@resetstyle
+ \csq@init
+ \csq@addkern@open
+ \csq@theqmark@iopen
+ \fi}
+
+%% Closing quotation mark
+
+\def\csq@qclose{%
+ \ifnum\csq@qlevel=\@ne
+ \ifdim\lastkern=\csq@frenchmark
+ \unkern\unkern
+ \csq@eqgroup
+ \else
+ \csq@addkern@close
+ \csq@theqmark@oclose
+ \let\csq@kerntok@i\csq@theqmark@oclose
+ \csq@qclose@i
+ \expandafter\expandafter
+ \expandafter\csq@restkern
+ \fi
+ \else
+ \ifnum\csq@qlevel=\tw@
+ \csq@theqmark@iclose
+ \csq@setmark@close
+ \let\csq@kerntok@i\csq@theqmark@iclose
+ \csq@qclose@i
+ \expandafter\expandafter
+ \expandafter\csq@restkern
+ \else
+ \ifnum\csq@qlevel>\z@
+ \csq@qerror
+ \else
+ \csq@err@mismatch{%
+ Cannot close the current quote group:
+ the current level is \the\csq@qlevel}%
+ \fi
+ \fi
+ \fi}
+
+\def\csq@qclose@i{%
+ \expandafter\def
+ \expandafter\csq@tempa
+ \expandafter{%
+ \expandafter\csq@eqgroup
+ \expandafter\def
+ \expandafter\csq@kerntok@i
+ \expandafter{\csq@kerntok@i}}%
+ \csq@tempa}
+
+\def\csq@qerror{%
+ \csq@eqgroup
+ \csq@errormark}
+
+%% Style initialization
+
+\def\csq@init{%
+ \csq@setsfcodes
+ \ifnum\csq@qlevel=\@ne
+ \csq@theqmark@oinit
+ \ifx\csq@theqmark@omiddle\@empty
+ \else
+ \let\csq@theeverypar\csq@theqmark@omiddle
+ \leavevmode
+ \csq@addto@everypar{\csq@theeverypar}%
+ \fi
+ \begingroup
+ \settowidth{\@tempdima}{%
+ \csq@theqmark@oopen\csq@theqmark@iopen}%
+ \settowidth{\@tempdimb}{%
+ \csq@theqmark@oopen\unkern\csq@theqmark@iopen}%
+ \ifdim\@tempdima=\@tempdimb
+ \def\csq@tempa{\endgroup
+ \let\csq@thekern@open\csq@theqmark@kern}%
+ \else
+ \addtolength{\@tempdima}{-\@tempdimb}%
+ \edef\csq@tempa{\endgroup
+ \def\noexpand\csq@thekern@open{\the\@tempdima}}%
+ \fi
+ \csq@tempa
+ \begingroup
+ \settowidth{\@tempdima}{%
+ \csq@theqmark@iclose\csq@theqmark@oclose}%
+ \settowidth{\@tempdimb}{%
+ \csq@theqmark@iclose\unkern\csq@theqmark@oclose}%
+ \ifdim\@tempdima=\@tempdimb
+ \def\csq@tempa{\endgroup
+ \let\csq@thekern@close\csq@theqmark@kern}%
+ \else
+ \addtolength{\@tempdima}{-\@tempdimb}%
+ \edef\csq@tempa{\endgroup
+ \def\noexpand\csq@thekern@close{\the\@tempdima}}%
+ \fi
+ \csq@tempa
+ \fi
+ \ifnum\csq@qlevel=\tw@
+ \csq@theqmark@iinit
+ \ifx\csq@theqmark@imiddle\@empty
+ \else
+ \let\csq@theeverypar\csq@theqmark@imiddle
+ \leavevmode
+ \csq@addto@everypar{\csq@theeverypar}%
+ \fi
+ \fi}
+
+\csq@add\@parboxrestore{%
+ \let\csq@bquote@i\csq@bquote@iii
+ \csq@qlevel\z@
+ \csq@blockfalse}
+
+%% Restore kerning
+
+\def\csq@restkern{%
+ \expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter
+ \expandafter\csq@restkern@i}
+
+\def\csq@restkern@i{%
+ \futurelet\csq@kerntok@ii\csq@restkern@ii}
+
+\def\csq@restkern@ii{%
+ \ifcat a\noexpand\csq@kerntok@ii
+ \expandafter\csq@restkern@iii
+ \fi
+ \ifcat 1\noexpand\csq@kerntok@ii
+ \expandafter\csq@restkern@iii
+ \fi}
+
+\def\csq@restkern@iii{%
+ \begingroup
+ \settowidth{\@tempdima}{%
+ \csq@kerntok@i\csq@kerntok@ii}%
+ \settowidth{\@tempdimb}{%
+ \csq@kerntok@i\relax\csq@kerntok@ii}%
+ \ifdim\@tempdima=\@tempdimb
+ \else
+ \addtolength{\@tempdima}{-\@tempdimb}%
+ \penalty\@M\hskip\@tempdima\relax
+ \fi
+ \endgroup}
+
+%% Detect and kern adjoining quotes
+
+\def\csq@kernmark{13sp}
+\def\csq@frenchmark{17sp}
+\let\csq@themark\csq@kernmark
+
+\def\csq@setmark@open{%
+ \penalty\@M
+ \hskip-\csq@themark\relax
+ \hskip\csq@themark\relax}
+
+\def\csq@setmark@close{%
+ \kern-\csq@themark
+ \kern\csq@themark}
+
+\def\csq@addkern@open{%
+ \ifdim\lastskip=\csq@kernmark
+ \unskip\unskip\unpenalty
+ \unkern % EC fix
+ \ifdim\csq@thekern@open=\z@
+ \else
+ \penalty\@M\hskip\csq@thekern@open\relax
+ \fi
+ \fi}
+
+\def\csq@addkern@close{%
+ \ifdim\lastkern=\csq@kernmark
+ \unkern\unkern
+ \ifdim\csq@thekern@close=\z@
+ \else
+ \penalty\@M\hskip\csq@thekern@close\relax
+ \fi
+ \fi}
+
+%% Punctuation
+
+% 1001 apostrophe (biblatex)
+% 1002 abbreviation dot (biblatex)
+% 1003/1250 comma
+% 1004/1500 semicolon
+% 1005/2000 colon
+% 1006/3000 period
+% 1007/3001 exclamation mark
+% 1008/3002 question mark
+% 1009 suppress punctuation (biblatex)
+
+\def\csq@setsfcodes{%
+ \csq@ifcsundefined{csq@sfcodes@\f@encoding}
+ {}
+ {\@nameuse{csq@sfcodes@\f@encoding}}%
+ \sfcode`\)=\z@
+ \sfcode`\]=\z@
+ \ifnum\sfcode`\.>2000
+ \csq@setencodes
+ \else
+ \csq@setfrcodes
+ \fi
+ \let\frenchspacing\csq@setfrcodes
+ \let\nonfrenchspacing\csq@setencodes}
+
+\def\csq@setfrcodes{%
+ \sfcode`\,=1003
+ \sfcode`\;=1004
+ \sfcode`\:=1005
+ \sfcode`\.=1006
+ \sfcode`\!=1007
+ \sfcode`\?=1008
+}
+
+\def\csq@setencodes{%
+ \sfcode`\,=1250
+ \sfcode`\;=1500
+ \sfcode`\:=2000
+ \sfcode`\.=3000
+ \sfcode`\!=3001
+ \sfcode`\?=3002
+}
+
+\csq@csdef{csq@sfactor@1250}{1003}
+\csq@csdef{csq@sfactor@1500}{1004}
+\csq@csdef{csq@sfactor@2000}{1005}
+\csq@csdef{csq@sfactor@3000}{1006}
+\csq@csdef{csq@sfactor@3001}{1007}
+\csq@csdef{csq@sfactor@3002}{1008}
+
+\def\csq@spacefactor{%
+ \ifhmode
+ \@ifundefined{csq@sfactor@\the\spacefactor}
+ {\the\spacefactor}
+ {\@nameuse{csq@sfactor@\the\spacefactor}}%
+ \else
+ 1000%
+ \fi}
+
+\newcommand*{\ifquotepunct}{%
+ \ifnum\csq@spacefactor>1002
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\newcommand*{\ifquotecomma}{%
+ \ifnum\csq@spacefactor=1003
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\newcommand*{\ifquotesemicolon}{%
+ \ifnum\csq@spacefactor=1004
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\newcommand*{\ifquotecolon}{%
+ \ifnum\csq@spacefactor=1005
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\newcommand*{\ifquoteterm}{%
+ \ifnum\csq@spacefactor>1005
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\newcommand*{\ifquoteperiod}{%
+ \ifnum\csq@spacefactor=1006
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\newcommand*{\ifquoteexclam}{%
+ \ifnum\csq@spacefactor=1007
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\newcommand*{\ifquotequestion}{%
+ \ifnum\csq@spacefactor=1008
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+%% Babel interface
+
+\def\csq@setstyle#1{%
+ \begingroup
+ \let\if@safe@actives\iftrue
+ \csq@ifcsundefined{csq@qstyle@#1}
+ {\csq@warning
+ {Quote style `#1' not defined.\MessageBreak Ignoring command}
+ {Quote style `#1' not defined}
+ {Define the style or alias first}
+ \endgroup}
+ {\edef\csq@tempa{\endgroup
+ \def\noexpand\csq@currentstyle{#1}%
+ \noexpand\@nameuse{csq@qstyle@#1}}%
+ \csq@tempa}}
+
+\def\csq@resetstyle{%
+ \ifnum\csq@reset=\@ne
+ \ifx\csq@currentstyle\languagename
+ \else
+ \csq@ifcsundefined{csq@qstyle@\languagename}
+ {\csq@warning
+ {No style for language `\languagename'.\MessageBreak
+ Using fallback style}
+ {No style for language `\languagename'}
+ {Define a style or alias for this language first}%
+ \csq@setstyle{fallback}}
+ {\csq@setstyle{\languagename}}%
+ \fi
+ \fi}
+
+\def\csq@savelang{%
+ \csq@ifcsundefined{csq@mainlang}
+ {\edef\csq@mainlang{\languagename}}
+ {}}
+
+\def\csq@resetlang{%
+ \csq@ifcsundefined{csq@mainlang}
+ {}
+ {\@nameuse{otherlanguage*}{\csq@mainlang}}}
+
+% \lowercase: workaround for page headers of book.cls et al.
+
+\def\csq@lang#1{%
+ \csq@savelang
+ \lowercase{\@nameuse{otherlanguage*}{#1}}}
+
+\def\csq@nolang#1{%
+ \begingroup
+ \lowercase{\def\csq@tempa{#1}}%
+ \csq@warn@nobabel{Cannot switch to language `\csq@tempa'}%
+ \endgroup}
+
+\def\csq@hyph#1{%
+ \csq@savelang
+ \lowercase{\hyphenrules{#1}}}
+
+\def\csq@nohyph#1{%
+ \begingroup
+ \lowercase{\def\csq@tempa{#1}}%
+ \csq@warn@nobabel{No hyphenation rules for `\csq@tempa'}%
+ \endgroup}
+
+\csq@add\csq@mkbabel{%
+ \csq@add\@parboxrestore{\csq@resetlang}%
+ \csq@ifcsundefined{l@usenglish}
+ {\csq@ifcsundefined{l@USenglish}
+ {}
+ {\let\l@usenglish\l@USenglish}}
+ {}%
+ \csq@ifcsundefined{l@ukenglish}
+ {\csq@ifcsundefined{l@UKenglish}
+ {}
+ {\let\l@ukenglish\l@UKenglish}}
+ {}%
+ \ifcase\csq@reset
+ \or
+ \or
+ \csq@info{Enabling multilingual support}%
+ \csq@reset\@ne
+ \else
+ \csq@info{Adjusting default style}%
+ \DeclareQuoteAlias{\bbl@main@language}{default}%
+ \fi}
+
+\csq@add\csq@mknobabel{%
+ \ifcase\csq@reset
+ \or
+ \csq@warn@nobabel{Cannot enable multilingual support}%
+ \or
+ \or
+ \csq@warn@nobabel{Cannot adjust default style}%
+ \fi
+ \csq@reset\z@
+ \def\csq@resetqstyle{%
+ \csq@warn@nobabel{Cannot enable multilingual support}}%
+ \let\csq@lang\csq@nolang
+ \let\csq@hyph\csq@nohyph}
+
+%% Markup with control sequences
+
+% Argument parsers
+
+% {<macro>}[<arg1>][<arg2>] =>
+% <macro>{\mkcitation}{<arg1>}{<arg2>}
+
+\def\csq@getcargs#1{%
+ \@ifnextchar[%]
+ {\csq@getcargs@i{#1}}
+ {\csq@getcargs@i{#1}[]}}
+
+\long\def\csq@getcargs@i#1[#2]{%
+ \@ifnextchar[%]
+ {\csq@getcargs@ii{#1}{#2}}
+ {\csq@getcargs@ii{#1}{#2}[]}}
+
+\long\def\csq@getcargs@ii#1#2[#3]{%
+ #1{\mkcitation}{#2}{#3}}
+
+% {<macro>}[<arg1>][<arg2>]{<arg3>}[<arg4>] =>
+% <macro>{\mkccitation}{\csq@cite[<arg1>][<arg2>]{<arg3>}}{<arg4>}
+
+\def\csq@getccargs#1{%
+ \@ifnextchar[%]
+ {\csq@getccargs@i{#1}{}}
+ {\csq@getccargs@ii{#1}{}}}
+
+\long\def\csq@getccargs@i#1#2[#3]{%
+ \@ifnextchar[%]
+ {\csq@getccargs@i{#1}{#2[{#3}]}}
+ {\csq@getccargs@ii{#1}{#2[{#3}]}}}
+
+\long\def\csq@getccargs@ii#1#2#3{%
+ \@ifnextchar[%]
+ {\csq@getccargs@iii{#1}{#2}{#3}}
+ {\csq@getccargs@iii{#1}{#2}{#3}[]}}
+
+\long\def\csq@getccargs@iii#1#2#3[#4]{%
+ #1{\mkccitation}{\csq@cite#2{#3}}{#4}}
+
+% Plain quotes
+
+\DeclareRobustCommand*{\enquote}{%
+ \csq@ifmmode
+ {\csq@err@mmode\enquote}
+ {\@ifstar
+ {\csq@quote@ii{}}
+ {\csq@quote@i{}}}}
+
+\long\def\csq@quote@i#1#2{%
+ \csq@bqgroup #1\csq@qopen@i #2\csq@qclose}
+\long\def\csq@quote@ii#1#2{%
+ \csq@bqgroup #1\csq@iqopen@i #2\csq@qclose}
+
+% Plain quotes + babel
+
+\DeclareRobustCommand*{\foreignquote}{%
+ \csq@ifmmode
+ {\csq@err@mmode\foreignquote}
+ {\@ifstar\csq@fquote@ii\csq@fquote@i}}
+
+\def\csq@fquote@i#1{\csq@quote@i{\csq@lang{#1}}}
+\def\csq@fquote@ii#1{\csq@quote@ii{\csq@lang{#1}}}
+
+\DeclareRobustCommand*{\hyphenquote}{%
+ \csq@ifmmode
+ {\csq@err@mmode\hyphenquote}
+ {\@ifstar\csq@hquote@ii\csq@hquote@i}}
+
+\def\csq@hquote@i#1{\csq@quote@i{\csq@hyph{#1}}}
+\def\csq@hquote@ii#1{\csq@quote@ii{\csq@hyph{#1}}}
+
+% PDF strings
+
+\long\def\csq@pdf@quote#1{%
+ \if#1*\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\csq@pdf@quote@ii}
+ {\csq@pdf@quote@i{#1}}}
+
+\long\def\csq@pdf@quote@i#1{%
+ \csq@pdf@ooqmark #1\csq@pdf@coqmark}
+\long\def\csq@pdf@quote@ii#1{%
+ \csq@pdf@oiqmark #1\csq@pdf@ciqmark}
+
+\long\def\csq@pdf@fquote#1{%
+ \if#1*\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\expandafter\csq@pdf@quote@ii\@gobble}
+ {\csq@pdf@quote@i}}
+
+\csq@add\csq@mkhyperref{%
+ \let\enquote\csq@pdf@quote
+ \let\foreignquote\csq@pdf@fquote
+ \let\hyphenquote\csq@pdf@fquote}
+
+% Text quotes
+
+\DeclareRobustCommand*{\textquote}{%
+ \csq@ifmmode
+ {\csq@err@mmode\textquote}
+ {\@ifstar
+ {\csq@getcargs{\csq@tquote{\csq@iqopen@i}}}
+ {\csq@getcargs{\csq@tquote{\csq@qopen@i}}}}}
+
+% {<init><macro>}{<hook>}{<cite>}{<punct>}{<text>}
+
+\long\def\csq@tquote#1#2#3#4#5{%
+ \csq@bqgroup
+ \def\csq@tempa{%
+ \mkpretextpunct{#4}%
+ \csq@qclose
+ \mkmidtextpunct{#4}}%
+ \csq@ifblank{#3}
+ {}
+ {\csq@add\csq@tempa{#2{#3}}}%
+ #1\quotetext#5\endquotetext
+ \csq@tempa\mkfintextpunct{#4}}
+
+% Text quotes + babel
+
+\DeclareRobustCommand*{\foreigntextquote}{%
+ \csq@ifmmode
+ {\csq@err@mmode\foreigntextquote}
+ {\@ifstar\csq@ftquote@ii\csq@ftquote@i}}
+
+\def\csq@ftquote@i#1{%
+ \csq@getcargs{\csq@tquote{\csq@lang{#1}\csq@qopen@i}}}
+\def\csq@ftquote@ii#1{%
+ \csq@getcargs{\csq@tquote{\csq@lang{#1}\csq@iqopen@i}}}
+
+\DeclareRobustCommand*{\hyphentextquote}{%
+ \csq@ifmmode
+ {\csq@err@mmode\hyphentextquote}
+ {\@ifstar\csq@htquote@ii\csq@htquote@i}}
+
+\def\csq@htquote@i#1{%
+ \csq@getcargs{\csq@tquote{\csq@hyph{#1}\csq@qopen@i}}}
+\def\csq@htquote@ii#1{%
+ \csq@getcargs{\csq@tquote{\csq@hyph{#1}\csq@iqopen@i}}}
+
+% Integrated text quotes
+
+\DeclareRobustCommand*{\textcquote}{%
+ \csq@ifmmode
+ {\csq@err@mmode\textcquote}
+ {\@ifstar
+ {\csq@getccargs{\csq@tquote{\csq@iqopen@i}}}
+ {\csq@getccargs{\csq@tquote{\csq@qopen@i}}}}}
+
+% Integrated text quotes + babel
+
+\DeclareRobustCommand*{\foreigntextcquote}{%
+ \csq@ifmmode
+ {\csq@err@mmode\foreigntextcquote}
+ {\@ifstar\csq@ftcquote@ii\csq@ftcquote@i}}
+
+\def\csq@ftcquote@i#1{%
+ \csq@getccargs{\csq@tquote{\csq@lang{#1}\csq@qopen@i}}}
+\def\csq@ftcquote@ii#1{%
+ \csq@getccargs{\csq@tquote{\csq@lang{#1}\csq@iqopen@i}}}
+
+\DeclareRobustCommand*{\hyphentextcquote}{%
+ \csq@ifmmode
+ {\csq@err@mmode\hyphentextcquote}
+ {\@ifstar\csq@htcquote@ii\csq@htcquote@i}}
+
+\def\csq@htcquote@i#1{%
+ \csq@getccargs{\csq@tquote{\csq@hyph{#1}\csq@qopen@i}}}
+\def\csq@htcquote@ii#1{%
+ \csq@getccargs{\csq@tquote{\csq@hyph{#1}\csq@iqopen@i}}}
+
+% PDF strings
+
+\csq@add\csq@mkhyperref{%
+ \def\textquote{\pdfstringdefWarn\textquote}%
+ \def\foreigntextquote{\pdfstringdefWarn\foreigntextquote}%
+ \def\hyphentextquote{\pdfstringdefWarn\hyphentextquote}%
+ \def\textcquote{\pdfstringdefWarn\textcquote}%
+ \def\foreigntextcquote{\pdfstringdefWarn\foreigntextcquote}%
+ \def\hyphentextcquote{\pdfstringdefWarn\hyphentextcquote}}
+
+% Block quotes
+
+\DeclareRobustCommand*{\blockquote}{%
+ \csq@ifmmode
+ {\csq@err@mmode\blockquote}
+ {\csq@getcargs{\csq@bquote{}}}}
+
+\def\csq@bquote{%
+ \csq@ifnested
+ {\csq@err@nbquote\@gobblefive}
+ {\ifinner
+ \expandafter\csq@bquote@iii
+ \else
+ \expandafter\csq@bquote@i
+ \fi}}
+
+% {<init>}{<hook>}{<cite>}{<punct>}{<text>}
+
+\long\def\csq@bquote@i#1#2#3#4#5{%
+ \begingroup
+ \def\@elt##1{\global\value{##1}\the\value{##1}\relax}%
+ \edef\csq@tempa{\cl@@ckpt}%
+ \let\@elt\relax
+ \csq@mkblockquote
+ \@fileswfalse
+ \csq@blockfalse
+ \setbox\@tempboxa=\vbox{%
+ \def\par{\aftergroup\csq@blocktrue\@par}%
+ \parfillskip\z@ \@plus 1fil\relax
+ \parindent\z@
+ \vrule \@height1\baselineskip \@width\z@ #1#5}%
+ \ifdim\ht\@tempboxa>\csq@tshold\baselineskip
+ \csq@blocktrue
+ \fi
+ \ifcsq@block
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \csq@tempa
+ \endgroup
+ \csq@bquote@ii\csq@bquote@iii{#1}{#2}{#3}{#4}{#5}}
+
+\let\csq@nbgobble\@firstofone
+
+\def\csq@mkblockquote{%
+ \let\csq@nbgobble\@gobble
+ \let\csq@bquote\@gobblefive
+ \let\csq@error\@gobbletwo
+ \let\csq@warning\@gobblethree
+ \let\csq@info\@gobble
+ \let\label\@gobble
+ \let\index\@gobble
+ \let\glossary\@gobble}
+
+\long\def\csq@bquote@ii#1#2#3#4#5{%
+ \begin{\csq@blockenvironment}%
+ \csq@blocktrue
+ \begingroup#1%
+ \csq@setsfcodes
+ \quoteblock
+ #5%
+ \mkpreblockpunct{#4}%
+ \endquoteblock
+ \mkmidblockpunct{#4}%
+ \endgroup
+ \csq@ifblank{#3}
+ {}
+ {#2{#3}}%
+ \mkfinblockpunct{#4}%
+ \end{\csq@blockenvironment}}
+
+\long\def\csq@bquote@iii#1#2#3#4#5{%
+ \csq@bqgroup
+ \def\csq@tempa{%
+ \mkpreblockpunct{#4}%
+ \csq@qclose
+ \mkmidblockpunct{#4}}%
+ \csq@ifblank{#3}
+ {}
+ {\csq@add\csq@tempa{#2{#3}}}%
+ #1\csq@qopen@i\quotetext#5\endquotetext
+ \csq@tempa\mkfinblockpunct{#4}}
+
+\newcommand*{\BlockquoteDisable}[1]{%
+ \begingroup
+ \toks@=\expandafter{\csq@mkblockquote}%
+ \@temptokena={#1}%
+ \xdef\csq@mkblockquote{\the\toks@ \the\@temptokena}%
+ \endgroup}
+
+% Block quotes + babel
+
+\DeclareRobustCommand*{\foreignblockquote}[1]{%
+ \csq@ifmmode
+ {\csq@err@mmode\foreignblockquote}
+ {\csq@getcargs{\csq@bquote{\csq@lang{#1}}}}}
+
+\DeclareRobustCommand*{\hyphenblockquote}[1]{%
+ \csq@ifmmode
+ {\csq@err@mmode\hyphenblockquote}
+ {\csq@getcargs{\csq@bquote{\csq@hyph{#1}}}}}
+
+% Integrated block quotes
+
+\DeclareRobustCommand*{\blockcquote}{%
+ \csq@ifmmode
+ {\csq@err@mmode\blockcquote}
+ {\csq@getccargs{\csq@bquote{}}}}
+
+% Integrated block quotes + babel
+
+\DeclareRobustCommand*{\foreignblockcquote}[1]{%
+ \csq@ifmmode
+ {\csq@err@mmode\foreignblockcquote}
+ {\csq@getccargs{\csq@bquote{\csq@lang{#1}}}}}
+
+\DeclareRobustCommand*{\hyphenblockcquote}[1]{%
+ \csq@ifmmode
+ {\csq@err@mmode\hyphenblockcquote}
+ {\csq@getccargs{\csq@bquote{\csq@hyph{#1}}}}}
+
+% PDF strings
+
+\csq@add\csq@mkhyperref{%
+ \def\blockquote{\pdfstringdefWarn\blockquote}%
+ \def\foreignblockquote{\pdfstringdefWarn\foreignblockquote}%
+ \def\hyphenblockquote{\pdfstringdefWarn\hyphenblockquote}%
+ \def\blockcquote{\pdfstringdefWarn\blockcquote}%
+ \def\foreignblockcquote{\pdfstringdefWarn\foreignblockcquote}%
+ \def\hyphenblockcquote{\pdfstringdefWarn\hyphenblockcquote}}
+
+% Display quotes
+
+\newenvironment*{displayquote}
+ {\csq@getcargs{\csq@dquote{}}}
+ {\csq@edquote}
+
+% {<init>}{<hook>}{<cite>}{<punct>}
+
+\def\csq@dquote#1#2#3#4{%
+ \csq@ifblank{#3}
+ {\let\csq@tempb\@empty}
+ {\def\csq@tempb{#2{#3}}}%
+ \def\csq@tempc{#4}%
+ \csq@bdquote{#1}}
+
+\def\csq@bdquote#1{%
+ \@nameuse{\csq@blockenvironment}%
+ \csq@blocktrue
+ \begingroup#1%
+ \csq@setsfcodes
+ \quoteblock}
+
+\def\csq@edquote{%
+ \ifdim\lastskip>\z@\unskip\fi
+ \expandafter\mkpredisppunct
+ \expandafter{\csq@tempc}%
+ \endquoteblock
+ \expandafter\mkmiddisppunct
+ \expandafter{\csq@tempc}%
+ \endgroup
+ \csq@tempb
+ \expandafter\mkfindisppunct
+ \expandafter{\csq@tempc}%
+ \@nameuse{end\csq@blockenvironment}}
+
+% Display quotes + babel
+
+\newenvironment*{foreigndisplayquote}[1]
+ {\csq@getcargs{\csq@dquote{\csq@lang{#1}}}}
+ {\csq@edquote}
+
+\newenvironment*{hyphendisplayquote}[1]
+ {\csq@getcargs{\csq@dquote{\csq@hyph{#1}}}}
+ {\csq@edquote}
+
+% Integrated display quotes
+
+\newenvironment*{displaycquote}
+ {\csq@getccargs{\csq@dcquote{}}}
+ {\csq@edquote}
+
+% {<init>}{<hook>}{<cite>}{<punct>}
+
+\def\csq@dcquote#1#2#3#4{%
+ \def\csq@tempb{#2{#3}}%
+ \def\csq@tempc{#4}%
+ \csq@bdquote{#1}}
+
+% Integrated display quotes + babel
+
+\newenvironment*{foreigndisplaycquote}[1]
+ {\csq@getccargs{\csq@dcquote{\csq@lang{#1}}}}
+ {\csq@edquote}
+
+\newenvironment*{hyphendisplaycquote}[1]
+ {\csq@getccargs{\csq@dcquote{\csq@hyph{#1}}}}
+ {\csq@edquote}
+
+% Hooks
+
+\newcommand*{\mkcitation}[1]{\space(#1)}
+\newcommand*{\mkccitation}[1]{\space#1}
+
+\newcommand*{\mkpretextpunct}[1]{}
+\newcommand*{\mkmidtextpunct}[1]{}
+\newcommand*{\mkfintextpunct}[1]{#1}
+\newcommand*{\mkpreblockpunct}[1]{}
+\newcommand*{\mkmidblockpunct}[1]{}
+\newcommand*{\mkfinblockpunct}[1]{#1}
+\newcommand*{\mkpredisppunct}[1]{}
+\newcommand*{\mkmiddisppunct}[1]{}
+\newcommand*{\mkfindisppunct}[1]{#1}
+
+\newenvironment*{quotetext}{}{}
+\newenvironment*{quoteblock}{}{}
+
+% Legacy commands
+
+\newcommand*{\cquote}{%
+ \csq@warn@legacy\cquote\textcquote}
+\newcommand*{\foreigncquote}{%
+ \csq@warn@legacy\foreigncquote\foreigntextcquote}
+\newcommand*{\hyphencquote}{%
+ \csq@warn@legacy\hyphencquote\hyphentextcquote}
+
+%% Markup with active characters
+
+\let\csq@dospecials\@empty
+\let\csq@doutfspecials\@empty
+
+\def\csq@do@dospecial#1#2{%
+ \ifnum\catcode`#1=\active
+ \csq@info{Redefining character \string#1}%
+ \csq@letspecial{#1}{csq@special@\number`#1}%
+ \else
+ \csq@info{Making character \string#1 active}%
+ \csq@letspecial{#1}{csq@special@\number`#1}%
+ \catcode`#1=\active
+ \fi}
+
+\def\csq@do@undospecial#1#2{%
+ \ifnum#2=\active
+ \csq@info{Resetting character \string#1}%
+ \csq@letspecial{#1}{csq@saved@\number`#1}%
+ \else
+ \csq@info{Resetting catcode of \string#1}%
+ \catcode`#1=#2\relax
+ \fi}
+
+\def\csq@do@verbspecial#1#2{%
+ \csq@info{Redefining character \string#1}%
+ \ifnum`#1<128\relax
+ \csq@edefspecial{#1}{\string#1}%
+ \else
+ \csq@letspecial{#1}{csq@saved@\number`#1}%
+ \fi}
+
+\def\csq@do@doutfspecial#1{%
+ \csq@info{Redefining character \csq@utfprint{#1}}%
+ \csq@csletcs{u8:\csq@string{#1}}{csq@special@\csq@number{#1}}}
+
+\def\csq@do@undoutfspecial#1{%
+ \csq@info{Resetting character \csq@utfprint{#1}}%
+ \csq@csletcs{u8:\csq@string{#1}}{csq@saved@\csq@number{#1}}}
+
+\def\csq@do@delspecial#1#2{%
+ \csq@info{Deallocating character \string#1}%
+ \csq@cslet{csq@special@\number`#1}\csq@undefined
+ \csq@cslet{csq@saved@\number`#1}\csq@undefined
+ \csq@cslet{csq@string@\number`#1}\csq@undefined
+ \csq@cslet{csq@textdef@\number`#1}\csq@undefined
+ \csq@cslet{csq@xtxtdef@\number`#1}\csq@undefined
+ \csq@cslet{csq@pdfdef@\number`#1}\csq@undefined}
+
+\def\csq@do@delutfspecial#1{%
+ \csq@info{Deallocating character \csq@utfprint{#1}}%
+ \csq@cslet{csq@special@\csq@number{#1}}\csq@undefined
+ \csq@cslet{csq@saved@\csq@number{#1}}\csq@undefined
+ \csq@cslet{csq@string@\csq@number{#1}}\csq@undefined
+ \csq@cslet{csq@textdef@\csq@number{#1}}\csq@undefined
+ \csq@cslet{csq@xtxtdef@\csq@number{#1}}\csq@undefined
+ \csq@cslet{csq@pdfdef@\csq@number{#1}}\csq@undefined}
+
+\def\csq@mkenable{%
+ \let\do\csq@do@dospecial
+ \csq@dospecials
+ \let\do\csq@do@doutfspecial
+ \csq@doutfspecials
+ \let\do\noexpand
+ \csq@activetrue}
+
+\def\csq@mkdisable{%
+ \ifcsq@active
+ \let\do\csq@do@undospecial
+ \csq@dospecials
+ \let\do\csq@do@undoutfspecial
+ \csq@doutfspecials
+ \let\do\noexpand
+ \csq@activefalse
+ \fi}
+
+\def\csq@mkverbatim{%
+ \ifcsq@active
+ \let\do\csq@do@verbspecial
+ \csq@dospecials
+ \let\do\csq@do@undoutfspecial
+ \csq@doutfspecials
+ \let\do\noexpand
+ \fi}
+
+\def\csq@mkdelete{%
+ \csq@mkdisable
+ \let\do\csq@do@delspecial
+ \csq@dospecials
+ \let\do\csq@do@delutfspecial
+ \csq@doutfspecials
+ \let\do\noexpand
+ \let\csq@dospecials\@empty
+ \let\csq@doutfspecials\@empty
+ \let\csq@mkpdfstrings\@empty}
+
+\let\csq@mkpdfstrings\@empty
+\csq@add\csq@mkhyperref{\csq@mkpdfstrings}
+
+\csq@ifcsundefined{inpenc@prehook}% inputenc 2006/05/05 v1.1b
+ {}
+ {\addto@hook\inpenc@prehook{%
+ \csq@info{Input encoding change}%
+ \csq@mkdelete}}
+
+% Regular specials
+
+% {<char>}{<textdef>}{<pdfdef1>}{<pdfdef2>}
+
+\def\csq@addspecial#1#2#3#4{%
+ \csq@validate{#1}
+ {\csq@addspecial@i@s{#1}{\csqQQ}{#2}{#3}{#4}}
+ {\csq@addspecial@i@u{#1}{\csqQQ}{#2}{#3}{#4}}}
+
+% {<char>}{<macro>}{<textdef>}{<pdfdef1>}{<pdfdef2>}
+
+\def\csq@addspecial@i@s#1#2#3#4#5{%
+ \csq@info{Allocating character \string#1}%
+ \csq@csedef{csq@special@\number`#1}{\noexpand#2{\number`#1}}%
+ \ifnum\catcode`#1=\active
+ \csq@cslet{csq@saved@\number`#1}{#1}%
+ \else
+ \csq@csdef{csq@saved@\number`#1}{#1}%
+ \fi
+ \csq@csedef{csq@string@\number`#1}{\string#1}%
+ \csq@csdef{csq@textdef@\number`#1}{#3}%
+ \csq@ifblank{#5}
+ {\csq@csdef{csq@pdfdef@\number`#1}{#4}}
+ {\csq@add\csq@mkpdfstrings{\csq@defpspecial{#1}{#4}{#5}}}%
+ \csq@eadd\csq@dospecials{\noexpand\do{\string#1}{\the\catcode`#1}}%
+ \ifnum`#1<128\relax
+ \csq@addto@list{#1}{\dospecials}{\do}%
+ \csq@addto@list{#1}{\@sanitize}{\@makeother}%
+ \fi}
+
+% {<char>}{<macro>}{<textdef>}{<pdfdef1>}{<pdfdef2>}
+
+\def\csq@addspecial@i@u#1#2#3#4#5{%
+ \csq@info{Allocating character \csq@utfprint{#1}}%
+ \csq@csedef{csq@special@\csq@number{#1}}{%
+ \noexpand#2{\csq@number{#1}}}%
+ \csq@ifcsundefined{u8:\csq@string{#1}}
+ {\csq@error
+ {\csq@utfprint{#1} not supported by inputenc}
+ {This UTF-8 sequence does not seem to be supported by the
+ inputenc\MessageBreak package}%
+ \csq@csdef{csq@saved@\csq@number{#1}}{}}
+ {\csq@csletcs{csq@saved@\csq@number{#1}}{u8:\csq@string{#1}}}%
+ \csq@csedef{csq@string@\csq@number{#1}}{\csq@string{#1}}%
+ \csq@csdef{csq@textdef@\csq@number{#1}}{#3}%
+ \csq@ifblank{#5}
+ {\csq@csdef{csq@pdfdef@\csq@number{#1}}{#4}}
+ {\csq@add\csq@mkpdfstrings{\csq@defupspecial{#1}{#4}{#5}}}%
+ \csq@eadd\csq@doutfspecials{\noexpand\do{\csq@string{#1}}}}
+
+% Block specials
+
+% {<char1>}{<delim>}{<char2>}{<textdef>}
+
+\def\csq@addbspecial#1#2#3#4{%
+ \csq@validate{#1}
+ {\csq@addbspecial@i@s{#1}{#2}{#3}{#4}}
+ {\csq@addbspecial@i@u{#1}{#2}{#3}{#4}}}
+
+\def\csq@addbspecial@i@s#1#2#3#4{%
+ \begingroup
+ \def\csq@tempa{\endgroup\csq@addspecial@i@s{#1}{\csqBQ}{}}%
+ \csq@eadd\csq@tempa{%
+ {\expandafter\noexpand\csname csq@saved@\number`#1\endcsname
+ \noexpand\pdfstringdefWarn{\string#1}}{}}%
+ \csq@tempa
+ \csq@validate{#2}
+ {\csq@addbspecial@ii@s{\number`#1}{#2}{#3}{#4}}
+ {\csq@addbspecial@ii@u{\number`#1}{#2}{#3}{#4}}}
+
+\def\csq@addbspecial@i@u#1#2#3#4{%
+ \begingroup
+ \def\csq@tempa{\endgroup\csq@addspecial@i@u{#1}{\csqBQ}{}}%
+ \csq@eadd\csq@tempa{%
+ {\expandafter\noexpand\csname csq@saved@\csq@number{#1}\endcsname
+ \noexpand\pdfstringdefWarn{\csq@utfprint{#1}}}{}}%
+ \csq@tempa
+ \csq@validate{#2}
+ {\csq@addbspecial@ii@s{\csq@number{#1}}{#2}{#3}{#4}}
+ {\csq@addbspecial@ii@u{\csq@number{#1}}{#2}{#3}{#4}}}
+
+\def\csq@addbspecial@ii@s#1#2#3#4{%
+ \csq@addspecial@i@s{#2}{\csqBQsep}{}{}{}%
+ \begingroup
+ \let\csq@tempa\@empty
+ \def\csq@tempb{{#1}}%
+ \uccode`\~=`#2\relax
+ \uppercase{\csq@add\csq@tempb{{~}}}%
+ \csq@add\csq@tempb{{#3}{#4}}%
+ \csq@validate{#3}
+ {\expandafter\def\expandafter\csq@tempa
+ \expandafter{\expandafter\csq@addbspecial@iii@s\csq@tempb}}
+ {\expandafter\def\expandafter\csq@tempa
+ \expandafter{\expandafter\csq@addbspecial@iii@u\csq@tempb}}%
+ \expandafter\endgroup\csq@tempa}
+
+\def\csq@addbspecial@ii@u#1#2#3#4{%
+ \csq@addspecial@i@u{#2}{\csqBQsep}{}{}{}%
+ \csq@validate{#3}
+ {\csq@addbspecial@iii@s{#1}{#2}{#3}{#4}}
+ {\csq@addbspecial@iii@u{#1}{#2}{#3}{#4}}}
+
+\def\csq@addbspecial@iii@s#1#2#3#4{%
+ \csq@addspecial@i@s{#3}{\csqBQend}{}{}{}%
+ \begingroup
+ \def\csq@tempa{{#1}{#2}}%
+ \uccode`\~=`#3\relax
+ \uppercase{\csq@add\csq@tempa{~}}%
+ \csq@add\csq@tempa{{#4}}%
+ \expandafter\endgroup
+ \expandafter\csq@addbspecial@iv\csq@tempa}
+
+\def\csq@addbspecial@iii@u#1#2#3#4{%
+ \csq@addspecial@i@u{#3}{\csqBQend}{}{}{}%
+ \csq@addbspecial@iv{#1}{#2}{#3}{#4}}
+
+\def\csq@addbspecial@iv#1#2#3#4{%
+ \expandafter\csq@defbspecial
+ \expandafter{\csname csq@textdef@#1\endcsname}{#2}{#3}{#4}%
+ \expandafter\csq@defxbspecial
+ \expandafter{\csname csq@xtxtdef@#1\endcsname}{#4}}
+
+% Specials
+
+\newcommand*{\csqQQ}[1]{%
+ \csq@ifsafeactives
+ {\@nameuse{csq@string@#1}}
+ {\csq@iftypeset
+ {\csq@ifmmode
+ {\@nameuse{csq@saved@#1}}
+ {\@nameuse{csq@textdef@#1}}}
+ {\csq@ifstrings
+ {\@nameuse{csq@string@#1}}
+ {\noexpand\csqQQ{#1}}}}}
+
+\newcommand*{\csqBQ}[1]{%
+ \csq@ifsafeactives
+ {\@nameuse{csq@string@#1}}
+ {\csq@iftypeset
+ {\csq@ifmmode
+ {\@nameuse{csq@saved@#1}}
+ {\csq@ifnested
+ {\csq@err@nbquote}
+ {\csq@nbgobble{\@nameuse{csq@textdef@#1}}}}}
+ {\csq@ifstrings
+ {\@nameuse{csq@string@#1}}
+ {\noexpand\csqBQbeg{#1}}}}}
+
+\newcommand*{\csqBQbeg}[1]{%
+ \csq@ifsafeactives
+ {\@nameuse{csq@string@#1}}
+ {\csq@iftypeset
+ {\csq@ifmmode
+ {\@nameuse{csq@saved@#1}}
+ {\csq@ifnested
+ {\csq@err@nbquote}
+ {\csq@nbgobble{\@nameuse{csq@xtxtdef@#1}}}}}
+ {\csq@ifstrings
+ {\@nameuse{csq@string@#1}}
+ {\noexpand\csqBQbeg{#1}}}}}
+
+\newcommand*{\csqBQsep}[1]{%
+ \csq@ifsafeactives
+ {\@nameuse{csq@string@#1}}
+ {\csq@iftypeset
+ {\@nameuse{csq@saved@#1}}
+ {\csq@ifstrings
+ {\@nameuse{csq@string@#1}}
+ {\noexpand\csqBQsep{#1}}}}}
+
+\newcommand*{\csqBQend}[1]{%
+ \csq@ifsafeactives
+ {\@nameuse{csq@string@#1}}
+ {\csq@iftypeset
+ {\@nameuse{csq@saved@#1}}
+ {\csq@ifstrings
+ {\@nameuse{csq@string@#1}}
+ {\noexpand\csqBQend{#1}}}}}
+
+\csq@add\csq@mkhyperref{%
+ \def\csqQQ##1{\@nameuse{csq@pdfdef@##1}}%
+ \def\csqBQ##1{\@nameuse{csq@pdfdef@##1}}%
+ \def\csqBQbeg##1{\@nameuse{csq@pdfdef@##1}}%
+ \def\csqBQsep##1{\@nameuse{csq@saved@##1}}%
+ \def\csqBQend##1{\@nameuse{csq@saved@##1}}}
+
+% Legacy commands
+
+\def\csq@special{\csqQQ}
+
+% Define specials
+
+% {<char>}{<def>}
+
+\def\csq@edefspecial#1#2{%
+ \begingroup
+ \uccode`\~=`#1\relax
+ \uppercase{\endgroup\edef~}{#2}}
+
+% {<char>}{<csname>}
+
+\def\csq@letspecial#1#2{%
+ \begingroup
+ \uccode`\~=`#1\relax
+ \uppercase{\def\csq@tempa{\endgroup\let~}}%
+ \expandafter\csq@tempa\csname#2\endcsname}
+
+% {<macro>}{<delim>}{<char2>}{<def>}
+
+\def\csq@defbspecial#1#2#3#4{%
+ \long\def#1##1#3{\csq@bspecial@i{##1}{#2}{#4}}}
+
+% {<text>}{<delim>}{<macro>}
+
+\long\def\csq@bspecial@i#1#2#3{%
+ \long\def\csq@bspecial@ii##1#2##2&{%
+ \csq@ifblank{##2}
+ {#3{}{}{#1}}
+ {\csq@bspecial@iii#1&}}%
+ \long\def\csq@bspecial@iii##1#2##2&{%
+ #3{##2}{}{##1}}%
+ \csq@bspecial@ii#1#2&}
+
+% {<macro>}{<def>}
+
+\def\csq@defxbspecial#1#2{%
+ \long\def#1##1\csqBQend##2{\csq@xbspecial@i{##1}{#2}}}
+
+% {<text>}{<macro>}
+
+\long\def\csq@xbspecial@i#1#2{%
+ \long\def\csq@xbspecial@ii##1\csqBQsep##2&{%
+ \csq@ifblank{##2}
+ {#2{}{}{#1}}
+ {\csq@xbspecial@iii#1&}}%
+ \long\def\csq@xbspecial@iii##1\csqBQsep##2##3&{%
+ #2{##3}{}{##1}}%
+ \csq@xbspecial@ii#1\csqBQsep&}
+
+% {<char>}{<pdfomark>}{<pdfcmark>}
+
+\def\csq@defpspecial#1#2#3{%
+ \begingroup
+ \uccode`\~=`#1\relax
+ \uppercase{\endgroup\def~##1~}{#2##1#3}}
+
+% {<char>}{<pdfomark>}{<pdfcmark>}
+
+\def\csq@defupspecial#1#2#3{%
+ \expandafter\def\csname u8:\csq@string{#1}\endcsname##1#1{#2##1#3}}
+
+% Validate user input
+
+% {<char>}{<macro>}{<utfmacro>}
+
+\def\csq@validate#1#2#3{%
+ \csq@ifutfchar{#1}
+ {\csq@ifvalidutf{#1}
+ {\csq@ifcsundefined{csq@special@\csq@number{#1}}
+ {#3}
+ {\csq@err@alloc}}
+ {\csq@err@invldutf}}
+ {\csq@ifvalidchar{#1}
+ {\csq@ifcsundefined{csq@special@\number`#1}
+ {#2}
+ {\csq@err@alloc}}
+ {\csq@err@invldchar}}}
+
+% {<char>}{<true>}{<false>}
+
+\def\csq@ifutfchar#1{%
+ \csq@ifcsundefined{@inpenc@undefined}
+ {\@secondoftwo}
+ {\csq@ifutfenc}%
+ {\csq@ifsingle{#1}
+ {\ifnum`#1<128\relax
+ \expandafter\@secondoftwo
+ \else
+ \csq@err@invldutf
+ \expandafter\@gobbletwo
+ \fi}
+ {\@firstoftwo}}
+ {\csq@ifsingle{#1}
+ {\@secondoftwo}
+ {\csq@err@invldchar
+ \@gobbletwo}}}
+
+\csq@ifcsundefined{inputencodingname}% inputenc 2006/05/05 v1.1b
+ {\def\csq@ifutfenc{%
+ \csq@ifucs
+ {\csq@err@ucs\@secondoftwo}
+ {\begingroup
+ \def\@inpenc@undefined@##1{\def\csq@tempa{##1}}%
+ \@inpenc@undefined
+ \ifx\csq@tempa\csq@utfenc
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup}}}
+ {\def\csq@ifutfenc{%
+ \csq@ifucs
+ {\csq@err@ucs\@secondoftwo}
+ {\ifx\inputencodingname\csq@utfenc
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}}}
+
+\def\csq@utfenc{utf8}
+
+% {<char>}{<true>}{<false>}
+
+\long\def\csq@ifsingle#1{%
+ \csq@ifblank{#1}
+ {\@secondoftwo}
+ {\expandafter\csq@ifsingle@i
+ \string#1&&\@secondoftwo\@firstoftwo:}}
+\long\def\csq@ifsingle@i#1#2#3&#4#5#6:{#5}
+
+% {<char>}{<true>}{<false>}
+
+\def\csq@ifvalidchar#1{%
+ \begingroup
+ \@tempswafalse
+ \ifnum\active=\catcode`#1\relax
+ \@tempswatrue
+ \else\ifnum12=\catcode`#1\relax
+ \@tempswatrue
+ \fi\fi
+ \if@tempswa
+ \csq@ifvalidchar@i{#1}%
+ \fi
+ \if@tempswa
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup}
+
+\def\csq@ifvalidchar@i#1{%
+ \def\break\fi##1\relax{\fi\@tempswafalse}%
+ \def\do##1{\ifnum`##1=`#1\relax\break\fi}%
+ \csq@resrvdchars\relax}
+
+\def\csq@resrvdchars{%
+ \do\[\do\]\do\*\do\@\do\~\do\-\do\`\do\'\do\.\do\,\do\;\do\:%
+ \do\!\do\?\do\0\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9}
+
+% {<char>}{<true>}{<false>}
+
+\def\csq@ifvalidutf#1{%
+ \csq@ifblank{#1}{\@secondoftwo}{\csq@ifvalidutf@i#1&}}
+
+\def\csq@ifvalidutf@i#1#2&{%
+ \csq@ifblank{#2}
+ {\@secondoftwo}% 0x00-0x7F handled elsewhere
+ {\csq@ifutfstart{#1}{\csq@ifvalidutf@ii#2&}{\@secondoftwo}}}
+
+\def\csq@ifvalidutf@ii#1#2&{%
+ \csq@ifutfnext{#1}
+ {\csq@ifblank{#2}{\@firstoftwo}{\csq@ifvalidutf@ii#2&}}
+ {\@secondoftwo}}
+
+% 0xC0-0xFD, 0x80-0xBF, 0x80-0xBF, ...
+
+\def\csq@ifutfstart#1{%
+ \ifnum`#1>191\relax
+ \ifnum`#1<254\relax
+ \expandafter\expandafter
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\expandafter
+ \expandafter\@secondoftwo
+ \fi
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\def\csq@ifutfnext#1{%
+ \ifnum`#1>127\relax
+ \ifnum`#1<192\relax
+ \expandafter\expandafter
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\expandafter
+ \expandafter\@secondoftwo
+ \fi
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\def\csq@isvalid#1#2#3{#2}
+
+% User interface
+
+\newcommand*{\MakeOuterQuote}[1]{%
+ \csq@addspecial{#1}{\csq@oqmark}
+ {\csq@pdf@ooqmark}{\csq@pdf@coqmark}}
+
+\newcommand*{\MakeInnerQuote}[1]{%
+ \csq@addspecial{#1}{\csq@iqmark}
+ {\csq@pdf@oiqmark}{\csq@pdf@ciqmark}}
+
+\newcommand*{\MakeAutoQuote}{%
+ \@ifstar
+ {\csq@mkaquote\csq@iqopen}
+ {\csq@mkaquote\csq@qopen}}
+\def\csq@mkaquote#1#2#3{%
+ \csq@addspecial{#2}{#1}{\csq@pdf@ooqmark}{}%
+ \csq@addspecial{#3}{\csq@qclose}{\csq@pdf@coqmark}{}}
+
+\newcommand*{\MakeForeignQuote}{%
+ \@ifstar
+ {\csq@mkfquote\csq@iqopen@i}
+ {\csq@mkfquote\csq@qopen@i}}
+\def\csq@mkfquote#1#2#3#4{%
+ \csq@addspecial{#3}
+ {\csq@bqgroup\csq@lang{#2}#1}
+ {\csq@pdf@ooqmark}{}%
+ \csq@addspecial{#4}{\csq@qclose}{\csq@pdf@coqmark}{}}
+
+\newcommand*{\MakeHyphenQuote}{%
+ \@ifstar
+ {\csq@mkhquote\csq@iqopen@i}
+ {\csq@mkhquote\csq@qopen@i}}
+\def\csq@mkhquote#1#2#3#4{%
+ \csq@addspecial{#3}
+ {\csq@bqgroup\csq@hyph{#2}#1}
+ {\csq@pdf@ooqmark}{}%
+ \csq@addspecial{#4}{\csq@qclose}{\csq@pdf@coqmark}{}}
+
+\newcommand*{\MakeBlockQuote}[3]{%
+ \csq@addbspecial{#1}{#2}{#3}{\csq@bquote{}{\mkcitation}}}
+
+\newcommand*{\MakeForeignBlockQuote}[4]{%
+ \csq@addbspecial{#2}{#3}{#4}%
+ {\csq@bquote{\csq@lang{#1}}{\mkcitation}}}
+
+\newcommand*{\MakeHyphenBlockQuote}[4]{%
+ \csq@addbspecial{#2}{#3}{#4}%
+ {\csq@bquote{\csq@hyph{#1}}{\mkcitation}}}
+
+\newcommand*{\EnableQuotes}{}
+\newcommand*{\DisableQuotes}{}
+\newcommand*{\VerbatimQuotes}{}
+\newcommand*{\DeleteQuotes}{\csq@mkdelete}
+
+\AtBeginDocument{%
+ \def\EnableQuotes{\csq@mkenable}%
+ \def\DisableQuotes{\csq@mkdisable}%
+ \def\VerbatimQuotes{\csq@mkverbatim}}
+
+% Author interface
+
+\newcommand*{\@enablequotes}{}
+\newcommand*{\@disablequotes}{}
+\newcommand*{\@verbatimquotes}{}
+\newcommand*{\@deletequotes}{%
+ \csq@quiettrue
+ \csq@mkdelete
+ \csq@quietfalse}
+
+\AtBeginDocument{%
+ \def\@enablequotes{%
+ \csq@quiettrue
+ \csq@mkenable
+ \csq@quietfalse}%
+ \def\@disablequotes{%
+ \csq@quiettrue
+ \csq@mkdisable
+ \csq@quietfalse}%
+ \def\@verbatimquotes{%
+ \csq@quiettrue
+ \csq@mkverbatim
+ \csq@quietfalse}}
+
+% Legacy
+
+\newcommand*{\RestoreQuotes}{%
+ \csq@warn@legacy\RestoreQuotes\EnableQuotes}
+\newcommand*{\@restorequotes}{\@enablequotes}
+
+%% Switch quote styles manually
+
+\newcommand*{\setquotestyle}{%
+ \@ifstar
+ {\csq@resetqstyle}
+ {\@ifnextchar[%]
+ {\csq@setqstyle}
+ {\csq@setqstyle[]}}}
+
+\def\csq@setqstyle[#1]#2{%
+ \ifnum\csq@reset=\@ne
+ \csq@info{Disabling multilingual support}%
+ \csq@reset\z@
+ \fi
+ \csq@ifblank{#1}
+ {\csq@setstyle{#2}}
+ {\csq@setstyle{#2/#1}}}
+
+\def\csq@resetqstyle{%
+ \csq@info{Enabling multilingual support}%
+ \csq@reset\@ne}
+
+%% Define quote styles
+
+\newcommand*{\DeclareQuoteStyle}[2][]{%
+ \begingroup
+ \let\if@safe@actives\iftrue
+ \csq@ifblank{#1}
+ {\edef\csq@tempa{#2}}
+ {\edef\csq@tempa{#2/#1}}%
+ \csq@ifcsundefined{csq@qstyle@\csq@tempa}
+ {}
+ {\csq@info{Redefining quotation style `\csq@tempa'}}%
+ \@ifnextchar[%]
+ {\csq@declareqstyle@i}
+ {\csq@declareqstyle@i[]}}
+
+\def\csq@declareqstyle@i[#1]{%
+ \csq@csgdef{csq@qstyle@\csq@tempa}{%
+ \def\csq@theqmark@oinit{#1}}%
+ \@ifnextchar[%]
+ {\csq@declareqstyle@ii}
+ {\csq@declareqstyle@ii[]}}
+
+\def\csq@declareqstyle@ii[#1]#2{%
+ \csq@csgadd{csq@qstyle@\csq@tempa}{%
+ \def\csq@theqmark@iinit{#1}%
+ \def\csq@theqmark@oopen{#2}}%
+ \@ifnextchar[%]
+ {\csq@declareqstyle@iii}
+ {\csq@declareqstyle@iii[]}}
+
+\def\csq@declareqstyle@iii[#1]#2{%
+ \csq@csgadd{csq@qstyle@\csq@tempa}{%
+ \def\csq@theqmark@omiddle{#1}%
+ \def\csq@theqmark@oclose{#2}}%
+ \@ifnextchar[%]
+ {\csq@declareqstyle@iv}
+ {\csq@declareqstyle@iv[]}}
+
+\def\csq@declareqstyle@iv[#1]#2{%
+ \csq@ifblank{#1}
+ {\def\csq@theqmark@kern{\z@}}
+ {\def\csq@theqmark@kern{#1}}%
+ \csq@csxadd{csq@qstyle@\csq@tempa}{%
+ \def\noexpand\csq@theqmark@kern{\csq@theqmark@kern}}%
+ \csq@csgadd{csq@qstyle@\csq@tempa}{%
+ \def\csq@theqmark@iopen{#2}}%
+ \@ifnextchar[%]
+ {\csq@declareqstyle@v}
+ {\csq@declareqstyle@v[]}}
+
+\def\csq@declareqstyle@v[#1]#2{%
+ \csq@csgadd{csq@qstyle@\csq@tempa}{%
+ \def\csq@theqmark@imiddle{#1}%
+ \def\csq@theqmark@iclose{#2}}%
+ \endgroup}
+
+\@onlypreamble\DeclareQuoteStyle
+
+%% Define quote aliases
+
+\newcommand*{\DeclareQuoteAlias}[3][]{%
+ \begingroup
+ \let\if@safe@actives\iftrue
+ \csq@ifblank{#1}
+ {\edef\csq@tempa{#2}}
+ {\edef\csq@tempa{#2/#1}}%
+ \csq@ifcsundefined{csq@qstyle@\csq@tempa}
+ {\csq@error
+ {Quote style not defined}
+ {Define the style or alias `\csq@tempa' first}}
+ {\csq@ifcsundefined{csq@qstyle@#3}
+ {}
+ {\csq@info{Redefining alias `#3' -> `\csq@tempa'}}%
+ \csq@csxdef{csq@qstyle@#3}{%
+ \noexpand\@nameuse{csq@qstyle@\csq@tempa}}}%
+ \endgroup}
+
+\@onlypreamble\DeclareQuoteAlias
+
+%% Define quotes for PDF strings
+
+\newcommand*{\DeclarePlainStyle}[4]{%
+ \def\csq@pdf@ooqmark{#1}%
+ \def\csq@pdf@coqmark{#2}%
+ \def\csq@pdf@oiqmark{#3}%
+ \def\csq@pdf@ciqmark{#4}}
+
+\@onlypreamble\DeclarePlainStyle
+
+%% Define package options
+
+\newcommand*{\DeclareQuoteOption}[1]{%
+ \define@key{csq}{#1}{\DeclareQuoteAlias[##1]{#1}{#1}}}
+
+\AtEndOfPackage{%
+ \def\DeclareQuoteOption#1{%
+ \csq@warn@location\DeclareQuoteOption}}
+
+%% Set defaults
+
+\newcommand*{\SetBlockThreshold}[1]{%
+ \csq@tshold=#1\relax}
+
+\newcommand*{\SetBlockEnvironment}[1]{%
+ \csq@ifcsundefined{#1}
+ {\csq@err@notdef{#1}}
+ {\def\csq@blockenvironment{#1}}}
+
+\newcommand*{\SetCiteCommand}[1]{%
+ \csq@ifundefined{#1}
+ {\csq@err@notdef{#1}}
+ {\def\csq@cite{#1}}}
+
+% Legacy commands
+
+\newcommand*{\setblockthreshold}{%
+ \csq@warn@legacy\setblockthreshold\SetBlockThreshold}
+\newcommand*{\setblockenvironment}{%
+ \csq@warn@legacy\setblockenvironment\SetBlockEnvironment}
+
+%% Author interface to internal marks
+
+\newcommand*{\initoquote}{%
+ \csq@resetstyle
+ \csq@qlevel\@ne
+ \csq@theqmark@oinit}
+
+\newcommand*{\initiquote}{%
+ \csq@resetstyle
+ \csq@qlevel\tw@
+ \csq@theqmark@iinit}
+
+\newcommand*{\textooquote}{%
+ \csq@resetstyle
+ \csq@theqmark@oopen}
+
+\newcommand*{\textmoquote}{%
+ \csq@resetstyle
+ \csq@theqmark@omiddle}
+
+\newcommand*{\textcoquote}{%
+ \csq@resetstyle
+ \csq@theqmark@oclose}
+
+\newcommand*{\textoiquote}{%
+ \csq@resetstyle
+ \csq@theqmark@iopen}
+
+\newcommand*{\textmiquote}{%
+ \csq@resetstyle
+ \csq@theqmark@imiddle}
+
+\newcommand*{\textciquote}{%
+ \csq@resetstyle
+ \csq@theqmark@iclose}
+
+%% Space factor codes
+
+\csq@csdef{csq@sfcodes@OT1}{%
+ \sfcode 96=\z@ % textquoteleft
+ \sfcode 39=\z@ % textquoteright
+ \sfcode 92=\z@ % textquotedblleft
+ \sfcode 34=\z@ % textquotedblright
+}
+
+\csq@csdef{csq@sfcodes@T1}{%
+ \sfcode 96=\z@ % textquoteleft
+ \sfcode 39=\z@ % textquoteright
+ \sfcode 16=\z@ % textquotedblleft
+ \sfcode 17=\z@ % textquotedblright
+ \sfcode 13=\z@ % quotesinglbase
+ \sfcode 18=\z@ % quotedblbase
+ \sfcode 14=\z@ % guilsinglleft
+ \sfcode 15=\z@ % guilsinglright
+ \sfcode 19=\z@ % guillemotleft
+ \sfcode 60=\z@ % guillemotleft (<< ligature)
+ \sfcode 20=\z@ % guillemotright
+ \sfcode 62=\z@ % guillemotright (>> ligature)
+ \sfcode 34=\z@ % textquotedbl
+}
+
+\csq@csdef{csq@sfcodes@LY1}{%
+ \sfcode 96=\z@ % textquoteleft
+ \sfcode 39=\z@ % textquoteright
+ \sfcode147=\z@ % textquotedblleft
+ \sfcode148=\z@ % textquotedblright
+ \sfcode130=\z@ % quotesinglbase
+ \sfcode132=\z@ % quotedblbase
+ \sfcode139=\z@ % guilsinglleft
+ \sfcode155=\z@ % guilsinglright
+ \sfcode171=\z@ % guillemotleft
+ \sfcode187=\z@ % guillemotright
+ \sfcode129=\z@ % textquotesingle
+ \sfcode 34=\z@ % textquotedbl
+}
+
+%% Auxiliary commands for some styles
+
+% Wrappers for Omega primitives
+
+\newcommand*{\seteverylineleft}[1]{%
+ \csq@ifcsundefined{localleftbox}
+ {\csq@warn@noomega\csq@currentstyle}
+ {\leavevmode\null\localleftbox{#1}}}
+
+\newcommand*{\seteverylineright}[1]{%
+ \csq@ifcsundefined{localrightbox}
+ {\csq@warn@noomega\csq@currentstyle}
+ {\localrightbox{#1}}}
+
+% Improved spacing for French
+
+\newcommand*{\frenchnbspace}{%
+ \penalty\@M
+ \hskip 0.8\fontdimen2\font
+ plus 0.3\fontdimen3\font
+ minus 0.8\fontdimen4\font}
+
+\newcommand*{\mkfrenchopenquote}[1]{%
+ \leavevmode#1\frenchnbspace}
+
+\newcommand*{\mkfrenchclosequote}[1]{%
+ \frenchnbspace#1}
+
+\newcommand*{\initfrenchquotes}{%
+ \let\csq@themark\csq@frenchmark}
+
+% Prevent undesirable T1 ligatures (?` and !`)
+
+\newcommand*{\fixligatures}{%
+ \ifhmode
+ \ifnum\spacefactor>3000
+ \relax
+ \else
+ \ifnum\spacefactor=1007
+ \relax
+ \else
+ \ifnum\spacefactor=1008
+ \relax
+ \fi
+ \fi
+ \fi
+ \fi}
+
+%% Built-in backend styles
+
+\DeclareQuoteStyle[quotes]{danish}
+ {\quotedblbase}
+ {\textquotedblleft}
+ [0.05em]
+ {\textquoteright}% unsure
+ {\textquoteright}% unsure
+\DeclareQuoteStyle[guillemets]{danish}
+ {\guillemotright}
+ {\guillemotleft}
+ {\textquoteright}% unsure
+ {\textquoteright}% unsure
+\DeclareQuoteStyle{dutch}
+ {\quotedblbase}
+ {\textquotedblright}
+ [0.05em]
+ {\quotesinglbase}% unsure
+ {\textquoteright}% unsure
+\DeclareQuoteStyle[american]{english}% verified
+ {\textquotedblleft}
+ {\textquotedblright}
+ [0.05em]
+ {\textquoteleft}
+ {\textquoteright}
+\DeclareQuoteStyle[british]{english}% verified
+ {\textquoteleft}
+ {\textquoteright}
+ [0.05em]
+ {\textquotedblleft}
+ {\textquotedblright}
+\DeclareQuoteStyle[oldstyle]{english}% verified
+ [\seteverylineleft{\textquoteleft}]
+ {\textquoteleft}
+ {\textquoteright}
+ [0.05em]
+ {\textquotedblleft}
+ {\textquotedblright}
+\DeclareQuoteStyle{finnish}
+ {\textquotedblright}
+ {\textquotedblright}
+ [0.05em]
+ {\textquoteright}
+ {\textquoteright}
+\DeclareQuoteStyle[quotes]{french}
+ {\mkfrenchopenquote{\guillemotleft}}
+ {\mkfrenchclosequote{\guillemotright}}
+ {\textquotedblleft}
+ {\textquotedblright}
+\DeclareQuoteStyle[quotes*]{french}
+ {\mkfrenchopenquote{\guillemotleft}}
+ {\mkfrenchclosequote{\guillemotright}}
+ {\mkfrenchopenquote{\textquotedblleft}}
+ {\mkfrenchclosequote{\textquotedblright}}
+\DeclareQuoteStyle[guillemets]{french}
+ [\initfrenchquotes]
+ {\mkfrenchopenquote{\guillemotleft}}
+ [\mkfrenchopenquote{\guillemotleft}]
+ {\mkfrenchclosequote{\guillemotright}}
+ {\mkfrenchopenquote{\guillemotleft}}
+ {\mkfrenchclosequote{\guillemotright}}
+\DeclareQuoteStyle[guillemets*]{french}
+ [\initfrenchquotes]
+ {\mkfrenchopenquote{\guillemotleft}}
+ [\mkfrenchopenquote{\guillemotright}]
+ {\mkfrenchclosequote{\guillemotright}}
+ {\mkfrenchopenquote{\guillemotleft}}
+ {\mkfrenchclosequote{\guillemotright}}
+\DeclareQuoteStyle[oldstyle]{french}
+ [\initfrenchquotes
+ \seteverylineleft{\mkfrenchopenquote{\guillemotleft}}]
+ {\mkfrenchopenquote{\guillemotleft}}
+ {\mkfrenchclosequote{\guillemotright}}
+ {\mkfrenchopenquote{\guillemotleft}}
+ {\mkfrenchclosequote{\guillemotright}}
+\DeclareQuoteStyle[imprimerie]{french}
+ [\initfrenchquotes]
+ [\seteverylineleft{\guillemotleft\nobreakspace}]
+ {\guillemotleft\nobreakspace}
+ [\guillemotleft\nobreakspace]
+ {\nobreakspace\guillemotright}
+ {\guillemotleft\nobreakspace}
+ [\relax]
+ {\nobreakspace\guillemotright}
+\DeclareQuoteStyle[quotes]{german}% verified
+ {\quotedblbase}
+ {\textquotedblleft}
+ [0.05em]
+ {\quotesinglbase}
+ {\fixligatures\textquoteleft}
+\DeclareQuoteStyle[guillemets]{german}% verified
+ {\guillemotright}
+ {\guillemotleft}
+ [0.025em]
+ {\guilsinglright}
+ {\guilsinglleft}
+\DeclareQuoteStyle[swiss]{german}% verified
+ {\guillemotleft}
+ {\guillemotright}
+ [0.025em]
+ {\guilsinglleft}
+ {\guilsinglright}
+\DeclareQuoteStyle[quotes]{italian}
+ {\textquotedblleft}
+ {\textquotedblright}
+ [0.05em]
+ {\textquoteleft}
+ {\textquoteright}
+\DeclareQuoteStyle[guillemets]{italian}
+ {\guillemotleft}
+ [\textquotedblright]% unsure
+ {\guillemotright}
+ [0.025em]
+ {\textquotedblleft}
+ {\textquotedblright}
+\DeclareQuoteStyle[guillemets]{norwegian}
+ {\guillemotleft}
+ {\guillemotright}
+ [0.025em]
+ {\guilsinglleft}
+ {\guilsinglright}
+\DeclareQuoteStyle[quotes]{norwegian}
+ {\quotedblbase}
+ {\textquotedblright}
+ [0.05em]
+ {\quotesinglbase}
+ {\textquoteright}
+\DeclareQuoteStyle{spanish}% verified
+ {\guillemotleft}
+ [\guillemotright]
+ {\guillemotright}
+ [0.025em]
+ {\textquotedblleft}
+ [\textquotedblright]
+ {\textquotedblright}
+\DeclareQuoteStyle[quotes]{swedish}% verified
+ {\textquotedblright}
+ {\textquotedblright}
+ [0.05em]
+ {\textquoteright}
+ {\textquoteright}
+\DeclareQuoteStyle[guillemets]{swedish}% verified
+ {\guillemotright}
+ {\guillemotright}
+ [0.025em]
+ {\guilsinglright}
+ {\guilsinglright}
+
+% Fallback style
+
+\DeclareQuoteStyle{fallback}
+ {\csq@dummymark}
+ {\csq@dummymark}
+ {\csq@dummymark}
+ {\csq@dummymark}
+
+\def\csq@dummymark{\textbf{?}}
+\def\csq@errormark{\rule{1ex}{1ex}}
+
+% PDF strings
+
+\DeclarePlainStyle{"}{"}{'}{'}
+
+%% Built-in aliases
+
+\DeclareQuoteAlias[american]{english}{american}
+\DeclareQuoteAlias[american]{english}{canadian}
+\DeclareQuoteAlias[american]{english}{english}
+\DeclareQuoteAlias[british]{english}{british}
+\DeclareQuoteAlias[guillemets]{norwegian}{norwegian}
+\DeclareQuoteAlias[quotes]{danish}{danish}
+\DeclareQuoteAlias[quotes]{french}{french}
+\DeclareQuoteAlias[quotes]{german}{austrian}
+\DeclareQuoteAlias[quotes]{german}{german}
+\DeclareQuoteAlias[quotes]{italian}{italian}
+\DeclareQuoteAlias[quotes]{swedish}{swedish}
+\DeclareQuoteAlias[swiss]{german}{swiss}
+
+% Babel aliases
+
+\DeclareQuoteAlias{american}{USenglish}
+\DeclareQuoteAlias{american}{usenglish}
+\DeclareQuoteAlias{british}{UKenglish}
+\DeclareQuoteAlias{british}{ukenglish}
+\DeclareQuoteAlias{french}{frenchb}
+\DeclareQuoteAlias{german}{ngerman}
+\DeclareQuoteAlias{austrian}{naustrian}
+\DeclareQuoteAlias{norwegian}{norsk}
+\DeclareQuoteAlias{norwegian}{nynorsk}
+
+%% Package options
+
+\newcommand*{\ExecuteQuoteOptions}{\setkeys{csq}}
+\@onlypreamble\ExecuteQuoteOptions
+
+% Core options
+
+\define@key{csq}{strict}[true]{%
+ \csq@ifcsundefined{csq@opt@strict@#1}
+ {\csq@err@invldopt{strict=#1}}
+ {\@nameuse{csq@opt@strict@#1}}}
+\def\csq@opt@strict@true{%
+ \csq@info{Enabling strict warnings}%
+ \let\csq@warning\csq@warning@strict}
+\def\csq@opt@strict@false{%
+ \csq@info{Disabling strict warnings}%
+ \let\csq@warning\csq@warning@loose}
+
+\define@key{csq}{babel}[true]{%
+ \csq@ifcsundefined{csq@opt@babel@#1}
+ {\csq@err@invldopt{babel=#1}}
+ {\@nameuse{csq@opt@babel@#1}}}
+\def\csq@opt@babel@false{%
+ \csq@info{Disabling multilingual support}%
+ \csq@reset\z@}
+\def\csq@opt@babel@true{%
+ \csq@info{Enabling multilingual support}%
+ \csq@reset\@ne}
+\def\csq@opt@babel@try{%
+ \csq@reset\tw@}
+\def\csq@opt@babel@once{%
+ \csq@reset\thr@@}
+\def\csq@opt@babel@tryonce{%
+ \csq@reset4\relax}
+
+\define@key{csq}{style}{%
+ \csq@opt@babel@false
+ \DeclareQuoteAlias{#1}{default}}
+
+% Language options
+
+\DeclareQuoteOption{danish}
+\DeclareQuoteOption{english}
+\DeclareQuoteOption{french}
+\DeclareQuoteOption{german}
+\DeclareQuoteOption{italian}
+\DeclareQuoteOption{norwegian}
+\DeclareQuoteOption{swedish}
+
+%% Initial setup
+
+% Set defaults
+
+\DeclareQuoteAlias[american]{english}{default}
+
+\csq@ifcsundefined{quote}
+ {\csq@info{%
+ The `quote' environment appears to be undefined.\MessageBreak
+ I'm defining a typical `quote' environment now}
+ \def\quote{%
+ \list{}{\rightmargin\leftmargin}%
+ \item\relax}
+ \def\endquote{\endlist}}
+ {}
+
+\SetBlockEnvironment{quote}
+\SetBlockThreshold{3}
+\SetCiteCommand{\cite}
+
+%% Last minute setup
+
+\AtBeginDocument{%
+ \@ifpackageloaded{babel}
+ {\csq@mkbabel}
+ {\csq@mknobabel}%
+ \let\csq@mkbabel\csq@undefined
+ \let\csq@mknobabel\csq@undefined
+ \@ifpackageloaded{hyperref}
+ {\expandafter\pdfstringdefDisableCommands
+ \expandafter{\csq@mkhyperref}}
+ {}%
+ \let\csq@mkhyperref\csq@undefined
+ \csq@add\@noligs{\@verbatimquotes}%
+ \@ifpackageloaded{verbatim}
+ {\addto@hook\every@verbatim{\@verbatimquotes}}
+ {}%
+ \@ifpackageloaded{fancyvrb}
+ {\csq@add\FV@CatCodes{\@verbatimquotes}}
+ {}%
+ \@ifpackageloaded{amsmath}
+ {\let\csq@collect@body\collect@body
+ \def\collect@body{\@disablequotes\csq@collect@body}}
+ {\@ifpackageloaded{amstext}
+ {\let\csq@collect@body\collect@body
+ \def\collect@body{\@disablequotes\csq@collect@body}}
+ {}}%
+ \@ifpackageloaded{endnotes}
+ {\BlockquoteDisable{%
+ \renewcommand{\endnote}[2][]{%
+ \csq@ifblank{#1}
+ {\endnotemark\relax}
+ {\endnotemark[#1]}}%
+ \renewcommand{\endnotetext}[2][]{}%
+ \let\addtoendnotes\@gobble}}
+ {}%
+ \csq@setstyle{default}%
+ \csq@mkenable}
+
+% Load configuration file
+
+\csq@info{Trying to load configuration file `csquotes.cfg'..}
+\InputIfFileExists{csquotes.cfg}
+ {\csq@info{... configuration file loaded successfully}}
+ {\csq@info{... configuration file not used}}
+
+% Process options
+
+\DeclareOption*{%
+ \begingroup
+ \edef\csq@tempa{\endgroup
+ \noexpand\setkeys{csq}{\CurrentOption}}%
+ \csq@tempa}
+\ProcessOptions*
+
+\endinput
diff --git a/Master/texmf-dist/doc/latex/hepthesis/example/example.pdf b/Master/texmf-dist/doc/latex/hepthesis/example/example.pdf
index 2109618b44c..5b213fb4a98 100644
--- a/Master/texmf-dist/doc/latex/hepthesis/example/example.pdf
+++ b/Master/texmf-dist/doc/latex/hepthesis/example/example.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/hepthesis/example/example.tex b/Master/texmf-dist/doc/latex/hepthesis/example/example.tex
index b37f1e42438..a7708ed2442 100644
--- a/Master/texmf-dist/doc/latex/hepthesis/example/example.tex
+++ b/Master/texmf-dist/doc/latex/hepthesis/example/example.tex
@@ -1,6 +1,11 @@
\documentclass{thesis}
\usepackage{thesis}
+%% You can set the line spacing this way
+%\setallspacing{double}
+%% or a section at a time like this
+%\setfrontmatterspacing{double}
+
%% PDF metadata
\makeatletter
\@ifpackageloaded{hyperref}{%
@@ -33,6 +38,32 @@ pdfauthor = {\textcopyright\ Andy Buckley}
%% To ignore a specific chapter while working on another,
%% making the build faster, comment it out like this:
%\input{chap3}
+
+
+\chapter{Continued captions}
+\label{chap:ContCaptions}
+
+Here are some funky ``continued captions''\dots
+
+\begin{figure}
+ \subfloat[][Example 1a]{\label{fig:cc1a}\rule{3cm}{3cm}}
+ \subfloat[][Example 1b]{\label{fig:cc1b}\rule{3cm}{3cm}}
+ \subfloat[][Example 1c]{\label{fig:cc1c}\rule{3cm}{3cm}}
+ \subfloat[][Example 1d]{\label{fig:cc1d}\rule{3cm}{3cm}}
+ \caption{Demonstration of \texttt{ccaption}.}
+ \label{fig:cc1}
+\end{figure}
+
+\begin{figure}
+ \ContinuedFloat
+ \subfloat[][Example 1e]{\label{fig:cc1e}\rule{3cm}{3cm}}
+ \subfloat[][Example 1f]{\label{fig:cc1f}\rule{3cm}{3cm}}
+ \subfloat[][Example 1g]{\label{fig:cc1g}\rule{3cm}{3cm}}
+ \subfloat[][Example 1h]{\label{fig:cc1h}\rule{3cm}{3cm}}
+ \caption[]{Demonstration of \texttt{ccaption} (continued).}
+ %\label{fig:cc1}
+\end{figure}
+
\end{mainmatter}
%% Produce the appendices
diff --git a/Master/texmf-dist/doc/latex/hepthesis/example/thesis.cls b/Master/texmf-dist/doc/latex/hepthesis/example/thesis.cls
index 17307ffeda1..46781ce9e08 100644
--- a/Master/texmf-dist/doc/latex/hepthesis/example/thesis.cls
+++ b/Master/texmf-dist/doc/latex/hepthesis/example/thesis.cls
@@ -1,6 +1,6 @@
\ProvidesClass{thesis}
%% For normal draft builds
-\LoadClass[hyperpdf,nobind,draft,sftitles]{hepthesis}
+\LoadClass[hyperpdf,nobind,draft,sftitles,twoside]{hepthesis}
%% For short draft builds (breaks citations by necessity)
%\LoadClass[hyperpdf,nobind,draft,hidefrontback]{hepthesis}
%% For Cambridge soft-bound version
@@ -11,8 +11,19 @@
%% -------------------------------------
%% Standard packages
%% -------------------------------------
-\RequirePackage{rotating}
\RequirePackage{cite}
%\RequirePackage{morefloats}
\RequirePackage{mathrsfs} % script font
\RequirePackage{afterpage}
+
+%% Using Babel allows other languages to be used and mixed-in easily
+\RequirePackage[ngerman,english]{babel}
+\selectlanguage{english}
+
+%% Quotes in different languages are different.
+%% Using \enquote{bla} automatically uses the correct quotes
+%% according to the Babel language that is set
+\RequirePackage[babel]{csquotes}
+
+%% Subfigures - note subfig is incompatible with ccaption
+\RequirePackage{subfig}
diff --git a/Master/texmf-dist/doc/latex/hepthesis/example/thesis.sty b/Master/texmf-dist/doc/latex/hepthesis/example/thesis.sty
index c6d4cc55e8a..c26f4c5b166 100644
--- a/Master/texmf-dist/doc/latex/hepthesis/example/thesis.sty
+++ b/Master/texmf-dist/doc/latex/hepthesis/example/thesis.sty
@@ -63,4 +63,3 @@
\def\gamma{gamma}%
}%
}{}
-
diff --git a/Master/texmf-dist/doc/latex/hepthesis/example/varwidth.sty b/Master/texmf-dist/doc/latex/hepthesis/example/varwidth.sty
new file mode 100644
index 00000000000..32c1a8fb639
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/hepthesis/example/varwidth.sty
@@ -0,0 +1,302 @@
+% varwidth.sty v 0.9a Mar 2003 Donald Arseneau asnd@triumf.ca
+%
+% Copyright 2003 by Donald Arseneau (asnd@triumf.ca).
+% This software is released under the terms of the LaTeX Project Public
+% License (ftp://ctan.tug.org/tex-archive/macros/latex/base/lppl.txt).
+% (Essentially: Free to use, copy, distribute (sell) and change, but, if
+% changed, the name must be changed.)
+%
+% The varwidth environment is based on minipage, and takes the same
+% parameters, but the specified width is just a maximum value -- the
+% environment will be typeset with a narrower "natural" width if
+% possible.
+%
+% In a varwidth environment, paragraph line-breaks are chosen
+% according to the specified width, but each line is reset to
+% match a narrower natural width, if there is one.
+%
+% The \narrowragged command works like \raggedright, but produces
+% generally narrower lines in paragraphs, but more text in the last
+% line (the lines have more-equal lengths).
+%
+% This version works fine, but there are still many questions about
+% how it would work best. Should there be a version that avoids the
+% usual minipage formatting style?
+%
+% Numbered equations are not handled well, especially with leqno.
+% AMSmath environments have not been tried, and undoubtedly fail.
+%
+% To do: Extend v-list wrappers to handle all e-TeX primitives.
+% (pdfTeX too?)
+% Capture marks and floats, propagating them out of the box
+% Support numbered equations, including ams math.
+%
+
+\ProvidesPackage{varwidth}[2003/03/10 ver 0.9a; \space
+ Variable-width minipages]
+
+\newcommand\narrowragged{\rightskip \z@ plus .25\hsize
+ \@rightskip\rightskip \parfillskip\z@ plus .15\hsize
+ \sloppy }
+
+\newbox\@vwid@box
+
+% The varwidth environment is based on minipage, and takes the same
+% parameters, but the specified width is only a limit -- a narrower
+% natural width may be used. \varwidth uses \minipage.
+
+\def\varwidth{\let\@minipagerestore\@vwid@setup \minipage}
+
+% Many things may appear on vertical lists that can't be re-processed,
+% so they have to be modified.
+
+\def\@vwid@setup{%
+ % several things can't appear in vertical mode, so they may get
+ % a \vbox wrapped around them.
+ \let\@bsphack\@vwid@bsphack % \label and others
+ \let\mark\@gobble % Marks disappear in minipages anyway
+ \let\@special\@vwid@special % \color and others
+ \let\addtocontents\@vwid@addtocontents % \addcontentsline
+ % Shifted boxes (\parshape,\hangindent) will have their shifts
+ % indicated in a separate box.
+ \let\@hangfrom\@vwid@hangfrom % hanging indents
+ \let\list\@vwid@list
+ \let\endtrivlist\@vwid@endtrivlist
+ \postdisplaypenalty\@vwid@posteqp
+ \predisplaypenalty\@vwid@preeqp
+ \def\@eqnnum{\aftergroup\@vwid@afterva\@@vwid@eqnnum}%
+ \global\@vwid@roff\z@ \global\@vwid@loff\z@
+ % Begin an inner minipage-like vertical box (in \@tempboxa)
+ \let\@minipagerestore\@@vwid@minipagerestore \@minipagerestore
+ \setbox\@tempboxa\vbox\bgroup\begingroup
+ % Flag the top of the list
+ \penalty\@vwid@toppen
+}
+
+\let\@@vwid@minipagerestore\@minipagerestore
+
+% At end of varwidth environment.
+\def\endvarwidth{\par\@@par
+ % Handle minipage-style notes.
+ \ifvoid\@mpfootins\else
+ \vskip\skip\@mpfootins
+ \normalcolor
+ \@vwid@wrap\footnoterule
+ \unvbox\@mpfootins
+ \fi
+ \unskip
+ \endgroup\egroup % got my \@tempboxa
+% {\showoutput\showbox\@tempboxa}%
+ % in a discarded box, sift through list measuring max width.
+ \begingroup\setbox\z@\vbox\bgroup
+%\message{-------------------------------------------------------------}%
+%\message{First pass; hsize=\the\hsize... }%{\tracingall\showlists}%%
+ \unvcopy\@tempboxa
+ \@tempdima-\maxdimen
+ \let\@vwid@resetb\@vwid@measure
+ \let\@vwid@append\relax
+ \sift@deathcycles\z@
+ \@vwid@sift
+ \xdef\@vwid@{\the\@tempdima}%
+ \egroup\endgroup
+ % Done measuring. Now empty \@tempboxa onto current vertical list
+ % which is the contents of a minipage environment
+%\message{Got natural width \@vwid@. }%
+ \unvbox\@tempboxa
+ % If the natural width is narrower, then go back through the list
+ % reboxing and moving everything into \@vwid@box; then spill \@vwid@box
+ \ifdim\@vwid@<\hsize
+ \hsize\@vwid@
+ \setbox\@vwid@box\vbox{}%
+ \sift@deathcycles\z@
+%\message{----------------------------------------------------------------}%
+%\message{Second pass; hsize=\the\hsize... }%{\tracingall\showlists}%
+ \@vwid@sift
+ \unvbox\@vwid@box
+ \fi
+ % end the minipage environment
+ \endminipage}
+
+%
+% Here are definitions for sifting through the vertical list, either
+% measuring things or reboxing them.
+%
+% Penalties used as signals to the vertical-list processor:
+
+\mathchardef\@vwid@posteqp 17321 % Penalty below equations
+\mathchardef\@vwid@preeqp 17322 % Penalty above equations
+\mathchardef\@vwid@postnump 17323 % Penalty below numbered equations
+\mathchardef\@vwid@toppen 17324 % Penalty marking top of vertical list
+\mathchardef\@vwid@offsets 17325 % Penalty below special h-offsets box
+\mathchardef\@vwid@postw 17326 % Penalty below a \vbox-wrapped object
+
+\newcount\sift@deathcycles
+
+\def\@vwid@sift{%
+ \skip@\lastskip\unskip
+ \dimen@\lastkern\unkern
+ \count@\lastpenalty\unpenalty
+ \setbox\z@\lastbox
+%{\showoutput\showbox\z@}%
+ \ifvoid\z@ \advance\sift@deathcycles\@ne \else \sift@deathcycles\z@ \fi
+ \ifnum\sift@deathcycles>33
+ \let\@vwid@sift\relax
+ \PackageWarning{varwidth}{Failed to reprocess entire contents}%
+ \fi
+%\message{\the\sift@deathcycles: skip \the\skip@; kern \the\dimen@; penalty \the\count@. }%
+%\ifhbox\z@\setbox99\hbox to0pt{\unhcopy\z@}\fi % = message
+ \ifnum\count@=\@vwid@preeqp \@vwid@eqmodefalse\fi
+%\ifnum\count@=\@vwid@preeqp \message{End equation mode. }\fi
+ \ifnum\count@=\@vwid@posteqp \@vwid@eqmodetrue\fi
+%\ifnum\count@=\@vwid@posteqp\message{Begin equation mode. }\fi
+%\if@vwid@eqmode {\showoutput\showbox\z@}\fi
+ \ifnum\count@=\@vwid@toppen % finished
+ \let\@vwid@sift\relax
+ \else\ifnum\count@=\@vwid@offsets
+ \@vwid@setoffsets
+ \else
+ \ifnum\count@=\@vwid@postw
+ \else
+ \@vwid@resetb % reset box \z@ or measure it
+ \fi
+ \@vwid@append
+ \fi\fi
+ \@vwid@sift}
+
+\def\@vwid@setoffsets{%
+ \setbox\z@=\hbox{\unhbox\z@
+ \global\@vwid@roff\lastkern\unkern
+ \global\@vwid@loff\lastkern\unkern}%
+%\message{Set offsets to \the\@vwid@loff, \the\@vwid@roff. }%
+}
+
+\def\@vwid@append{% Append contents of box \z@ and glue to \@vwid@box
+ \setbox\@vwid@box\vbox{%
+ \unvbox\z@
+ \ifdim\dimen@=\z@\else \kern\dimen@ \fi
+ \vskip\skip@
+ \unvbox\@vwid@box
+ }%{\tracingall\showbox\@vwid@box}%
+}
+
+% reset box \z@ to \hsize, applying shifts, and wrap in vbox
+% Don't worry about numbered equations because we won't get
+% here if there are any.
+\def\@vwid@resetb{%
+ \setbox\z@\vbox\bgroup
+ \ifvoid\z@
+ \else
+ \ifvbox\z@
+ \box\z@
+ \else % \hbox
+ \@tempdima\hsize
+ \advance\@tempdima-\@vwid@roff
+ \advance\@tempdima-\@vwid@loff
+ \advance\@tempdima-\p@
+ \ifdim\wd\z@>\@tempdima % full-width line; rebox it
+%\message{An ordinary line or alignment. }%
+ \hbox to\hsize
+ {\kern\@vwid@loff \unhbox\z@ \kern\@vwid@roff}%
+ \else % an equation or direct \hbox
+ \if@vwid@eqmode % re-center unnumbered equations
+%\message{A centered equation hsize=\the\hsize. }%
+ \hbox to\hsize
+ {\hskip\@vwid@loff\@plus1fil
+ \unhbox\z@ \hskip\@vwid@roff\@plus1fil}%
+ \else % plain narrow \hbox; leave it as-is
+ \box\z@
+ \fi\fi\fi\fi
+ \egroup}
+
+\def\@vwid@measure{%
+ \ifvoid\z@
+ \else
+ % numbered equations not part of alignments can't be reset,
+ % so force retention of full width.
+ \ifnum\count@=\@vwid@postnump \ifdim\wd\z@<\linewidth
+ \ifdim\@tempdima<\linewidth \@tempdima\linewidth \fi
+ \fi\fi
+ \ifhbox\z@
+ \setbox\z@=\hbox
+ {\kern\@vwid@loff \unhbox\z@ \kern\@vwid@roff}%
+ \fi
+ \ifdim\wd\z@>\@tempdima \@tempdima\wd\z@ \fi
+ \fi}
+
+\newdimen\@vwid@loff
+\newdimen\@vwid@roff
+
+\let\@@bsphack\@bsphack
+\let\@@esphack\@esphack
+\let\@@esphack\@Esphack
+
+\def\@vwid@bsphack{\@@bsphack
+ \ifx\@vwid@wrap\@firstofone
+ \bgroup
+ \else
+ \ifvmode
+ \setbox\@vwid@box \vbox\bgroup \vbox\bgroup
+ \let\@vwid@wrap\@firstofone
+ \def\@esphack{\@vwid@esphack\@@esphack}%
+ \def\@Esphack{\@vwid@esphack\@@Esphack}%
+ \fi
+ \fi}
+
+\def\@vwid@esphack{\egroup
+ \ifx\@vwid@wrap\@firstofone\else
+ \egroup % end outer box
+ \unvbox\@vwid@box % put inner box on list without lineskip
+ \penalty\@vwid@postw
+ \fi}
+
+% \vbox Wrapper for misc vlist items
+\long\def\@vwid@wrap{\relax
+ \ifvmode\expandafter\@vwid@dowrap \else \expandafter\@firstofone \fi}
+\long\def\@vwid@dowrap#1{%
+ \setbox\@vwid@box \vbox{\vbox{\let\@vwid@wrap\@firstofone
+ #1}\penalty\@vwid@postw
+ }\unvbox\@vwid@box }
+
+\let\@@vwid@special\special
+\let\@@vwid@addtocontents\addtocontents
+\let\@@vwid@list\list
+\let\@@vwid@endtrivlist\endtrivlist
+\let\@@vwid@eqnnum\@eqnnum
+
+\long\def\@vwid@special#1{\@vwid@wrap{\@@vwid@special{#1}}}
+\long\def\@vwid@addtocontents#1#2{\@vwid@wrap{\@@vwid@addtocontents{#1}{#2}}}
+
+\long\def\@vwid@hangfrom#1{\par
+ \setbox\@tempboxa\hbox{{#1}}%
+ \setbox\@vwid@box \vbox{\hbox{\kern\z@ \kern\z@
+ }\penalty\@vwid@offsets}\unvbox\@vwid@box
+ \def\par{\relax\ifhmode\unskip\fi
+ \vadjust{\hbox{\kern\hangindent\kern\z@}\penalty\@vwid@offsets}%
+ \@restorepar\par}%
+ \hangindent \wd\@tempboxa\noindent\box\@tempboxa}
+
+\def\@vwid@list{\@vwid@setlist\@@vwid@list}
+\def\@vwid@endtrivlist{\@vwid@setlist\@@vwid@endtrivlist}
+
+\def\@vwid@setlist{\relax\ifhmode \unskip\expandafter\vadjust\fi
+ {\setbox\@vwid@box \vbox{\hbox{%
+ \advance\hsize-\linewidth \advance\hsize-\@totalleftmargin
+ \kern\@totalleftmargin \kern\hsize}%
+ \penalty\@vwid@offsets}%
+ \unvbox\@vwid@box}}
+
+\newif\if@vwid@eqmode
+
+\def\@vwid@afterva{\vadjust{\penalty\@vwid@postnump}}
+
+% Should I do this? ...
+
+\@ifundefined{newcolumntype}{}{%
+ \@ifundefined{NC@rewrite@V}{
+ \newcolumntype{V}[1]{%
+ >{\begin{varwidth}[t]{#1}\narrowragged\let\\\tabularnewline}%
+ l%
+ <{\@finalstrut\@arstrutbox\end{varwidth}}}
+ }{}
+}
+