summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex-source-division/biblatex-source-division.sty
blob: c120b79bb84989dd6a7225f5e40e66726ee5f5eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
%% Copyright 2013 Maïeul Rouquette
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
% 
% The Current Maintainer of this work is Maïeul Rouquette
%
% This work consists of the file biblatex-source-division.sty

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{biblatex-source-division}[2014/01/19 v1.1.0 source division for eledpar]

% Prepare in the case of <x>volcite commands

\newtoggle{volcite}{}
\apptocmd{\volcitecmd}{\global\toggletrue{volcite}}{}{}

% Call the source division getting
\renewbibmacro*{prenote}{%
  \usebibmacro{getsourcedivision}%
  \iffieldundef{prenote}%
    {}%
    {\printfield{prenote}%
     \setunit{\prenotedelim}}}

% Get source division, put in in titladdon field, and delete source division from the postnote field
\newbibmacro{getsourcedivision}{%
  \iffieldundef{postnote}{}{%
     \global\undef\volpostnote%
     \usefield{\getsourcedivision@}{postnote}%
     \restorefield{titleaddon}{\titleaddon}%
     \restorefield{postnote}{\postnote}%
   }%
 }
 
% Analyse of the source division

%% Main command
\newrobustcmd*{\getsourcedivision@}[1]{\getsourcedivision@i#1++} 

% Are there parenthesis ?
\def\getsourcedivision@i{%
  \@ifnextchar(%)
    {\getsourcedivision@ii}%
    {\getsourcedivision@ii()}}

% Put the source division and "true" postnote in macro
\def\getsourcedivision@ii(#1)#2++{%
  \ifdefmacro{\volpostnote}{%
    \gdef\titleaddon{#1}%
    \gdef\postnote{{\volvol}{#2}}%   
   }{%
     \iftoggle{volcite}{%
		\volgetsourcedivision@#2%
		\global\togglefalse{volcite}%
		}%
		{%
		  \gdef\titleaddon{#1}%
		  \gdef\postnote{#2}%
		}%
	}%
 }
\newrobustcmd*{\volgetsourcedivision@}[2]{%
  \gdef\volpostnote{#2}%
  \gdef\volvol{#1}%
  \restorefield{volpostnote}{\volpostnote}%
  \usefield{\getsourcedivision@}{volpostnote}%
}

 
\endinput