-
Notifications
You must be signed in to change notification settings - Fork 0
/
nd.bbx
192 lines (175 loc) · 5.13 KB
/
nd.bbx
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
\ProvidesFile{nd.bbx}
\input{nd.def}
% 懸掛縮進
\defbibenvironment{bibliography}
{\list
{}
{\setlength{\leftmargin}{\bibhang}%
\setlength{\itemindent}{-\leftmargin}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}}
{\endlist}
{\item}
\RequireBibliographyStyle{standard}
\DeclareFieldFormat[article,thesis,inbook,inancient,inproceedings,online,unpublished,news,newspaper,simple]{title}{\cearticle{#1}}
\DeclareFieldFormat[incollection,book,misc,ancient]{title}{\cebook{#1}}
\DeclareFieldFormat{journaltitle}{\cebook{#1}}
\DeclareFieldFormat*{year}{\cebracket{#1}}
\DeclareFieldFormat*{pages}{\cegen{頁}{pp.}{#1}}
\DeclareFieldFormat*{booktitle}{\cebook{#1}}
\DeclareNameAlias{sortname}{last-first}
% \DeclareFieldFormat{titlecase}{\MakeUpperCase{#1}}
\DeclareNameFormat*{author}{%
\ifgiveninits
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}%
\usebibmacro{name:andothers}}
\newbibmacro*{publisher+location}{%
\printlist{location}%
\cecolon%
\printlist{publisher}}
\renewbibmacro*{urldate}{%
\printfield{urlyear}/%
\printfield{urlmonth}/%
\printfield{urlday}%
}
\newbibmacro*{volume+number}{%
\iffieldundef{volume}{}{%
\printfield{volume}}%
\iffieldundef{number}{}{%
(\printfield{number}})%
}
\newbibmacro*{trans+author}{%
\ifnameundef{translator}{\printnames{author}}%
{\printnames{translator}(譯),\printnames{author}(原著)}%
}%
\DeclareBibliographyDriver{article}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{trans+author}%
\cegen{}{\addspace}%
\printfield{year}%
\setunit{\printdelim{nametitledelim}}\newblock
\printfield{title}%
\setunit{\cecomma}%
\printfield{journaltitle}%
\cegen{}{\addspace}%
\setunit*{}%
\usebibmacro{volume+number}%
\addcolon\addspace%
\printfield{pages}%
\usebibmacro{pageref}%
\usebibmacro{finentry}}%
\DeclareBibliographyDriver{book}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{trans+author}%
\cegen{}{\addspace}%
\printfield{year}%
\setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{maintitle+title}%
\newunit%
\printfield{volumes}%
\usebibmacro{publisher+location}%
\newunit\newblock%
\usebibmacro{pageref}%
\usebibmacro{finentry}}%
\DeclareBibliographyDriver{inbook}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{trans+author}%
\cegen{}{\addspace}%
\printfield{year}%
\setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{maintitle+title}%
\setunit{\cecomma}%
\ifnameundef{editor}{\printnames{author}}{%
\printnames{editor}%
}%
\cegen{(編),}{ (ed.), }%
\usebibmacro{maintitle+booktitle}%
\setunit{\cecomma}\printfield{pages}%
\newunit\newblock%
\usebibmacro{publisher+location}%
\usebibmacro{pageref}%
\usebibmacro{finentry}}%
\DeclareBibliographyDriver{thesis}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{trans+author}%
\cegen{}{\addspace}%
\printfield{year}%
\setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{maintitle+title}%
\newunit%
\cegen{}{\printfield{type}\addcomma\addspace}%
\printlist{location}%
\cecolon%
\printlist{institution}%
\cegen{\ccomma\printfield{type}}{}%
\usebibmacro{pageref}%
\usebibmacro{finentry}}
\DeclareFieldFormat{url}{\url{#1}}
\DeclareBibliographyDriver{online}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{trans+author}%
\cegen{}{\addspace}%
\printfield{year}%
\setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{maintitle+title}%
\newunit%
\printfield{url}%
\newunit\newblock%
\cegen{\usebibmacro{urldate} 檢索}{Retrieval Date \usebibmacro{urldate}}
\usebibmacro{pageref}%
\usebibmacro{finentry}}%
\DeclareBibliographyDriver{news}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{trans+author}%
\cegen{}{\addspace}%
\printfield{year}%
\setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{maintitle+title}%
\setunit{\cecomma}\newblock%
\usebibmacro{maintitle+booktitle}%
\newunit\newblock%
\usebibmacro{publisher+location}%
\usebibmacro{pageref}%
\usebibmacro{finentry}}%
\DeclareFieldFormat[newspaper]{pages}{{#1}}
\DeclareBibliographyDriver{newspaper}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{trans+author}%
\cegen{}{\addspace}%
\printfield{year}%
\setunit{\printdelim{nametitledelim}}\newblock
\printfield{title}%
\setunit{\cecomma}%
\printfield{journaltitle}%
\cegen{}{\addspace}%
\setunit*{}%
\cegen{\printfield{pages}版}{pp. \printfield{pages}}%
\usebibmacro{pageref}%
\usebibmacro{finentry}}%
\DeclareBibliographyDriver{simple}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{trans+author}%
\cegen{}{\addspace}%
\printfield{year}%
\setunit{\printdelim{nametitledelim}}\newblock
\printfield{title}%
\ifnameundef{journal}{\setunit{\cecomma}\printfield{journaltitle}}{}%
\usebibmacro{pageref}%
\usebibmacro{finentry}}%