From 182e0db3c4b16562035d72d4859125662fa81014 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 2 Apr 2007 18:57:59 +0000 Subject: csquotes 3.7 (26mar07) git-svn-id: svn://tug.org/texlive/trunk@4097 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/csquotes/csquotes.sty | 291 +++++++++++----------- 1 file changed, 146 insertions(+), 145 deletions(-) (limited to 'Master/texmf-dist/tex/latex/csquotes/csquotes.sty') diff --git a/Master/texmf-dist/tex/latex/csquotes/csquotes.sty b/Master/texmf-dist/tex/latex/csquotes/csquotes.sty index 3f28890bb73..f26ae8bae8d 100644 --- a/Master/texmf-dist/tex/latex/csquotes/csquotes.sty +++ b/Master/texmf-dist/tex/latex/csquotes/csquotes.sty @@ -1,6 +1,6 @@ -% $Id: csquotes.sty,v 3.6 2006/11/09 21:55:06 lehman stable $ +% $Id: csquotes.sty,v 3.7 2007/03/25 20:23:41 lehman stable $ -% Copyright (c) 2003--2006 Philipp Lehman, author-maintained. +% 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 @@ -12,7 +12,7 @@ % purpose. \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{csquotes}[2006/11/09 v3.6 Quotation facilities] +\ProvidesPackage{csquotes}[2007/03/25 v3.7 Quotation facilities] %% Compatibility and requirements @@ -45,7 +45,7 @@ \AtEndOfPackage{% \def\do#1#2{\catcode`#1=#2\relax} \csq@docatcodes - \let\csq@docatcodes\@undefined + \let\csq@docatcodes\csq@undefined \let\do\noexpand} \catcode`\~=\active @@ -57,14 +57,12 @@ \newif\ifcsq@block \newif\ifcsq@quiet -\newif\ifcsq@reset -\newif\ifcsq@ronce \newif\ifcsq@active +\newcount\csq@reset \newcount\csq@gtype \newcount\csq@glevel \newcount\csq@qlevel -\newcount\csq@lastsf \newcount\csq@tshold \def\csq@ifcsundefined#1{% @@ -149,6 +147,7 @@ \long\def\csq@ifblank@i#1#2#4#5:{#4} \providecommand*{\ifstringblank}{\csq@ifblank} + \newcommand*{\ifblockquote}{% \ifcsq@block \expandafter\@firstoftwo @@ -479,7 +478,6 @@ \fi} \def\csq@qclose@i{% - \csq@setlastsf \expandafter\def \expandafter\csq@tempa \expandafter{% @@ -487,7 +485,6 @@ \expandafter\def \expandafter\csq@kerntok@i \expandafter{\csq@kerntok@i}}% - \csq@eadd\csq@tempa{\csq@lastsf\the\csq@lastsf\relax}% \csq@tempa} \def\csq@qerror{% @@ -615,7 +612,17 @@ \fi \fi} -%% Detect terminal punctuation +%% 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} @@ -632,12 +639,12 @@ \let\nonfrenchspacing\csq@setencodes} \def\csq@setfrcodes{% - \sfcode`\,=1002 - \sfcode`\;=1003 - \sfcode`\:=1004 - \sfcode`\.=1005 - \sfcode`\!=1006 - \sfcode`\?=1007 + \sfcode`\,=1003 + \sfcode`\;=1004 + \sfcode`\:=1005 + \sfcode`\.=1006 + \sfcode`\!=1007 + \sfcode`\?=1008 } \def\csq@setencodes{% @@ -649,75 +656,73 @@ \sfcode`\?=3002 } -\csq@csdef{csq@frcode@1001}{1001}% abbrv. dot -\csq@csdef{csq@frcode@1250}{1002} -\csq@csdef{csq@frcode@1500}{1003} -\csq@csdef{csq@frcode@2000}{1004} -\csq@csdef{csq@frcode@3000}{1005} -\csq@csdef{csq@frcode@3001}{1006} -\csq@csdef{csq@frcode@3002}{1007} +\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@setlastsf{% +\def\csq@spacefactor{% \ifhmode - \csq@lastsf\spacefactor - \csq@ifcsundefined{csq@frcode@\the\csq@lastsf} - {} - {\csq@lastsf\@nameuse{csq@frcode@\the\csq@lastsf}\relax}% + \@ifundefined{csq@sfactor@\the\spacefactor} + {\the\spacefactor} + {\@nameuse{csq@sfactor@\the\spacefactor}}% \else - \csq@lastsf\@m + 1000% \fi} \newcommand*{\ifquotepunct}{% - \ifnum\csq@lastsf>1001 + \ifnum\csq@spacefactor>1002 \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi} \newcommand*{\ifquotecomma}{% - \ifnum\csq@lastsf=1002 + \ifnum\csq@spacefactor=1003 \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi} \newcommand*{\ifquotesemicolon}{% - \ifnum\csq@lastsf=1003 + \ifnum\csq@spacefactor=1004 \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi} \newcommand*{\ifquotecolon}{% - \ifnum\csq@lastsf=1004 + \ifnum\csq@spacefactor=1005 \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi} \newcommand*{\ifquoteterm}{% - \ifnum\csq@lastsf>1004 + \ifnum\csq@spacefactor>1005 \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi} \newcommand*{\ifquoteperiod}{% - \ifnum\csq@lastsf=1005 + \ifnum\csq@spacefactor=1006 \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi} \newcommand*{\ifquoteexclam}{% - \ifnum\csq@lastsf=1006 + \ifnum\csq@spacefactor=1007 \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi} \newcommand*{\ifquotequestion}{% - \ifnum\csq@lastsf=1007 + \ifnum\csq@spacefactor=1008 \expandafter\@firstoftwo \else \expandafter\@secondoftwo @@ -740,7 +745,7 @@ \csq@tempa}} \def\csq@resetstyle{% - \ifcsq@reset + \ifnum\csq@reset=\@ne \ifx\csq@currentstyle\languagename \else \csq@ifcsundefined{csq@qstyle@\languagename} @@ -798,18 +803,25 @@ {} {\let\l@ukenglish\l@UKenglish}} {}% - \ifcsq@ronce - \DeclareQuoteAlias{\languagename}{default}% + \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{% - \ifcsq@reset + \ifcase\csq@reset + \or \csq@warn@nobabel{Cannot enable multilingual support}% - \csq@resetfalse - \fi - \ifcsq@ronce - \csq@warn@nobabel{Cannot adjust language}% + \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 @@ -930,10 +942,11 @@ % {}{}{}{}{} \long\def\csq@tquote#1#2#3#4#5{% - \csq@checkblockcite \csq@bqgroup \def\csq@tempa{% - \csq@qclose\mkmidtextpunct{#4}}% + \mkpretextpunct{#4}% + \csq@qclose + \mkmidtextpunct{#4}}% \csq@ifblank{#3} {} {\csq@add\csq@tempa{#2{#3}}}% @@ -1026,16 +1039,11 @@ \def\@elt##1{\global\value{##1}\the\value{##1}\relax}% \edef\csq@tempa{\cl@@ckpt}% \let\@elt\relax - \let\csq@nbgobble\@gobble - \let\csq@bquote\@gobblefive - \let\csq@error\@gobbletwo - \let\csq@warning\@gobblethree - \let\csq@info\@gobble \csq@mkblockquote \@fileswfalse \csq@blockfalse - \def\par{\aftergroup\csq@blocktrue\@par}% \setbox\@tempboxa=\vbox{% + \def\par{\aftergroup\csq@blocktrue\@par}% \parfillskip\z@ \@plus 1fil\relax \parindent\z@ \vrule \@height1\baselineskip \@width\z@ #1#5}% @@ -1054,23 +1062,26 @@ \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{% - \csq@checkblockcite \begin{\csq@blockenvironment}% \csq@blocktrue \begingroup#1% \csq@setsfcodes \quoteblock #5% + \mkpreblockpunct{#4}% \endquoteblock - \csq@setlastsf \mkmidblockpunct{#4}% - \expandafter\endgroup - \expandafter\csq@lastsf\the\csq@lastsf\relax + \endgroup \csq@ifblank{#3} {} {#2{#3}}% @@ -1078,10 +1089,11 @@ \end{\csq@blockenvironment}} \long\def\csq@bquote@iii#1#2#3#4#5{% - \csq@checkblockcite \csq@bqgroup \def\csq@tempa{% - \csq@qclose\mkmidblockpunct{#4}}% + \mkpreblockpunct{#4}% + \csq@qclose + \mkmidblockpunct{#4}}% \csq@ifblank{#3} {} {\csq@add\csq@tempa{#2{#3}}}% @@ -1145,7 +1157,6 @@ % {}{}{}{} \def\csq@dquote#1#2#3#4{% - \csq@checkblockcite \csq@ifblank{#3} {\let\csq@tempb\@empty} {\def\csq@tempb{#2{#3}}}% @@ -1161,12 +1172,12 @@ \def\csq@edquote{% \ifdim\lastskip>\z@\unskip\fi + \expandafter\mkpredisppunct + \expandafter{\csq@tempc}% \endquoteblock - \csq@setlastsf \expandafter\mkmiddisppunct \expandafter{\csq@tempc}% - \expandafter\endgroup - \expandafter\csq@lastsf\the\csq@lastsf\relax + \endgroup \csq@tempb \expandafter\mkfindisppunct \expandafter{\csq@tempc}% @@ -1210,10 +1221,13 @@ \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} @@ -1222,26 +1236,6 @@ % Legacy commands -\def\csq@err@blockcite{% - \csq@error - {`\string\blockcite' is deprecated} - {Please use `\string\mkcitation' instead}} -\let\blockcite\csq@err@blockcite - -\def\csq@checkblockcite{% - \ifx\blockcite\csq@err@blockcite - \else - \csq@warning - {`\string\blockcite' superseded by - `\string\mkcitation'.\MessageBreak As a workaround, I will - copy the current definition\MessageBreak of - `\string\blockcite' to `\string\mkcitation'} - {`\string\blockcite' is deprecated} - {Please use `\string\mkcitation' instead}% - \let\mkcitation\blockcite - \let\blockcite\csq@err@blockcite - \fi} - \newcommand*{\cquote}{% \csq@warn@legacy\cquote\textcquote} \newcommand*{\foreigncquote}{% @@ -1291,21 +1285,21 @@ \def\csq@do@delspecial#1#2{% \csq@info{Deallocating character \string#1}% - \csq@cslet{csq@special@\number`#1}\@undefined - \csq@cslet{csq@saved@\number`#1}\@undefined - \csq@cslet{csq@string@\number`#1}\@undefined - \csq@cslet{csq@textdef@\number`#1}\@undefined - \csq@cslet{csq@xtxtdef@\number`#1}\@undefined - \csq@cslet{csq@pdfdef@\number`#1}\@undefined} + \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}}\@undefined - \csq@cslet{csq@saved@\csq@number{#1}}\@undefined - \csq@cslet{csq@string@\csq@number{#1}}\@undefined - \csq@cslet{csq@textdef@\csq@number{#1}}\@undefined - \csq@cslet{csq@xtxtdef@\csq@number{#1}}\@undefined - \csq@cslet{csq@pdfdef@\csq@number{#1}}\@undefined} + \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 @@ -1700,7 +1694,7 @@ \csq@resrvdchars\relax} \def\csq@resrvdchars{% - \do\[\do\]\do\@\do\*\do\~\do\-\do\`\do\'\do\.\do\,\do\;\do\:% + \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} % {}{}{} @@ -1746,6 +1740,8 @@ \expandafter\@secondoftwo \fi} +\def\csq@isvalid#1#2#3{#2} + % User interface \newcommand*{\MakeOuterQuote}[1]{% @@ -1756,19 +1752,33 @@ \csq@addspecial{#1}{\csq@iqmark} {\csq@pdf@oiqmark}{\csq@pdf@ciqmark}} -\newcommand*{\MakeAutoQuote}[2]{% - \csq@addspecial{#1}{\csq@qopen}{\csq@pdf@ooqmark}{}% - \csq@addspecial{#2}{\csq@qclose}{\csq@pdf@coqmark}{}} +\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}[3]{% - \csq@addspecial{#2}{\csq@bqgroup\csq@lang{#1}\csq@qopen@i}% +\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{#3}{\csq@qclose}{\csq@pdf@coqmark}{}} + \csq@addspecial{#4}{\csq@qclose}{\csq@pdf@coqmark}{}} -\newcommand*{\MakeHyphenQuote}[3]{% - \csq@addspecial{#2}{\csq@bqgroup\csq@hyph{#1}\csq@qopen@i}% +\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{#3}{\csq@qclose}{\csq@pdf@coqmark}{}} + \csq@addspecial{#4}{\csq@qclose}{\csq@pdf@coqmark}{}} \newcommand*{\MakeBlockQuote}[3]{% \csq@addbspecial{#1}{#2}{#3}{\csq@bquote{}{\mkcitation}}} @@ -1831,9 +1841,9 @@ {\csq@setqstyle[]}}} \def\csq@setqstyle[#1]#2{% - \ifcsq@reset + \ifnum\csq@reset=\@ne \csq@info{Disabling multilingual support}% - \csq@resetfalse + \csq@reset\z@ \fi \csq@ifblank{#1} {\csq@setstyle{#2}} @@ -1841,7 +1851,7 @@ \def\csq@resetqstyle{% \csq@info{Enabling multilingual support}% - \csq@resettrue} + \csq@reset\@ne} %% Define quote styles @@ -2077,10 +2087,10 @@ \ifnum\spacefactor>3000 \relax \else - \ifnum\spacefactor=1005 + \ifnum\spacefactor=1007 \relax \else - \ifnum\spacefactor=1006 + \ifnum\spacefactor=1008 \relax \fi \fi @@ -2215,13 +2225,13 @@ {\quotesinglbase} {\textquoteright} \DeclareQuoteStyle{spanish}% verified - {\guillemotleft} - [\guillemotright] - {\guillemotright} - [0.025em] - {\textquotedblleft} - [\textquotedblright]% unsure - {\textquotedblright} + {\guillemotleft} + [\guillemotright] + {\guillemotright} + [0.025em] + {\textquotedblleft} + [\textquotedblright] + {\textquotedblright} \DeclareQuoteStyle[quotes]{swedish}% verified {\textquotedblright} {\textquotedblright} @@ -2279,16 +2289,8 @@ %% Package options -\newcommand*{\ExecuteQuoteOptions}[1]{% - \begingroup - \let\if@safe@actives\iftrue - \edef\csq@tempa{\endgroup - \noexpand\setkeys{csq}{#1}}% - \csq@tempa} - -\AtBeginDocument{% - \def\ExecuteQuoteOptions#1{% - \csq@warn@location\ExecuteQuoteOptions}} +\newcommand*{\ExecuteQuoteOptions}{\setkeys{csq}} +\@onlypreamble\ExecuteQuoteOptions % Core options @@ -2307,17 +2309,18 @@ \csq@ifcsundefined{csq@opt@babel@#1} {\csq@err@invldopt{babel=#1}} {\@nameuse{csq@opt@babel@#1}}} -\def\csq@opt@babel@true{% - \csq@info{Enabling multilingual support}% - \csq@resettrue - \csq@roncefalse} \def\csq@opt@babel@false{% \csq@info{Disabling multilingual support}% - \csq@resetfalse - \csq@roncefalse} + \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@resetfalse - \csq@roncetrue} + \csq@reset\thr@@} +\def\csq@opt@babel@tryonce{% + \csq@reset4\relax} \define@key{csq}{style}{% \csq@opt@babel@false @@ -2359,13 +2362,13 @@ \@ifpackageloaded{babel} {\csq@mkbabel} {\csq@mknobabel}% - \let\csq@mkbabel\@undefined - \let\csq@mknobabel\@undefined + \let\csq@mkbabel\csq@undefined + \let\csq@mknobabel\csq@undefined \@ifpackageloaded{hyperref} {\expandafter\pdfstringdefDisableCommands \expandafter{\csq@mkhyperref}} {}% - \let\csq@mkhyperref\@undefined + \let\csq@mkhyperref\csq@undefined \csq@add\@noligs{\@verbatimquotes}% \@ifpackageloaded{verbatim} {\addto@hook\every@verbatim{\@verbatimquotes}} @@ -2374,11 +2377,11 @@ {\csq@add\FV@CatCodes{\@verbatimquotes}} {}% \@ifpackageloaded{amsmath} - {\let\ams@collect@body\collect@body - \def\collect@body{\@disablequotes\ams@collect@body}} + {\let\csq@collect@body\collect@body + \def\collect@body{\@disablequotes\csq@collect@body}} {\@ifpackageloaded{amstext} - {\let\ams@collect@body\collect@body - \def\collect@body{\@disablequotes\ams@collect@body}} + {\let\csq@collect@body\collect@body + \def\collect@body{\@disablequotes\csq@collect@body}} {}}% \@ifpackageloaded{endnotes} {\BlockquoteDisable{% @@ -2390,8 +2393,7 @@ \let\addtoendnotes\@gobble}} {}% \csq@setstyle{default}% - \csq@mkenable - \csq@checkblockcite} + \csq@mkenable} % Load configuration file @@ -2404,7 +2406,6 @@ \DeclareOption*{% \begingroup - \let\if@safe@actives\iftrue \edef\csq@tempa{\endgroup \noexpand\setkeys{csq}{\CurrentOption}}% \csq@tempa} -- cgit v1.2.3