summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex/biblatex.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex/biblatex.sty')
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/biblatex.sty163
1 files changed, 96 insertions, 67 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex/biblatex.sty b/Master/texmf-dist/tex/latex/biblatex/biblatex.sty
index 94fe2dfdf73..61a6ae51e73 100644
--- a/Master/texmf-dist/tex/latex/biblatex/biblatex.sty
+++ b/Master/texmf-dist/tex/latex/biblatex/biblatex.sty
@@ -1,4 +1,4 @@
-% $Id: biblatex.sty,v 1.1a 2011/01/08 13:30:00 lehman stable $
+% $Id: biblatex.sty,v 1.1b 2011/02/04 11:36:21 lehman stable $
% Copyright (c) 2006-2011 Philipp Lehman.
%
@@ -21,7 +21,7 @@
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
\ProvidesPackage{biblatex}
-[\abx@rcsid $Id: biblatex.sty,v 1.1a 2011/01/08 13:30:00 lehman stable $
+[\abx@rcsid $Id: biblatex.sty,v 1.1b 2011/02/04 11:36:21 lehman stable $
programmable bibliographies]
\def\blx@bblversion$#1: #2 ${#2}
@@ -4428,9 +4428,11 @@
\do{set}%
\do{article}%
\do{book}%
+ \do{books}%
\do{bookinbook}%
\do{booklet}%
\do{collection}%
+ \do{collections}%
\do{inbook}%
\do{incollection}%
\do{inproceedings}%
@@ -4521,6 +4523,7 @@
\do{entrysetcount}%
\do{related}%
\do{relatedtype}%
+ \do{relatedstring}%
\do{hyphenation}%
\do{keywords}%
\do{authortype}%
@@ -5658,14 +5661,14 @@
\def\blx@key@type#1{%
\ifcsundef{blx@type@\the\c@refsection @#1}
- {\blx@warning{%
- Entry type '#1' not found.\MessageBreak
- Skipping this type filter}}
+ {\blx@warning{Type '#1' not found}%
+ \let\blx@tempa\@empty}
{\blx@printbibchecks
\iftoggle{blx@tempb}
{\togglefalse{blx@tempb}%
\blx@filter\blx@tempa{blx@type@\the\c@refsection @#1}}
- {\blx@error
+ {\let\blx@tempa\@empty
+ \blx@error
{'type' used multiple times}
{When passing multiple filter options, each entry\MessageBreak
must satisfy all conditions (AND conjunction),\MessageBreak
@@ -5686,14 +5689,14 @@
\def\blx@key@subtype#1{%
\ifcsundef{blx@subt@\the\c@refsection @#1}
- {\blx@warning{%
- Entry subtype '#1' not found.\MessageBreak
- Skipping this subtype filter}}
+ {\blx@warning{Subtype '#1' not found}%
+ \let\blx@tempa\@empty}
{\blx@printbibchecks
\iftoggle{blx@tempb}
{\togglefalse{blx@tempb}%
\blx@filter\blx@tempa{blx@subt@\the\c@refsection @#1}}
- {\blx@error
+ {\let\blx@tempa\@empty
+ \blx@error
{'subtype' used multiple times}
{When passing multiple filter options, each entry\MessageBreak
must satisfy all conditions (AND conjunction),\MessageBreak
@@ -5714,9 +5717,8 @@
\def\blx@key@keyword#1{%
\ifcsundef{blx@keyw@\the\c@refsection @\detokenize{#1}}
- {\blx@warning{%
- Keyword '\detokenize{#1}' not found.\MessageBreak
- Skipping this keyword filter}}
+ {\blx@warning{Keyword '\detokenize{#1}' not found}%
+ \let\blx@tempa\@empty}
{\blx@printbibchecks
\blx@filter\blx@tempa{blx@keyw@\the\c@refsection @\detokenize{#1}}}}
@@ -5733,12 +5735,11 @@
\define@key{blx@los}{category}{\blx@key@category{#1}}
\def\blx@key@category#1{%
- \ifcsundef{blx@catg@#1}
- {\blx@warning{%
- Category '#1' not found.\MessageBreak
- Skipping this category filter}}
+ \ifcsundef{blx@catg@\detokenize{#1}}
+ {\blx@warning{Category '\detokenize{#1}' not found}%
+ \let\blx@tempa\@empty}
{\blx@printbibchecks
- \blx@filter\blx@tempa{blx@catg@#1}}}
+ \blx@filter\blx@tempa{blx@catg@\detokenize{#1}}}}
\define@key{blx@bib}{notcategory}{\blx@key@notcategory{#1}}
\define@key{blx@los}{notcategory}{\blx@key@notcategory{#1}}
@@ -5756,9 +5757,11 @@
\ifcsdef{blx@filter@#1}
{\blx@printbibchecks
\blx@bibfilter\blx@tempa{blx@filter@#1}}
- {\blx@warning{%
- Custom filter '#1' not found.\MessageBreak
- Skipping this custom filter}}}
+ {\let\blx@tempa\@empty
+ \blx@error
+ {Filter '#1' not found}
+ {The filter '#1' could not be found.\MessageBreak
+ Use \string\defbibfilter\space to define it}}}
\define@key{blx@bib}{check}{\blx@key@bibcheck{#1}}
\define@key{blx@los}{check}{\blx@key@bibcheck{#1}}
@@ -5766,10 +5769,11 @@
\def\blx@key@bibcheck#1{%
\ifcsdef{blx@bibcheck@#1}
{\letcs\blx@bibcheck{blx@bibcheck@#1}}
- {\blx@error
- {Hook '#1' undefined}
- {The bibliography check '#1' is undefined.\MessageBreak
- Use '\defbibcheck' to define it}}}
+ {\let\blx@tempa\@empty
+ \blx@error
+ {Check '#1' not found}
+ {The check '#1' could not be found.\MessageBreak
+ Use \string\defbibcheck\space to define it}}}
\define@key{blx@bib}{maxnames}{\blx@key@maxnames{#1}}
\define@key{blx@los}{maxnames}{\blx@key@maxnames{#1}}
@@ -5828,8 +5832,9 @@
\def\blx@key@heading#1{%
\ifcsundef{blx@head@#1}
{\blx@error
- {Heading '#1' undefined}
- {Use \string\defbibheading\space to define it}}
+ {Heading '#1' not found}
+ {The heading '#1' could not be found.\MessageBreak
+ Use \string\defbibheading\space to define it}}
{\def\blx@theheading{#1}}}
\define@key{blx@bib}{env}{\blx@key@env{#1}}
@@ -5841,8 +5846,9 @@
\def\blx@key@env#1{%
\ifcsundef{blx@env@#1}
{\blx@error
- {Environment '#1' undefined}
- {Use \string\defbibenvironment\space to define it}}
+ {Environment '#1' not found}
+ {The environment '#1' could not be found.\MessageBreak
+ Use \string\defbibenvironment\space to define it}}
{\def\blx@theenv{#1}}}
\define@key{blx@bhd}{title}{\long\def\blx@thetitle{#1}}
@@ -5857,8 +5863,9 @@
\def\blx@key@prenote#1{%
\ifcsundef{blx@note@#1}
{\blx@error
- {Note '#1' undefined}
- {Use \string\defbibnote\space to define it}}
+ {Note '#1' not found}
+ {The note '#1' could not be found.\MessageBreak
+ Use \string\defbibnote\space to define it}}
{\def\blx@theprenote{#1}}}
\define@key{blx@bib}{postnote}{\blx@key@postnote{#1}}
@@ -5870,8 +5877,9 @@
\def\blx@key@postnote#1{%
\ifcsundef{blx@note@#1}
{\blx@error
- {Note '#1' undefined}
- {Use \string\defbibnote\space to define it}}
+ {Note '#1' not found}
+ {The note '#1' could not be found.\MessageBreak
+ Use \string\defbibnote\space to define it}}
{\def\blx@thepostnote{#1}}}
\define@key{blx@bib}{resetnumbers}[true]{%
@@ -6536,8 +6544,8 @@
\renewrobustcmd*{\bibliography}{%
\@ifstar
- {\blx@xsanitizeafter{\forcsvlist\blx@addbibfile}}
- {\blx@xsanitizeafter{\forcsvlist\blx@extrabibfile}}}
+ {\blx@xsanitizeafter{\forcsvlist\blx@extrabibfile}}
+ {\blx@xsanitizeafter{\forcsvlist\blx@addbibfile}}}
\@onlypreamble\bibliography
\def\blx@addbibfile#1{%
@@ -8346,7 +8354,7 @@
\blx@xml@file
\blx@xml@comment{BIBER OPTIONS}%
\blx@xml@options{biber}{global}{%
- \blx@xml@svalue{bblencoding}{\blx@inputencoding}%
+ \blx@xml@svalue{bblencoding}{\blx@texencoding}%
\blx@xml@svalue{bibencoding}{\blx@bibencoding}%
\blx@xml@toggle{debug}%
\blx@xml@svalue{mincrossrefs}{\blx@mincrossrefs}%
@@ -8429,10 +8437,6 @@
\eappto\blx@tempa{%
\blx@xml@sort{\blx@tempc}{\blx@tempb}}}
-\define@key{blx@sortdef@sort}{pass}{% final|label
- \ifstrequal{#1}{label}
- {\appto\blx@tempc{ pass="label"}}
- {\appto\blx@tempc{ pass="final"}}}
\define@key{blx@sortdef@sort}{direction}{% ascending|descending
\ifstrequal{#1}{ascending}
{\appto\blx@tempc{ sort_direction="ascending"}}
@@ -8619,11 +8623,19 @@
\fi}
\def\blx@minxrefs{2}
+\DeclareBibliographyOption{texencoding}{%
+ \ifstrequal{#1}{auto}
+ {\undef\blx@texencoding}
+ {\def\blx@texencoding{#1}}}
+
\DeclareBibliographyOption{bibencoding}{%
- \def\blx@bibencoding{#1}
- \ifdefstring\blx@bibencoding{inputenc}
+ \ifstrequal{#1}{inputenc}
{\def\blx@bibencoding{auto}}
- {}}
+ {\def\blx@bibencoding{#1}}}
+
+\DeclareBibliographyOption{safeinputenc}[true]{%
+ \settoggle{blx@safeinputenc}{#1}}
+\newtoggle{blx@safeinputenc}
\DeclareBibliographyOption{sorting}{%
\def\blx@sorting{#1}}
@@ -9463,26 +9475,29 @@
\abx@mapinpenc{x-ascii}{ascii}
\def\blx@checkencoding{%
- \ifundef\inputencodingname
- {\ifundef\XeTeXrevision
- {\ifundef\luatexversion
- {\def\blx@inputencoding{ascii}%
- \blx@info@noline{%
- No input encoding detected.\MessageBreak
- Assuming '\blx@inputencoding'}}
- {\def\blx@inputencoding{utf8}%
- \blx@info@noline{%
- LuaTeX detected.\MessageBreak
- Assuming input encoding '\blx@inputencoding'}}}
- {\def\blx@inputencoding{utf8}%
- \blx@info@noline{%
- XeTeX detected.\MessageBreak
- Assuming input encoding '\blx@inputencoding'}}}
- {\ifcsdef{blx@enc@\inputencodingname}
- {\letcs\blx@inputencoding{blx@enc@\inputencodingname}}
- {\let\blx@inputencoding\inputencodingname}%
- \blx@info@noline{%
- Input encoding '\blx@inputencoding' detected}}%
+ \ifdef\blx@texencoding
+ {\blx@info@noline{%
+ Input encoding '\blx@texencoding' specified}}
+ {\ifundef\inputencodingname
+ {\ifundef\XeTeXrevision
+ {\ifundef\luatexversion
+ {\def\blx@texencoding{ascii}%
+ \blx@info@noline{%
+ No input encoding detected.\MessageBreak
+ Assuming '\blx@texencoding'}}
+ {\def\blx@texencoding{utf8}%
+ \blx@info@noline{%
+ LuaTeX detected.\MessageBreak
+ Assuming input encoding '\blx@texencoding'}}}
+ {\def\blx@texencoding{utf8}%
+ \blx@info@noline{%
+ XeTeX detected.\MessageBreak
+ Assuming input encoding '\blx@texencoding'}}}
+ {\ifcsdef{blx@enc@\inputencodingname}
+ {\letcs\blx@texencoding{blx@enc@\inputencodingname}}
+ {\let\blx@texencoding\inputencodingname}%
+ \blx@info@noline{%
+ Input encoding '\blx@texencoding' detected}}}%
\ifdef\blx@bibencoding
{\ifdefstring\blx@bibencoding{ascii}
{\blx@info@noline{%
@@ -9490,12 +9505,12 @@
No need to reencode data}%
\togglefalse{blx@reencode}}
{\ifdefstring\blx@bibencoding{auto}
- {\let\blx@bibencoding\blx@inputencoding
+ {\let\blx@bibencoding\blx@texencoding
\blx@info@noline{%
Automatic encoding selection.\MessageBreak
Assuming data encoding '\blx@bibencoding'}
\togglefalse{blx@reencode}}
- {\ifdefstrequal\blx@bibencoding\blx@inputencoding
+ {\ifdefstrequal\blx@bibencoding\blx@texencoding
{\blx@info@noline{%
Data encoding '\blx@bibencoding' specified.\MessageBreak
No need to reencode data}%
@@ -9530,7 +9545,7 @@
{\ifnumless\blx@backend\blx@backend@bibtexu
{\blx@warning@noline{%
Data encoding is '\blx@bibencoding'.\MessageBreak
- Use backend=bibtexu or backend=biber}}
+ Use backend=biber}}
{}}
{\ifnumodd\blx@backend
{\ifnumequal\blx@backend\blx@backend@bibtexe
@@ -9538,7 +9553,21 @@
{}}
{\blx@warning@noline{%
Data encoding is '\blx@bibencoding'.\MessageBreak
- Use backend=bibtex8 or backend=biber}}}}}
+ Use backend=bibtex8 or backend=biber}}}}%
+ \ifboolexpr{%
+ togl {blx@safeinputenc}
+ and test {\ifdefstring\blx@texencoding{utf8}}
+ and test {\ifnumequal\blx@backend\blx@backend@biber}
+ and ( test {\@ifpackageloaded{inputenc}}
+ or
+ test {\@ifpackageloaded{inputenx}} )
+ }
+ {\def\blx@texencoding{ascii}
+ \blx@info@noline{%
+ Input encoding '\blx@texencoding' forced by\MessageBreak
+ 'safeinputenc' option}}
+ {}%
+}
% Deferred last minute setup