|
86 | 86 | \begingroup |
87 | 87 | \@makeother\#% |
88 | 88 | \blxja@replace@command@rc@args} |
| 89 | +% {<command>}{<rule name>}{<code>} |
89 | 90 | \long\def\blxja@replace@command@rn@args#1#2#3{% |
90 | 91 | \ifcsundef{blxja@replacerule@\detokenize{#2}}{% |
91 | 92 | \blxja@error{Replace rule '\detokenize{#2}' undefined}{}}{% |
92 | 93 | \expandafter\etb@hooktocmd\csname blxja@replacerule@\detokenize{#2}\endcsname#1{#3}{}{% |
93 | 94 | \blxja@error{\replacecommand for the command \string#1 failed} |
94 | 95 | {Try \detokenize{\tracingpatches} to investigate the cause of the problem.\MessageBreak}}}} |
| 96 | +% {<command>}{<rule code>}{<code>} |
95 | 97 | \long\def\blxja@replace@command@rc@args#1#2#3{% |
96 | 98 | \endgroup |
97 | 99 | \edef\blxja@reserveda{% |
|
115 | 117 | \begingroup |
116 | 118 | \@makeother\#% |
117 | 119 | \blxja@replace@abx@macro@rc@args} |
| 120 | +% {<bibmacro>}{<rule name>}{<code>} |
118 | 121 | \long\def\blxja@replace@abx@macro@rn@args#1#2#3{% |
119 | 122 | \endgroup |
120 | 123 | \ifcsundef{blxja@replacerule@\detokenize{#2}}{% |
|
125 | 128 | \expandafter\expandafter\expandafter\etb@hooktocmd\expandafter\blxja@tempa\blxja@tempb{#3}{}{% |
126 | 129 | \blxja@error{\replacebibmacro for the bibliography macro '\detokenize{#1}' failed} |
127 | 130 | {Try \detokenize{\tracingpatches} to investigate the cause of the problem.\MessageBreak}}}} |
| 131 | +% {<bibmacro>}{<rule code>}{<code>} |
128 | 132 | \long\def\blxja@replace@abx@macro@rc@args#1#2#3{% |
129 | 133 | \endgroup |
130 | 134 | \edef\blxja@reserveda{% |
|
134 | 138 | \begingroup % dummy for \endgroup in \etb@hooktocmd |
135 | 139 | \blxja@replace@abx@macro@rn@args{#1}{@temprule@}{#3}} |
136 | 140 |
|
137 | | -% {<id>}{<type>}{<macro>} |
138 | | -\def\blxja@def@replacemacro#1#2#3{% |
| 141 | +% {<id>}{<type>}{<command>} |
| 142 | +\def\blxja@def@replacecommand#1#2#3{% |
139 | 143 | \DeclareDocumentCommand{#3}{ s }{% |
140 | 144 | \IfBooleanTF{##1} |
141 | 145 | {\csuse{blxja@replace@abx@\detokenize{#1}@rulecode}} |
|
145 | 149 | \begingroup |
146 | 150 | \@makeother\#% |
147 | 151 | \csuse{blxja@replace@abx@\detokenize{#1}@args@} |
148 | | - {\csuse{blxja@replace@abx@\detokenize{#1}@rn@args}}} |
| 152 | + {\csuse{blxja@replace@abx@\detokenize{#1}@rn@args}}} |
149 | 153 | \csdef{blxja@replace@abx@\detokenize{#1}@rulecode}{% |
150 | 154 | \etb@dbg@trce{#3*}% |
151 | 155 | \begingroup |
152 | 156 | \@makeother\#% |
153 | 157 | \csuse{blxja@replace@abx@\detokenize{#1}@args@} |
154 | 158 | {\csuse{blxja@replace@abx@\detokenize{#1}@rc@args}}} |
155 | | - |
| 159 | + % execute <cs> for all <entry type, ...> |
| 160 | + % {<cs>}[<entry type, ...>]{<format>}{<replace rule name/code>}{<code>} |
156 | 161 | \expandafter\DeclareDocumentCommand\expandafter |
157 | 162 | {\csname blxja@replace@abx@\detokenize{#1}@args@\endcsname} |
158 | 163 | { m O{*} m m +m }{% |
|
161 | 166 | \def\@tempc{##1}% |
162 | 167 | \@for\@tempb:=\@tempa\do{% |
163 | 168 | \expandafter\@tempc\expandafter{\@tempb}{##3}{##4}{##5}}} |
164 | | - |
| 169 | + % [<entry type, ...>]{<format>}{<replace rule name>}{<code>} |
165 | 170 | \expandafter\DeclareDocumentCommand\expandafter |
166 | 171 | {\csname blxja@replace@abx@\detokenize{#1}@rn@args\endcsname} |
167 | 172 | { m m m +m }{% |
|
170 | 175 | \edef\blxja@tempa{\expandonce{\csname blxja@replacerule@\detokenize{##3}\endcsname}}% |
171 | 176 | \edef\blxja@tempb{\expandonce{\csname abx@#1@\detokenize{##1}@\detokenize{##2}\endcsname}}% |
172 | 177 | \begingroup % dummy for \endgroup in \etb@hooktocmd |
173 | | - \expandafter\expandafter\expandafter\etb@hooktocmd\expandafter\blxja@tempa\blxja@tempb{##4}{}{% |
| 178 | + \expandafter\expandafter\expandafter\etb@hooktocmd\expandafter\blxja@tempa\blxja@tempb{##4}{% |
| 179 | + \expandafter\pretocmd\expandafter{\blxja@tempb}{\def\blxja@format{##2}}{}{}% |
| 180 | + }{% |
174 | 181 | \blxja@error{#3 for the #2 '\detokenize{##2}' failed} |
175 | 182 | {Try \detokenize{\tracingpatches} to investigate the cause of the problem.\MessageBreak}}}} |
| 183 | + % [<entry type, ...>]{<format>}{<replace rule code>}{<code>} |
176 | 184 | \expandafter\DeclareDocumentCommand\expandafter |
177 | 185 | {\csname blxja@replace@abx@\detokenize{#1}@rc@args\endcsname} |
178 | 186 | { m m m +m }{% |
|
183 | 191 | \begingroup % dummy for \endgroup in \etb@hooktocmd |
184 | 192 | \csuse{blxja@replace@abx@\detokenize{#1}@rn@args}[##1]{##2}{@temprule@}{##4}}} |
185 | 193 |
|
186 | | -\blxja@def@replacemacro{ffd}{field format}{\replacefieldformat} |
187 | | -\blxja@def@replacemacro{nfd}{name list format}{\replacenameformat} |
| 194 | +\blxja@def@replacecommand{ffd}{field format}{\replacefieldformat} |
| 195 | +\blxja@def@replacecommand{nfd}{name list format}{\replacenameformat} |
188 | 196 |
|
189 | 197 | \DeclareDocumentCommand{\newreplacerule}{ m }{% |
190 | 198 | \ifcsdef{blxja@replacerule@\detokenize{#1}}{% |
|
208 | 216 | {#2} |
209 | 217 | {#1}} |
210 | 218 |
|
| 219 | +\newreplacerule{iffieldisCJK}{% |
| 220 | + \ifCJKstr{\thefield{\blxja@format}}{#2}{#1}} |
| 221 | + |
211 | 222 | \def\blxja@hook@print@getname#1#2#3#4{% |
212 | 223 | \ifcsundef{blxja@hook@print@#2@\blx@imc@thefield{entrytype}@#3} |
213 | 224 | {\ifcsundef{blxja@hook@print@#2@*@#3} |
|
0 commit comments