summaryrefslogtreecommitdiff
path: root/biblio/pbibtex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /biblio/pbibtex
Initial commit
Diffstat (limited to 'biblio/pbibtex')
-rw-r--r--biblio/pbibtex/base/LICENSE25
-rw-r--r--biblio/pbibtex/base/README.md36
-rw-r--r--biblio/pbibtex/base/README_original56
-rw-r--r--biblio/pbibtex/base/cpp.awk104
-rw-r--r--biblio/pbibtex/base/generate.sh21
-rw-r--r--biblio/pbibtex/base/jabbrv.bst1366
-rw-r--r--biblio/pbibtex/base/jalpha.bst1551
-rw-r--r--biblio/pbibtex/base/jbibtex.bib39
-rw-r--r--biblio/pbibtex/base/jbibtex.pdfbin0 -> 257313 bytes
-rw-r--r--biblio/pbibtex/base/jbibtex.tex672
-rw-r--r--biblio/pbibtex/base/jbtxbst.doc3762
-rw-r--r--biblio/pbibtex/base/jbtxdoc.bib116
-rw-r--r--biblio/pbibtex/base/jbtxdoc.pdfbin0 -> 289185 bytes
-rw-r--r--biblio/pbibtex/base/jbtxdoc.tex1090
-rw-r--r--biblio/pbibtex/base/jbtxhak.pdfbin0 -> 247228 bytes
-rw-r--r--biblio/pbibtex/base/jbtxhak.tex692
-rw-r--r--biblio/pbibtex/base/jipsj.bst1393
-rw-r--r--biblio/pbibtex/base/jname.bst1583
-rw-r--r--biblio/pbibtex/base/jorsj.bst1403
-rw-r--r--biblio/pbibtex/base/jplain.bst1385
-rw-r--r--biblio/pbibtex/base/junsrt.bst1221
-rw-r--r--biblio/pbibtex/base/jxampl.bib798
-rw-r--r--biblio/pbibtex/base/tieice.bst1299
-rw-r--r--biblio/pbibtex/base/tipsj.bst1274
24 files changed, 19886 insertions, 0 deletions
diff --git a/biblio/pbibtex/base/LICENSE b/biblio/pbibtex/base/LICENSE
new file mode 100644
index 0000000000..fc380e13ac
--- /dev/null
+++ b/biblio/pbibtex/base/LICENSE
@@ -0,0 +1,25 @@
+Copyright (C) 2010 ASCII MEDIA WORKS.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. Neither the name of the author may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/biblio/pbibtex/base/README.md b/biblio/pbibtex/base/README.md
new file mode 100644
index 0000000000..2da61ce729
--- /dev/null
+++ b/biblio/pbibtex/base/README.md
@@ -0,0 +1,36 @@
+# pbibtex-base
+
+These are miscellaneous files, including bibliography styles (.bst),
+for pBibTeX, which is a Japanese extended version of BibTeX contained in
+TeX Live.
+
+Originally, pBibTeX was known as jBibTeX. When it came to be included
+in TeX Live, it was renamed as pBibTeX according to the prefix of pTeX.
+Since the bundle contains the original documents of jBibTeX as-is,
+their names are jbibtex.pdf, jbtxdoc.pdf, and so on.
+
+## Character encoding
+
+All the text files containing Japanese characters are encoded in
+ISO-2022-JP. This is because ISO-2022-JP encoded texts are most suitable
+for the traditional pTeX and pBibTeX programs.
+
+## Repository
+
+The bundle is maintained on GitHub:
+https://github.com/texjporg/pbibtex-base
+
+If you have issues, please let us know from the above page.
+
+## License
+
+The bundle is redistribution derived from [ptex-texmf distribution
+by ASCII MEDIA WORKS](http://ascii.asciimw.jp/pb/ptex/).
+Since the original license is the 3-clause BSD license,
+this redistribution also follows it (see LICENSE).
+
+## Release Date
+
+2016-04-17
+
+Japanese TeX Development Community
diff --git a/biblio/pbibtex/base/README_original b/biblio/pbibtex/base/README_original
new file mode 100644
index 0000000000..38204d3325
--- /dev/null
+++ b/biblio/pbibtex/base/README_original
@@ -0,0 +1,56 @@
+JBibTeX(C Version)$B$N35MW!J;CDjHG!K(B
+ $B!J:b!KEENOCf1{8&5f=j!!>>0f@50l(B
+ matsui@denken.or.jp
+
+
+$B!!(BJBibTeX $B$O(B BibTeX 0.99c(C Version) $B$r4p$K(B NTT $BHG(B JTeX $B$KBP1~$7$F(B
+bib $B%U%!%$%kCf$K4A;z$r;H$($k$h$&$KJQ99$r2C$($?$b$N$G$"$k!#(B
+
+$B!!<g$JJQ99$O0J2<$NDL$j$G$"$k!#(B
+
+ (1) $B4A;z$OFbItE*$K$O(B EUC $B$GI=8=$9$k!#%U%!%$%k$+$i0l9T$rFI$_9~$`;~E@$G!"(B
+$B!!!!(BEUC $B$J$i$=$N$^$^!"(B JIS $B4A;z$O(B EUC $B$K%3!<%IJQ49$9$k!#(B
+ $BC<Kv!"%U%!%$%k$X$N=PNO%3!<%I7O$O!"%3%s%Q%$%k;~$K;XDj$9$k$,!"(B
+ $BMxMQ<TC10L$K$b!"$=$l$>$l<!$N4D6-JQ?t$G;XDj$G$-$k!#(B
+ $BC<Kv(B BIBTERMCODE
+ $B%U%!%$%k(B BIBFILECODE
+ $B;XDj$O!"(BJTeX$B$N(B\kanjitermicalcode, \kanjifilecode$B$HF1$8!"(B
+ 1,2,3,4,5,6,10,20
+ $B$G9T$&!#(B
+
+ (2) $B4A;z$rDL$9$h$&$K(B BibTeX $B$N(B Chage File $B$rJQ99$7$F(B, $BJ8;z$r(B 7bits $B$+$i(B
+$B!!!!(B8bits $B$KJQ99$7$?!J$3$l$K9g$;$F(B bibext.c $B$bJQ99$5$l$F$$$k(B)$B!#(B
+
+ (3) $BAH9~$_4X?t$NCf$G(B substring$, text.prefix$ $B$KBP$7$F$O!"(B
+$B!!!!4A;z$N4V$G(B (1byte $BL\$H(B 2byte $BL\$N??$sCf$G(B)$BJ8;zNs$,@Z$i$l$J$$$h$&$K$7$?!#(B
+$B!!!!(B $BNc$($P!"(B"$B4A;z(B" $B$N@hF,$+$i(B 3 $BJ8;z$rH4=P$9$H(B "$B;z(B"$B$N(B 2byte $BL\$,$J$/$J$C$F(B
+ $B$7$^$&$N$G!"$3$N$h$&$J>l9g$K$O!"(B4byte $BL\$^$G@Z=P$9$h$&$K$7$?!#(B
+
+ (4) (3)$B$H$N4X78$G!"(B chr.to.int$ $B$O(B stack top $B$,4A;z$J$i$P(B single character
+$B!!(B $B$G$J$/$F$b(B warning $B$r=P$5$:!"(B 1byte $BL\$NCM$rJV$9$h$&$K$7$?!#(B
+
+ (5) $B4A;z$r4^$`J8;zNs$G$"$k$+$I$&$+$NH=Dj$h$&$K!"AH$_9~$_4X?t$H$7$F(B
+ is.kanji.str$ $B$rDI2C$7$?!#(B
+
+ (6) bib file $B$N9`L\$N$I$3$K4A;z$r;H$C$F$h$$$+$O!"(B test.bib $B$r;2>H$5$l$?$$!#(B
+
+ (7) style $B%U%!%$%kCf$N4A;zCx<TL>$N@+$HL>$N4V$K$O%9%Z!<%9$rCV$/$3$H$rI8=`$H(B
+ $B$7$?!%(B
+
+$B%$%s%9%H!<%k$N<j=g(B
+
+ (1) $B:G?7HG$N(Bjtex$B$N(Bdirectory$B2<$K(Bcjbibtex$B$J$I$H$$$&(Bdirectory$B$r:n$j!"(B
+ $BG[I[%-%C%H(B(1/3, 2/3, 3/3)$B$NFbMF$r(B
+ atob |compress -d |unshar -
+ $B$G85$KLa$9(B
+
+ (2) $B$=$3$K(B bibtex.web $B$r%3%T!<$9$k!#(B
+ site dependent$B$J4A;z%3!<%I7O$N@_Dj$O(B bibext.c $BCf$N(B
+ DEFAULT_TERM_CODE
+ DEFAULT_FILE_CODE
+ $B$N(B #define$B$rJQ99$9$l$P$h$$!%(B
+
+ (3) make $B$9$k!#(B
+$B!!(B
+
+
diff --git a/biblio/pbibtex/base/cpp.awk b/biblio/pbibtex/base/cpp.awk
new file mode 100644
index 0000000000..d19fada658
--- /dev/null
+++ b/biblio/pbibtex/base/cpp.awk
@@ -0,0 +1,104 @@
+function do_if(proc,sym, direct ) {
+ if( (sym in defined) && (defined[sym]!=0 ) ) {
+ while( direct!="else" && direct!="endif" ) direct=proc_line(proc)
+ if(direct=="else")
+ while( direct!="endif" ) direct=proc_line(0)
+ } else {
+ while( direct!="else" && direct!="endif" ) direct=proc_line(0)
+ if(direct=="else")
+ while( direct!="endif" ) direct=proc_line(proc)
+ }
+}
+
+function do_if_not(proc,sym, direct ) {
+ if( (!(sym in defined)) || (defined[sym]==0 ) ) {
+ while( direct!="else" && direct!="endif" ) direct=proc_line(proc)
+ if(direct=="else")
+ while( direct!="endif" ) direct=proc_line(0)
+ } else {
+ while( direct!="else" && direct!="endif" ) direct=proc_line(0)
+ if(direct=="else")
+ while( direct!="endif" ) direct=proc_line(proc)
+ }
+}
+
+function do_ifdef(proc,sym, direct ) {
+ if( sym in defined ) {
+ while( direct!="else" && direct!="endif" ) direct=proc_line(proc)
+ if(direct=="else")
+ while( direct!="endif" ) direct=proc_line(0)
+ } else {
+ while( direct!="else" && direct!="endif" ) direct=proc_line(0)
+ if(direct=="else")
+ while( direct!="endif" ) direct=proc_line(proc)
+ }
+}
+
+function do_ifndef(proc,sym, direct) {
+ if( !(sym in defined) ) {
+ while( direct!="else" && direct!="endif" ) direct=proc_line(proc)
+ if(direct=="else")
+ while( direct!="endif" ) direct=proc_line(0)
+ } else {
+ while( direct!="else" && direct!="endif" ) direct=proc_line(0)
+ if(direct=="else")
+ while( direct!="endif" ) direct=proc_line(proc)
+ }
+}
+
+function proc_line(proc, direct) {
+ if( (getline<"jbtxbst.doc") <1 ) {
+ exit
+ }
+ lno++;
+ if( $0 ~ /^#/ ) {
+ if( $1=="#" ) {
+ direct=$2; arg1=$3; arg2=$4
+ }else {
+ direct=substr($1,2,16); arg1=$2; arg2=$3
+ }
+ if(direct=="define") {
+ if(proc) defined[arg1]=arg2+0
+ } else if(direct=="ifdef" ){
+ do_ifdef(proc,arg1)
+ }else if(direct=="ifndef") {
+ do_ifndef(proc,arg1)
+ }else if(direct=="if") {
+ if( substr(arg1,1,1)=="!" ) do_if_not(proc,substr(arg1,2,32))
+ else do_if(proc,arg1)
+ }else if( (direct!="else") && (direct!="endif") ){
+ print "% Error **undefined **",direct,"** in line",lno >"/dev/tty"
+ exit
+ }
+ return direct;
+ }else if($0 ~ /^%/ ) {
+ return "" # $B%3%a%s%H$O4pK\E*$K$O:o=|$9$k(B
+ }else if($0 ~ /^ %/ ) {
+ sub(/ /,"") # $B$3$N7A<0$N%3%a%s%H$O=PNO$9$k(B
+ print $0
+ return ""
+ }else {
+ if(proc) print $0
+ return ""
+ }
+}
+BEGIN{
+ if(ARGC<2) {
+ print "usage: gawk -f cpp.awk <style-type> [<option>]"
+ print "<style-type> = JPLAIN | JALPHA | JABBRV | JUNSRT | JIPSJ"
+ print " TIPSJ | TIEICE | JNAME | JORSJ"
+ print "<option> = ASCII"
+ exit
+ }
+ opt=ARGV[1]
+ name["JPLAIN"]="jplain"; name["JALPHA"]="jalpha"; name["JABBRV"]="jabbrv"
+ name["JUNSRT"]="junsrt"; name["JIPSJ" ]="jipsj" ; name["TIPSJ" ]="tipsj"
+ name["TIEICE"]="tieice"; name["JNAME" ]="jname" ; name["JORSJ" ]="jorsj"
+ if( opt in name )
+ printf("%% JBibTeX standard bibliography style `%s'\n",name[opt])
+ for(i=1;i<ARGC;i++) {
+ defined[ARGV[i]]=1
+ ARGV[i]=""
+ }
+ while(1) proc_line(1)
+}
diff --git a/biblio/pbibtex/base/generate.sh b/biblio/pbibtex/base/generate.sh
new file mode 100644
index 0000000000..118fc18fab
--- /dev/null
+++ b/biblio/pbibtex/base/generate.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+# use cpp
+sed -e '/^%/d' -e '/^$/d' jbtxbst.doc |/lib/cpp -P -DJPLAIN >jplain.bst
+sed -e '/^%/d' -e '/^$/d' jbtxbst.doc | /lib/cpp -P -DJALPHA >jalpha.bst
+sed -e '/^%/d' -e '/^$/d' jbtxbst.doc |/lib/cpp -P -DJUNSRT >junsrt.bst
+sed -e '/^%/d' -e '/^$/d' jbtxbst.doc |/lib/cpp -P -DJABBRV >jabbrv.bst
+sed -e '/^%/d' -e '/^$/d' jbtxbst.doc |/lib/cpp -P -DJIPSJ >jipsj.bst
+sed -e '/^%/d' -e '/^$/d' jbtxbst.doc |/lib/cpp -P -DTIPSJ >tipsj.bst
+sed -e '/^%/d' -e '/^$/d' jbtxbst.doc |/lib/cpp -P -DTIEICE >tieice.bst
+sed -e '/^%/d' -e '/^$/d' jbtxbst.doc |/lib/cpp -P -DJNAME >jname.bst
+sed -e '/^%/d' -e '/^$/d' jbtxbst.doc |/lib/cpp -P -DJORSJ >jorsj.bst
+# use gawk
+#gawk -f cpp.awk JPLAIN >jplain.bst
+#gawk -f cpp.awk JALPHA >jalpha.bst
+#gawk -f cpp.awk JUNSRT >junsrt.bst
+#gawk -f cpp.awk JABBRV >jabbrv.bst
+#gawk -f cpp.awk JIPSJ > jipsj.bst
+#gawk -f cpp.awk TIPSJ > tipsj.bst
+#gawk -f cpp.awk TIEICE >tieice.bst
+#gawk -f cpp.awk JNAME > jname.bst
+#gawk -f cpp.awk JORSJ > jorsj.bst
diff --git a/biblio/pbibtex/base/jabbrv.bst b/biblio/pbibtex/base/jabbrv.bst
new file mode 100644
index 0000000000..4908e2374a
--- /dev/null
+++ b/biblio/pbibtex/base/jabbrv.bst
@@ -0,0 +1,1366 @@
+ % version 0.30 for JBibTeX versions 0.30 or later, LaTeX version 2.09.
+ % Copyright (C) 1990, all rights reserved.
+ %
+ % This file is derived from btxbst.doc of BibTeX 0.99c
+ %
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % jbtxbst.doc, jplain.bst, junsrt.bst, jalpha.bst, jabbrv.bst,
+ % tipsj.bst, jipsj.bst, tieice.bst, jname.bst, jorsj.bst
+ %
+ % This restriction helps ensure that all standard styles are identical.
+ % The file jbtxbst.doc has the documentation for this style.
+ %
+ % Please notify Shouichi MATSUI(matsui@denken.or.jp) of any bugs in
+ % these standard styles or in this documentation file.
+ % $B>>0f(B $B@50l(B ($B:b(B) $BEENOCf1{8&5f=j!!>pJs%7%9%F%`It(B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ yomi
+ }
+ {is.kanji.entry}
+
+ { label }
+
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+
+}
+STRINGS { s t }
+
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+
+ { ", " * write$ }
+
+ { output.state after.block =
+ {
+
+ add.period$ write$
+
+ newline$
+ "\newblock " write$
+ }
+
+ { output.state before.all =
+ 'write$
+
+ { add.period$ " " * write$ }
+
+ if$
+ }
+
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.bibitem}
+{ newline$
+
+ "\bibitem{" write$
+
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+FUNCTION {fin.entry}
+{
+
+ add.period$
+
+ write$
+ newline$
+}
+FUNCTION {new.block}
+{ output.state before.all =
+
+ 'skip$
+ { after.block 'output.state := }
+
+ if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { duplicate$ is.kanji.str$
+ 'skip$
+ { "{\em " swap$ * "}" * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+
+ { s nameptr "{ff}{ll}" format.name$ is.kanji.str$
+
+ {s nameptr "{ff}" format.name$ 't :=
+ t empty$
+ { s nameptr "{ll}" format.name$ 't :=
+ t " $B$K$O!$@+$HL>$N4V$K6uGr$,$J$$$h!)(B in " * cite$ * warning$
+ }
+ 'skip$
+ if$
+ }
+
+
+
+ {s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=}
+
+
+ if$
+
+ nameptr #1 >
+ { namesleft #1 >
+
+ {", " * t * }
+
+
+ { t "others" =
+
+ { s is.kanji.str$
+
+ {"$BB>(B" * }
+
+
+ {", et~al." * }
+
+ if$
+ }
+ { s is.kanji.str$
+
+ {", " * t * }
+
+
+
+ { numnames #2 =
+ {" and " * t * }
+ {", and " * t * }
+ if$
+ }
+
+
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+
+ { author format.names }
+
+ if$
+}
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+
+ { editor format.names
+
+ editor num.names$ #1 >
+ { editor is.kanji.str$
+
+
+ {"$B!JJT!K(B" * } {" eds." * } if$
+
+
+ }
+ { editor is.kanji.str$
+
+
+ {"$B!JJT!K(B" *} {" ed." * } if$
+
+
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+
+{ title empty$
+
+ { "" }
+
+
+ { title "t" change.case$ }
+
+
+ if$
+}
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+FUNCTION {format.date}
+
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.btitle}
+
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect}
+ if$
+ }
+ if$
+ series empty$
+ 'skip$
+ { series is.kanji.str$
+ { volume empty$
+ {series swap$ * }
+
+ {series ", " * swap$ * }
+
+ if$
+ }
+ { " of " * series emphasize * }
+ if$
+ }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { number is.kanji.str$
+ { number }
+ {"No." number tie.or.space.connect}
+ if$
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { edition is.kanji.str$
+ { edition }
+ { is.kanji.entry
+ {"$BBh(B" edition * "$BHG(B" *}
+ { output.state mid.sentence =
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+
+ { "pp." pages n.dashify tie.or.space.connect }
+ { "p." pages tie.or.space.connect }
+
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+ number empty$
+ 'skip$
+ { "(" number * ")" * *
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ":" * pages n.dashify * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { chapter is.kanji.str$
+ { "" }
+ { is.kanji.entry
+ {"$B>O(B"}
+ {"chapter"}
+ if$
+ }
+ if$
+ }
+ { type "l" change.case$ }
+ if$
+ chapter is.kanji.str$ not is.kanji.entry and
+ {"$BBh(B" chapter * swap$ *}
+ { chapter is.kanji.str$
+ {chapter *}
+ {chapter tie.or.space.connect}
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+
+ { ", " * format.pages * }
+
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { booktitle is.kanji.str$
+ { " " booktitle emphasize * }
+
+ { "In " booktitle emphasize * }
+
+ if$
+ }
+ { booktitle is.kanji.str$
+
+ { " " format.editors * ", " * booktitle * }
+
+
+ { "In " format.editors * ", " * booktitle emphasize * }
+
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+
+ key empty$ not and
+
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Technical Report" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { title is.kanji.str$
+ { " " journal * }
+
+ { "In {\em " journal * "\/}" * }
+
+ if$
+ }
+ if$
+ }
+ { title is.kanji.str$
+ { " " key * }
+
+ { "In " key * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.crossref.editor}
+{ editor is.kanji.str$
+
+ {editor #1 "{ff}" format.name$ duplicate$
+
+ empty$
+ {pop$ editor #1 "{ll}" format.name$}
+ 'skip$
+ if$
+ }
+
+ {editor #1 "{vv~}{ll}" format.name$}
+
+ if$
+ editor num.names$ duplicate$
+ #2 >
+ { editor is.kanji.str$
+
+ {pop$ "$BB>(B" *} {pop$ ", et~al." * } if$
+
+ }
+ { #2 <
+ 'skip$
+
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+
+ { editor is.kanji.str$
+
+ {"$BB>(B" *} {", et~al." * } if$
+
+ }
+ { editor is.kanji.str$
+ {
+
+ ", " *
+
+ editor #2 "{ff}" format.name$ duplicate$
+ empty$
+ {pop$ editor #2 "{ll}" format.name$}
+ 'skip$
+ if$
+ *
+ }
+ {" and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ title is.kanji.str$
+
+ {" "} {"In "} if$
+
+ }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect " of " * }
+ if$
+ }
+ if$
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { booktitle is.kanji.str$
+ { booktitle }
+
+ {"In {\em " booktitle * "\/}" * }
+
+ if$
+ }
+ if$
+ }
+
+ { "In " key * }
+
+ if$
+ }
+ { title is.kanji.str$
+ {" " format.crossref.editor * }
+
+ {"In " format.crossref.editor * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+
+ format.vol.num.pages output
+ format.date "year" output.check
+
+}
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+
+ new.sentence
+
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+
+ format.chapter.pages "chapter and pages" output.check
+
+ new.block
+ format.number.series output
+
+ new.sentence
+
+ publisher "publisher" output.check
+ address output
+ }
+
+ { format.chapter.pages "chapter and pages" output.check
+
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+
+ format.chapter.pages output
+
+
+
+ new.sentence
+
+ publisher "publisher" output.check
+ address output
+ format.edition output
+
+ format.date "year" output.check
+
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+
+ format.pages output
+
+
+
+ address empty$
+ { organization publisher new.sentence.checkb
+
+ organization output
+
+ publisher output
+
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+
+ format.date "year" output.check
+
+
+ new.sentence
+
+ organization output
+
+ publisher output
+
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "Master's thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "PhD thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+ format.date "year" output.check
+
+
+ new.sentence
+
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"Jan."}
+MACRO {feb} {"Feb."}
+MACRO {mar} {"Mar."}
+MACRO {apr} {"Apr."}
+MACRO {may} {"May"}
+MACRO {jun} {"June"}
+MACRO {jul} {"July"}
+MACRO {aug} {"Aug."}
+MACRO {sep} {"Sept."}
+MACRO {oct} {"Oct."}
+MACRO {nov} {"Nov."}
+MACRO {dec} {"Dec."}
+
+
+MACRO {acmcs} {"ACM Comput. Surv."}
+MACRO {acta} {"Acta Inf."}
+MACRO {cacm} {"Commun. ACM"}
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+MACRO {ibmsj} {"IBM Syst.~J."}
+MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
+MACRO {ipl} {"Inf. Process. Lett."}
+MACRO {jacm} {"J.~ACM"}
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+MACRO {scp} {"Sci. Comput. Programming"}
+MACRO {sicomp} {"SIAM J. Comput."}
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+MACRO {tods} {"ACM Trans. Database Syst."}
+MACRO {tog} {"ACM Trans. Gr."}
+MACRO {toms} {"ACM Trans. Math. Softw."}
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
+MACRO {tcs} {"Theoretical Comput. Sci."}
+MACRO {tieice} {"$B?.3XO@(B"}
+MACRO {tipsj} {"$B>pJs=hM}3X2qO@J8;o(B"}
+MACRO {jipsj} {"J.~Info. Proc. Soc. of Japan"}
+MACRO {jorsj} {"Journal of the O. R. Society of Japan"}
+
+READ
+FUNCTION {set.is.kanji.entry}
+{
+ author field.or.null is.kanji.str$
+ title field.or.null is.kanji.str$ or
+ editor field.or.null is.kanji.str$ or
+ journal field.or.null is.kanji.str$ or
+ booktitle field.or.null is.kanji.str$ or
+ series field.or.null is.kanji.str$ or
+ 'is.kanji.entry :=
+}
+ITERATE {set.is.kanji.entry}
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+INTEGERS { len }
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+
+
+FUNCTION {sort.format.names}
+{ 's :=
+ yomi empty$
+ 'skip$
+ { yomi 's := }
+ if$
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { ", " * }
+ 'skip$
+ if$
+
+ s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
+
+ nameptr numnames = t "others" = and
+ { s is.kanji.str$
+
+ {"$BB>(B" * }
+
+ {"et~al." *}
+ if$
+ }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+FUNCTION {presort}
+
+{ type$ "book" =
+
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+ITERATE {presort}
+SORT
+
+
+STRINGS { longest.label }
+INTEGERS { number.label longest.label.width }
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+EXECUTE {initialize.longest.label}
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+
+{ preamble$ empty$
+
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
diff --git a/biblio/pbibtex/base/jalpha.bst b/biblio/pbibtex/base/jalpha.bst
new file mode 100644
index 0000000000..98ca091e33
--- /dev/null
+++ b/biblio/pbibtex/base/jalpha.bst
@@ -0,0 +1,1551 @@
+ % version 0.30 for JBibTeX versions 0.30 or later, LaTeX version 2.09.
+ % Copyright (C) 1990, all rights reserved.
+ %
+ % This file is derived from btxbst.doc of BibTeX 0.99c
+ %
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % jbtxbst.doc, jplain.bst, junsrt.bst, jalpha.bst, jabbrv.bst,
+ % tipsj.bst, jipsj.bst, tieice.bst, jname.bst, jorsj.bst
+ %
+ % This restriction helps ensure that all standard styles are identical.
+ % The file jbtxbst.doc has the documentation for this style.
+ %
+ % Please notify Shouichi MATSUI(matsui@denken.or.jp) of any bugs in
+ % these standard styles or in this documentation file.
+ % $B>>0f(B $B@50l(B ($B:b(B) $BEENOCf1{8&5f=j!!>pJs%7%9%F%`It(B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ yomi
+ }
+ {is.kanji.entry}
+
+
+ { label extra.label sort.label }
+
+
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+
+}
+STRINGS { s t }
+
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+
+ { ", " * write$ }
+
+ { output.state after.block =
+ {
+
+ add.period$ write$
+
+ newline$
+ "\newblock " write$
+ }
+
+ { output.state before.all =
+ 'write$
+
+ { add.period$ " " * write$ }
+
+ if$
+ }
+
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.bibitem}
+{ newline$
+
+ "\bibitem[" write$
+ label write$
+ "]{" write$
+
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+FUNCTION {fin.entry}
+{
+
+ add.period$
+
+ write$
+ newline$
+}
+FUNCTION {new.block}
+{ output.state before.all =
+
+ 'skip$
+ { after.block 'output.state := }
+
+ if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { duplicate$ is.kanji.str$
+ 'skip$
+ { "{\em " swap$ * "}" * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+
+ { s nameptr "{ff}{ll}" format.name$ is.kanji.str$
+ {s nameptr "{ff}{ll}" format.name$ 't :=}
+ {s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=}
+ if$
+
+ nameptr #1 >
+ { namesleft #1 >
+
+ {", " * t * }
+
+
+ { t "others" =
+
+ { s is.kanji.str$
+
+ {"$B$[$+(B" * }
+
+
+ {", et~al." * }
+
+ if$
+ }
+ { s is.kanji.str$
+
+ {", " * t * }
+
+
+
+ { numnames #2 =
+ {" and " * t * }
+ {", and " * t * }
+ if$
+ }
+
+
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+
+ { author format.names }
+
+ if$
+}
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+
+ { editor format.names
+
+ editor num.names$ #1 >
+ { editor is.kanji.str$
+
+ {"$B!JJT!K(B" * } {", editors" * } if$
+
+ }
+ { editor is.kanji.str$
+
+ {"$B!JJT!K(B" *} {", editor" * } if$
+
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+
+{ title empty$
+
+ { "" }
+
+
+ { title "t" change.case$ }
+
+
+ if$
+}
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+FUNCTION {format.date}
+
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.btitle}
+
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect}
+ if$
+ }
+ if$
+ series empty$
+ 'skip$
+ { series is.kanji.str$
+ { volume empty$
+ {series swap$ * }
+
+ {series ", " * swap$ * }
+
+ if$
+ }
+ { " of " * series emphasize * }
+ if$
+ }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { number is.kanji.str$
+ { number }
+ {"No." number tie.or.space.connect}
+ if$
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { edition is.kanji.str$
+ { edition }
+ { is.kanji.entry
+ {"$BBh(B" edition * "$BHG(B" *}
+ { output.state mid.sentence =
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+
+ { "pp." pages n.dashify tie.or.space.connect }
+ { "p." pages tie.or.space.connect }
+
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.vol.num.pages}
+{ volume empty$
+ {""}
+
+
+ { volume is.kanji.str$
+ {volume ", " * }
+ {"Vol." volume tie.or.space.connect ", " * }
+ if$
+ }
+
+
+ if$
+ number empty$
+ 'skip$
+
+ { number is.kanji.str$
+ {number *}
+ {"No." number tie.or.space.connect *}
+ if$
+
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { number empty$
+
+ { format.pages * }
+ { ", " * format.pages * }
+
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { chapter is.kanji.str$
+ { "" }
+ { is.kanji.entry
+ {"$B>O(B"}
+ {"chapter"}
+ if$
+ }
+ if$
+ }
+ { type "l" change.case$ }
+ if$
+ chapter is.kanji.str$ not is.kanji.entry and
+ {"$BBh(B" chapter * swap$ *}
+ { chapter is.kanji.str$
+ {chapter *}
+ {chapter tie.or.space.connect}
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+
+ { ", " * format.pages * }
+
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { booktitle is.kanji.str$
+ { " " booktitle emphasize * }
+
+ { "In " booktitle emphasize * }
+
+ if$
+ }
+ { booktitle is.kanji.str$
+
+ { " " format.editors * ", " * booktitle * }
+
+
+ { "In " format.editors * ", " * booktitle emphasize * }
+
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+
+ key empty$ not and
+
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Technical Report" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { title is.kanji.str$
+ { " " journal * }
+
+ { "In {\em " journal * "\/}" * }
+
+ if$
+ }
+ if$
+ }
+ { title is.kanji.str$
+ { " " key * }
+
+ { "In " key * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.crossref.editor}
+{ editor is.kanji.str$
+
+ {editor #1 "{ff}" format.name$ duplicate$
+
+ empty$
+ {pop$ editor #1 "{ll}" format.name$}
+ 'skip$
+ if$
+ }
+
+ {editor #1 "{vv~}{ll}" format.name$}
+
+ if$
+ editor num.names$ duplicate$
+ #2 >
+ { editor is.kanji.str$
+
+ {pop$ "$B$[$+(B" *} {pop$ ", et~al." * } if$
+
+ }
+ { #2 <
+ 'skip$
+
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+
+ { editor is.kanji.str$
+
+ {"$B$[$+(B" *} {", et~al." * } if$
+
+ }
+ { editor is.kanji.str$
+ {
+
+ ", " *
+
+ editor #2 "{ff}" format.name$ duplicate$
+ empty$
+ {pop$ editor #2 "{ll}" format.name$}
+ 'skip$
+ if$
+ *
+ }
+ {" and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ title is.kanji.str$
+
+ {" "} {"In "} if$
+
+ }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect " of " * }
+ if$
+ }
+ if$
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { booktitle is.kanji.str$
+ { booktitle }
+
+ {"In {\em " booktitle * "\/}" * }
+
+ if$
+ }
+ if$
+ }
+
+ { "In " key * }
+
+ if$
+ }
+ { title is.kanji.str$
+ {" " format.crossref.editor * }
+
+ {"In " format.crossref.editor * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+
+ format.vol.num.pages output
+ format.date "year" output.check
+
+}
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+
+ new.sentence
+
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+
+ format.chapter.pages "chapter and pages" output.check
+
+ new.block
+ format.number.series output
+
+ new.sentence
+
+ publisher "publisher" output.check
+ address output
+ }
+
+ { format.chapter.pages "chapter and pages" output.check
+
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+
+ format.chapter.pages output
+
+
+
+ new.sentence
+
+ publisher "publisher" output.check
+ address output
+ format.edition output
+
+ format.date "year" output.check
+
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+
+ format.pages output
+
+
+
+ address empty$
+ { organization publisher new.sentence.checkb
+
+ organization output
+
+ publisher output
+
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+
+ format.date "year" output.check
+
+
+ new.sentence
+
+ organization output
+
+ publisher output
+
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "Master's thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "PhD thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+ format.date "year" output.check
+
+
+ new.sentence
+
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+MACRO {feb} {"February"}
+MACRO {mar} {"March"}
+MACRO {apr} {"April"}
+MACRO {may} {"May"}
+MACRO {jun} {"June"}
+MACRO {jul} {"July"}
+MACRO {aug} {"August"}
+MACRO {sep} {"September"}
+MACRO {oct} {"October"}
+MACRO {nov} {"November"}
+MACRO {dec} {"December"}
+
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+MACRO {acta} {"Acta Informatica"}
+MACRO {cacm} {"Communications of the ACM"}
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+MACRO {ibmsj} {"IBM Systems Journal"}
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+MACRO {ipl} {"Information Processing Letters"}
+MACRO {jacm} {"Journal of the ACM"}
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+MACRO {scp} {"Science of Computer Programming"}
+MACRO {sicomp} {"SIAM Journal on Computing"}
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+MACRO {tods} {"ACM Transactions on Database Systems"}
+MACRO {tog} {"ACM Transactions on Graphics"}
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+MACRO {tcs} {"Theoretical Computer Science"}
+MACRO {tieice} {"$BEE;R>pJsDL?.3X2qO@J8;o(B"}
+MACRO {tipsj} {"$B>pJs=hM}3X2qO@J8;o(B"}
+MACRO {jipsj} {"Journal of Informatin Processing Society of Japan"}
+MACRO {jorsj} {"Journal of the Operations Research Society of Japan"}
+
+READ
+FUNCTION {set.is.kanji.entry}
+{
+ author field.or.null is.kanji.str$
+ title field.or.null is.kanji.str$ or
+ editor field.or.null is.kanji.str$ or
+ journal field.or.null is.kanji.str$ or
+ booktitle field.or.null is.kanji.str$ or
+ series field.or.null is.kanji.str$ or
+ 'is.kanji.entry :=
+}
+ITERATE {set.is.kanji.entry}
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+INTEGERS { len }
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+
+INTEGERS { et.al.char.used }
+FUNCTION {initialize.et.al.char.used}
+{ #0 'et.al.char.used :=
+}
+EXECUTE {initialize.et.al.char.used}
+FUNCTION {format.lab.names}
+{ 's :=
+ yomi empty$
+ 'skip$
+ { yomi 's :=}
+ if$
+
+ s is.kanji.str$
+ { s #1 "{ff}" format.name$ #4 text.prefix$ duplicate$ empty$
+ {pop$ s #1 "{ll}" format.name$ #4 text.prefix$}
+ 'skip$
+ if$
+ }
+ {
+ s num.names$ 'numnames :=
+ numnames #1 >
+ { numnames #4 >
+ { #3 'namesleft := }
+ { numnames 'namesleft := }
+ if$
+ #1 'nameptr :=
+ ""
+ { namesleft #0 > }
+ { nameptr numnames =
+ { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { "{\etalchar{+}}" *
+ #1 'et.al.char.used :=
+ }
+ { s nameptr "{v{}}{l{}}" format.name$ * }
+ if$
+ }
+ { s nameptr "{v{}}{l{}}" format.name$ * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ numnames #4 >
+ { "{\etalchar{+}}" *
+ #1 'et.al.char.used :=
+ }
+ 'skip$
+ if$
+ }
+ { s #1 "{v{}}{l{}}" format.name$
+ duplicate$ text.length$ #2 <
+ { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ }
+ 'skip$
+ if$
+ }
+ if$
+ }
+ if$
+
+}
+FUNCTION {author.key.label}
+{ author empty$
+ { key empty$
+
+ { cite$ #1 #3 substring$ }
+
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+FUNCTION {author.editor.key.label}
+{ author empty$
+ { editor empty$
+ { key empty$
+
+ { cite$ #1 #3 substring$ }
+
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+FUNCTION {author.key.organization.label}
+{ author empty$
+ { key empty$
+ { organization empty$
+
+ { cite$ #1 #3 substring$ }
+
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ if$
+ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+FUNCTION {editor.key.organization.label}
+{ editor empty$
+ { key empty$
+ { organization empty$
+
+ { cite$ #1 #3 substring$ }
+
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ if$
+ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names }
+ if$
+}
+FUNCTION {calc.label}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label
+ { type$ "proceedings" =
+ 'editor.key.organization.label
+ { type$ "manual" =
+ 'author.key.organization.label
+ 'author.key.label
+ if$
+ }
+ if$
+ }
+ if$
+ duplicate$
+ year field.or.null purify$ #-1 #2 substring$
+ *
+ 'label :=
+ year field.or.null purify$ #-1 #4 substring$
+ *
+ sortify 'sort.label :=
+}
+
+
+
+FUNCTION {sort.format.names}
+{ 's :=
+ yomi empty$
+ 'skip$
+ { yomi 's := }
+ if$
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { ", " * }
+ 'skip$
+ if$
+
+ s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
+
+ nameptr numnames = t "others" = and
+ { s is.kanji.str$
+
+ {"$B$[$+(B" * }
+
+ {"et~al." *}
+ if$
+ }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+FUNCTION {presort}
+
+{ calc.label
+ sort.label
+ " "
+ *
+ type$ "book" =
+
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+
+ *
+
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+ITERATE {presort}
+SORT
+
+
+
+STRINGS { longest.label last.sort.label next.extra }
+INTEGERS { longest.label.width last.extra.num }
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #0 int.to.chr$ 'last.sort.label :=
+ "" 'next.extra :=
+ #0 'longest.label.width :=
+ #0 'last.extra.num :=
+}
+FUNCTION {forward.pass}
+{ last.sort.label sort.label =
+ { last.extra.num #1 + 'last.extra.num :=
+ last.extra.num int.to.chr$ 'extra.label :=
+ }
+ { "a" chr.to.int$ 'last.extra.num :=
+ "" 'extra.label :=
+ sort.label 'last.sort.label :=
+ }
+ if$
+}
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+ { "a" 'extra.label := }
+ 'skip$
+ if$
+ label extra.label * 'label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+ extra.label 'next.extra :=
+}
+EXECUTE {initialize.longest.label}
+ITERATE {forward.pass}
+REVERSE {reverse.pass}
+
+
+FUNCTION {begin.bib}
+
+{ et.al.char.used
+ { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
+ 'skip$
+ if$
+ preamble$ empty$
+
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
diff --git a/biblio/pbibtex/base/jbibtex.bib b/biblio/pbibtex/base/jbibtex.bib
new file mode 100644
index 0000000000..ad8d7f82d8
--- /dev/null
+++ b/biblio/pbibtex/base/jbibtex.bib
@@ -0,0 +1,39 @@
+@BOOK{texbook,
+ author = "Donald E. Knuth",
+ title= "The {{\TeX}book}",
+ publisher = "Addison-Wesley",
+ year = 1984 }
+
+@BOOK{latex,
+ author = "Leslie Lamport",
+ title = "{\LaTeX \rm:} {A} Document Preparation System",
+ publisher = "Addison-Wesley",
+ year = 1986,
+ note="($BK.Lu!'!XJ8=q=hM}%7%9%F%`(B (\LaTeX)$B!Y(B Edgar Cooke, $BARBt(B $BNI0l(B $B4FLu(B,
+ $BBgLn(B $B=S<#(B, $B>.Jk(B $BGnF;(B, $BF#1:(B $B$O$kH~(B $BLu(B, $B%"%9%-!<(B, 1990$BG/(B)"
+ }
+
+@UNPUBLISHED{btxdoc,
+ author = "Oren Patashnik",
+ title = "{{\BibTeX ing}}",
+ note = "Documentation for general {\BibTeX} users",
+ month = jan,
+ year = 1988 }
+
+@UNPUBLISHED{btxhak,
+ author = "Oren Patashnik",
+ title = "Designing {\BibTeX} Styles",
+ note = "The part of \BibTeX's documentation
+ that's not meant for general users",
+ month = jan,
+ year = 1988 }
+
+@BOOK{jeng,
+ author="$B%^!<%/!&%T!<%?!<%;%s(B",
+ title="$BF|K\?M$N1Q8l(B",
+ publisher="$B4dGH=qE9(B",
+ year=1988,
+ pages=196,
+ yomi="Mark Petersen",
+ series="$B4dGH?7=q(B($B?7@VHG(B) 18",
+}
diff --git a/biblio/pbibtex/base/jbibtex.pdf b/biblio/pbibtex/base/jbibtex.pdf
new file mode 100644
index 0000000000..65f4fb0925
--- /dev/null
+++ b/biblio/pbibtex/base/jbibtex.pdf
Binary files differ
diff --git a/biblio/pbibtex/base/jbibtex.tex b/biblio/pbibtex/base/jbibtex.tex
new file mode 100644
index 0000000000..74c94c5f25
--- /dev/null
+++ b/biblio/pbibtex/base/jbibtex.tex
@@ -0,0 +1,672 @@
+\documentstyle[tables]{jarticle}
+\def\dg{\gt}
+\def\dm{\mc}
+\voffset=-2.3cm
+\hoffset=-2.3cm
+\textheight=25.5cm
+\textwidth=16.6cm
+
+\def\JTeX{\leavevmode\lower .5ex\hbox{J}\kern-.17em\TeX}
+\def\JLaTeX{\leavevmode\lower.5ex\hbox{J}\kern-.17em\LaTeX}
+
+\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
+ T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
+
+\def\JBibTeX{\leavevmode\lower .6ex\hbox{J}\kern-0.15em\BibTeX}
+
+\def\myftnote#1{\footnote{\parindent=16pt\hskip-15pt\hang\indent#1\parindent=10pt}}
+
+
+\def\tstrut{\vrule height 2.346ex depth 0.908ex width 0pt}
+\thicksize=0.7pt
+\thinsize=0.3pt
+
+\setcounter{topnumber}{3}
+\setcounter{bottomnumber}{3}
+\setcounter{totalnumber}{6}
+\renewcommand{\topfraction}{0.99}
+\renewcommand{\bottomfraction}{0.99}
+\renewcommand{\textfraction}{0.01}
+
+\title{$BF|K\8l(B\BibTeX$B!'(B\JBibTeX}
+\author{$B>>0f!!@50l(B {\tt\ (matsui@denken.or.jp)}\\
+\normalsize ($B:b(B)$BEENOCf1{8&5f=j(B $B>pJs%7%9%F%`It(B ($B")(B100 $B@iBeED6hBg<jD.(B1-6-1) }
+\date{1991$BG/(B1$B7n(B1$BF|(B}
+\begin{document}
+\baselineskip=16pt
+
+\maketitle
+
+\begin{abstract}
+
+\JBibTeX $B$O(B\BibTeX\ 0.99c$B$r4p$K(B
+{\tt bib, bst}$B%U%!%$%kCf$K4A;z%3!<%I$r;H$($k$h$&$KJQ99$r2C$($?$b$N$G$"$k!%(B
+
+$B$3$N%a%b$G$O!$@h$::G=i$K(B\BibTeX $B$N35MW$r4JC1$K@bL@$7$?8e!$(B
+$BF|K\8l2=$KBP$7$F$N4pK\E*$J9M$(J}!$<g$JJQ99E@!$(B
+$BF|K\8l$KBP1~$9$k$h$&$K:n@.$7$?%9%?%$%k$K$D$$$F(B
+$B@bL@$9$k!%(B
+\end{abstract}
+
+\section{$B$O$8$a$K(B}
+
+\TeX $B$r(BNTT$B$N@FF#;a$,F|K\8l2=$7$F$/$l$?$*$+$2$G(B\TeX $B$G(B
+$BF|K\8l$,;H$($k$h$&$K$J$C$?(B\myftnote{ICOT$B$N9bLZ;a(B($B8=:_F|N)(B)$B!$ETN)Bg$N(B
+$B:y0f;a$NNO$KIi$&$H$3$m$bBg$-$$!%(B}$B!%$^$?(BNTT$B$N0k:j;a$,(B\LaTeX $B$N(B
+$BF|K\8lHG(B \JLaTeX $B$r:n$C$F$/$l$?$N$G!$(B
+$B4JC1$KF|K\8l$N%?%$%W%;%C%H$,$G$-$k$h$&$K$J$C$?(B\myftnote{$B:G=i$K3+H/$7$?(B
+\JBibTeX $B$O(BNTT$BHG$rA[Dj$7$F$$$?$N$G!$(BASCII$BHG$KBP$9$k5-=R$,$J$$$@$1$G!$(B
+$BB>0U$O$J$$!%8=:_$O(BNTT$BHG!$(BASCII$BHG$NN>J}$r;H$C$F$$$k!%(B}$B!%(B
+
+$B5;=Q7O$NJ8=q$r=q$/>l9g$K$O!$;29MJ88%$N4IM}$K<j4V<h$k$3$H$,B?$$!%(B
+$B$3$N<j4V$r7Z8:$9$k$?$a$N%W%m%0%i%`$H$7$F(B\LaTeX $B$K$O!$(B{\tt roff}
+$B0lB2$N(B{\tt refer}$B$KBP1~$7$?(B
+\BibTeX $B$,$"$k$,!$$3$NF|K\8l2=$,$G$-$F(B
+$B$$$J$+$C$?$N$G(B\myftnote{1988$BG/(B4$B7n$K!$9bLZ;a(B
+$B$+$i(B\JTeX~in C $B$N%F!<%W$rF~<j$7$?;~E@$G!%$^$?(BASCII$B%P!<%8%g%s$rCN$i$J$+$C$?(B
+$B$N$G!%(B}$B!$(B
+\JLaTeX $B$N5!G=$r3h$+$7$-$l$J$$$-$i$$$,$"$C$?(B\myftnote{$B;d$OLLE]$/$5$$(B
+$B$3$H$O7y$$$J$N$G!%(B}$B!%(B
+$B$=$3$G!$$H$j$"$($:F|K\8l$r;H$($k7A$N(B\BibTeX $B$r(B\JBibTeX $B$H$$$&7A$G(B
+$B:n@.$7$F$_$?!%(B
+
+\section{\BibTeX $B$N35MW(B}
+
+\subsection{$B=hM}$NN.$l(B}
+\BibTeX $B$O(B\LaTeX $B$G:n@.$5$l$k(B{\tt aux}$B%U%!%$%k(B\myftnote{$B%U%!%$%k$N(B
+$B%(%/%9%F%s%7%g%s$G%U%!%$%kL>$rBeI=$9$k!%(B}$BCf(B
+$B$N(B \verb|\citation|$B$K<($5$l$F(B
+$B$$$k(B \verb|\cite|$B9`L\$KBP1~$9$k;29MJ88%%l%3!<%I$r(B\LaTeX $B$N(B
+$BJ8=qCf$K(B \verb|\bibliography|$B$G;XDj$5$l$?%G!<%?%Y!<%9%U%!%$%k(B
+({\tt bib})$B$+$i(B
+$B8!:w$7!$(B \verb|\bibliographystyle|$B$G;XDj$5$l$?;29MJ88%(B
+$B=q<0(B($B%9%?%$%k(B)$B$G(B{\tt bbl}$B%U%!%$%k$K=q$-=P$97A$GF0:n$9$k!%<B9T;~$N(B
+$B%a%C%;!<%8$OC<Kv$K=PNO$5$l$k$HF1;~$K!$%m%0%U%!%$%k$N(B{\tt blg}$B%U%!%$%k$K$b(B
+$B=PNO$5$l$k!%(B
+
+$BDL>o$O$"$kJ8=q(B{\tt file.tex}$B$r=hM}$9$k$K$O<!$N$h$&$J(B
+$B<j=g$r$U$`(B\myftnote{{\tt bbl}$B%U%!%$%k$NFbMF$,8GDj$5$l$?8e$O!$(B{\tt latex}$B$r(B
+$B5/F0$9$k$@$1$G$h$$(B($BAj8_;2>H4X78$N=hM}$N$?$a$K(B2$B2s0J>e$N5/F0$,I,MW$J(B
+$B$3$H$b$"$k(B)$B!%(B}$B!%(B
+
+\newcounter{myn}
+\begin{list}%
+{\arabic{myn}.}{\usecounter{myn}
+\setlength{\parsep}{1pt}
+\setlength{\itemsep}{1pt}
+\setlength{\topsep}{1pt}
+}
+\item {\tt latex file}$B$G(B{\tt aux}$B$r:n$j=P$9!%(B
+\item {\tt bibtex file}$B$G(B{\tt aux, bib}$B$+$i(B{\tt bbl}$B%U%!%$%k$r:n$j=P$9!%(B
+\item $B0J8e$N(B{\tt latex file}$B$N5/F0$G(B{\tt bbl}$B$,<+F0E*$KFI$_9~$^$l$k!%(B
+\end{list}
+
+\subsection{$B;29MJ88%%G!<%?%Y!<%9(B}
+$B%G!<%?%Y!<%9Cf$N;29MJ88%%l%3!<%I$O!$J88%$N7A<0(B($BO@J8!$K\$J$I(B)$B$r;XDj$7$?(B
+$B8e$K!$0zMQ%-!<!$=q;o9`L\$r(B ``$B%-!<%o!<%I(B=$BCM(B'' $B$N7A$G%+%s%^$G6h@Z$C$F(B
+$BJB$Y$k7A$G5-=R$9$k(B\cite{latex,btxdoc}$B!%(B
+\newpage
+$BJ88%$N7A<0$H$7$F$O0J2<$,MQ0U$5$l$F$$$k!%(B
+\begin{table}[h]
+\begintable
+{\dg $BJ88%$N7A<0(B}|{\dg $B@b(B\hskip2cm $BL@(B}\hfil\crthick
+{\tt article}\hfill| $BO@J8;o$J$IH/I=$5$l$?O@J8(B\hfill\cr
+{\tt book}\hfill | $B=PHG<R$NL@<($5$l$?K\(B\hfill\cr
+{\tt booklet}\hfill | $B0u:~!$@=K\$5$l$F$$$k$,=PHG<gBN$,ITL@$J$b$N(B\hfill\cr
+{\tt conference}\hfill | inproceedings$B$HF1$8(B(Scribe$B$H$N8_49@-$N$?$a(B)\hfill\cr
+{\tt inbook}\hfill | $B=qJ*$N0lIt(B($B>O!$@a!$J8$J$I2?$G$b(B)\hfill\cr
+{\tt incollection}\hfill | $B$=$l<+?H$NI=Bj$r;}$D!$K\$N0lItJ,(B\hfill\cr
+{\tt inproceedings\ }\hfill | $B2q5DO?Cf$NO@J8(B\hfill\cr
+{\tt manual}\hfill | $B%^%K%e%"%k(B\hfill\cr
+{\tt masterthesis}\hfill | $B=$;NO@J8(B\hfill\cr
+{\tt misc}\hfill | $BB>$N$I$l$K$bEv$F$O$^$i$J$$;~$K;H$&(B\hfill\cr
+{\tt phdthesis}\hfill | $BGn;NO@J8(B\hfill\cr
+{\tt proceedings}\hfill | $B2q5DO?(B\hfill\cr
+{\tt techreport}\hfill | $B%F%/%K%+%k%l%]!<%H(B\hfill\cr
+{\tt unpublished}\hfill | $B@5<0$K$O=PHG$5$l$F$$$J$$$b$N(B\hfill\endtable
+\end{table}
+
+$B$=$l$>$l$GI,?\$J9`L\(B($B%U%#!<%k%I(B)$B$,$"$k!%(B
+
+$B9`L\(B($B%U%#!<%k%I(B)$B$H$7$F$O0J2<$,$"$k(B\myftnote{$B@53N$K$O(Bplain, alpha,
+abbrv, unsrt$B$G!$(Bannote$B$r=|$$$?9`L\$,0UL#$r;}$D(B($B%?%$%W%;%C%H$K(B
+$B;H$o$l$k(B)$B!%(B}$B!%(B
+\begin{table}[h]
+\begintable
+{\dg $B%U%#!<%k%IL>(B}|{\dg $B@b(B\hskip2cm $BL@(B}\hfil\crthick
+{\tt address}\hfill | $B=PHG<gBN$N=;=j(B\hfill\cr
+{\tt annote}\hfill | $BCm<aIU$-$N%9%?%$%k$G;H$o$l$k(B\hfill\cr
+{\tt author}\hfill | $BCx<TL>(B\hfill\cr
+{\tt booktitle}\hfill | $BK\$NL>A0(B\hfill\cr
+{\tt chapter}\hfill | $B>O!$@a$J$I$NHV9f(B\hfill\cr
+{\tt crossref}\hfill | $BAj8_;2>H$9$kJ88%$N%G!<%?%Y!<%9$N%-!<(B\hfill\cr
+{\tt edition}\hfill | $BK\$NHG(B\hfill\cr
+{\tt editor}\hfill | $BJT=8<T(B\hfill\cr
+{\tt howpublished\ }\hfill | $B$I$N$h$&$K$7$F$3$N4qL/$J$b$N$,H/9T$5$l$?$+(B\hfill\cr
+{\tt institution}\hfill | $B%F%/%K%+%k%l%]!<%H$NH/9T<gBN(B\hfill\cr
+{\tt journal}\hfill | $BO@J8;oL>(B\hfill\cr
+{\tt key}\hfill | $BCx<TL>$,$J$$;~$KAj8_0zMQ!$%i%Y%k:n@.$J$I$K;H$o$l$k(B\hfill\cr
+{\tt month}\hfill | $BH/9T7n!$$^$?$O=q$+$l$?7n(B\hfill\cr
+{\tt note}\hfill | $BFI<T$KLrN)$DIU2C>pJs(B\hfill\cr
+{\tt number}\hfill | $BO@J8;o$J$I$NHV9f(B\hfill\cr
+{\tt organization\ }\hfill | $B2q5D$r<g:E$7$?5!4XL>$"$k$$$O%^%K%e%"%k$N=PHG<gBN(B\hfill\cr
+{\tt pages}\hfill | $B%Z!<%8(B($BHO0O(B)\hfill\cr
+{\tt publisher}\hfill | $B<gHG<R(B($B<T(B)$BL>(B\hfill\cr
+{\tt school}\hfill | $B=$;N!$Gn;NO@J8$,=q$+$l$?Bg3XL>(B\hfill\cr
+{\tt series}\hfill | $B%7%j!<%:!$$"$k$$$OJ#?t4,$NK\$NL>A0(B\hfill\cr
+{\tt title}\hfill | $BI=Bj(B\hfill\cr
+{\tt type}\hfill | $B%F%/%K%+%k%l%]!<%H$N<oN`(B\hfill\cr
+{\tt volume}\hfill | $BO@J8;o!$J#?t4,$NK\$N4,(B\hfill\cr
+{\tt year}\hfill | $BH/9TG/!$$^$?$O=q$+$l$?G/(B\hfill\endtable
+\end{table}
+\newpage
+
+$B0J2<$K%G!<%?%Y!<%9$N5-=RNc$r<($9!%(B
+
+{\baselineskip=11pt
+\begin{quote}
+\begin{verbatim}
+ @ARTICLE{la,
+ author="Masao Iri and Kazuo Murota and Shouichi Matsui",
+ title="Linear-time approximation algorithms for finding the
+ minimum-weight perfect matching on a plane",
+ journal=ipl,volume=12,pages="206--209",year=1981
+ }
+\end{verbatim}
+\end{quote}
+}
+
+$BIQHK$K;H$o$l$kO@J8;oL>$J$I$O!$(B({\tt bst}$B%U%!%$%kCf$K(B)$B8e=R$N%^%/%m5!G=$r;H$C$F(B
+$B>JN,7A$rDj5A$7$F$*$/$3$H$G!$(B{\tt journal=ipl}$B$J$I$H=q$1$k(B({\tt bib}$B%U%!%$%k(B
+$BCf$K(B{\tt @STRING(ipsj=\{$B>pJs=hM}3X2q(B\})}$B$N$h$&$KDj5A$9$k$3$H$b$G$-$k(B)$B!%(B
+
+\subsection{$B%9%?%$%k(B}
+$B%9%?%$%k$O(B{\tt alpha.bst}$B$J$I$N%9%?%$%k%U%!%$%k$K5-=R$5$l$F$$$k!%(B
+$B%9%?%$%k%U%!%$%kCf$N=q<0$O!$%9%?%C%/%^%7%s$KBP$7$F$NL?Na$r(B
+$B8eCV1i;;;R5-K!$G5-=R$7$?7A$G$"$k(B\cite{btxhak}$B!%(B
+
+$B%9%?%$%k$r5-=R$9$k8@8l$K$OFs<oN`$N4X?t$,$"$k!%0l$D$O%7%9%F%`AH$_9~$_$N(B
+$B$b$N$G$"$j!$(B{\tt newline\$, write\$} $B$J$I$N$h$&$KL>A0$N:G8e$,(B{\tt `\$'}$B$G(B
+$B=*$k!%$b$&0l$D$O(B{\tt MACRO, FUNCTION}$B$r;H$C$FDj5A$9$k$b$N$G$"$k!%(B
+
+$BAH$_9~$_4X?t$K$O0J2<$N$h$&$J$b$N$,$"$k(B($BA4It$G(B37$B$"$k(B)$B!%(B
+
+\begin{table}[h]
+\parasize=9.68cm
+\begintable
+{\dg\bf $BAH$_9~$_4X?t(B($BL>(B)\ }|{\dg $B5!(B\hskip2cm $BG=(B}\hfil\crthick
+{\tt >, <, =} \hfill | \para{$B@0?t$NHf3S(B}\cr
+{\tt +, -}\hfill |\para{$B@0?t2C;;!$8:;;(B}\cr
+{\tt *}\hfill | \para{$BJ8;zNs$NO"7k(B}\cr
+{\tt :=}\hfill |\para{$BBeF~(B}\crthick
+{\tt add.period\$}\hfill|\para{$BJ8;zNs$N(B{\tt `\}'}$B$G$J$$:G8e$NJ8;z$,!$(B
+{\tt `.', `?', `!'}$B$N$$$:$l$G$b$J$1$l$P(B{\tt `.'}$B$r:G8e$KIU2C$9$k(B}\cr
+{\tt call.type\$}\hfill|\para{$B%(%s%H%j$N7?(B($BJ88%$N7?(B)$B$K1~$8$?4X?t$r8F$S=P$9!%(B
+$BNc$($P(B{\tt book}$B$J$i4X?t(B{\tt book}$B$r8F$S=P$9!%(B}\cr
+{\tt change.case\$}\hfill | \para{$B;XDj$K1~$8$FBgJ8;z!$(B
+$B>.J8;z$KJQ49$7$?J8;zNs$rJV$9(B($B;XDj$,(B{\tt `t'}$B$J$i(B
+$B:G=i$NJ8;z0J30$r$9$Y$F>.J8;z$K!$(B{\tt `l'}$B$J$i$9$Y$F(B
+$B>.J8;z$K!$(B{\tt `u'}$B$J$i$9$Y$FBgJ8;z$KJQ49$9$k(B)$B!%(B}\cr
+{\tt chr.to.int\$}\hfill |\para{1$BJ8;z$N$_$NJ8;zNs$N(BASCII$B%3!<%I$rJV$9(B}\cr
+{\tt text.prefix\$}\hfill | \para{$B9b!9;XDj$5$l$?J8;z?t(B
+$B0JFb$N@hF,J8;zNs$rJV$9(B}\cr
+{\tt skip\$}\hfill | \para{$B2?$b$7$J$$(B}\cr
+{\tt substring\$}\hfill | \para{$BItJ,J8;zNs$rJV$9(B}\cr
+{\tt write\$}\hfill | \para{$BJ8;zNs$r(B{\tt bbl}$B%U%!%$%k$K=q$-=P$9(B} \endtable
+\end{table}
+
+$B%9%?%$%k$OA0=R$N4X?t$H%3%^%s%I$*$h$S%7%9%F%`JQ?t$r;H$C$F5-=R$9$k!%(B
+$B%3%^%s%I$O0J2<$+$i$J$k!%(B
+\begin{itemize}
+\item $B@k8@$HJQ?t!$4X?tDj5A$N$?$a$N(B5$B$D$N%3%^%s%I(B({\tt ENTRY, FUNCTION, INTEGERS,
+MACRO, STRINGS})
+
+\begin{table}[h]
+\begintable
+{\dg $B%3%^%s%IL>(B}\ | {\dg $B5!(B\hskip2cm $BG=(B}\hfil\crthick
+{\tt ENTRY}\hfill | $B%U%#!<%k%I$H%(%s%H%j$r@k8@$9$k(B\hfill\cr
+{\tt FUNCTION}\hfill | $B?7$?$J4X?t$rDj5A$9$k(B\hfill\cr
+{\tt INTEGERS}\hfill | $B%0%m!<%P%k$J@0?t7?$NJQ?t$r@k8@$9$k(B\hfill\cr
+{\tt MACROS}\hfill | $BJ8;zNs%^%/%m$rDj5A$9$k(B\hfill\cr
+{\tt STRINGS}\hfill | $B%0%m!<%P%k$JJ8;zNs7?$NJQ?t$r@k8@$9$k(B\hfill\endtable
+\end{table}
+
+\item $B%G!<%?%Y!<%9FI$_9~$_$N$?$a$N%3%^%s%I(B({\tt READ})$B!%%G!<%?%Y!<%9(B
+$B$rFI$_9~$_!$FbItE*$K%j%9%H$N7A<0$K$9$k!%(B
+\newpage
+\item $B=hM}$H=PNO$N$?$a$N(B4$B$D$N%3%^%s%I(B({\tt EXECUTE, ITERATE, REVERSE, SORT})
+
+\begin{table}[h]
+\begintable
+{\dg $B%3%^%s%IL>(B}\ | {\dg $B5!(B\hskip2cm $BG=(B}\hfil\crthick
+{\tt EXECUTE}\hfill | 1$B$D$N4X?t$r<B9T$9$k(B\hfill\cr
+{\tt ITERATE}\hfill | $B8=:_$N%j%9%HCf$N3F%(%s%H%j$KBP$7$F(B1$B$D$N4X?t$r(B
+$BE,MQ$9$k(B\hfill\cr
+{\tt REVERSE}\hfill | {\tt ITERATE}$B$HF1$8A`:n$r%j%9%H$N5U=g$K9T$&(B\hfill\cr
+{\tt SORT}\hfill | {\tt sort.key\$}$B$K$h$C$F%j%9%H$r%=!<%H$9$k(B\hfill\endtable
+\end{table}
+\end{itemize}
+
+$B%7%9%F%`JQ?t$K$O0J2<$,$"$k!%(B
+\begin{table}[h]
+\begintable
+{\dg $BJQ?tL>(B}| {\dg $B@b(B\hskip2cm $BL@(B}\hfil\crthick
+{\tt sort.key\$}\hfill | $BJ8;zNs7?!$%=!<%H$N%-!<(B\hfill\cr
+{\tt entry.max\$}\hfill | $B@0?t7?!$%(%s%H%jJ8;zNs$N:GBgD9(B(100)\hfill\cr
+{\tt global.max\$\ }\hfill | $B@0?t7?!$J8;zNs$N:GBgD9(B(1000)\hfill\endtable
+\end{table}
+
+$B0J2<$K%9%?%$%k%U%!%$%k(B{\tt alpha}$B$N0lItJ,$rNc$H$7$F<($9!%(B
+
+\begin{figure}[h]
+{\baselineskip=11pt
+\begin{quote}
+\begin{verbatim}
+MACRO {tcs} {"Theoretical Computer Science"}
+READ
+FUNCTION {sortify}
+ { purify$ "l" change.case$ }
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+INTEGERS { et.al.char.used }
+FUNCTION {initialize.et.al.char.used}
+ { #0 'et.al.char.used := }
+EXECUTE {initialize.et.al.char.used}
+ITERATE {presort}
+SORT
+EXECUTE {initialize.longest.label}
+ITERATE {forward.pass}
+REVERSE {reverse.pass}
+FUNCTION {begin.bib}
+{ et.al.char.used
+ { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
+ 'skip$
+ if$
+ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
+\end{verbatim}
+\end{quote}
+}
+\end{figure}
+\section{$BF|K\8l2=$N35MW(B}
+\subsection{$B%P!<%8%g%s(B0.10$B$H(B0.20$B$N@8$$N)$A(B}
+$B:G>.8B$NJQ99$G$9$^$;$k$3$H$K$7(B\myftnote{$B<jH4$-$G$"$k!%(B}$B!$(B
+$B0J2<$N7A$G85$N(B\BibTeX (Version 0.99c; Pascal$BHG(B)$B$KJQ99$r(B
+$B2C$($?Bh(B1$B%P!<%8%g%s(B(0.10)$B$r(B1988$BG/(B5$B7n$K:n@.$7$?!%$3$N(B
+$B$?$a$K9T$C$?JQ99$O!$(Bchange
+file$B$NJQ99$,(B600$B9TDxEY!$(BC$B$G=q$+$l$?%5%]!<%H%k!<%A%s(B(bibext.c)$B$X$N(B
+$BJQ99$,(B50$B9TDxEY$G$"$k$,!$(Bchange file$B$X$NK\<AE*$JJQ99$O(B200$B9TDxEY$G$"$k!%(B
+
+$B$=$N8e(B1989$BG/(B5$B7n$K(B\BibTeX $B$N(BC$B%P!<%8%g%s$KBP1~$7$F!$(B
+Pascal$B%3%s%Q%$%i!<$N$J$$%7%9%F%`$G$bF0:n$9$k$h$&$K!$(B
+$BBh(B2$B%P!<%8%g%s(B(0.20)$B$r:n@.$7$?!%$3$N$?$a$K(B
+$B9T$C$?JQ99$O!$?7$?$JAH$_9~$_4X?t$rDI2C$9$k(B
+$B$3$H$b4^$a$F(Bchange file$B$NJQ99$,(B450$B9TDxEY!$(B
+bibext.c$B$X$NJQ99$,(B430$B9TDxEY$G(B
+$B$"$k(B\myftnote{{\tt web2c}$B$N=PNOCf$N(B{\tt putc}$B$rF|K\8l(B
+$B%3!<%I$KBP1~$9$k$?$a$N(B{\tt Fputc}$B$K(B{\tt sed}$B$9$k(B
+$B$?$a$K(B{\tt Makefile}$B$N0lItJ,$bJQ99$7$?!%(B}$B!%(B{\tt bibext.c}$B$NJQ99$N(B
+$BBgItJ,$O(B\JTeX $BMQ$K:y0f;a$,:n@.$7$?%W%m%0%i%`$rN.MQ$7$F$$$k$N$G!$?7$?$K(B
+$B:n@.$7$?ItJ,$O>/$J$$(B\myftnote{$B:n6H$O(BSUN-3$B$G9T$C$?$,!$$=$NB>$N%^%7%s$X$N(B
+$B0\?":n6H$O(BJUNET$B$rDL$8$F6(NO$7$F$$$?$@$$$?!%$3$l$K$h$j(B
+$B8=:_$O!$(BSUN-4, VAX/ Ultrix/BSD, NEWS /NEWS-OS, Symmetry /Dynix,
+FACOM M Series /UTS, LUNA /BSD, $B&2(BWS$B$J$I$GF0:n$7$F$$$k!%(B}$B!%(B
+
+\subsection{$B%P!<%8%g%s(B0.30$B$H(BMS-DOS$BHG$NN9N)$A(B}
+$BI.<T$,6PL3$N4X78$GJF9q=PD%Cf$N%/%j%9%^%95Y2K$N4V$K:n@.$7$?(B
+$B$N$,%P!<%8%g%s(B0.30$B$H(B{\tt MS-DOS}$BHG$N(B\JBibTeX $B$G$"$k(B\myftnote{$B4($$=j(B
+$B$@$C$?$N$G!$2HB2$G30=P(B
+$B$9$k5$$K$b$J$i$:!$$*6b$b$J$+$C$?$N$GN99T$b$G$-$:$G(B {\tt :-)}$B!%(B}$B!%(B
+
+$B%P!<%8%g%s(B0.30$B$G$O(BASCII$BHG$N(Bversion 0.98$B$r%Y!<%9$K$7$?(B{\tt Kanji BibTeX}
+$B$H$N@09g@-$r8~>e$5$;$k!$$^$?IT40A4$G$"$C$?F|K\8lBP1~$r40A4$K$9$k$J$I$N(B
+$B:n6H$r9T$C$?!%(B
+$B$3$N$?$a$K%P!<%8%g%s(B0.20$B$+$iJQ99$7$?(Bchange file$B$N9T?t$O(B50$B9TDxEY$G$"$k!%(B
+$B$3$l$K:]$7$F$O!$?&>l$NF1N=$G$"$k(B
+$BFsJ}8|;V!$=j7r0l$NN>;a!$(B($B3t(B)$B%"%9%-!<$NARBtNI0l!$EOn5M:0lN>;a$N6(NO$rF@$?!%(B
+$BFC$KEOn5;a$K$OB?K;$JCf!$MM!9$J%F%9%H$K6(NO$7$F$$$?$@$$$?!%(B
+$B%P!<%8%g%s(B0.30$B$G$O%I%-%e%a%s%HN`$N=$@5!$%9%?%$%k%U%!%$%k$N2~NI$b9T$C$?!%(B
+$B$3$l$K$h$j!$(BNTT$BHG$@$1$G$J$/!$(BASCII$BHG$G$b(B($B%I%-%e%a%s%H$N=hM}$b4^$a$F(B)
+$BLdBj$J$/F0:n$9$k%P!<%8%g%s$NG[I[%-%C%H$,40@.$7$?!%(B
+
+MS-DOS$BHG$O(BUNIX$B>e$G:n@.$7$?(BC$B$N%=!<%9$rD>@\JQ99$7$F(BTurbo-C$B$rMxMQ$7$F:n@.$7$?!%(B
+$B%3%s%Q%$%i!$%j%s%+$N@)Ls$+$iBgNL$NBg0hJQ?t$,@k8@$G$-$J$$$N$G!$(B
+$BBg0hJQ?t$N@k8@ItJ,$r$$$/$D$+$N%U%!%$%k$KJ,$1$k$H$+!$F0E*$K%a%b%j$r(B
+$B3d$jEv$F$k$H$+$NJQ99$r(BC$B%=!<%9$KD>@\;\$7$?!%JQ999T?t$O(B100$B9TDxEY$G$"$k!%(B
+$BMxMQ2DG=%a%b%j$N@)Ls$+$i!$=hM}2DG=0zMQJ88%?t$,(BUNIX$BHG$KHf$Y$F(B
+$B>/$J$$$3$H$r=|$1$P(B(300$B7oDxEY0JFb$G$J$$$H$@$a(B)$B!$(B
+$B<BMQ>e==J,$J@-G=$r;}$D%W%m%0%i%`$G$"$k!%(B
+
+\subsection{$B4A;z%3!<%I$N07$$(B}
+
+$B%*%j%8%J%k$N(B\BibTeX $B$X$NJQ99$r>/$J$/$9$k$?$a$K!$(B
+$B4A;z%3!<%I$OFbItE*$K$O(BEUC$B$GI=8=$9$k$3$H$H$7$?!%(B
+$B%U%!%$%k$+$i0l9T$rFI$_9~$`;~E@$G!$(BEUC$B$J$i$=$N$^$^!$(BJIS$B4A;z%3!<%I$O(BEUC$B$K(B
+$B%3!<%IJQ49$9$k(B\myftnote{JIS$B4A;z%3!<%I$N%(%9%1!<%W!&%7!<%1%s%9$N(B
+$B@hF,$N(B2$B%P%$%H$N$_$r4A;z(Bin/out$B$N(B
+$BH=Dj$K;HMQ$7!$(B3$B%P%$%HL\$O2?$G$b$h$$$h$&$K$7$F$"$k!%$^$?!$Ev=j$G$O(BSJIS$B$O(B
+$B;H$C$F$$$J$$$N$G%P!<%8%g%s(B0.10$B$G$O$=$l$O9M$($F$$$J$+$C$?$,!$(B
+$B%P!<%8%g%s(B0.20$B$G$O$=$l$K$bBP=h$G$-$k$h$&$K$7$?!%(BMS-DOS$BHG$G$O(BSJIS$B$,%G%#%U%)%k%H(B
+$B$N4A;z%3!<%I$K$J$C$F$$$k!%(BJIS$B$bFI$a$k!%(B}$B!%(B
+
+$B4A;z%3!<%I$r%U%!%$%k$K=q$-=P$9;~$K%3!<%I7O$NJQ49$r9T$&!%(B\JBibTeX
+$B$O(BNTT$BHG(B \JTeX $B$K2~NI$r2C$($F4A;z%3!<%I$H$7$F(BJIS$B$NB>$K!$(BEUC$B$b;H$($k$h$&$K(B
+$B$7$?$b$N$N>e$N(B\JLaTeX $B$HBP$K$7$F;H$&$3$H$rA0Ds$H$7$F$$$k$,!$(BASCII$BHG$G$b(B
+$BLdBj$J$/;H$($k!%(B
+$B$3$N(B\JTeX $B$G$O4A;z%3!<%I$N;XDj$,(BEUC/SJIS$B$G$"$C$F$b!$(BJIS$B4A;z%3!<%I$bFI$_9~$a$k(B
+$B$h$&$KJQ99$7$?$b$N$G$"$k(B\myftnote{$BETN)Bg$N:y0f;a$,Cf?4$H$J$C$F(B
+$B3+H/$7$F$$$k%P!<%8%g%s$KBP1~$7$F$$$k!%(B}$B!%(B
+
+$B$=$3$GBh(B1$B%P!<%8%g%s(B(0.10)$B$G$O4A;z%3!<%I$NJQ49$O0J2<$N7A$G9T$&(B
+$B$3$H$H$7$?!%(B
+
+\begin{itemize}
+\item $BJd=u(B({\tt aux})$B!$%9%?%$%k(B({\tt bst})$B!$%G!<%?%Y!<%9(B({\tt bib})$B%U%!%$%kCf(B
+$B$N4A;z%3!<%I$NAm$F$,(BEUC$B4A;z%3!<%I$G$"$l$P!$(B{\tt bbl}, {\tt blg}$B%U%!%$%k(B
+$B$"$k$$$OC<Kv$X$N=PNO$O(BEUC$B%3!<%I$G9T$&!%(B
+\item $B>e5-0J30$N>l9g$K$O!$=q$-=P$7$,9T$l$kD>6a$KFI$s$@(BJIS$B4A;z$N%3!<%I$N(B
+$B%(%9%1!<%W!&%7!<%1%s%9$r;H$C$F4A;z%3!<%I$r=q$-=P$9(B\myftnote{$B40A4$K4A;z%3!<%I(B
+$BBP1~$K$J$C$F$$$J$$2DG=@-$,$"$k$N$G!$(Bbib$B%U%!%$%k$J$I$N5-=R$K%(%i!<$,$"$C$?(B
+$B;~$K!$C<Kv$J$I$K(BEUC$B%3!<%I$N$^$^$G4A;z%3!<%I$,=PNO$5$l$k$+$b$7$l$J$$(B($BBh(B1
+$B%P!<%8%g%s(B(0.10)$B$N>l9g(B)$B!%(B}$B!%(B
+\end{itemize}
+
+$B4A;z%3!<%I$NJQ49$O!$F~NO;~$O(Bbibext.c$B$G9T$$!$=PNO;~$O(Bbibtex$BK\BN$G9T$&$3$H$H(B
+$B$7$?$?$a$K!$(Bchange file$B$NJQ99$,B?$/$J$C$?!%(B
+
+$BBh(B2$B%P!<%8%g%s(B(0.20)$B0J9_$G$O!$4A;z%3!<%I7O$O%5%$%HKh$K(B
+$B%3%s%Q%$%k;~$K7hDj$9$k$3$H$H$7!$MxMQ<TC10L$K$O<!$N4D6-JQ?t$GJQ992DG=$H$7$?!%(B
+
+\begin{figure}[h]
+\thicksize=0pt
+\thinsize=0pt
+\begintable
+$BC<Kv(B\hfill |{\tt BIBTERMCODE}\hfill | \hskip5cm\cr
+$B%U%!%$%k(B\hfill | {\tt BIBFILECODE}\hfill | \hskip5cm\endtable
+\end{figure}
+
+$B$3$l$i$NJQ?t$K(B\JTeX $B$N(B \verb|\kanjiterminaltype|, \verb|\kanjifiletype|$B$G(B
+$B;XDj$9$k$N$HF1$8CM$r@_Dj$9$k$3$H$G(B(EUC$B$J$i(B20,
+SJIS$B$J$i(B10$B$J$I(B)$BF~=PNO$N%3!<%I7O$rJQ99$G$-$k(B(\JTeX $BF1MM(BEUC, SJIS$B$r;XDj(B
+$B$7$F$"$C$F$b(BJIS$B%3!<%I7O$bFI$_9~$a$k$h$&$K$J$C$F$$$k(B)$B!%(B
+
+$B4A;z%3!<%I$NJQ49$O$9$Y$F(Bbibext.c$B$NCf$G9T$&$3$H$H$7$?$N$G!$(Bchange file$B$N(B
+$BJQ99$,>/$J$/$J$C$F$$$k!%(B
+
+\subsection{$BAH9~$_4X?t$N;EMMJQ99(B}
+
+$BAH9~$_4X?t$N(B{\tt substring\$, text.prefix\$} $B$K$*$$$F$O(B
+1$B$D$N4A;z%3!<%I$N4V$G(B(1$B%P%$%HL\$H(B2$B%P%$%HL\$N4V$G(B)$BJ8;zNs$,@Z$i$l$J$$$h$&$K$7$?!%(B
+$BNc$($P!$(B`$B4A;z(B' $B$N@hF,$+$i(B3$BJ8;z(B($B%P%$%H(B)$B$rH4=P$9$H(B `$B;z(B' $B$N(B2$B%P%$%HL\$,$J$/$J$C$F(B
+$B$7$^$&$N$G!$$3$N$h$&$J>l9g$K$O!$(B4$B%P%$%HL\$^$G@Z=P$9$h$&$K$7$?(B\myftnote{$B$3$l$O(B
+$BF|K\8lMQ$N%9%?%$%k$G$J$$(B{\tt alpha, plain}$B$J$I$r(B
+$B;H$C$?>l9g$G$b$=$l$J$j$N=PNO$,F@$i$l$k$h$&$K$9$k$?$a$G$"$k!%(B}$B!%(B
+
+$BA05-$H$N4X78$G!$(B{\tt chr.to.int\$} $B$O0z?t$,(B
+$B4A;z%3!<%I$J$i$P(Bsingle character$B$G$J$/$F$b(Bwarning$B$r=P$5$:!$(B
+$B4A;zJ8;zNs$N(B1$B%P%$%HL\$N%3!<%I$rCM$H$7$FJV$9$h$&$K$7$?(B\myftnote{$B$3$l$O(B0.10$B%P!<(B
+$B%8%g%s$G;n:n$7$?%9%?%$%k%U%!%$%kCf$G!$4A;z%3!<%IJ8;zNs$NH=Dj$r$$$$$+$2$s$K(B
+$B9T$&$?$a$KI,MW$H$J$C$?JQ99$G$"$j!$(B0.20$B%P!<%8%g%s$G$O4A;z%3!<%IJ8;zNsH=DjMQ$K(B
+$B?7$?$JAH$_9~$_4X?t$rDI2C$7$?$N$GITMW$+$bCN$l$J$$!%(B}$B!%(B
+
+$B0J>e$O%P!<%8%g%s(B0.10$B$+$i9T$C$F$$$?JQ99$G$"$k$,!$%P!<%8%g%s(B0.30$B$G$O!$$5$i$K(B
+$B<!$N(B2$B$D$NJQ99$bDI2C$7$?!%(B
+
+{\tt add.period\$} $B4X?t$O!$H>3Q$N(B`!'$\!$, `?'$\!$, `.'$B$G=*$o$l$P!$(B
+`.'$B$rIU2C$7$J$$$N$G!$A43Q$N(B`$B!*(B'$B!$(B`$B!)(B'$B!$(B`$B!%(B'$B!$(B`$B!#(B'$B$G=*$o$C$F$b(B
+`.'$B$rIU2C$7$J$$$h$&$K$7$?!%(B
+
+{\tt format.name\$} $B4X?t$G$O!$4A;z%3!<%I$GI=5-$5$l$?;aL>$N>l9g$K$OA43Q$N6uGr$b(B
+$BH>3Q$N6uGr$HF1$8$h$&$K07$&$3$H$H$7$?!%$^$?J#?t$NL>A0$O(B \verb*| and |
+$B$r4V$KF~$l$FNs5s$9$k$,!$4A;z%3!<%II=5-$5$l$?;aL>$N>l9g$K$O(B
+$BA43Q$N(B``$B!$(B'', ``$B!"(B''$B$r;H$C$F$b(B \verb*| and | $B$HF1$8$h$&$K07$&$h$&$K$7$?!%(B
+$B$3$l$G4A;z%3!<%ICx<TL>$NF~NO$,0JA0$h$j4JC1$K$J$k$O$:$G$"$k(B($B>/$J$/$H$b(BPC$B$G$+$J(B
+$B4A;zJQ49(BFEP$B$r;H$C$F$$$k>l9g$K$O!$H>3Q$X$N@Z$jBX$($,ITMW$K$J$k(B)$B!%(B
+
+\subsection{$BAH$_9~$_4X?t$NDI2C(B}
+
+$B<!$K=R$Y$kF|K\8lMQ$N%9%?%$%k$K4XO"$9$k$3$H$G$"$k$,!$4A;z%3!<%I$r4^$`J8;zNs$N(B
+$B>l9g$K=hM}$rJ,$1$kI,MW$,$"$k!%Bh(B1$B%P!<%8%g%s$G$O4A;z%3!<%I$r4^$`$+$I$&$+$O!$(B
+$B@hF,J8;z$N$_$GH=Dj$9$k$h$&$J%9%?%$%k$r:n@.$7$?$,!$$3$l$G$OIT40A4$G$"$k(B
+$B$N$G!$Bh(B2$B%P!<%8%g%s0J9_$+$i$O(B{\tt is.kanji.str\$} $B$H$$$&4X?t$rDI2C$7$?!%(B
+$B$3$N4X?t$O!$M?$($i$l$?J8;zNs$,F|K\8l%3!<%I(B(non ASCII$B%3!<%I(B)$B$r(B
+$B4^$`;~$K(B``$B??(B''($B@0?t$N(B1)$B$rJV$94X?t$G$"$k!%(B
+
+\newpage
+\section{$BF|K\8lMQ$N%9%?%$%k(B}
+
+\subsection{$BLdBjE@(B}
+$BA0=R$NJ}K!$GF|K\8l$r07$($k$h$&$K$7$F$b!$(B\BibTeX $B$N%9%?%$%k(B(bst)$B$r(B
+$BF|K\8l$K9g$;$J$$$H!$;29MJ88%$,4qL/$J7?<0$H$J$k!%(B
+$BNc$($P!$(B{\tt plain}$B$N%9%?%$%k$r;H$&$H!$Cx<T$,J#?t$N>l9g(B
+
+\vskip 2mm
+\hskip1cm
+[1] $B>>0f(B and $B<D86(B $\cdots$
+\vskip 2mm
+
+\noindent $B$N$h$&$J7A$K$J$C$F$7$^$&!%F|K\8l$N>l9g$K$O$d$O$j(B
+
+\vskip 2mm
+\hskip1cm
+[1] $B>>0f(B, $B<D86(B $\cdots$
+\vskip 2mm
+
+\noindent $B$N$h$&$K$J$C$FM_$7$$!%$^$?1Q8l$N>l9g$K$O(B`{\tt et al.}'$B$G$h$$$,(B
+$BF|K\8l$N>l9g$K$O(B`{\dg $B$[$+(B}'$B$NJ}$,$h$$!%(B
+$B$5$i$K!$J88%$r%=!<%H$9$k>l9g$K$OCx<TL>$r<g%-!<$H$9$k%9%?%$%k$,B?$$$N$G!$(B
+$B$3$3$,4A;z%3!<%I$G$"$k$H4A;z%3!<%I$N=g$KJB$V$N$G6q9g$,$h$/$J$$!%(B
+
+{\tt alpha}$B$G$OCx<T$NL>A0$+$i%i%Y%k$r:n$k$,!$1Q8l$H:.:_$9$k$3$H$r9M$($k$H(B
+$B%i%Y%k$b(B
+
+\vskip 2mm
+\hskip1cm
+[$B>><D(B87] $B>>0f(B, $B<D86(B $\cdots$
+\vskip 2mm
+
+\noindent $B$N$h$&$J7A$h$j$O(B
+
+\vskip 2mm
+\hskip1cm
+[MS87] $B>>0f(B, $B<D86(B $\cdots$
+\vskip 2mm
+
+\noindent $B$N$[$&$,K>$^$7$$$H9M$($?!%(B
+
+\subsection{$BF|K\8lMQ$N%9%?%$%k$N;n:n(B}
+
+$B>e5-$N$h$&$JLdBj$r2r7h$9$k$3$H$r9MN8$7$?%9%?%$%k$rI8=`%9%?%$%k(B
+{\tt plain}, {\tt alpha}, {\tt abbrv}, {\tt unsrt}$B$r4p$K(B{\tt jplain},
+{\tt jalpha}, {\tt jabbrv}, {\tt junsrt}
+$B$H$$$&7A$G:n$C$F$_$?!%$^$?>pJs=hM}3X2qO@J8;o(B{\tt tipsj}$B!$>pJs=hM}(B
+$B3X2q2$J8O@J8;o(B{\tt jipsj}$B!$(B
+$BEE;R>pJsDL?.3X2qO@J8;o(B{\tt tieic}$B!$F|K\%*%Z%l!<%7%g%s%:%j%5!<%A3X2q(B
+$BO@J8;o(B{\tt jorsj}$B!$?M9)CNG=3X2q;o(B{\tt jsai}$B!$%=%U%H%&%'%"2J3X2q;o(B{\tt jssst}$BMQ(B
+$B$N%9%?%$%k$b;n:n$7$F$_$?!%(B
+
+$B;29MJ88%$N%=!<%H$"$k$$$O%i%Y%k:n@.$r9*$/9T$&$3$H$r(B
+$B9M$(9g$;$F!$F|K\8l$NJ88%$K$OCx<TL>$N%m!<%^;zI85-$r(B`$BL>A0(B', `$B@+(B'$B$N=g$G(B($B1Q8lIw$K(B)
+$BF~$l$k(B`{\tt yomi}'$B$J$k?7$?$J%U%#!<%k%I$r(B{\tt bib}$B%U%!%$%kCf$K(B
+$B=q$/$3$H$H$7$?(B\myftnote{$B$3$N=gHV$K0[O@$N$"$k?M$b$"$m$&$,(B\cite{jeng}$B!$(B
+$BB?$/$NF|K\?M$,$3$N7A$G(B($B1Q8l$G(B)$B=q$$$FO@J8$rH/I=$7$F$$$k$3$H$+$i(B
+$B$3$&7h$a$?!%(B}$^,$\myftnote{$B$3$3$K$R$i$,$J$G(B`$BFI$_(B'$B$r$+$/$3$H$b!$(B
+$B$b$A$m$s$G$-$k$+$i!$8^==2;=g$K%=!<%H$9$k$3$H$b2DG=$G$"$k!%(B}$B!%(B
+$B$3$N%U%#!<%k%I$r;H$C$F%=!<%H$r9T$C$?$j(B, $B%i%Y%k$r:n$k$h$&$J7A$G(B
+$B>e5-$N%9%?%$%k$r:n@.$7$?(B\myftnote{yomi$B$H$$$&%U%#!<%k%I$r(B
+$B2C$($k$?$a$K(B{\tt bibtex}$BK\BN$rJQ99$9$kI,MW$O$J$$!%(B
+$B%9%?%$%k%U%!%$%kCf$N(B{\tt ENTRY}$B$KDI2C$9$k$@$1$G$"$k!%(B}$^,$\myftnote{$BCx<TL>$N(B
+$B=hM}0J30$K$bJQ99$r2C$($F$$$k!%>\$7$/$OG[I[%-%C%HCf$N(B{\tt jbtxbst.doc}$B$r(B
+$B;2>H$5$l$?$$!%(B}$B!%(B
+
+\newpage
+{\tt jalpha}$B%9%?%$%k$N0lIt$rNc$H$7$F<($9(B($B$?$@$7G[I[:Q$_$N%9%?%$%k$H$O(B
+$B0[$J$kItJ,$,$"$k(B)$B!%(B
+
+\vskip2mm
+
+{\baselineskip=11pt
+\begin{quote}
+\begin{verbatim}
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{ff}{ll}" format.name$ is.kanji.str$
+ {s nameptr "{ff}{ll}" format.name$ 't :=}
+ {s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=}
+ if$
+ nameptr #1 >
+ { namesleft #1 >
+ {", " * t * }
+ { t "others" =
+ { s is.kanji.str$
+ {"$B$[$+(B" * }
+ {", et~al." * }
+ if$
+ }
+ { s is.kanji.str$
+ {", " * t * }
+ { numnames #2 =
+ {" and " * t * }
+ {", and " * t * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+\end{verbatim}
+\end{quote}
+}
+
+\subsection{$B%G!<%?%Y!<%9$N5-=RJ}K!(B}
+
+$B0J>e$N$h$&$K$7$?(B\JBibTeX $B$N$?$a$N(B{\tt bib}$B%U%!%$%k$NCf?H$O<!$N$h$&$K(B
+$B$9$k(B\myftnote{$BCx<T$N@+$HL>$N4V$K%9%Z!<%9(B($BH>3Q$G$bA43Q$G$b(B)$B$r(B
+$BF~$l$F$*$+$J$$$H!$(B{\tt jabbrv}$B%9%?%$%k$N;~$K@+$@$1$K$J$i$:$K!$L>$b=P(B
+$BNO$5$l$F$7$^$&$N$GCm0U$,I,MW$G$"$k!%%9%Z!<%9$G@+$HL>$r6h@Z$C$?>l9g$K$O!$(B
+$B%9%?%$%k%U%!%$%k$N5-=R$K$*$$$F!$4A;z%3!<%ICx<TL>$r(B{\tt format.name\$} $B$7$F(B
+$BF@$i$l$k(Bfirst name$B$K$O@+$,!$(Blast name$B$K$OL>$,F@$i$l$k$3$H$KCm0U$,I,MW$G(B
+$B$"$k(B({\tt format.name\$} $B$r40A4$K$OF|K\8lBP1~$K$7$F$$$J$$$?$a$G$"$k!%$7$+$7(B
+family name, last token$B$HFI$_BX$($l$PLdBj$J$$$7(B{\tt :-)}$B!%F|K\8lBP1~$N(B
+$B%9%?%$%k%U%!%$%k$r:n@.$7$?7P83$+$i8@$&$H!$4A;z%3!<%ICx<TL>$H(B
+$B$=$l0J30$N>l9g$KF1$8%U%)!<%^%C%H$r;XDj$7$F(B{\tt format.name\$} $B$r8F$S=P$9(B
+$B$3$H$O$[$H$s$I$J$$$N$G!$:.Mp$9$k$+$b$7$l$J$$$,!$$"$($F$3$N$^$^$K$7$F$"$k(B)$B!%(B
+$B$^$?!$Nc$G$O4A;z%3!<%ICx<TL>$N6h@Z$j$H$7$F!$(B`` and '' $B$r;H$C$F$"$k$,!$$3$3$O(B
+$B$b$A$m$s!$(B``$B!$(B'' ($BC"$7A43Q!*(B)$B$G$h$$!%(B}$B!%(B
+
+{\baselineskip=11pt
+\begin{quote}
+\begin{verbatim}
+ @ARTICLE{la,
+ author="Masao Iri and Kazuo Murota and Shouichi Matsui",
+ title="Linear-time approximation algorithms for finding the
+ minimum-weight perfect matching on a plane",
+ journal=ipl,volume=12,pages="206--209",year=1981
+ }
+\end{verbatim}
+\newpage
+\begin{verbatim}
+ @ARTICLE{$B$"$U$lL5$7(B,
+ author="$B>>0f(B $B@50l(B and $B0KM}(B $B@5IW(B",
+ title="$B$"$U$l$N$J$$IbF0>.?tE@I=<(J}<0(B",
+ journal="$B>pJs=hM}3X2qO@J8;o(B", volume=21, number=4, pages="306--313",
+ yomi="Shouichi Matsui and Masao Iri",
+ year=1980
+ }
+\end{verbatim}
+\end{quote}
+}
+
+$B$3$N$h$&$K%G!<%?%Y!<%9$r:n@.$7$F$*$/$H(B{\tt jplain}$B$J$i$P(B
+
+\vskip 1.5mm
+\hskip1cm
+[1] Masao Iri, Kazuo Murota, and Shouichi Matsui.
+Linear-time approximation $\cdots$
+
+\hskip1cm
+[2] $B>>0f@50l(B, $B0KM}@5IW(B. $B$"$U$l$N$J$$IbF0>.?tE@I=<(J}<0(B. $\cdots$
+\vskip 1.5mm
+
+\noindent $B$N$h$&$J7A$G;29MJ88%%j%9%H$,F@$i$l$k!%(B{\tt jalpha}$B$J$i(B
+
+\vskip 1.5mm
+\hskip1cm
+[IMM81] Masao Iri, Kazuo Murota, and Shouichi Matsui. Linear-time approximation
+ $\cdots$
+
+\hskip1cm
+[MI80]~~~ $B>>0f@50l(B, $B0KM}@5IW(B. $B$"$U$l$N$J$$IbF0>.?tE@I=<(J}<0(B. $\cdots$
+\vskip 1.5mm
+
+\noindent $B$H$J$k!%(B{\tt jabbrv}$B$J$i(B
+
+\vskip 1.5mm
+\hskip1cm
+[1] M. Iri, K. Murota, and S. Matsui. Linear-time approximation
+ $\cdots$
+
+\hskip1cm
+[2] $B>>0f(B, $B0KM}(B. $B$"$U$l$N$J$$IbF0>.?tE@I=<(J}<0(B. $\cdots$
+\vskip 1.5mm
+
+\noindent $B$H$J$k!%Cx<T$,4A;z%3!<%I$J$N$K(B`{\tt yomi}'$B$,$J$$>l9g$K$O!$Nc$($P!$(B
+
+\vskip 1.5mm
+\hskip1cm
+[$B>>0f(B80] $B>>0f@50l(B, $B0KM}@5IW(B. $B$"$U$l$N$J$$IbF0>.?tE@I=<(J}<0(B. $\cdots$
+\vskip 1.5mm
+
+\noindent $B$H$J$k$h$&$K$7$F$"$k(B($BCx<T$,J#?t$G$b@hF,$NCx<T$N$_$+$i%i%Y%k$r(B
+$B:n$k$h$&$K$7$F$"$k(B)$B!%$?$@$7!$%=!<%H%-!<$K$O4A;z%3!<%I(B(EUC$B%3!<%I(B)$B$,(B
+$B;H$o$l$k$+$i!$=gHV$O$*$+$7$J$b$N$H$J$k!%(B
+
+
+\section{$B$*$o$j$K(B}
+
+$BK\9F$G$OF|K\8l2=$7$?(B\BibTeX $B$G$"$k(B\JBibTeX $B$K$D$$$F=R$Y$?!%(B
+$B%P!<%8%g%s(B0.20$B$^$G$O$H$j$"$($:F0$/$H$$$&7A$G:n@.$7$F$"$C$?$,!$(B
+$B%P!<%8%g%s(B0.30$B$G$O==J,<BMQ$KBQ$($k%l%Y%k$KC#$7$?$H9M$($F$$$k!%(B
+$BF|K\8lMQ$N%9%?%$%k$K$D$$$F$bF1MM$G$"$k!%(B
+$B8=:_$^$G$N$H$3$mMxMQ<T$,$5$[$IB?$/$J$$$?$a!$;HMQ7P83$,K3$7$$!%(B
+$B:#8e$O;HMQ7P83$K4p$E$-!$F|K\8l$N$?$a$KI,MW$JAH$_9~$_4X?t$N(B
+$BJQ99!&DI2C$J$I$N2~NI$r2C$($F$$$-$?$$!%$^$?3F<o$N3X2qMQ$N%9%?%$%k$N(B
+$B:n@.$bI,MW$G$"$k$H9M$($F$$$k!%(B
+$B$^$?(BOren Patashnik$B;a$+$i$N;d?.$K$h$l$P!$:#G/Cf(B(1991)$B$K(Bversion 1.0$B$r%j%j!<%9$9$k(B
+$BM=Dj$i$7$$$N$G!$$=$l$NF|K\8l2=$bI,MW$G$"$m$&!%(B
+
+\bibliography{jbibtex}
+\bibliographystyle{jplain}
+\end{document}
diff --git a/biblio/pbibtex/base/jbtxbst.doc b/biblio/pbibtex/base/jbtxbst.doc
new file mode 100644
index 0000000000..e7bb79dce2
--- /dev/null
+++ b/biblio/pbibtex/base/jbtxbst.doc
@@ -0,0 +1,3762 @@
+% JBibTeX `jplain' family
+ % version 0.30 for JBibTeX versions 0.30 or later, LaTeX version 2.09.
+ % Copyright (C) 1990, all rights reserved.
+ %
+ % This file is derived from btxbst.doc of BibTeX 0.99c
+ %
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % jbtxbst.doc, jplain.bst, junsrt.bst, jalpha.bst, jabbrv.bst,
+ % tipsj.bst, jipsj.bst, tieice.bst, jname.bst, jorsj.bst
+ %
+ % This restriction helps ensure that all standard styles are identical.
+ % The file jbtxbst.doc has the documentation for this style.
+ %
+ % Please notify Shouichi MATSUI(matsui@denken.or.jp) of any bugs in
+ % these standard styles or in this documentation file.
+ % $B>>0f(B $B@50l(B ($B:b(B) $BEENOCf1{8&5f=j!!>pJs8&5f=j(B $B>pJs2J3XIt(B
+ % Last update 1994-10-25
+%
+% $B$3$N%U%!%$%k(B jbtxbst.doc $B$O;29MJ88%%9%?%$%k$NM}2r$r=u$1$k$?$a!$(Bcpp $B$J$I$r(B
+% $B;H$C$F!$0c$&%9%?%$%k$r:n@.$9$k>l9g$N?w7?$H$7$F;H$&$?$a$NJ*$G$"$k!%(B
+% Oren Patashnik $B;a$K$h$k!$(Bbtxbst.doc $B$rK]Lu$9$k$H$H$b$K!$F|K\8lMQ$K=$@5!$DI2C(B
+% $B$r2C$($?$b$N$G$"$k!%(B
+%
+% $BI8=`%9%?%$%k$O0J2<$N$h$&$K$7$F@8@.$7$?8e!$(B
+% cpp -P -DJPLAIN jbtxbst.doc jplain.txt
+% cpp -P -DJUNSRT jbtxbst.doc junsrt.txt
+% cpp -P -DJALPHA jbtxbst.doc jalpha.txt
+% cpp -P -DJABBRV jbtxbst.doc jabbrv.txt
+% cpp -P -DTIPSJ jbtxbst.doc tipsj.txt
+% cpp -P -DJIPSJ jbtxbst.doc jipsj.txt
+% cpp -P -DTIEICE jbtxbst.doc tieic.txt
+% cpp -P -DJORSJ jbtxbst.doc jorsj.txt
+% cpp -P -DJNAME jbtxbst.doc jname.txt
+% $BITMW$J%3%a%s%H9T!$6u9T$r:o=|$7$?8e!$%U%!%$%kL>$rJQ99$9$l$P@8@.$G$-$k!%(B
+% ($B<B:]$K$O8e=R$N(B cpp.awk $B$r;H$C$F(B gawk $B$G@8@.$7$?!K!%(B
+%
+% ASCII $BHG$N(B versinn 0.98 $B$K4p$E$/(B Kanji BibTeX $B$G;H$o$l$F$$$k(B jplain, jalpha,
+% junsrt, jabbrv $B$K6a$$7A$N(B bst $B%U%!%$%k$r:n$k$K$O!$(B
+%
+% cpp -P -DJPLAIN -DASCII98 jbtxbst.doc jplain98.txt
+%
+% $B$H$$$&$h$&$K(B, -DASCII98 $B$rDI2C$9$k!%40A4$KF1$8$G$O$J$$$,!$$+$J$j6a$$7A$N(B
+% $BJ88%%j%9%H%G!<%?(B(bbl)$B$,F@$i$l$k$h$&$J%9%?%$%k%U%!%$%k$rF@$k$3$H$,$G$-$k!%(B
+%
+% cpp $B$r;}$C$F$$$J$$$H$+!$(B(PC $BMQ$N(B)C $B%3%s%Q%$%i!<$N(B cpp $B$K$h$C$F$O>e5-$NMM$K(B
+% $B=hM}$G$-$J$$>l9g$,$"$k!%(BTurbo C 2.0 $B$N(B cpp $B$O8-$32a$.$F!$>e5-$NL\E*(B
+% $B$K$O;H$($J$$!%$^$?9TF,$K(B # $B$,$J$/$F$b$=$l$r(B cpp $B$X$N;XNa$@$H$_$J$9=hM}7O$G$b(B
+% $B$&$^$/$$$+$J$$>l9g$,$"$k!%(B
+% cpp $B$G$&$^$/=hM}$G$-$J$$>l9g$K;H$($k(B gawk $BMQ$N%9%/%j%W%H$r(B bst/cpp.awk $B$H$$$&(B
+% $B7A$GMQ0U$7$F$"$k!%;H$$J}$K$D$$$F$O(B bst/generate.[bat|sh] $B$r8+$h!*(B
+%
+% UNIX $B$N(B cpp $B$G$O=hM}$G$-$k$3$H$r4|BT$9$k!%>/$J$/$H$b(B SUN $B$N(B cpp $B$G$O(B
+% $B=hM}$G$-$?!%(B
+%
+% $BIT9,$K$7$F(B cpp $B$,;H$($J$$$H$+!$(B gawk $B$b$J$$$H$+$N>l9g$K$O!$0J2<$N@bL@$r(B
+% $B;29M$K$7$F?M4V(B cpp $B$K$J$C$F!$(Beditor $B$r;H$C$FJT=8$7$F:n$j=P$;$P$$$$!%(B
+% ($B$3$s$JIT9,$J$3$H$O$J$$$G$7$g$&$M!)!K(B
+%
+% cpp $B$N=PNO$OFCDj$N9T$,:o=|$5$l$k!J$"$k$$$O6uGr9T$,IU2C$5$l$k!K$3$H$r=|$1$P(B
+% $BF~NO$HF1$8$G$"$k!%0J2<$N%7!<%/%(%s%9$O!$(B# $BJ8;z$,Bh#1%+%i%`$K$"$k$H$7$F!$(B
+% #if VAR
+% VAR $B$,(B 0 $B$G$J$$;~$K4^$a$k9T(B
+% #else
+% VAR $B$,(B 0 $B$N;~$K4^$a$k9T(B
+% #endif
+%
+% VAR $B$NCM$K1~$8$F$I$A$i$N9T72$,;H$o$l$k$+!$4^$^$l$k$h$&$K$J$k$+$r<($9!%(B
+% #else $BItJ,$O$J$/$F$b$h$$!%(B#else, #endif $B$N8e$K$O%3%a%s%H$r=q$/;v$,$G$-$k!%(B
+% $BJQ?t$O(B
+% #define VAR value
+% $B$GCM$r@_Dj$G$-!$(B #ifdef VAR $B$G(B VAR $B$,CM$r;}$C$F$$$k$+!JDj5A$5$l$F$$$k$+!K!$(B
+% #ifndef VAR $B$G(B VAR $B$,CM$r;}$C$F$$$J$$$+!JL$Dj5A$+!K$rD4$Y$k$3$H$,$G$-$k!%(B
+% $B$3$N%U%!%$%kCf$G;H$C$F$$$k$b$&#1$D$N7A<0$O(B #if !VAR $B$G$"$j!$$3$l$O(B VAR $B$N(B
+% $BCM$,(B 0 $B$N;~$K8eB3$N9T72$r4^$a$k$h$&$K$9$k$b$N$G$"$k!%(B
+%
+% $B5,Ls(B: $B%W%j%W%m%;%C%5$N$?$a$NJQ?t$H$7$F$O!$$9$Y$FBgJ8;z$r;H$&$3$H$K$9$l$P!$(B
+% $B!!!!!!$I$3$K$"$k$+8+$D$1$k$N$,4JC1$K$J$k!%(B
+%
+% $B8@$$Lu(B: cpp $B$N5!G=$r%U%k$K;H$&$h$&$K=q$1$P!$$3$N%U%!%$%k$O$b$C$H>.$5$/$G$-$k!%(B
+% $B$7$+$7!$:n6H$7$?4D6-$G$O$A$c$s$H;H$($k(B cpp $B$,$J$+$C$?$N$G!$(B
+% $B%*%j%8%J%k$G;H$C$F$$$J$+$C$?5!G=$O;H$C$F$$$J$$!%(B
+%
+% cpp $B$X$N(B(gawk $B$X$N(B)$B%3%^%s%I9T$G$O!$(BJPLAIN, JUNSRT, JALPHA, JABBRV, JIPSJ,
+% TIPSJ, TIEICE, JNAME, JORSJ $B$N$$$:$l$+$r;XDj$7$F$*$/$3$H!J$I$l$G$b$J$$$H!$(B
+% JPLAIN $B$r%G%#%U%)!<%k%H$H$7$F;H$&$h$&$K$J$C$F$$$k!%=>$C$F?7$7$$%9%?%$%k$r(B
+% $B:n$j=P$9>l9g$K$O!$$3$N%G%#%U%)%k%H$r@_Dj$7$F$$$kItJ,$r=q$-49$($k$3$H!K!%(B
+%
+% $B$=$l$>$l$NO@M}JQ?t$O!$$=$l$>$l$N%9%?%$%k$G!$??(B(1)$B$+56(B(0)$B$K@_Dj$7$F$*$/$3$H!%(B
+% $B8=:_;H$C$F$$$kJQ?t$H$=$N0UL#$O0J2<$NDL$j$G$"$k!%(B
+%
+% LAB_ALPH: $BJ8;zNs%i%Y%k$r@8@.(B($B$3$l$,56$J$i?t;z%i%Y%k$K$J$k(B)
+% SORTED: ($B?t;z%i%Y%k$G$J$$$J$i!K%i%Y%k!$Cx<T$J$I$N>pJs$r(B
+% $B;H$C$F$K%=!<%H$9$k(B($B56$J$i%=!<%H$5$l$:$K!$=P8==g$KJB$V(B)
+% NAME_FULL: $BCx<T!$JT<T$NL>A0$H$7$F(B bibliography file $BCf$K=q$+$l$?(B
+% $BJ*$r$=$N$^$^;H$&(B($B56$J$i@+0J30$O%$%K%7%c%k$@$1$K$J$k!%(B
+% $B4A;zI=5-$5$l$?Cx<T$N>l9g$K$O!$@+$HL>$N4V$K%9%Z!<%9$,(B
+% $B$"$l$P!$@+$@$1$K$J$k(B)
+% ATIT_LOWER: $BK\0J30!JO@J8$J$I!K$N%?%$%H%k$O@hF,$NJ8;z!$%3%m%s$N8e$N(B
+% $B:G=i$NJ8;z0J30$O>.J8;z$K$9$k(B($B56$J$i(B database $BCf$N$^$^(B)
+% MONTH_FULL: $B7n$NL>A0$r>JN,7A$H$7$J$$(B($B56$J$i>JN,7A(B)
+% JOUR_FULL: $BO@J8;o!$;(;o$J$I$r>JN,7A$H$7$J$$(B($B56$J$i>JN,7A!$8=:_$O(B
+% $B$=$N7A<0$O(B ACM $B$N=PHGJ*$K$"$k7A<0$G$"$k(B)
+%----------------------------------------------------------------------
+% $B>>0f$K$h$kDI2CJ,(B
+% IN_LOWER: In $B$G$J$/(B in$B!!$r;H$&!%(B
+% ONE_SENTENCE: 1$BJ8$N7A$K$9$k!%(B
+% ED_SHORT: Editor $B$G$J$/(B Ed.
+% FAMILY_FIRST: $B1Q8lI=5-Cx<T$N@+$r@h$K!$L>$r8e$K$9$k!%(B
+% FIRST_FAMILY_FIRST: $B1Q8lI=5-Cx<T$NBh0lCx<T$@$1@+$r@h$K$9$k!%(B
+% NO_COM_AND: 3$BL>0J>e$NCx<T$N;~(B and $B$NA0$K(B , $B$rF~$l$J$$!%(B
+% SMALL_CAP: $BI=Bj$O(B small cap $B%U%)%s%H!%(B
+% KANJI_FULL_NAME: $B4A;zCx<TL>$OL>$^$G=P$9!%(B
+% ED_IN_PAR : $BJT=8<TL>$r3g8L$KF~$l$k!%(B
+% NO_EM: $BK\!$;(;oL>$H$+$K6/D4;XDj(B($B%$%?%j%C%/(B)$B$O;H$o$J$$!%(B
+% YEAR_IN_PAR: $BG/$r3g8L$G0O$`!%(B
+% ZENKAKU_PUN: $BF|K\8lJ88%$KBP$7$F$OA43Q$N(B"$B!$(B","$B!%(B","$B!'(B"$B$r;H$&!%(B
+% ZENKAKU_COLON: $B#1J87A<0$N;~!$F|K\8lCx<T$N8e$K$OA43Q$N%3%m%s$r(B
+% $BIU$1$k!%(B
+% JIPSJ_LIKE: JIPSJ $B$N$h$&$JC;$$(B Vol., pp. $B;2>H7A<0(B
+% Vol.=V, No.=N, pp. C--D, year=Y, month=M $B$r(B
+% V, N(M Y), C--D $B$N$h$&$J=gHV$GJB$Y$k!%(B
+% USE_FIRST_ONLY: $BJ8;zNs%i%Y%k$K$OBh#1Cx<T$7$+;H$o$J$$!%(B
+% USE_KANJI_HOKA: ``$B$[$+(B''$B$G$J$/(B``$BB>(B''$B$r;H$&(B
+% SHOW_BOOK_PAGES: BOOK $B$N%Z!<%8?t$b=PNO$9$k!%(B
+%----------------------------------------------------------------------
+%
+% $B%G%#%U%)!<%k%H$N%9%?%$%k$N;XDj!J?7$7$$%9%?%$%k$r2C$($k>l9g$K$O$3$3$r(B
+% $BJQ99$9$kI,MW$,$"$k!%JQ99$7$F$*$+$J$$$H(B jplain $B$K$J$C$F$7$^$&!*!K(B
+%
+#ifndef JUNSRT
+# ifndef JALPHA
+# ifndef JABBRV
+# ifndef TIPSJ
+# ifndef JIPSJ
+# ifndef TIEICE
+# ifndef JNAME
+# ifndef JORSJ
+# define JPLAIN 1
+# endif JORSJ
+# endif JNAME
+# endif TIEICE
+# endif JIPSJ
+# endif TIPSJ
+# endif JABBRV
+# endif JALPHA
+#endif
+%
+% ASSCII98 $B$,Dj5A$5$l$F$$$l$P!$(BASCII $BHG$N(B 0.98 $B$K4p$E$/(B Kanji BibTeX $B$N(B
+% $B%9%?%$%k%U%!%$%k$r;H$C$FF@$i$l$k7k2L$K6a$$$b$N$,F@$i$l$k$h$&$K$9$k!%(B
+% $B$^$C$?$/F1$8$K$J$k$H4|BT$7$F$O$$$1$J$$!*!*!*(B
+%
+#ifdef ASCII98
+# define ZENKAKU_PUN 1
+# define ZENKAKU_COLON 1
+#else !ASCII98
+# define ZENKAKU_PUN 0
+#endif
+%
+#ifdef JPLAIN
+% jplain $B%9%?%$%k(B ($B%=!<%H$5$l$??tCM%i%Y%k(B)
+# define LAB_ALPH 0
+# define SORTED 1
+# define NAME_FULL 1
+# define ATIT_LOWER 1
+# define MONTH_FULL 1
+# define JOUR_FULL 1
+%--------------------------------------
+# define IN_LOWER 0
+# define ONE_SENTENCE 0
+# define ED_SHORT 0
+# define FAMILY_FIRST 0
+# define FIRST_FAMILY_FIRST 0
+# define NO_COM_AND 0
+# define SMALL_CAP 0
+# define KANJI_FULL_NAME 0
+# define ED_IN_PAR 0
+# define NO_EM 0
+# define YEAR_IN_PAR 0
+# define JIPSJ_LIKE 0
+# define USE_KANJI_HOKA 0
+# define SHOW_BOOK_PAGES 0
+%--------------------------------------
+#endif JPLAIN
+%
+#ifdef JUNSRT
+% junsrt $B%9%?%$%k(B ($B%=!<%H$5$l$J$$?tCM%i%Y%k(B)
+# define LAB_ALPH 0
+# define SORTED 0
+# define NAME_FULL 1
+# define ATIT_LOWER 1
+# define MONTH_FULL 1
+# define JOUR_FULL 1
+%--------------------------------------
+# define IN_LOWER 0
+# define ONE_SENTENCE 0
+# define ED_SHORT 0
+# define FAMILY_FIRST 0
+# define FIRST_FAMILY_FIRST 0
+# define NO_COM_AND 0
+# define SMALL_CAP 0
+# define KANJI_FULL_NAME 0
+# define ED_IN_PAR 0
+# define NO_EM 0
+# define YEAR_IN_PAR 0
+# define JIPSJ_LIKE 0
+# define USE_KANJI_HOKA 0
+# define SHOW_BOOK_PAGES 0
+%--------------------------------------
+#endif JUNSRT
+%
+#ifdef JALPHA
+% jalpha $B%9%?%$%k(B ($B%=!<%H$5$l$?J8;zNs%i%Y%k(B)
+# define LAB_ALPH 1
+# define SORTED 1
+# define NAME_FULL 1
+# define ATIT_LOWER 1
+# define MONTH_FULL 1
+# define JOUR_FULL 1
+%--------------------------------------
+# define USE_FIRST_ONLY 0
+# define IN_LOWER 0
+# define ONE_SENTENCE 0
+# define ED_SHORT 0
+# define FAMILY_FIRST 0
+# define FIRST_FAMILY_FIRST 0
+# define NO_COM_AND 0
+# define SMALL_CAP 0
+# define KANJI_FULL_NAME 0
+# define ED_IN_PAR 0
+# define NO_EM 0
+# define YEAR_IN_PAR 0
+# define JIPSJ_LIKE 0
+# define USE_KANJI_HOKA 0
+# define SHOW_BOOK_PAGES 0
+%--------------------------------------
+#endif JALPHA
+%
+#ifdef JABBRV
+% jabbrv $B%9%?%$%k(B ($B%=!<%H$5$l$??tCM%i%Y%k$G!$>JN,7A<0(B)
+# define LAB_ALPH 0
+# define SORTED 1
+# define NAME_FULL 0
+# define ATIT_LOWER 1
+# define MONTH_FULL 0
+# define JOUR_FULL 0
+%--------------------------------------
+# define IN_LOWER 0
+# define ONE_SENTENCE 0
+# define ED_SHORT 1
+# define FAMILY_FIRST 0
+# define FIRST_FAMILY_FIRST 0
+# define NO_COM_AND 0
+# define SMALL_CAP 0
+# define KANJI_FULL_NAME 0
+# define ED_IN_PAR 0
+# define NO_EM 0
+# define YEAR_IN_PAR 0
+# define JIPSJ_LIKE 0
+# define USE_KANJI_HOKA 1
+# define SHOW_BOOK_PAGES 0
+%--------------------------------------
+#endif JABBRV
+%
+#ifdef TIPSJ
+% tipsj $B%9%?%$%k(B ($B%=!<%H$5$l$J$$?tCM%i%Y%k$G!$>JN,7A!$#1J87A<0(B)
+% $B>pJs=hM}3X2qO@J8;o!$>pJs=hM}3X2q;oMQ(B
+# define LAB_ALPH 0
+# define SORTED 0
+# define NAME_FULL 0
+# define ATIT_LOWER 0
+# define MONTH_FULL 0
+# define JOUR_FULL 0
+%--------------------------------------
+# define IN_LOWER 1
+# define ONE_SENTENCE 1
+# define ED_SHORT 1
+# define FAMILY_FIRST 1
+# define FIRST_FAMILY_FIRST 0
+# define NO_COM_AND 1
+# define SMALL_CAP 0
+# define KANJI_FULL_NAME 1
+# define ED_IN_PAR 0
+# define NO_EM 0
+# define YEAR_IN_PAR 1
+# define JIPSJ_LIKE 0
+# define ZENKAKU_COLON 1
+# define USE_KANJI_HOKA 1
+# define SHOW_BOOK_PAGES 1
+%--------------------------------------
+#endif TIPSJ
+%
+#ifdef JIPSJ
+% jipsj $B%9%?%$%k(B ($B%=!<%H$5$l$??tCM%i%Y%k$G!$>JN,7A$r;H$&!$#1J87A<0(B)
+% Journal of Information Processing ($B>pJs=hM}3X2q(B)
+# define LAB_ALPH 0
+# define SORTED 1
+# define NAME_FULL 0
+# define ATIT_LOWER 0
+# define MONTH_FULL 0
+# define JOUR_FULL 0
+%--------------------------------------
+# define IN_LOWER 1
+# define ONE_SENTENCE 1
+# define ED_SHORT 1
+# define FAMILY_FIRST 1
+# define FIRST_FAMILY_FIRST 0
+# define NO_COM_AND 1
+# define SMALL_CAP 1
+# define KANJI_FULL_NAME 1
+# define ED_IN_PAR 1
+# define NO_EM 0
+# define YEAR_IN_PAR 1
+# define JIPSJ_LIKE 1
+# define ZENKAKU_COLON 0
+# define USE_KANJI_HOKA 1
+# define SHOW_BOOK_PAGES 0
+%--------------------------------------
+#endif JIPSJ
+%
+#ifdef TIEICE
+% tieic $B%9%?%$%k(B ($B%=!<%H$5$l$J$$?tCM%i%Y%k$G!$>JN,7A$r;H$&!$#1J87A<0(B)
+% $BEE;R>pJsDL?.3X2qO@J8;o(B
+# define LAB_ALPH 0
+# define SORTED 0
+# define NAME_FULL 0
+# define ATIT_LOWER 1
+# define MONTH_FULL 0
+# define JOUR_FULL 0
+%--------------------------------------
+# define IN_LOWER 1
+# define ONE_SENTENCE 1
+# define ED_SHORT 1
+# define FAMILY_FIRST 0
+# define FIRST_FAMILY_FIRST 0
+# define NO_COM_AND 1
+# define SMALL_CAP 0
+# define KANJI_FULL_NAME 0
+# define ED_IN_PAR 1
+# define NO_EM 1
+# define YEAR_IN_PAR 1
+# define JIPSJ_LIKE 0
+# define ZENKAKU_COLON 1
+# define USE_KANJI_HOKA 1
+# define SHOW_BOOK_PAGES 0
+%--------------------------------------
+#endif TIEICE
+%
+#ifdef JNAME
+% jname $B%9%?%$%k(B ($B%=!<%H$5$l$?J8;zNs%i%Y%k$G!$>JN,7A$r;H$&!$#1J87A<0(B)
+% $BJ8;zNs%i%Y%k$K$OBh#1Cx<T$NL>A0$7$+;H$o$J$$!%(B
+# define LAB_ALPH 1
+# define SORTED 1
+# define NAME_FULL 0
+# define ATIT_LOWER 0
+# define MONTH_FULL 0
+# define JOUR_FULL 0
+%--------------------------------------
+# define USE_FIRST_ONLY 1
+# define IN_LOWER 1
+# define ONE_SENTENCE 1
+# define ED_SHORT 1
+# define FAMILY_FIRST 0
+# define FIRST_FAMILY_FIRST 1
+# define NO_COM_AND 0
+# define SMALL_CAP 0
+# define KANJI_FULL_NAME 0
+# define ED_IN_PAR 0
+# define NO_EM 0
+# define YEAR_IN_PAR 0
+# define JIPSJ_LIKE 0
+# define ZENKAKU_COLON 1
+# define USE_KANJI_HOKA 1
+# define SHOW_BOOK_PAGES 0
+%--------------------------------------
+#endif JNAME
+%
+#ifdef JORSJ
+% jorsj $B%9%?%$%k(B ($B%=!<%H$5$l$??tCM%i%Y%k$G!$>JN,7A$r;H$&!$#1J87A<0(B)
+% Journal of the Operations Research Society of Japan
+% $BF|K\%*%Z%l!<%7%g%s%:%j%5!<%A3X2qO@J8;o!J1QJ8!$OBJ8$N$I$A$i$G$bNI$$!*!K(B
+# define LAB_ALPH 0
+# define SORTED 1
+# define NAME_FULL 0
+# define ATIT_LOWER 0
+# define MONTH_FULL 0
+# define JOUR_FULL 0
+%--------------------------------------
+# define IN_LOWER 1
+# define ONE_SENTENCE 1
+# define ED_SHORT 1
+# define FAMILY_FIRST 1
+# define FIRST_FAMILY_FIRST 0
+# define NO_COM_AND 1
+# define SMALL_CAP 0
+# define KANJI_FULL_NAME 1
+# define ED_IN_PAR 0
+# define NO_EM 0
+# define YEAR_IN_PAR 0
+# define JIPSJ_LIKE 1
+# define ZENKAKU_COLON 1
+# define USE_KANJI_HOKA 1
+# define SHOW_BOOK_PAGES 0
+%--------------------------------------
+#endif JORSJ
+%
+% $B%(%s%H%j$N%U%)!<%^%C%H7A<0!'(B Mary-Claire van Leunen $B$,(B
+% "A Handbook for Scholars" $B$G?d>)$7$F$$$k7A<0$K6a$$!%K\$NCg4V$NI=Bj$O(B
+% $B%$%?%j%C%/BN$G(B($B6/D4$5$l$F(B)$B!$$=$l0J30$NI=Bj$O(B($BEE;R>pJsDL?.3X2qO@J8;o$r(B
+% $B=|$$$F!$0zMQId$J$7$G!KJ8$N7A<0$GBgJ8;z!$>.J8;z$,;H$o$l$k!%(B
+% $B$3$N%U%!%$%k$G$O!$#1J8$N7A<0$G%U%)!<%^%C%H$9$k%9%?%$%k0J30$G$O!$(B
+% $B<g$?$k%V%m%C%/$N4V$K(B \newblock(\newline $B$d(B \newpage $B$K;w$?L>A0(B)$B$r(B
+% $B=PNO$9$k$N$G!$(B\ducumentstyle $B$N0z?t$H$7$F(B `openbib' $B%*%W%7%g%s$r;XDj(B
+% $B$9$k$3$H$G!$(Bopen $B7A<0$N%j%9%H!$$9$J$o$A%V%m%C%/4V$G2~9T$5$l!$%V%m%C%/(B
+% $BFb$G$O%$%s%G%s%H$5$l$?7A<0$N%j%9%H$rF@$k;v$,$G$-$k!%(B
+% $B%G%#%U%)!<%k%H$O(B closed $B7A<0$G$"$j!$%V%m%C%/Kh$K2~9T$5$l$?$j$7$J$$!%(B
+%
+% $BJ88%%j%9%H$NJ8;zNs%i%Y%k$N7A<0$O0J2<$NDL$j!%(B
+% [Knu73] $BCx<T!JJT<T!$%-!<!K$,#1?M$N;~(B
+% [AHU83] $BJ#?tCx<T$N;~$O@+$NF,J8;z$rJB$Y$?$b$N(B
+% (Aho, Hopcroft, Ulman $B$N>l9g$K$O(B AHU $B$H$J$k(B)
+%
+% $BJ88%%j%9%H$N?tCM%i%Y%k$N7A<0$O0J2<$NDL$j!%(B
+% [number]
+%
+% $BJ8;zNs%i%Y%k$N7A<0$N%=!<%H$O0J2<$NDL$j!J<!$N=g$GJ88%$,JB$V!K!%(B
+% $B<g%-!<$,%i%Y%k!$<!$,Cx<T!JJT<T$J$I$N>l9g$b$"$k!K!$(B
+% $B$=$N<!$,G/!$:G8e$,I=Bj$N%"%k%U%!%Y%C%H=g$GJB$Y$i$l$k!%(B
+%
+% $B4A;zCx<TL>$N>l9g$K$O(B yomi $B%U%#!<%k%I$K%m!<%^;zI=5-$rF~$l$F(B
+% $BCV$/;v$G!$J8;zNs%i%Y%k$N%i%Y%k$K$J$k!%=q$-J}$r9)IW$9$l$P!$(B
+% $BF|K\8l$N%i%Y%k$H$9$k$3$H$b$G$-!$$5$i$K#5#02;=g$KJB$Y$k$3$H$b(B
+% $B$G$-$k!%>\$7$/$O(B jbtxdoc.tex $B$r8+$h!%(B
+%
+% $B?tCM%i%Y%k$N7A<0$N%=!<%H$O0J2<$NDL$j!J<!$N=g$GJ88%$,JB$V!K!%(B
+% $B<g%-!<$,Cx<T!JJT<T$J$I$N>l9g$b$"$k!K!$<!$,G/!$:G8e$,I=Bj$N(B
+% $B%"%k%U%!%Y%C%H=g$GJB$Y$i$l$k!%(B
+%
+% $B4A;zCx<TL>$N>l9g$K$O(B yomi $B%U%#!<%k%I$K%m!<%^;zI=5-$rF~$l$F(B
+% $BCV$/;v$G!$%"%k%U%!%Y%C%H=g$K$J$k!%=q$-J}$r9)IW$9$l$P!$#5#02;(B
+% $B=g$KJB$Y$k$3$H$b$G$-$k!%>\$7$/$O(B jbtxdoc.tex $B$r8+$h!%(B
+%
+% $B%=!<%H$5$l$J$$>l9g$NJ88%$N=gHV!'(B
+% $BK\J8Cf$N0zMQ=g!%(B
+%
+% History
+% 12/16/84 (HWT) Original `plain' version, by Howard Trickey.
+% 12/23/84 (LL) Some comments made by Leslie Lamport.
+% 2/16/85 (OP) Changes based on LL's comments, Oren Patashnik.
+% 2/17/85 (HWT) Template file and other standard styles made.
+% 3/28/85 (OP) First release, version 0.98b for BibTeX 0.98f.
+% 5/ 9/85 (OP) Version 0.98c for BibTeX 0.98i:
+% fixed Theoretical Computer Science macro name;
+% fixed the format.vol.num.pages function.
+% 1/24/88 (OP) Version 0.99a for BibTeX 0.99a, main changes:
+% assignment operator (:=) arguments reversed;
+% the preamble$ function outputs the database PREAMBLE;
+% entry.max$ and global.max$ (built-in) variables replace
+% entry.string.max and global.string.max functions;
+% alphabetizing by year then title, not just title;
+% many unnecessary ties removed; \it ==> \em;
+% the `alpha' style uses a superscripted `+' instead of a
+% `*' for unnamed names in constructing the label;
+% the `abbrv' style now uses "Mar." and "Sept.";
+% the functions calc.label and presort now look at just
+% the fields they're supposed to;
+% BOOKLET, MASTERSTHESIS, TECHREPORT use nonbook titles;
+% INBOOK and INCOLLECTION take an optional type (e.g.
+% type = "Section"), overriding the default "chapter";
+% BOOK, INBOOK, INCOLLECTION, and PROCEEDINGS now allow
+% either volume or number, not just volume;
+% INCOLLECTION now allows an edition and series field;
+% PROCEEDINGS and INPROCEEDINGS now use the address field
+% to tell where a conference was held;
+% INPROCEEDINGS and PROCEEDINGS now allow either volume
+% or number, and also a series field;
+% MASTERSTHESIS and PHDTHESIS accept types other than
+% "Master's thesis" and "PhD thesis";
+% UNPUBLISHED now outputs, in one block, note then date;
+% MANUAL now prints out the organization in
+% the first block if the author field is empty;
+% MISC can't be empty---it requires some optional field.
+%
+% $B0J>e$O1Q8lHG$N(B btxbst.doc $B$NJQ99MzNr$G$"$k!%(B
+%
+% 1989-06-02 $B>>0f@50l(B(Shouichi Matsui)
+% C version 0.20 $BMQ$KJQ99!$#3$D$N%9%?%$%k$rDI2C(B
+% 1991-01-01 $B>>0f@50l(B(Shouichi Matsui)
+% C version 0.30 $BMQ$KJQ99$HHyD4@0B??t!*?7$?$J%9%?%$%k$b(B
+% $BDI2C!*(B
+%
+% $B%(%s%H%j$N%U%#!<%k%I$N@k8@(B
+%
+% (April '84 edition $B$N(B 231-232 $B%Z!<%8$K=R$Y$i$l$F$$$k(B) Scribe $B$H(B
+% $BF1$8$h$&$J$b$N$G$"$k$,!$(B(J)BibTeX $B$OL>A0$N=hM}5!G=$r;}$C$F$$$k$N$G!$(B
+% fullauthor $B$"$k$$$O(B editors $B%U%#!<%k%I$O$J$$!%(B
+% annote $B%U%#!<%k%I$OCm<aIU$-$NJ88%%j%9%H%9%?%$%k$r:n$k>l9g$K$O;H$o$l$k$,!$(B
+% $B$3$N%U%!%$%k$GDj5A$7$F$$$k%9%?%$%k$G$O;H$C$F$$$J$$$N$G!$%3%a%s%H%"%&%H(B
+% $B$5$l$F$$$k!%$3$3$K<($7$?%U%#!<%k%I$NB>$K!$AH$_9~$_$NJ88%%j%9%HFb;2>H(B
+% (CROSSREF)$B%U%#!<%k%I$b$"$k$,!$$3$l$K$D$$$F$O8e$G@bL@$9$k!%(B
+
+ENTRY
+% $B%U%#!<%k%I72(B:
+% $B!!!!0J2<$N@bL@$G!I?7$?$JJ8$r3+;O$9$k!I$N$O#1J87A<0$G%U%)!<%^%C%H$7$J$$!$(B
+% $B!!!!%9%?%$%k$N>l9g$K$N$_$"$F$O$^$k!%(B
+ { address
+% $BDL>o$O=PHG<R!$5!4X$N=;=j$rF~$l$k!%FI<T$N0Y$K$J$k>l9g$K$N$_F~$l$k$3$H!%(B
+% $BNc$($P!$Bg$-$J=PHG<R$N>l9g$K$O>JN,$9$Y$-$G$"$k!%$7$+$7!$(BPROCEEDINGS
+% $B$^$?$O(B INPROCEEDINGS $B$N>l9g$K$O$3$3$K$O2q5D$N3+:ECO$r=q$/!%$3$N#2$D$N(B
+% $B%(%s%H%j$N7?$G$O!$=PHG<T!$5!4X$N=;=j$,I,MW$J$i!$(Bpublisher $B$+(B
+% organization $B%U%#!<%k%I$K4^$a$k$3$H!%(B
+% annote
+% $BD9$$Cm<a(B($BCm<aIU$-J88%%j%9%HMQ!$?7$?$JJ8$r3+;O$9$k(B)$B!%(B
+ author
+% (J)BibTeX $B7A<0$G=q$$$?!$Cx<T$NL>A0(B
+ booktitle
+% $B;2>H$5$l$F$$$k$N$,K\A4BN$G$J$$>l9g$K!$K\$NI=Bj$rF~$l$k!%K\A4It$r(B
+% $B;2>H$7$F$$$k>l9g$K$O!$$3$l$G$J$/(B title $B%U%#!<%k%I$r;H$&$3$H!%(B
+ chapter
+% $B>O(B($B$"$k$$$O@a$J$I(B)$B$NHV9f!%(B
+ edition
+% $BK\$NHG!$(B("Second" $B$J$I$N(B) $B=g=x?t$G$J$$$H$$$1$J$$!%(B
+ editor
+% (J)BibTeX $B7A<0$G=q$$$?!$JT<T$NL>A0!%(Bauthor $B%U%#!<%k%I$b$"$k>l9g$K$O(B
+% $BCx:n$,H/I=$5$l$?K\$J$I$NJT<T$NL>A0$r=q$/!%(B
+ howpublished
+% $B$3$N4qL/$JJ*$,$I$&$7$F=PHG$5$l$?$+!J?7$?$JJ8$r3+;O$9$k!K!%(B
+ institution
+% $B%F%/%K%+%k%l%]!<%H$N%5%]!<%H5!4XL>(B
+ journal
+% $BO@J8;o!$;(;o$NL>A0(B($B$$$/$D$+%^%/%m$,MQ0U$5$l$F$$$k(B)$B!%(B
+ key
+% $B%"%k%U%!%Y%C%H=g$KJB$Y$k;~!$%i%Y%k$r:n$k;~!$J88%%j%9%HFb;2>H$N%-!<$H$7$F(B
+% $B;H$o$l$k!JCx<T!$JT<T$,$J$$$H$-$KI,MW$G$"$k!K!%(B
+ month
+% $B7n(B($B%^%/%m$,MQ0U$5$l$F$$$k(B)$B!%(B
+ note
+% $BFI<T$,;2>HJ88%$r8+$D$1$k$N$KLrN)$D>pJs!J?7$?$JJ8$r3+;O$9$k!K!%(B
+ number
+% $BO@J8;o!$;(;o!$%F%/%K%+%k%l%]!<%H$NHV9f!$$"$k$$$O%7%j!<%:Cf$NHV9f!%(B
+ organization
+% $B2q5D$N%9%]%s%5!<!J$"$k$$$O%^%K%e%"%k$N=PHG<R!K$N5!4XL>$G!$Cx<T!JJT<T!K$,(B
+% $B$J$$>l9g$G!$$3$N>pJs$+$i$G$O%i%Y%k$,4qL/$K$J$k>l9g!$$"$k$$$OJ88%%j%9%HFb(B% $B;2>H$9$k>l9g$K$O!$E,Ev$J4J7i$J5!4XL>$r(B key $B%U%#!<%k%I$KF~$l$k$3$H!%(B
+ pages
+% $B%Z!<%8HV9f!$%Z!<%8?t!$$"$k$$$O%Z!<%8HO0O!JHO0O$O(B `--' $B$r;H$C$F!$(B
+% $BC1=c$JHO0O$G$O$J$$>l9g$K$O8e$m$K(B `+' $B$rIU$1$F<($9$3$H!K!%(B
+ publisher
+% $B=PHG<R(B($B<gBN(B)$B$NL>A0!%(B
+ school
+% $B3X9;(B($BBg3X(B)$B$NL>A0!J3X0LO@J8MQ!K!%(B
+ series
+% $BJ#?t4,$+$i$J$kK\$N%7%j!<%:L>!$3F!9$NK\$O3F!9$NI=Bj$r;}$C$F$$$k$O$:!%(B
+ title
+% $B;2>H$7$F$$$k$b$N$NI=Bj!%(B
+ type
+% $B%F%/%K%+%k%l%]!<%H$N>l9g$K%G%#%U%)%k%H$G;H$o$l$k(B "Technical Report"
+% $B$NBe$o$j$NL>>N!JNc$($P(B "Research Note"$B!K!$$"$k$$$O3X0LO@J8$N<oN`!$(B
+% $B$"$k$$$OK\$N%Q!<%H$NL>A0!%(B
+ volume
+% $BO@J8;o$J$I$N4,?t!$$"$k$$$OJ#?t4,$N=qJ*$N4,?t!%(B
+ year
+% $BG/$O?t;z$@$1$G$J$$$H$$$1$J$$!J@55,2=$7$?8e$G$O!$#4$D$N?t;z$G=*$o$i$J$$(B
+% $B$H$$$1$J$$!%?7$?$JJ8$r3+;O$7$J$$!K!%(B
+% $B><OB(B53$B$H$+$r;H$C$F$b$+$^$o$J$$$,!$(Bjalpha $B$J$I$G@8@.$5$l$k%i%Y%k$,JQ$J(B
+% $B$b$N$K$J$k$3$H$,$"$k$N$GCm0U$9$k$3$H!%(B
+ yomi
+% $BCx<T!$JT=8<TL>$N!VFI$_!W$r(Bauthor, editor$B$J$I$N=q<0$G(B
+% $B1Q8lIw$K=q$/!%$R$i$,$J$G=q$1$P0J30$G$O8^==2;=g$N(B
+% $B%=!<%H$b$G$-$k!%>\$7$/$O(B jbtxdoc.tex $B$r8+$h!%(B
+ }
+
+% $BF|K\8l$NJ88%$+$I$&$+$N%U%i%0(B
+ {is.kanji.entry}
+
+% $B0J2<$NJ8;z7?JQ?t$O0zMQ%i%Y%k$r:n@.$9$k$?$a$K;H$o$l$k!%%a%b%j$,B-$j$J$$(B
+% $B>l9g$K$O!$(Bsort.label $B$O(B on the fly $B$K4JC1$K:n@.$G$-$k!%(B
+
+#if LAB_ALPH
+#if SORTED
+ { label extra.label sort.label }
+#else !SORTED
+
+% $BJ8;zNs%i%Y%k$r;H$&>l9g$K!$0zMQ=g$KJB$Y$k$N$ONI$$$H$O;W$($J$$$,!$(B
+% $B$=$N>l9g$K$O!$$A$g$C$HJL$N$d$jJ}$G%i%Y%k$r:n$i$J$/$F$O$J$i$J$$!%(B
+
+ { label }
+#endif SORTED
+#else !LAB_ALPH
+ { label }
+#endif LAB_ALPH
+
+% $B$=$l$>$l$N%(%s%H%j$N7?$KBP1~$7$?4X?t$O!$@h$:(B output.bibitem $B$r8F$s$G(B
+% \bibitem $B$H$=$N0z?t$r(B .BBL $B%U%!%$%k$K=q$-=P$9!%<!$KMM!9$J%U%#!<%k%I$,(B
+% $B%U%)!<%^%C%H$5$l(B output $B$+(B output.check $B$K$h$C$F=q$-=P$5$l$k!%$3$l$i$N(B
+% $B=PNO4X?t$O6uJ8;zNs$,EO$5$l$F$$$J$$$3$H$r3NG'$7$J$,$i!$6h@Z$j5-9f!J%+%s%^!$(B
+% $B%T%j%*%I!$%3%m%s!$(B\newblock$B!K$r=q$-=P$9=hM}$r9T$&!%:G8e$K(B fin.entry $B$,(B
+% $B8F$P$l!$J8$N=*$o$j$N%T%j%*%I$r=q$-$@$7$F!$=hM}$,=*N;$9$k!%(B
+%
+% $B;29MJ88%$O$$$/$D$+$N%V%m%C%/$H$7$F%U%)!<%^%C%H$5$l$k!'(B
+% open $B7A<0$G$O!$%V%m%C%/$O?7$7$$9T$r3+;O$7!$%V%m%C%/Cf$G$O%$%s%G%s%H$5$l$k!%(B
+% $B%V%m%C%/Cf$K$OJ#?t$NJ8$,$"$C$F$h$$!J$H$O$$$C$F$bJ8K!E*$K$$$&J8$G$O$J$/!$(B
+% $B%T%j%*%I$G=*$o$kC18lNs$G$O$"$k$,!K!%%(%s%H%j4X?t$O:G=i$N%V%m%C%/0J30$N(B
+% $B%V%m%C%/$r=PNO$9$kA0$K$O(B new.block $B$r8F$P$M$P$J$i$J$$!%(B
+% $B$^$??7$7$$J8$r3+;O$9$k>l9g$K$O(B new.sentence $B$r8F$P$M$P$J$i$J$$!%(B
+% $B=PNO%k!<%A%s$O!$%T%j%*%I$,#2$DB3$$$?$j$7$J$$$h$&$K!$#2$D$N(B new.sentence
+% $B$N4V$K$O!$6uJ8;zNs$G$J$$$b$N$,$"$k$3$H$r3NG'$9$kI,MW$,$"$k!%(B
+% new.block $B$K$D$$$F$bF1$8$G$"$k!%(B
+%
+% $B=PNO%k!<%A%s$O$=$N0z?t$rD>$A$K=PNO$7$J$$!%$=$N$+$o$j$KDL>o$O(B
+% $B%9%?%C%/$KCV$-!$(B($B6h@Z$j5-9f$H$7$F2?$,I,MW$+J,$+$C$?;~E@$G(B)$B<!$N(B
+% $B=PNO%k!<%A%s$,=PNO$9$k!%=>$C$F=PNO%k!<%A%s$O%9%?%C%/>e$N%G!<%?$K(B
+% $BI,MW$J6h@Z$j5-9f$rIU2C$7$F=q$-=P$9I,MW$,$"$k!%(B
+%
+% $B$I$N6h@Z$j5-9f$,I,MW$+$rH=Dj$9$k$?$a$K!$(Boutput.state $B$r;H$&!%(B
+% $B$=$NCM$O0J2<$N$$$:$l$+!%(B
+% before.all \bibitem $B$ND>8e(B
+% mid.sentence $BJ8$NESCf!$8eB3$,$"$k>l9g$K$O%+%s%^$,I,MW(B
+% after.sentence $BJ8$ND>8e!%%T%j%*%I$,I,MW(B
+% after.block $B%V%m%C%/(B($BJ8(B)$B$ND>8e!%%T%j%*%I$H(B\newblock $B$,I,MW(B
+%------------------------------------------------------------------------
+% after.author $BCx<TL>$N8e(B(: $B$rIU$1$k$N$K;H$&(B)
+%------------------------------------------------------------------------
+%
+%*****************************************************************************
+%$BCm0U!'(B
+%
+% $B0J2<$N%3%a%s%HCf$G=R$Y$i$l$F$$$k%"%k%4%j%:%`$O!$F|K\8lMQ$N%9%?%$%k%U%!%$%k(B
+% $B$N:n@.$N$?$a$K!$%3!<%I$N$_JQ99$7$?ItJ,$,$"$k$N$G!$<B:]$N%3!<%I$HI,$:$7$b(B
+% $BF1$8$b$N$G$O$J$$!%(B
+%
+%*****************************************************************************
+%
+% VAR: output.state : INTEGER -- $B=PNO$N>uBVJQ?t(B
+%
+% output.nonnull $B4X?t$O!JEO$5$l$?J*$,6uJ8;zNs$G$J$$$H$7$F!K!$0z?t$r%9%?%C%/(B
+% $B$KJ]B8$7!$J]B8$7$F$*$$$?J8;zNs$KI,MW$H$5$l$kE,Ev$J6h@Z$j5-9f$r8e$m$K(B
+% $BIU2C$7$F=q$-=P$9!%%F%9%H$N=gHV$OIQEY=g$K$J$C$F$$$k!%(B
+%
+% $B#1J8$N7A$K$9$k>l9g(B(ONE_SENTENCE$B$,??$N>l9g(B)$B$K$O!$0J2<$H0[$J$k%"%k%4%j%:%`$G(B
+% $B$"$k!%<B:]$N%3!<%I$r;2>H$N$3$H!*(B
+%
+% output.nonnull(s) ==
+% BEGIN
+% s := argument on stack
+% if output.state = mid.sentence then
+% write$(pop() * ", ")
+% -- "pop" $B$O4X?t$G$O$J$$!%%9%?%C%/%H%C%W$N%G!<%?$r;H$&!%(B
+% else
+% if output.state = after.block then
+% write$(add.period$(pop()))
+% newline$
+% write$("\newblock ")
+% else
+% if output.state = before.all then
+% write$(pop())
+% else -- output.state $B$O(B after.sentence $B$N$O$:(B
+% write$(add.period$(pop()) * " ")
+% fi
+% fi
+% output.state := mid.sentence
+% fi
+% push s on stack
+% END
+%
+% output $B$O(B $B0z?t$,6u$G$J$$$J$i!J0z?t$OL$Dj5A%U%#!<%k%I$+$b$7$l$J$$$N$G!$(B
+% $BI,$:$7$bJ8;zNs$G$O$J$$!K!$(B output.nonnull $B$r8F$S=P$9!%(B
+%
+% output(s) ==
+% BEGIN
+% if not empty$(s) then output.nonnull(s)
+% fi
+% END
+%
+% output.check $B$O$[$H$s$I(B output $B4X?t$HF1$8$G$"$k$,!$I,MW$J%U%#!<%k%I$,(B
+% $B$J$$$3$H$r%f!<%6!<$K7Y9p$9$k!%!J$3$l$O$=$N%U%#!<%k%I$N$J$$J88%>pJs$O(B
+% $BNI$$$b$N$G$O$J$$$3$H$rCN$i$;$k$?$a!$$^$?$=$N%U%#!<%k%I$,$J$/$F$b!$=PNO$5$l$k(B
+% $B%U%)!<%^%C%H7A<0$,$^$"$^$"$NJ*$K$J$k$h$&$K$9$k$?$a$G$"$k!K!%(B
+%
+% output.check(s,t) ==
+% BEGIN
+% if empty$(s) then
+% warning$("empty " * t * " in " * cite$)
+% else output.nonnull(s)
+% fi
+% END
+%
+% output.bibitem $B4X?t$O8=:_$N%(%s%H%j$KBP$9$k(B \bibitem $B$r=q$-=P$7(B
+% ($B%i%Y%k$O4{$K$G$-$F$$$k$H2>Dj$9$k(B)$B!$>uBV$K1~$8$?6h@Z$j5-9f$r@_Dj$9$k!%(B
+% $B=PNO$N5,Ls$K=>$C$?J8;zNs$r%9%?%C%/$K;D$9!%(B
+%
+% output.bibitem ==
+% BEGIN
+% newline$
+% write$("\bibitem[") % $B0J2<#39T$OJ8;zNs%i%Y%kMQ(B
+% write$(label) %
+% write$("]{") %
+% write$("\bibitem{") % $B$3$N9T$O?tCM%i%Y%k$N;~(B
+% write$(cite$)
+% write$("}")
+% push "" on stack
+% output.state := before.all
+% END
+%
+% fin.entry $B4X?t$O%9%?%C%/$K;D$C$F$$$kJ8;zNs$K%T%j%*%I$rIU2C$7!$%(%s%H%j$N(B
+% $B=hM}$r=*$($k!%$b$7>uBV$,$^$@(B before.all $B$G$"$l$P$3$N%(%s%H%j$KBP$7$F$O2?$b(B
+% $B=PNO$5$l$F$$$J$$$N$G!$7k2L$OJQ$J$b$N$K$J$k$,!$MxMQ<T$O$=$l$K5$$E$/!%(B
+% $BJ88%$O0zMQ$5$l$F$$$k$N$G$"$k$+$i!$0zMQ%i%Y%k$r:n$k$?$a$K(B bibitem $B$O(B
+% $BI,MW$G$"$k$+$i!$%(%s%H%j$r>JN,$7$?$j$7$J$$!%(B
+%
+% fin.entry ==
+% BEGIN
+% write$(add.period$(pop()))
+% newline$
+% END
+%
+% new.block $B4X?t$O=PNO$9$k?7$?$J%V%m%C%/$N=`Hw$r9T$$!$(B
+% new.sentence $B$O?7$?$J%;%s%F%s%9$N=`Hw$r9T$&!%(B
+%
+% new.block ==
+% BEGIN
+% if output.state <> before.all then
+% output.state := after.block
+% fi
+% END
+%
+% new.sentence ==
+% BEGIN
+% if output.state <> after.block then
+% if output.state <> before.all then
+% output.state := after.sentence
+% fi
+% fi
+% END
+%
+#if ONE_SENTENCE
+INTEGERS { output.state before.all mid.sentence after.sentence after.block
+ after.author}
+#else !ONE_SENTENCE
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+#endif ONE_SENTENCE
+
+% $B0J2<$N#3$D$N4X?t$O(B AND, OR, NOT $B$N$?$a$N$b$N$G$"$k!%(B
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+#if ONE_SENTENCE
+ #4 'after.author :=
+#endif ONE_SENTENCE
+}
+
+% s, t $B$O:n6HMQ$NJ8;zNsJQ?t(B
+STRINGS { s t }
+
+% $BA43Q$N(B"$B!$(B","$B!%!I$r;H$&;~$N$?$a$N4X?t(B
+% $B;29MJ88%$O%3%s%Q%/%H$KAH$_$?$$$N$G!$;d$O$3$l$O9%$-$G$O$J$$$,!$(B
+% ASCII $BHG$N(B 0.98 $B$G$O$3$N5!G=$,$"$C$?$N$G!%(B
+
+#if ZENKAKU_PUN
+FUNCTION {add.kanji.period}
+{
+ add.period$ duplicate$
+ #-1 #1 substring$ "." =
+ {#-2 global.max$ substring$ "$B!%(B" *}
+ 'skip$
+ if$
+}
+#endif ZENKAKU_PUN
+
+% $BA43Q$N%3%m%s$r;H$&>l9g$K$O$3$NDj5A$O$3$3$K$J$$$H$$$1$J$$!%(B
+#if ZENKAKU_COLON
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+#endif ZENKAKU_COLON
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+#if ZENKAKU_PUN
+ { is.kanji.entry
+ { "$B!$(B" * write$ }
+ { ", " * write$ }
+ if$
+ }
+#else !ZENKAKU_PUN
+ { ", " * write$ }
+#endif ZENKAKU_PUN
+ { output.state after.block =
+ {
+#if ZENKAKU_PUN
+ is.kanji.entry
+ {add.kanji.period write$}
+ {add.period$ write$}
+ if$
+#else !ZENKAKU_PUN
+ add.period$ write$
+#endif ZENKAKU_PUN
+ newline$
+ "\newblock " write$
+ }
+#if ONE_SENTENCE
+ { output.state after.author =
+#ifdef JIPSJ
+ { " " * write$
+#else !JIPSJ
+ { author empty$ editor empty$ and organization empty$ and
+ {write$}
+#if ZENKAKU_COLON
+ { author field.or.null is.kanji.str$
+ editor field.or.null is.kanji.str$ or
+ organization field.or.null is.kanji.str$ or
+ {"$B!'(B" * write$}
+ {": " * write$}
+ if$
+ }
+#else !ZENKAKU_COLON
+ {": " * write$}
+#endif ZENKAKU_COLON
+ if$
+#endif JIPSJ
+ mid.sentence 'output.state :=
+ }
+ 'write$
+ if$
+ }
+#else !ONE_SENTENCE
+ { output.state before.all =
+ 'write$
+#if ZENKAKU_PUN
+ { is.kanji.entry
+ { add.kanji.period write$ }
+ { add.period$ " " * write$ }
+ if$
+ }
+#else !ZENKAKU_PUN
+ { add.period$ " " * write$ }
+#endif ZENKAKU_PUN
+ if$
+ }
+#endif ONE_SENTENCE
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+#if LAB_ALPH
+ "\bibitem[" write$
+ label write$
+ "]{" write$
+#else !LAB_ALPH
+ "\bibitem{" write$
+#endif LAB_ALPH
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+% $B$3$N4X?t$O%(%s%H%j$N=PNO$r=*$j$K$9$k(B
+
+FUNCTION {fin.entry}
+{
+#if ZENKAKU_PUN
+ is.kanji.entry
+ {add.kanji.period}
+ {add.period$}
+ if$
+#else !ZENKAKU_PUN
+ add.period$
+#endif ZENKAKU_PUN
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+#if ONE_SENTENCE
+ { after.author 'output.state := }
+ 'skip$
+#else !ONE_SENTENCE
+ 'skip$
+ { after.block 'output.state := }
+#endif ONE_SENTENCE
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+% $B;~$H$7$F!$%V%m%C%/$,==J,$KD9$$>l9g$K$N$_?7$?$J%V%m%C%/$r3+;O$7$J$$$H$$$1$J$$!%(B
+% new.block.checka $B4X?t$O$=$N0z?t$,6u$G$J$$>l9g$K(B new.block $B$r<B9T$9$k!%(B
+% new.block.checkb $B4X?t$O$=$N#2$D$N0z?t$,$I$A$i$b6u$K$J$$>l9g$K(B new.block $B$r(B
+% $B<B9T$9$k!%(B
+
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+% new.sentence.check $B4X?t72$bF1$8$h$&$J$b$N(B
+
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+% $B%(%s%H%j$N%G!<%?72$r%U%)!<%^%C%H$9$k$?$a$N4X?t72(B
+% $B$3$l$i$N4X?t72$G$O!$%+%s%^$"$k$$$O%T%j%*%I!J%T%j%*%I$N8e$K%T%j%*%I$,B3$$$?$j(B
+% $B$7$J$$$h$&$K(B add.period$ $B$r;H$C$F!K$rIU$1$i$l$k$h$&$K!$J8;zNs$+6uJ8;zNs(B
+% $B$r=PNO$9$k$3$H$r5,Ls$H$9$k!%(B
+%
+% $BLr$K$?$DJd=u4X?t(B field.or.null $B$O0z?t$,L$Dj5A%U%#!<%k%I!J%G!<%?%Y!<%9$+$i(B
+% $B%G!<%?$rFI$s$@;~$KCM$N@_Dj$5$l$F$$$J$$%U%#!<%k%I!K$+$I$&$+!$$"$k$$$O(B
+% $B6uGr0J30$NJ8;z$r4^$^$J$$J8;zNs$+$I$&$+$r%A%'%C%/$7!$$=$&$G$"$l$P6uJ8;zNs(B
+% $B$rCM$H$7$FJV$9!%(B
+% $B$3$N4X?t$N<g$?$kL\E*$O!J$=$l$@$1$G$O$J$$$,!K%9%?%C%/%H%C%W$K;D$C$F$$$k(B
+% $BCM$,L$Dj5A%U%#!<%k%I$G$J$/!$J8;zNs$G$"$k$3$H$rJ]>Z$9$k$?$a$3$H$G$"$k!%(B
+%
+% field.or.null(s) ==
+% BEGIN
+% if empty$(s) then return ""
+% else return s
+% END
+%
+% $B$b$&#1$D$NJd=u4X?t(B emphasize $B$O0z?t$,6uJ8;zNs$G$J$1$l$P$=$l$K6/D4;XDj$r(B
+% $BIU2C$7$?CM$rJV$9!%6uJ8;zNs$J$i6uJ8;zNs$rJV$9!%%$%?%j%C%/Jd@5$OIU2C$7$J$$(B
+% $B$N$G!$6h@Z$j5-9f$,B3$/>l9g$K$N$_;H$&$3$H!%(B
+%
+% $B4A;z$r4^$`J8;zNs$N;~$K$O6/D4;XDj$rIU2C$7$J$$!%$^$?(B NO_EM $B$,Dj5A$5$l$F$$$l$P(B
+% $B6/D4;XDj$rIU2C$7$J$$!%(B
+%
+% emphasize(s) ==
+% BEGIN
+% if empty$(s) then return ""
+% else
+% if is.kanji.str$(s) then return s
+% #if NO_EM
+% return s
+% #else !NO_EM
+% else return "{\em " * s * "}"
+% #endif NO_EM
+%
+% format.names $B4X?t$O!$4pK\E*$K$O(B((J)BibTeX $B$NL>A07A<0$G=q$+$l$?!K0z?t$r!$%+%s%^(B
+% $B$G6h@Z$j$J$,$i!$$^$?:G8e$NL>A0$NA0$K$O(B and $B$rA0$KIU$1$F!J:G8e$,(B others $B$G(B
+% $B$"$l$P(B et~al. $B$H$7$F(B and $B$rIU$1$:$K!(4A;zCx<TL>$N>l9g$K$O(B et~al. $B$G$O$J$/$F!$(B
+% "$B$[$+(B"$B$"$k$$$O(B"$BB>(B" $B$r;H$$!$%+%s%^$G6h@Z$k$@$1$G(B and $B$OIU$1$:$K!K!$(B
+% "First Von Last, Junior" $B$N7A$K%U%)!<%^%C%H$9$k!%!JL>A0$N%U%)!<%^%C%H7A<0(B
+% $B$N;XDj$K$h$C$F$O(B First $B$O>JN,7A$H$5$l$k$3$H$b$"$k!K!%(B
+% $B0z?t$K$O:GDc#1$D$NL>A0$,$J$1$l$P$J$i$J$$!%(B
+%
+% $B0J2<$N%"%k%4%j%:%`$OF|K\8l$KBP1~$9$k!$?7$7$/F3F~$7$?%9%$%C%A!JJQ?t!K$KBP1~(B
+% $B$9$k!$$?$a$K%3!<%IItJ,$,BgI}$K=q$-49$($i$l$F$$$k$N$G!$%3!<%I$H$OI,$:$7$b(B
+% $B0lCW$7$F$$$J$$!%$7$+$74pK\E*$J=hM}$NN.$l$OJQ$o$C$F$$$J$$!%(B
+%
+% VAR: nameptr, namesleft, numnames: INTEGER
+% pseudoVAR: nameresult: STRING (it's what's accumulated on the stack)
+%
+% format.names(s) ==
+% BEGIN
+% nameptr := 1
+% numnames := num.names$(s)
+% namesleft := numnames
+% while namesleft > 0
+% do
+% $BL>A0$r%U%)!<%^%C%H$9$k7A<0$,Bg$-$/JQ99$5$l$F$$$k(B
+% % for full names:
+% t := format.name$(s, nameptr, "{ff~}{vv~}{ll}{, jj}")
+% % for abbreviated first names:
+% t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}")
+%
+% if nameptr > 1 then
+% if namesleft > 1 then nameresult := nameresult * ", " * t
+% else if numnames > 2
+% then nameresult := nameresult * ","
+% fi
+% % $B$3$NItJ,$bBg$-$/JQ99$5$l$F$$$k(B
+% % $B4A;zCx<T$J$i(B and $B$rIU$1$J$$!$(B et~al. $B$G$J$/(B"$B$[$+(B/$BB>(B"$B$H$9$k!%(B
+% if t = "others"
+% then nameresult := nameresult * " et~al."
+% else nameresult := nameresult * " and " * t
+% fi
+% fi
+% else nameresult := t
+% fi
+% nameptr := nameptr + 1
+% namesleft := namesleft - 1
+% od
+% return nameresult
+% END
+%
+% format.authors $B$O(B author $B$,$"$l$P(B format.names(author) $B$NCM$r!$$J$1$l$P(B
+% $B6uJ8;zNs$rJV$9(B
+%
+% format.authors ==
+% BEGIN
+% if empty$(author) then return ""
+% else return format.names(author)
+% fi
+% END
+%
+% format.editors $B$O(B format.authors $B$HF1$8$G$"$k$,!$(B editor $B%U%#!<%k%I$r(B
+% $B;H$$!$$^$?8e$m$K(B ed., eds. $B$J$I$rIU$1$k!%(B
+%
+% $BJT=8<T$r3g8L$KF~$l$k$J$I$N=hM}$,IU2C$5$l$F$$$k!%$^$?(Bed., eds. $B$J$I$N(B
+% $B>JN,7A$r;H$&$H$+!$4A;zCx<T$N>l9g$K$O!JJT!K$K$9$k$H$+$NJQ99$b$J$5$l$F$$$k!%(B
+%
+% format.editors ==
+% BEGIN
+% if empty$(editor) then return ""
+% else
+% if num.names$(editor) > 1 then
+% return format.names(editor) * ", editors"
+% else
+% return format.names(editor) * ", editor"
+% fi
+% fi
+% END
+%
+% $BB>$N%U%)!<%^%C%H4X?t$bF1$8$h$&$J$b$N$J$N$G!$%3%a%s%H%P!<%8%g%s$O<($5$J$$!%(B
+%
+% $B$3$N4X?t$NCf$N(B `pop$' $BL$Dj5ACM$r<h$j5n$j6uJ8;zNs$rJV$9$?$a$K!$(B
+% `skip$' $B$O%3%T!<$7$?(B(duplicate$$B$7$?(B)$BCM$=$N$b$N$rJV$9$?$a$K;H$o$l$F$$$k!%(B
+
+% $BA43Q$N%3%m%s$r;H$o$J$1$l$P!$$3$NDj5A$O$3$3$K$"$l$P$h$$!%(B
+#if !ZENKAKU_COLON
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+#endif !ZENKAKU_COLON
+
+#if NO_EM
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+#else !NO_EM
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { duplicate$ is.kanji.str$
+ 'skip$
+ { "{\em " swap$ * "}" * }
+ if$
+ }
+ if$
+}
+#endif NO_EM
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+% $B$^$@L>A0$,;D$C$F$$$l$P(B
+ { namesleft #0 > }
+% $B@h$:8=:_CmL\$7$F$$$k=gHV$NL>A0$r%U%)!<%^%C%H$9$k!%(B
+#if NAME_FULL
+ { s nameptr "{ff}{ll}" format.name$ is.kanji.str$
+ {s nameptr "{ff}{ll}" format.name$ 't :=}
+ {s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=}
+ if$
+#else !NAME_FULL
+ { s nameptr "{ff}{ll}" format.name$ is.kanji.str$
+#if KANJI_FULL_NAME
+ {s nameptr "{ff}{ll}" format.name$ 't :=}
+#else !KANJI_FULL_NAME
+ {s nameptr "{ff}" format.name$ 't :=
+ t empty$
+ { s nameptr "{ll}" format.name$ 't :=
+ t " $B$K$O!$@+$HL>$N4V$K6uGr$,$J$$$h!)(B in " * cite$ * warning$
+ }
+ 'skip$
+ if$
+ }
+#endif KANJI_FULL_NAME
+#if FAMILY_FIRST
+ {s nameptr "{ll,~~}{vv~}{f.}{, jj}" format.name$ 't :=}
+#else !FAMILY_FIRST
+#if FIRST_FAMILY_FIRST
+ { nameptr #1 =
+ {s nameptr "{ll,~~}{vv~}{f.}{, jj}" format.name$ 't :=}
+ {s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=}
+ if$
+ }
+#else !FIRST_FAMILY_FIRST
+ {s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=}
+#endif FIRST_ERV
+#endif FAMILY_FIRST
+ if$
+#endif NAME_FULL
+% $BBh#2HVL\0J9_!)(B
+ nameptr #1 >
+% $BBh#2HVL\0J9_(B
+% $B$^$@#2?M0J>e;D$C$F$$$k!)(B
+ { namesleft #1 >
+% $B$^$@#2?M0J>e;D$C$F$$$k(B
+#if ZENKAKU_PUN
+ { is.kanji.entry
+ {"$B!$(B" * t * }
+ {", " * t * }
+ if$
+ }
+#else !ZENKAKU_PUN
+ {", " * t * }
+#endif ZENKAKU_PUN
+% $B$b$&:G8e$N#1?M$@!*(B
+% $B:G8e$NL>A0$,(B others $B$+$J!)(B
+#if FAMILY_FIRST
+ { t "others" = t "others,~" = or
+#else !FAMILY_FIRST
+ { t "others" =
+#endif FAMILY_FIRST
+% $B$=$&$@!*(B
+ { s is.kanji.str$
+#if USE_KANJI_HOKA
+ {"$BB>(B" * }
+#else !USE_KANJI_HOKA
+ {"$B$[$+(B" * }
+#endif USE_KANJI_HOKA
+#if SMALL_CAP
+ {"{\rm, et~al.}" * }
+#else !SMALL_CAP
+ {", et~al." * }
+#endif SMALL_CAP
+ if$
+ }
+% others $B$G$J$$$>!*(B
+ { s is.kanji.str$
+#if ZENKAKU_PUN
+ {"$B!$(B" * t * }
+#else !ZENKAKU_PUN
+ {", " * t * }
+#endif ZENKAKU_PUN
+% Small caps $B$r;H$&>l9g$G$b(B and $B$O(B roman $B$G$J$$$H$$$1$J$$(B
+#if SMALL_CAP
+#if NO_COM_AND
+ {"{\rm\ and }" * t * }
+#else !NO_COM_AND
+ { numnames #2 =
+ {"{\rm\ and }" * t * }
+ {",{\rm\ and }" * t * }
+ if$
+ }
+#endif NO_COM_AND
+#else !SMALL_CAP
+#if NO_COM_AND
+ {" and " * t * }
+#else !NO_COM_AND
+ { numnames #2 =
+ {" and " * t * }
+ {", and " * t * }
+ if$
+ }
+#endif NO_COM_AND
+#endif SMALL_CAP
+ if$
+ }
+ if$
+ }
+ if$
+ }
+% $B:G=i$NL>A0$@!*(B
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+% Small caps $B$N>l9g$K$O(B {\sc, } $B$G0O$`(B
+#if SMALL_CAP
+ { "{\sc " author format.names * "}" * }
+#else !SMALL_CAP
+ { author format.names }
+#endif SMALL_CAP
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+#if SMALL_CAP
+ { "{\sc " editor format.names * "}" *
+#else !SMALL_CAP
+ { editor format.names
+#endif SMALL_CAP
+ editor num.names$ #1 >
+ { editor is.kanji.str$
+#if ED_SHORT
+% $BEE;R>pJsDL?.3X2qO@J8;o$G$O(B editor, editors $B$N7A<0$,0c$&!*(B
+#ifdef TIEICE
+ {"$B!JJT!K(B" * } {" Eds." * } if$
+#else !TIEICE
+ {"$B!JJT!K(B" * } {" eds." * } if$
+#endif TIEICE
+#else !ED_SHORT
+ {"$B!JJT!K(B" * } {", editors" * } if$
+#endif ED_SHORT
+ }
+ { editor is.kanji.str$
+#if ED_SHORT
+#ifdef TIEICE
+ {"$B!JJT!K(B" *} {" Ed." * } if$
+#else !TIEICE
+ {"$B!JJT!K(B" *} {" ed." * } if$
+#endif !EIEIC
+#else !ED_SHORT
+ {"$B!JJT!K(B" *} {", editor" * } if$
+#endif ED_SHORT
+ }
+ if$
+ }
+ if$
+}
+
+% $BJT=8<T$r3g8L$G$/$/$k>l9g(B
+#if ED_IN_PAR
+FUNCTION {format.in.ed.editors}
+{ editor empty$
+ { "" }
+ { editor format.names
+ editor num.names$ #1 >
+ { editor is.kanji.str$
+% $BEE;R>pJsDL?.3X2qO@J8;o$G$O(B editor, editors $B$N7A<0$,0c$&!*(B
+#ifdef TIEICE
+ {"$B!JJT!K(B" *} {"Eds.\ by " swap$ * } if$
+#else !TIEICE
+ {"$B!JJT!K(B" *} {"eds." swap$ * } if$
+#endif TIEICE
+ }
+ { editor is.kanji.str$
+#ifdef TIEICE
+ {"$B!JJT!K(B" *} {"Ed.\ by " swap$ *} if$
+#else !TIEICE
+ {"$B!JJT!K(B" *} {"ed." swap$ *} if$
+#endif TIEICE
+ }
+ if$
+ }
+ if$
+}
+
+#endif ED_IN_PAR
+
+% format.title $B4X?t$OK\$NCg4V$G$J$$$b$N$NI=Bj$r%U%)!<%^%C%H$9$k$N$K;H$o$l$k!%(B
+% $BKX$I$N%9%?%$%k$G$O!J:G=i$NJ8;z$H%3%m%s$N8e!J%9%Z!<%9$,B3$$$F$$$k$+$b(B
+% $B$7$l$J$$!K$N:G=i$NJ8;z$r=|$$$F!K!$JQ49$5$l$FM_$7$/$J$$BgJ8;z$OCf3g8L(B
+% `{', `{' $B$G0O$^$l$F$$$k$H4|BT$7$F!$%?%$%H%k$NBgJ8;z$r>.J8;z$KJQ49$9$k!%(B
+% $B$$$/$D$+$N%9%?%$%k$G$O$3$NJQ49$O9T$o$:$K!$%G!<%?%Y!<%9Cf$N$^$^$H$9$k!%(B
+%
+% $BEE;R>pJsDL?.3X2q$N%9%?%$%k$G$O%?%$%H%k$r(B``''$B$G0O$`!%(B
+
+FUNCTION {format.title}
+% $B#1J87A<0$N>l9g$K$O%?%$%H%k$N=PNO>uBV$r(B after.author $B$K$7$F$+$i!$=hM}3+;O(B
+#if ONE_SENTENCE
+{ after.author 'output.state :=
+ title empty$
+#else !ONE_SENTENCE
+{ title empty$
+#endif ONE_SENTENCE
+ { "" }
+#if ATIT_LOWER
+#ifdef TIEICE
+ { "``" title "t" change.case$ * "''" * }
+#else !TIEICE
+ { title "t" change.case$ }
+#endif TIEICE
+#else !ATIT_LOWER
+ 'title
+#endif ATIT_LOWER
+ if$
+}
+
+% $B%G%#%U%)%k%H$G(B (J)BibTeX $B$OBg0hJQ?t(B global.max$ $B$NCM$r(B (J)BibTeX $B$NDj?t$G$"$k(B
+% glob_str_size $B$K@_Dj$9$k!%F1MM$K(B entry.max$ $B$NCM$r%(%s%H%j$NJ8;zNs$N:GBgD9$G(B
+% $B$"$k(B ent_str_size $B$K@_Dj$9$k!%(B
+% $B$=$s$J$3$H$O$J$$$H$O;W$&$,!$$3$l$rJQ99$7$F$b$h$$!%(B
+%
+% n.dashify $B4X?t$OJ8;zNsCf$N(B `-' $B$r(B `--' $B$KJQ49$9$k!%(B
+%
+% pseudoVAR: pageresult: STRING (it's what's accumulated on the stack)
+%
+% n.dashify(s) ==
+% BEGIN
+% t := s
+% pageresult := ""
+% while (not empty$(t))
+% do
+% if (first character of t = "-")
+% then
+% if (next character isn't)
+% then
+% pageresult := pageresult * "--"
+% t := t with the "-" removed
+% else
+% while (first character of t = "-")
+% do
+% pageresult := pageresult * "-"
+% t := t with the "-" removed
+% od
+% fi
+% else
+% pageresult := pageresult * the first character
+% t := t with the first character removed
+% fi
+% od
+% return pageresult
+% END
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ is.kanji.str$
+ { t #1 #2 substring$ *
+ t #3 global.max$ substring$ 't :=
+ }
+
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ if$
+ }
+ while$
+}
+
+% format.data $B4X?t$O7n$HG/$r%U%)!<%^%C%H$9$k$?$a$N$b$N$G$"$j!$7n$@$1$"$C$F!$(B
+% $BG/$,$J$$>l9g$K$O7Y9p%a%C%;!<%8$r=P$7!$$I$A$i$b$J$1$l$P6uJ8;zNs$rJV$9!%(B
+%
+% $BJ88%$r(B1$BJ8$N7A<0$H$9$k>l9g$K$O86B'E*$K$OG/7n$O3g8L$KF~$l$k!%(B
+% $B$^$?>pJs=hM}3X2q1QJ8O@J8;o0J30$N(B1$BJ87A<0$G$O7n$OI=<($7$J$$!%(B
+
+FUNCTION {format.date}
+#if ONE_SENTENCE
+{ before.all 'output.state :=
+ year empty$
+ { "there's no year in " cite$ * warning$
+ ""
+ }
+% $B>pJs=hM}3X2q1QJ8O@J8;o$G$O3g8L$NCf$K(B month year $B$rJB$Y$k(B
+#ifdef JIPSJ
+ { month empty$
+ { " (" year * ")" *}
+ { " (" month * " " * year * ")" * }
+ if$
+ }
+#else !JIPSJ
+#if YEAR_IN_PAR
+ { " (" year * ")" * }
+#else !YEAR_IN_PAR
+#if ZENKAKU_PUN
+ { is.kanji.entry
+ {"$B!$(B" year * }
+ {", " year * }
+ if$
+ }
+#else !ZENKAKU_PUN
+ {", " year * }
+#endif ZENKAKU_PUN
+#endif YEAR_IN_PAR
+#endif JIPSJ
+ if$
+}
+#else !ONE_SENTENCE
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+#endif ONE_SENTENCE
+
+% format.btitle $B4X?t$OK\$NCg4V$N%(%s%H%j$NI=Bj$r%U%)!<%^%C%H$9$k!%BgJ8;z(B
+% $B>.J8;z$O$=$N$^$^$K$7$F$*$-!$6/D4;XDj$rIU$1$k(B(NO_EM $B$,;XDj$5$l$F$$$l$P!$(B
+% \em $B$OIU2C$5$l$J$$$3$H$K$J$C$F$$$k!K!%(B
+%
+% $BEE;R>pJsDL?.3X2qO@J8;o$G$O%?%$%H%k$OFs=E0zMQId$G0O$`(B
+
+FUNCTION {format.btitle}
+#if ONE_SENTENCE
+{after.author 'output.state :=
+#ifdef TIEICE
+"``" title * "''" *
+#else !TIEICE
+title emphasize
+#endif TIEICE
+}
+#else !ONE_SENTENCE
+{ title emphasize
+}
+#endif ONE_SENTENCE
+
+% $B$$$/$D$+$N4X?t$G$O#2$D$NJ8;zNs$rO"7k$9$k;~$K!$8e$m$NJ8;zNs$,D9$$$b$N$G(B
+% $B$J$$!J#3J8;zL$K~!K$N;~$K%?%$(B(~)$B$r4V$KF~$l$F!$$=$l$h$jD9$1$l$P!$6uGr$r(B
+% $B4V$KF~$l$F!$O"7k$9$kI,MW$,$"$k!%O"7k7k2L$O%9%?%C%/$KCV$/!%(B
+%
+% \bibliography $B$G$O%T%j%*%I(B `.' $B$N8e$KM>J,$J6uGr$O$D$12C$($i$l$J$$$N$G!$(B
+% \sfcode`\.=1000 $B$,;XDj$5$l$F$$$k$N$G!$>JN,7A$N8e$G$bC1$J$k6uGr$G$h$$!%(B
+%
+% tie.or.space.connect(str1,str2) ==
+% BEGIN
+% if text.length$(str2) < 3
+% then return the concatenation of str1, "~", and str2
+% else return the concatenation of str1, " ", and str2
+% END
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+% either.or.check $B4X?t$O$$$:$l$+0lJ}$7$+;H$($J$$%U%#!<%k%I$,N>J};H$o$l$F(B
+% $B$$$?>l9g$KJ86g$r$$$&!%(B
+%
+% either.or.check(t,s) ==
+% BEGIN
+% if not empty$(s) then --- $B%*%j%8%J%k$G$O(B not $B$,H4$1$F$$$?!J%P%0!K(B
+% warning$(can't use both " * t * " fields in " * cite$)
+% fi
+% END
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+% format.bvolume $B4X?t$O(B volume, $B$=$7$F$*$=$i$/$OJ#?t4,$+$i$J$k%7%j!<%:$N(B
+% $B%7%j!<%:L>$r%U%)!<%^%C%H$9$k$?$a$K;H$o$l$k!%(Bvolume $B$H(B series $B$N%U%#!<%k%I$,(B
+% $BN>J}$"$k>l9g$K$O!$(Bseries $B$O%7%j!<%:$NI=Bj$G$"$k(B($B;2>H$7$F$$$k4,$NI=Bj$O(B title
+% $B$K=q$+$l$F$$$k!K$H2>Dj$7(B "of $B%7%j!<%:I=Bj(B" $B$rIU2C$9$k!%$3$N4X?t$OJ8$NESCf$G(B
+% $B8F$P$l$k!%(B
+%
+% $BF|K\8l$N%9%?%$%k$G$O!$(Bvolume $B$G$J$/!$(B Vol. $B$r;H$&!%%7%j!<%:L>(B, Vol. $B$N(B
+% $B7A<0$H$9$k!%(B
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect}
+ if$
+ }
+ if$
+ series empty$
+ 'skip$
+ { series is.kanji.str$
+ { volume empty$
+ {series swap$ * }
+#if ZENKAKU_PUN
+ {series "$B!$(B" * swap$ * }
+#else !ZENKAKU_PUN
+ {series ", " * swap$ * }
+#endif ZENKAKU_PUN
+ if$
+ }
+ { " of " * series emphasize * }
+ if$
+ }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+% format.number.series $B4X?t$O%7%j!<%:L>(B, $B$=$7$F$*$=$i$/$O%7%j!<%:Cf$G$NHV9f$r(B
+% $B%U%)!<%^%C%H$9$k$?$a$K;H$o$l$k!%$3$l$O(B format.bvolume $B$K;w$F$$$k$,!$(B
+% $B$3$N4X?t$G$O(B series $B$OB8:_$7!$(Bvolume $B$O$"$C$F$O$J$i$J$$(B(volume $B$,$"$l$P(B
+% $B6uJ8;zNs$rJV$9(B)$B!%(Bnumber $B%U%#!<%k%I$,6u$G$"$l$P!$(Bseries $B$r$=$N$^$^=PNO$9$k(B
+% ($B6u$+$bCN$l$J$$(B)$B!%(Bseries $B$K$O%7%j!<%:$NI=Bj$,F~$C$F$$$k(B(title $B%U%#!<%k%I$K(B
+% $B;2>H$7$F$$$k$b$N$NI=Bj$,F~$C$F$$$k!K$H2>Dj$7$F!$(B"in <series>" $B$N7A$G=PNO$9$k!%(B
+% $B$3$N4X?t$OJ8$N@hF,$G;H$o$l$k$N$G!$(B Number $B$N:G=i$OBgJ8;z$G$"$k!%(B
+%
+% $BF|K\8l$N%7%j!<%:I=Bj$J$i!$(B<series>, <number> $B$N7A$K$J$k!%(B
+% $BF|K\8l$N%9%?%$%k$G$O(B number, Number $B$G$J$/!$(B No. $B$r;H$&$h$&$KJQ99$7$?!%(B
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { number is.kanji.str$
+ { number }
+ {"No." number tie.or.space.connect}
+ if$
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { series is.kanji.str$
+#if ZENKAKU_PUN
+ { series "$B!$(B" * swap$ * }
+#else !ZENKAKU_PUN
+ { series ", " * swap$ * }
+#endif ZENKAKU_PUN
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+% format.edition $B4X?t$O(B edition $B$,$"$l$P(B " edition " $BJ8;zNs$rIU2C$9$k!%(B
+% $B$3$l$OJ8$N@hF,$G;H$o$l$J$$$N$G!$(Bedition $B$O>.J8;z$KJQ49$9$k!%(B
+% $BF|K\8l$N(B edition $B$KBP$7$F$O(B " edition" $B$OIU2C$7$J$$!%(B
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { edition is.kanji.str$
+ { edition }
+ { is.kanji.entry
+ {"$BBh(B" edition * "$BHG(B" *}
+ { output.state mid.sentence =
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+% format.pages $B4X?t$OK\$N%Z!<%8HO0O$r%U%)!<%^%C%H$9$k!J4u$KO@J8(B/$B5-;v$N%Z!<%8(B
+% $BHO0O$N%U%)!<%^%C%H$K$b;H$o$l$k(B).
+%
+% multi.page.check $B4X?t$O(B "page/p." $B$+(B "pages/pp. " $B$N$I$A$i$r;H$&$N$,E,@Z$+(B
+% $BH=CG$9$k$?$a$K(B page $B%U%#!<%k%I$K(B "-", ",", "+" $B$NJ8;z$,4^$^$l$F$$$k$+$I$&$+(B
+% $BD4$Y$k!%F|K\8lMQ$N%9%?%$%k$G$O(B page/pages $B$NBe$o$j$K(B p./pp. $B$r;H$C$F$$$k!%(B
+%
+% $BCm0U!'$3$3$G;H$C$F$$$k(B global.max$ $B$OJ8;zNs$N;D$jA4It$H$$$&0UL#$G;H$C$F$$$k!%(B
+%
+% VAR: multiresult: INTEGER (actually, a boolean)
+%
+% multi.page.check(s) ==
+% BEGIN
+% t := s
+% multiresult := false
+% while ((not multiresult) and (not empty$(t)))
+% do
+% if (first character of t = "-" or "," or "+")
+% then multiresult := true
+% else t := t with the first character removed
+% fi
+% od
+% return multiresult
+% END
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+% $BF|K\8l$N%9%?%$%k$G$O86B'$H$7$F(B page/pages $B$G$J$/(B p./pp. $B$r;H$&!%(B
+% $B>pJs=hM}3X2q1QJ8O@J8;o$G$O(B pp. $B$O>JN,$9$k!%(B
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+#if JIPSJ_LIKE
+ { " " pages n.dashify * }
+ { " " pages * }
+#else !JIPSJ_LIKE
+ { "pp." pages n.dashify tie.or.space.connect }
+ { "p." pages tie.or.space.connect }
+#endif JIPSJ_LIKE
+ if$
+ }
+ if$
+}
+
+% format.vol.num.pages $B4X?t$OO@J8;o!$;(;o$NO@J8!$5-;v$N(B volume, number,
+% $B%Z!<%8HO0O$r%U%)!<%^%C%H$9$k!%$=$N7A<0$O%9%?%$%k$G0[$J$k$N$G!$%3!<%I$r(B
+% $B;2>H$N$3$H!%(B
+%
+% $B!!>pJs=hM}3X2q1QJ8O@J8;o$G$O(B volume, number (year), pages $B$N7A$GJB$Y$k(B
+% $B$^$?(B volume $B$O(B Vol.$B$rIU$1$:$K(B bold $B$G%?%$%W%;%C%H$9$k!%(B No. $B$bIU$1$J$$!%(B
+% $B!!EE;R>pJsDL?.3X2qO@J8;o$G$O(B volume $B$O(B Vol.$B$rIU$1$:$K(B bold $B$G%?%$%W%;%C%H$7!$(B
+% No. $B$bIU$1$J$$!%(B
+% $B!!F|K\%*%Z%l!<%7%g%s%:%j%5!<%A3X2qO@J8;o$G$O!$>pJs=hM}3X2q1QJ8O@J8;o$H(B
+% $BF1$8$h$&$J7A$G$"$k$,!$(Bvolume $B$r(B bold $B$G%?%$%W%;%C%H$;$:$K!$(B Vol. $B$r;H$&!%(B
+
+#ifdef JABBRV
+
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+ number empty$
+ 'skip$
+ { "(" number * ")" * *
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ":" * pages n.dashify * }
+ if$
+ }
+ if$
+}
+
+#else !JABBRV
+
+#if JIPSJ_LIKE
+FUNCTION {format.vol.num.year.pages}
+{ volume empty$
+ {""}
+#ifdef JORSJ
+ { volume is.kanji.str$
+ { volume }
+ {"Vol." volume tie.or.space.connect }
+ if$
+ }
+#else !JORSJ
+ {", {\bf " volume * "}" * }
+#endif JORSJ
+ if$
+#ifndef JORSJ
+ number empty$
+ 'skip$
+ {", " number * * }
+ if$
+#endif
+ year empty$
+ { "there's no year in " cite$ * warning$ }
+%
+% JORSJ $B$G$O(B book $B$NCg4V$OG/$r3g8L$KF~$l$J$$$N$G!$O@J8$J$I$O$3$3$GG/$K(B
+% $B3g8L$rIU$1$k(B
+%
+#ifdef JORSJ
+ { " (" year * ")" * *}
+#else !JORSJ
+ { format.date * }
+#endif JORSJ
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ", " * pages n.dashify * }
+ if$
+ }
+ if$
+}
+
+#else !JIPSJ_LIKE
+%
+FUNCTION {format.vol.num.pages}
+{ volume empty$
+ {""}
+#ifdef TIEICE
+ {"{\bf " volume * "}, " * }
+#else !TIEICE
+#if ZENKAKU_PUN
+ { volume is.kanji.str$
+ { is.kanji.entry
+ {volume "$B!$(B" * }
+ {volume ", " * }
+ if$
+ }
+ { is.kanji.entry
+ {"Vol." volume tie.or.space.connect "$B!$(B" * }
+ {"Vol." volume tie.or.space.connect ", " * }
+ if$
+ }
+ }
+#else !ZENKAKU_PUN
+ { volume is.kanji.str$
+ {volume ", " * }
+ {"Vol." volume tie.or.space.connect ", " * }
+ if$
+ }
+#endif ZENKAKU_PUN
+#endif TIEICE
+ if$
+ number empty$
+ 'skip$
+#ifdef TIEICE
+ { number *
+#else !TIEICE
+ { number is.kanji.str$
+ {number *}
+ {"No." number tie.or.space.connect *}
+ if$
+#endif TIEICE
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { number empty$
+#if ZENKAKU_PUN
+ { format.pages * }
+ { is.kanji.entry
+ { "$B!$(B" * format.pages * }
+ { ", " * format.pages * }
+ if$
+ }
+#else !ZENKAKU_PUN
+ { format.pages * }
+ { ", " * format.pages * }
+#endif ZENKAKU_PUN
+ if$
+ }
+ if$
+ }
+ if$
+}
+#endif JIPSJ_LIKE
+
+#endif JABBRV
+
+% format.chapter.pages $B4X?t$O(B chapter $B$,6u$G$J$1$l$P!$$=$NA0$K(B type $B%U%#!<%k%I(B
+% $B$NJ8;zNs!J$=$l$,6u$J$i(B "chapter"$B$r(B)$BIU2C$9$k!%(Bpages $B$,$"$l$P$=$l$r8e$m$K(B
+% $B2C$($k!%?7$?$JJ8$r3+;O$7$?$j$7$J$$!%(B
+%
+% chapter $B$,F|K\8lJ8;zNs$N>l9g$K$O(B "chapter" $B$OIU2C$7$J$$!%(B
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { chapter is.kanji.str$
+ { "" }
+ { is.kanji.entry
+ {"$B>O(B"}
+ {"chapter"}
+ if$
+ }
+ if$
+ }
+ { type "l" change.case$ }
+ if$
+ chapter is.kanji.str$ not is.kanji.entry and
+ {"$BBh(B" chapter * swap$ *}
+ { chapter is.kanji.str$
+ {chapter *}
+ {chapter tie.or.space.connect}
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+#if ZENKAKU_PUN
+ { is.kanji.entry
+ { "$B!$(B" * format.pages * }
+ { ", " * format.pages * }
+ if$
+ }
+#else !ZENKAKU_PUN
+ { ", " * format.pages * }
+#endif ZENKAKU_PUN
+ if$
+ }
+ if$
+}
+
+% format.in.ed.booktitle $B4X?t$O!$(Beditor $B%U%#!<%k%I$,$"$l$P$=$l$rI=Bj$NA0$K(B
+% $BCV$$$F!$(B"In <booktitle>" $B$N7A$G;O$^$kJ8$r3+;O$9$k$?$a$K;H$o$l$k!%(B
+%
+% $B>pJs=hM}3X2q1QJ8O@J8;o!$EE;R>pJsDL?.3X2qO@J8;o$J$I$G$O(B ED_IN_PAR $B$r(B 1 $B$K(B
+% $B$7$F$*$/$3$H$G!$JT=8<TL>$O3g8L$KF~$l$k(B
+% $BK\$N%?%$%H%k$,F|K\8l$J$i(B In$B!!$OIU$1$J$$!##1J87A<0$G%U%)!<%^%C%H$9$k>l9g$J$I$K(B
+% In... $B$G$J$/(B in ... $B$N7A<0$H$9$k$K$O!$(BIN_LOWER $B$r(B 1 $B$K$7$F$*$/!%(B
+
+#if ED_IN_PAR
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { booktitle }
+ { booktitle " (" * format.in.ed.editors * ")" * }
+ if$
+ }
+ if$
+}
+#else !ED_IN_PAR
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { booktitle is.kanji.str$
+ { " " booktitle emphasize * }
+#if IN_LOWER
+ { "in " booktitle emphasize * }
+#else !IN_LOWER
+ { "In " booktitle emphasize * }
+#endif IN_LOWER
+ if$
+ }
+ { booktitle is.kanji.str$
+#if ZENKAKU_PUN
+ { " " format.editors * "$B!$(B" * booktitle * }
+#else !ZENKAKU_PUN
+ { " " format.editors * ", " * booktitle * }
+#endif ZENKAKU_PUN
+#if IN_LOWER
+ { "in " format.editors * ", " * booktitle emphasize * }
+#else !IN_LOWER
+ { "In " format.editors * ", " * booktitle emphasize * }
+#endif IN_LOWER
+ if$
+ }
+ if$
+ }
+ if$
+}
+#endif ED_IN_PAR
+
+% empty.misc.check $B4X?t$O%=!<%H$5$l$k;~!$J8;zNs%i%Y%k;H$&;~$K(B key $B%U%#!<%k%I$,(B
+% $B6u$G$J$$$N$K!$#6$D$N%U%#!<%k%I$,A4It6u$J$iJ86g$r$$$&!%%=!<%H$5$l$J$$!$(B
+% $B?tCM%i%Y%k$N;~$K$O#6$D$N%U%#!<%k%I$,A4It6u$J$iJ86g$r$$$&!%(B
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+#if SORTED
+ key empty$ not and
+#else !SORTED
+#if LAB_ALPH
+ key empty$ not and
+#endif LAB_ALPH
+#endif SORTED
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+% format.thesis.type $B4X?t$O(B type $B%U%#!<%k%I$,6u$G$J$1$l$P(B($BBgJ8;z!$>.J8;zJQ49(B
+% $B$7$?(B) type $B%U%#!<%k%I$NCM$r!$$=$&$G$J$1$l$P4{$K%9%?%C%/$K@Q$^$l$F$$$k(B
+% ("Master's thesis" $B$d(B "PhD thesis"$B$J$I$N(B)$BJ8;zNs$rJV$9!%(B
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+% format.tr.number $B4X?t$O(B type $B$,6u$G$J$1$l$P$=$NCM$G!$6u$J$i(B "Technical Report"
+% $B$G;O$^$j!$(Bnumber $B$,$"$l$P$=$l$,8e$KB3$/J8;zNs$rJV$9!%(B number $B$,$J$1$l$P(B
+% $B@hF,$rBgJ8;z$K$7$?A0=R$NJ8;zNs$rJV$9!%J8$N@hF,$G;H$o$l$k!%(B
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Technical Report" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+% $B$5$FJ88%%j%9%HFb;2>HMQ$N4X?t$N@bL@$G$"$k!%$3$l$i$N4X?t$OJ88%%G!<%?%Y!<%9(B
+% $BCf$N%(%s%H%j$G!$B>$N%(%s%H%j$N%G!<%?%Y!<%9%-!<$,(B crossref $B%U%#!<%k%I$K(B
+% $B=q$+$l$F$$$k;~$K!$5/F0$5$l$k!%$3$N5!G=$K$h$C$FO@J8=8$J$I$NCf$NO@J8$+$i(B
+% $BO@J8=8$J$I$r;2>H$9$k$3$H$,$G$-$k!%$3$N%U%!%$%kCf$N%9%?%$%k$G$O0J2<$N(B
+% $B#5$D$N%1!<%9$,A[Dj$5$l$F$$$k!%(B
+% (1) ARTICLE $B$,B>$N(B ARTICLE $B$r;2>H$7$F$$$k(B;(2) BOOK, (3) INBOOK, $B$"$k$$$O(B
+% (4) INCOLLECTION $B$,B>$N(B BOOK $B$r;2>H$7$F$$$k(B;(5) INPROCEEDINGS $B$,(B PROCEEDINGS
+% $B$r;2>H$7$F$$$k!%$=$l$>$l$K$D$$$F8e$G>\$7$/@bL@$9$k!%(B
+%
+% ARTICLE $B%(%s%H%j%?%$%W$OB>$N(B ARTICLE $B%(%s%H%j$rJ88%%j%9%HFb;2>H$7$F$b$h$$!%(B
+% $B$3$l$OO@J8;o(B/$B;(;o$,$"$k#1$D$NOCBj$NFC=8$K$J$C$F$$$k;~$K!$(BJOURNAL $B%?%$%W$J$I(B
+% $B$H$$$&$b$N$O$J$$$+$i!$$3$l$rCx<T!$I=Bj$N$J$$(B ARTICLE $B$H$7$F07$o$J$1$l$P$J$i(B
+% $B$J$$$+$i$G$"$k!%$3$N;~$K$O$=$N(B journal $B$,;2>HJ88%%j%9%H$K4^$^$l$F$$$k>l9g$K!$(B
+% $B7Y9p%a%C%;!<%8$,(B2$B$D=P$5$l$k!%$G$b@$$NCf$J$s$F$7$g$;$s$3$s$J$b$N$5!%(B
+%
+% "In" $B$G$J$/(B "in $B$K$9$k$H$+!$(B\em $B$rIU$1$J$$$h$&$K$9$k$H$+$G$-$k$h$&$K(B
+% $B%3!<%I$OJQ99$5$l$F$*$j!$I,$:$7$b0J2<$N%"%k%4%j%:%`$H0lCW$7$J$$!%(B
+%
+% format.article.crossref ==
+% BEGIN
+% if empty$(key) then
+% if empty$(journal) then
+% warning$("need key or journal for " * cite$ *
+% " to crossref " * crossref)
+% return(" \cite{" * crossref * "}")
+% else
+% return("In " * emphazise.correct (journal) *
+% " \cite{" * crossref * "}")
+% fi
+% else
+% return("In " * key * " \cite{" * crossref * "}")
+% fi
+% END
+%
+% $BB>$NJ88%%j%9%HFb;2>HMQ$N4X?t$bF1$8$h$&$J$b$N$J$N$G!$%3%a%s%H%P!<%8%g%s$O$J$$!%(B
+
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { title is.kanji.str$
+ { " " journal * }
+#if IN_LOWER
+#if NO_EM
+ { " " journal * }
+#else !NO_EM
+ { "in {\em " journal * "\/}" * }
+#endif NO_EM
+#else !IN_LOWER
+ { "In {\em " journal * "\/}" * }
+#endif IN_LOWER
+ if$
+ }
+ if$
+ }
+ { title is.kanji.str$
+ { " " key * }
+#if IN_LOWER
+ { "in " key * }
+#else !IN_LOWER
+ { "In " key * }
+#endif IN_LOWER
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+% $BJ88%%j%9%HFb;2>H$5$l$F$$$k$b$N$NJT<TL>$H$7$F$O@+$N$_$r!$JT<T$N?M?t$K(B
+% $B1~$8$F!$(B"editor", "editor1 and editor2", "editor1 et~al." $B$N7A<0$GI=8=$9$k!%(B
+%
+% $BEE;R>pJsDL?.3X2qO@J8;o$G$O;2>H@h$NCx<TL>$b%U%k%M!<%`$G=PNO$9$k!%(B
+
+FUNCTION {format.crossref.editor}
+{ editor is.kanji.str$
+#ifdef TIEICE
+ {editor #1 "{ff}{ll}" format.name$ duplicate$
+#else !TIEICE
+ {editor #1 "{ff}" format.name$ duplicate$
+#endif TIEICE
+ empty$
+ {pop$ editor #1 "{ll}" format.name$}
+ 'skip$
+ if$
+ }
+#ifdef TIEICE
+ {editor #1 "{f. }{vv~}{ll}{ , jj}" format.name$}
+#else !TIEICE
+ {editor #1 "{vv~}{ll}" format.name$}
+#endif TIEICE
+ if$
+ editor num.names$ duplicate$
+ #2 >
+ { editor is.kanji.str$
+#if USE_KANJI_HOKA
+ {pop$ "$BB>(B" *} {pop$ ", et~al." * } if$
+#else !USE_KANJI_HOKA
+ {pop$ "$B$[$+(B" *} {pop$ ", et~al." * } if$
+#endif USE_KANJI_HOKA
+ }
+ { #2 <
+ 'skip$
+#ifdef TIEICE
+ { editor #2 "{f. }{vv }{ll}{, jj}" format.name$ "others" =
+#else !TIEICE
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+#endif TIEICE
+ { editor is.kanji.str$
+#if USE_KANJI_HOKA
+ {"$BB>(B" *} {", et~al." * } if$
+#else !USE_KANJI_HOKA
+ {"$B$[$+(B" *} {", et~al." * } if$
+#endif USE_KANJI_HOKA
+ }
+ { editor is.kanji.str$
+ {
+#if ZENKAKU_PUN
+ "$B!$(B" *
+#else !ZENKAKU_PUN
+ ", " *
+#endif ZENKAKU_PUN
+ editor #2 "{ff}" format.name$ duplicate$
+ empty$
+ {pop$ editor #2 "{ll}" format.name$}
+ 'skip$
+ if$
+ *
+ }
+ {" and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+% BOOK (INBOOK) $B%(%s%H%j7?$G$O(B($BJ#?t4,$+$i$J$k$b$N$N0lIt$G$"$k$H$7$F(B)$BB>$N(B
+% BOOK($BJ#?t4,A4It(B) $B$rJ88%%j%9%HFb;2>H$7$F$b$h$$!%(B
+% $BIaDL$O(B editor $B$,$"$k$+$i!$$=$N;~$O;2>H>pJs$K$=$l$r;H$&!%$J$1$l$P(B key
+% $B%U%#!<%k%I$,6u$G$J$1$l$P(B key $B$r!$(Bkey $B$,6u$J$i(B($B%7%j!<%:$KJ#?t4,$NI=Bj$,F~$C$F(B
+% $B$$$k$O$:$@$+$i(B) series $B%U%#!<%k%I$r;H$&!%(B
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ title is.kanji.str$
+#if IN_LOWER
+ {" "} {"in "} if$
+#else !IN_LOER
+ {" "} {"In "} if$
+#endif IN_LOWER
+ }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect " of " * }
+ if$
+ }
+ if$
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+#if NO_EM
+ { series is.kanji.str$
+#if ZENKAKU_PUN
+ { series "$B!$(B" * swap$ * }
+#else !ZENKAKU_PUN
+ { series ", " * swap$ * }
+#endif ZENKAKU_PUN
+ { series * }
+ if$
+ }
+#else !NO_EM
+ { series is.kanji.str$
+#if ZENKAKU_PUN
+ { series "$B!$(B" * swap$ * }
+#else !ZENKAKU_PUN
+ { series ", " * swap$ * }
+#endif ZENKAKU_PUN
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+#endif NO_EM
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+% INCOLLECTION $B%(%s%H%j7?$G$O(B BOOK ($BO@J8=8$G$"$k$H$7$F(B) $B$rJ88%%j%9%HFb;2>H$7$F(B
+% $B$b$h$$!$$"$k$$$O(B INPROCEEDINGS $B$O(B PROCEEDING $B$rJ88%%j%9%HFb;2>H$7$F$b$h$$!%(B
+% editor $B$,IaDL$O$"$k$+$i!$$=$l$r;2>H>pJs$H$7$F;H$&!%(Bkey $B%U%#!<%k%I$,6u$G$J$1(B
+% $B$l$P(B key $B$r!$(Bkey $B$,6u$J$i(B($B$=$3$K;2>H$7$F$$$k$b$N$NI=Bj$,F~$C$F$$$k$O$:$@$+$i(B)
+% booktitle $B%U%#!<%k%I$r;H$&!%(B
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { booktitle is.kanji.str$
+ { booktitle }
+#if IN_LOWER
+#if JISPJ_LIKE
+ {"in " booktitle * }
+#else !JIPSJ_LIKE
+#if NO_EM
+ { booktitle }
+#else !NO_EM
+ {"in {\em " booktitle * "\/}" * }
+#endif NO_EM
+#endif JIPSJ_LIKE
+#else !IN_LOWER
+ {"In {\em " booktitle * "\/}" * }
+#endif IN_LOWER
+ if$
+ }
+ if$
+ }
+#if IN_LOWER
+ { "in " key * }
+#else !IN_LOWER
+ { "In " key * }
+#endif IN_LOWER
+ if$
+ }
+ { title is.kanji.str$
+ {" " format.crossref.editor * }
+#if IN_LOWER
+ {"in " format.crossref.editor * }
+#else !IN_LOWER
+ {"In " format.crossref.editor * }
+#endif IN_LOWER
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+% $B$3$3$+$i(B .BIB $B%U%!%$%kCf$K=q$+$l$k2DG=@-$N$"$k%(%s%H%j$N7?(B(ARTICLE $B$H$+(B
+% BOOK $B$H$+(B)$BKh$K!$4X?t$rDj5A$9$k!%$3$l$i$N4X?t$,(B .BBL $B%U%!%$%k$K=PNO$r9T$&!%(B
+% $B$3$l$i$N4X?t$NDj5A$O(B READ $B%3%^%s%I$h$jA0$K$J$1$l$P$J$i$J$$!%$5$i$K%9%?%$%k(B
+% $B@_7W<T$H$7$F$O!$L$Dj5A$N7?MQ$K(B default.type $B$H$$$&4X?t$bDj5A$9$kI,MW$,$"$k!%(B
+% $BCm0U(B: $B0J2<$G<($5$l$F$$$k%U%#!<%k%I$N=gHV$O(B(inbook, proceedings$B$GFC$K(B
+% $BCG$C$F$J$$8B$j(B)$B!$=PNO$5$l$k=gHV$KJB$s$G$$$k!%(B
+%
+% $B3X2q;o$N7A<0$K9g$o$;$F%3!<%I$,=$@5$5$l$F$$$k$N$G!$%"%k%4%j%:%`$H$OI,$:$7$b(B
+% $B0lCW$7$J$$!%(B
+%
+% article $B4X?t$O(B ARTICLE $BMQ$G$"$j!$B>$N(B ARTICLE $B$rJ88%%j%9%HFb;2>H$7$F$h$$!%(B
+% $BI,?\(B: author, title, journal, year
+% $BG$0U(B: volume, number, pages, month, note
+%
+% article ==
+% BEGIN
+% output.bibitem
+% output.check(format.authors,"author")
+% new.block
+% output.check(format.title,"title")
+% new.block
+% if missing$(crossref) then
+% output.check(emphasize(journal),"journal")
+% output(format.vol.num.pages)
+% output.check(format.date,"year")
+% else
+% output.nonnull(format.article.crossref)
+% output(format.pages)
+% fi
+% new.block
+% output(note)
+% fin.entry
+% END
+%
+% book $B4X?t$OK\A4BN$N;2>HMQ!%(BBOOK $B$G$OB>$N(B BOOK $B$rJ88%%j%9%HFb;2>H$7$F$h$$!%(B
+% $BI,?\(B: author or editor, title, publisher, year
+% $BG$0U(B: volume or number, series, address, edition, month, note
+% SHOW_BOOK_PAGES $B$,(B 1 $B$J$i!$(Bpages $B$bG$0U%U%#!<%k%I(B
+%
+% book ==
+% BEGIN
+% if empty$(author) then output.check(format.editors,"author and editor")
+% else output.check(format.authors,"author")
+% if missing$(crossref) then
+% either.or.check("author and editor",editor)
+% fi
+% fi
+% new.block
+% output.check(format.btitle,"title")
+% if missing$(crossref) then
+% output(format.bvolume)
+% new.block
+% output(format.number.series)
+% new.sentence
+% output.check(publisher,"publisher")
+% output(address)
+% else
+% new.block
+% output.nonnull(format.book.crossref)
+% fi
+% output(format.edition)
+% #if SHOW_BOOK_PAGES
+% output(pages)
+% #endif SHOW_BOOK_PAGES
+% output.check(format.date,"year")
+% new.block
+% output(note)
+% fin.entry
+% END
+%
+% $BB>$N%(%s%H%j4X?t$bF1$8$h$&$JJ*$J$N$G!$%3%a%s%H%P!<%8%g%s$O$J$$!%(B
+% $B>pJs=hM}3X2q1QJ8O@J8;o$G$O(B volume, number, year, pages $B$N=g$G=PNO$9$k!%(B
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+#if JIPSJ_LIKE
+ format.vol.num.year.pages output
+#else !JIPSJ_LIKE
+ format.vol.num.pages output
+ format.date "year" output.check
+#endif JIPSJ_LIKE
+}
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+#ifdef TIEICE
+ after.block 'output.state :=
+#endif !TIEICE
+ new.block
+ note output
+ fin.entry
+}
+
+#if SHOW_BOOK_PAGES
+FUNCTION {format.book.pages}
+{ pages empty$
+ { "" }
+ { pages " pp." *}
+ if$
+}
+#endif SHOW_BOOK_PAGES
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+#if ONE_SENTENCE
+ new.block
+#else !ONE_SENTENCE
+ new.sentence
+#endif ONE_SENTENCE
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+#if SHOW_BOOK_PAGES
+ format.book.pages output
+#endif SHOW_BOOK_PAGES
+ format.date "year" output.check
+#ifdef TIEICE
+ after.block 'output.state :=
+#endif !TIEICE
+ new.block
+ note output
+ fin.entry
+}
+
+% booklet $B$O@=K\$5$l$F$O$$$k$,!$=PHG<R!$%9%]%s%5!<5!4XL>$N$J$$$b$N(B
+% $BI,?\(B: title
+% $BG$0U(B: author, howpublished, address, month, year, note
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+#ifdef TIEICE
+ after.block 'output.state :=
+#endif !TIEICE
+ new.block
+ note output
+ fin.entry
+}
+
+% conference $B%?%$%W$K$D$$$F$O(B inproceedings $B$r;2>H$;$h!%(B
+
+% inbook $B$OK\$N#1It(B($B>O!$@a(B and/or $B%Z!<%8HO0O(B)$B$r;2>H$9$k$?$a$N$b$N$G$"$j!$(B
+% BOOK $B$rJ88%%j%9%HFb;2>H$7$F$$$F$b$h$$!%(B volume $B%U%#!<%k%I$,$J$$>l9g$K$O!$(B
+% type $B%U%#!<%k%I$N>pJs$,(B number $B$d(B series $B$h$j$bA0$KJB$Y$i$l$k!%(B
+% $BI,?\(B: author or editor, title, chapter and/or pages, publisher,year
+% $BG$0U(B: volume or number, series, type, address, edition, month, note
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+#if !JIPSJ_LIKE
+ format.chapter.pages "chapter and pages" output.check
+#endif !JIPSJ_LIKE
+ new.block
+ format.number.series output
+#if ONE_SENTENCE
+ new.block
+#else !ONE_SENTENCE
+ new.sentence
+#endif ONE_SENTENCE
+ publisher "publisher" output.check
+ address output
+ }
+#if JIPSJ_LIKE
+ {
+#else !JIPSJ_LIKE
+ { format.chapter.pages "chapter and pages" output.check
+#endif JIPSJ_LIKE
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+#if JIPSJ_LIKE
+ format.chapter.pages "chapter and pages" output.check
+#endif JIPSJ_LIKE
+#ifdef TIEICE
+ after.block 'output.state :=
+#endif TIEICE
+ new.block
+ note output
+ fin.entry
+}
+
+% INCOLLECTION $B$O(B INBOOK $B$HF1$8$h$&$J$b$N$G$O$"$k$,!$;2>H$7$F$$$k$b$N$,(B
+% $B$=$l8GM-$NI=Bj$r;}$D$b$N$G$"$k(B($B$?$V$sA4BN$NJT<T$b$"$k(B)$B!%(B
+% INCOLLECTION $B$O(B BOOK $B$rJ88%%j%9%HFb;2>H$7$F$b$h$$!%(B
+% $BI,?\(B: author, title, booktitle, publisher, year
+% $BG$0U(B: editor, volume or number, series, type, chapter, pages,
+% address, edition, month, note
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+#if !JIPSJ_LIKE
+#ifndef TIEICE
+ format.chapter.pages output
+#endif TIEICE
+#endif !JIPSJ_LIKE
+#if ONE_SENTENCE
+ new.block
+#else !ONE_SENTENCE
+ new.sentence
+#endif ONE_SENTENCE
+ publisher "publisher" output.check
+ address output
+ format.edition output
+#ifdef TIEICE
+ format.chapter.pages output
+#endif TIEICE
+ format.date "year" output.check
+#if JIPSJ_LIKE
+ format.chapter.pages output
+#endif JIPSJ_LIKE
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+#ifdef TIEICE
+ after.block 'output.state :=
+#endif TIEICE
+ new.block
+ note output
+ fin.entry
+}
+
+% INPROCEEDINGS $B$O2q5D$NO@J8(B/$BM=9F=8$K:\$C$F$$$kO@J8$G!$O@J8(B/$BM=9F=8$rJ88%%j%9%H(B
+% $BFb;2>H$7$F$b$h$$!%(Baddress $B%U%#!<%k%I$,$J$1$l$P(B month (&year) $B$,(B note $B$ND>A0(B
+% $BCV$+$l$k!%(B
+% $BI,?\(B: author, title, booktitle, year
+% $BG$0U(B: editor, volume or number, series, pages, address, month,
+% organization, publisher, note
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+#if JIPSJ_LIKE
+ mid.sentence 'output.state :=
+#else !JIPSJ_LIKE
+#ifndef TIEICE
+ format.pages output
+#endif TIEICE
+#endif JIPSJ_LIKE
+
+#if ONE_SENTENCE
+ new.block
+#endif ONE_SENTENCE
+ address empty$
+ { organization publisher new.sentence.checkb
+#if ONE_SENTENCE
+ new.block
+#endif ONE_SENTENCE
+ organization output
+#if ONE_SENTENCE
+#if JIPSJ_LIKE
+ new.block
+ mid.sentence 'output.state :=
+#else !JIPSJ_LIKE
+ mid.sentence 'output.state :=
+ new.block
+#endif JIPSJ_LIKE
+#endif ONE_SENTENCE
+ publisher output
+#ifdef TIEICE
+ format.pages output
+ format.date "year" output.check
+#else !TIEICE
+ format.date "year" output.check
+#endif TIEICE
+ }
+ { address output.nonnull
+#ifndef TIEICE
+ format.date "year" output.check
+#endif TIEICE
+#if ONE_SENTENCE
+ new.block
+#else !ONE_SENTENCE
+ new.sentence
+#endif ONE_SENTENCE
+ organization output
+#if ONE_SENTENCE
+ mid.sentence 'output.state :=
+ new.block
+#endif ONE_SENTENCE
+ publisher output
+#ifdef TIEICE
+ format.pages output
+ format.date "year" output.check
+#endif TIEICE
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+#ifdef TIEICE
+ after.block 'output.state :=
+#endif TIEICE
+ new.block
+ note output
+ fin.entry
+}
+
+% conference $B4X?t$O(B Scribe $B$H$N8_49@-$N$?$a$K$"$k!%(B
+
+FUNCTION {conference} { inproceedings }
+
+% manual $B$O%^%K%e%"%k!%(B
+% $BI,?\(B: title
+% $BG$0U(B: author, organization, address, edition, month, year, note
+
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+#ifdef TIEICE
+ after.block 'output.state :=
+#endif TIEICE
+ new.block
+ note output
+ fin.entry
+}
+
+% mastersthesis $B$O=$;NO@J8(B
+% $BI,?\(B: author, title, school, year
+% $BG$0U(B: type, address, month, note
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "Master's thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+#ifdef TIEICE
+ after.block 'output.state :=
+#endif TIEICE
+ new.block
+ note output
+ fin.entry
+}
+
+% misc $B$OB>$N$I$l$K$b$"$F$O$^$i$J$$J*(B
+% $BI,?\(B: $BG$0U%U%#!<%k%I$N>/$J$/$H$b#1$D(B
+% $BG$0U(B: author, title, howpublished, month, year, note
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+#ifdef TIEICE
+ after.block 'output.state :=
+#endif TIEICE
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+
+% phdthesis($BGn;NO@J8(B) $B$O(B mastersthesis $B$N$h$&$JJ*!%(B
+% $BI,?\(B: author, title, school, year
+% $BG$0U(B: type, address, month, note
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "PhD thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+#ifdef TIEICE
+ after.block 'output.state :=
+#endif TIEICE
+ new.block
+ note output
+ fin.entry
+}
+
+% proceedings $B$O2q5D$NO@J8(B/$BM=9F=8$G$"$k!%(B
+% organization $B%U%#!<%k%I$,$"$C$F!$(B editor $B%U%#!<%k%I$,$J$$;~$K$O!$(B
+% organization $B%U%#!<%k%I$,G$0U%U%#!<%k%I$N:G=i$N$b$N$H$7$F;H$o$l$k(B
+% ($B:G=i$N%V%m%C%/$r6u$K$O$7$J$$$h$&$K$9$k!K!%(B
+% address $B%U%#!<%k%I$,$J$1$l$P!$(Bmonth (& year) $B$,(B note $B$ND>A0$KJB$V!%(B
+% $BI,?\(B: title, year
+% $BG$0U(B: editor, volume or number, series, address, month,
+% organization, publisher, note
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+#ifdef TIEICE
+ after.block 'output.state :=
+#endif TIEICE
+ }
+ { address output.nonnull
+ format.date "year" output.check
+#ifdef TIEICE
+ after.block 'output.state :=
+#endif TIEICE
+#if ONE_SENTENCE
+ new.block
+#else !ONE_SENTENCE
+ new.sentence
+#endif ONE_SENTENCE
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+% techreport $B$O%F%/%K%+%k%l%]!<%H(B
+% $BI,?\(B: author, title, institution, year
+% $BG$0U(B: type, number, address, month, note
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+#ifdef TIEICE
+ after.block 'output.state :=
+#endif TIEICE
+ new.block
+ note output
+ fin.entry
+}
+
+% unpublished $B$O=PHG$5$l$F$$$J$$$b$N!%(B
+% $BI,?\(B: author, title, note
+% $BG$0U(B: month, year
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+
+% $BJ,N`ITL@$N%(%s%H%j$KBP$7$F$O(B `misc' $B$r;H$&!%(B(J)BibTeX $B$O7Y9p$r=P$9!%(B
+
+FUNCTION {default.type} { misc }
+
+% $B%9%?%$%k$G0[$J$k$+$bCN$l$J$$$,!$0lHLE*$J%^%/%m$,0J2<$KJB$s$G$$$k!%(B
+% $BMxMQ<T$O$3$l$i$N%^%/%m$r;H$&$N$,K>$^$7$$!%(B
+%
+% $B7n$NL>A0$O%U%k%9%Z%k$+>JN,7A$G=q$/!%(B
+
+#if MONTH_FULL
+
+MACRO {jan} {"January"}
+
+MACRO {feb} {"February"}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {oct} {"October"}
+
+MACRO {nov} {"November"}
+
+MACRO {dec} {"December"}
+
+#else !MONTH_FULL
+
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Apr."}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sept."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+#endif MONTH_FULL
+
+% $BO@J8;oL>$O%U%k%9%Z%k$+>JN,7A$GI=<($9$k!%>JN,7A$O(B ACM $B$N=PHGJ*$K$"$k7A!%(B
+% $B$3$l$H$^$C$?$/0c$&%;%C%H$N>JN,7A$r;H$&>l9g$K$O!$$=$NDj5A$N$_$+$i$J$k(B
+% .bib $B%U%!%$%k$r:n$k$N$,0lHV$$$$$@$m$&!%$=$&$9$l$PMxMQ<T$O(B \bibliography
+% $B%3%^%s%I$N#1HVL\$N0z?t$H$7$F$=$l$r;XDj$7$F!$$3$l$i$r<h$j9~$a$k!%(B
+
+#if JOUR_FULL
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+MACRO {tieice} {"$BEE;R>pJsDL?.3X2qO@J8;o(B"}
+MACRO {tipsj} {"$B>pJs=hM}3X2qO@J8;o(B"}
+MACRO {jipsj} {"Journal of Informatin Processing Society of Japan"}
+MACRO {jorsj} {"Journal of the Operations Research Society of Japan"}
+
+#else !JOUR_FULL
+
+MACRO {acmcs} {"ACM Comput. Surv."}
+
+MACRO {acta} {"Acta Inf."}
+
+MACRO {cacm} {"Commun. ACM"}
+
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+
+MACRO {ibmsj} {"IBM Syst.~J."}
+
+MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
+
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
+
+MACRO {ipl} {"Inf. Process. Lett."}
+
+MACRO {jacm} {"J.~ACM"}
+
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+
+MACRO {scp} {"Sci. Comput. Programming"}
+
+MACRO {sicomp} {"SIAM J. Comput."}
+
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+
+MACRO {tods} {"ACM Trans. Database Syst."}
+
+MACRO {tog} {"ACM Trans. Gr."}
+
+MACRO {toms} {"ACM Trans. Math. Softw."}
+
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+
+MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
+
+MACRO {tcs} {"Theoretical Comput. Sci."}
+
+MACRO {tieice} {"$B?.3XO@(B"}
+MACRO {tipsj} {"$B>pJs=hM}3X2qO@J8;o(B"}
+MACRO {jipsj} {"J.~Info. Proc. Soc. of Japan"}
+MACRO {jorsj} {"Journal of the O. R. Society of Japan"}
+
+#endif JOUR_FULL
+
+% .BBL $B%U%!%$%k$N%(%s%H%j$rFI$_9~$`(B
+
+READ
+
+% $BFI$_9~$^$l$?J88%$N%G!<%?$,4A;z$N$b$N$+$I$&$+%A%'%C%/$7$F%U%i%0$r@_Dj$9$k!%(B
+% ASCII $BHG$N(B 0.98 $BMQ$N$b$N$r=$@5$7$?!%(B
+
+FUNCTION {set.is.kanji.entry}
+{
+ author field.or.null is.kanji.str$
+ title field.or.null is.kanji.str$ or
+ editor field.or.null is.kanji.str$ or
+ journal field.or.null is.kanji.str$ or
+ booktitle field.or.null is.kanji.str$ or
+ series field.or.null is.kanji.str$ or
+ 'is.kanji.entry :=
+}
+
+ITERATE {set.is.kanji.entry}
+
+% sortify $B4XAG$O0z?t$r(B purify$ $B$7$?8e$K>.J8;z$KJQ49$9$k!%%=!<%H$N$?$a!$(B
+% $B$"$k$$$O%=!<%H8e$K%i%Y%k$r:n$k;~$K;H$o$l$k!%(B
+%
+% chop.word(w,len,s) $B$O(B s $B$=$N$b$N$+!$$"$k$$$O(B s $B$N:G=i$N(B len $BJ8;z$,(B w $B$H(B
+% $BEy$7$1$l$P(B($B$3$NHf3S$O4X?t$NDj5A$N(B3$B9TL\$G9T$o$l$k(B w $B$h$j8e$m$N(B s $B$N(B
+% $BItJ,J8;zNs$rJV$9(B
+
+#if SORTED
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+#else !SORTED
+#if LAB_ALPH
+
+% $B%=!<%H$5$l$J$$J8;zNs%i%Y%k$D$-J88%%j%9%HMQ$N(B chop.word
+% $B$3$s$J$NC/$,;H$&$N!)(B
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+#endif LAB_ALPH
+#endif SORTED
+
+% $B0J2<$ND9$$%3%a%s%H$OJ8;zNs%i%Y%k$N>l9g$N$_$K$"$F$O$^$k!%(B
+%
+% format.lab.names $B4X?t$OL>A0$N(B von $B$H(B last $B%Q!<%H$NF,J8;z$r;H$C$FC;$$%i%Y%k(B
+% $B$r:n$k(B($BL>A0$N?t$,#40J>e$N>l9g$K$O#3$D$G@Z$j!$(B"+" $B$r8*IU$-$G2C$($k!%L>A0$,(B
+% $BJ#?t$"$j!$:G8e$,(B "others" $B$G$"$k>l9g$bF1MM$K(B "+" $B$rIU$1$k!K!%(B
+% $BL>A0$,#1$D$7$+$J$/!$(Bvon $B$H(B last $B%Q!<%H$+$i$J$kL>A0%H!<%/%s$,#1$D$7$+$J$$$H!$(B
+% ("Knuth" $B$O#1$D!$(B"Brinch Hansen"$B$O#2$D(B) $B@+(B(last name)$B$NF,#3J8;z$+$i%i%Y%k$r(B
+% $B:n$k!%(Bet.al.char.used $B$OI,MW$K1~$8$F(B LaTeX $B%^%/%m$r=q$-=P$9$?$a$K!$(B"+" $B$,(B
+% $B;H$o$l$?$+$I$&$+$rJ];}$9$kO@M}7?$NJQ?t$G$"$k!%(B
+%
+% $B4A;zCx<TL>$N>l9g$K$O(B yomi $B%U%#!<%k%I$N>pJs$r;H$C$F>e$HF1MM$K%i%Y%k$r:n$k!%(B
+% yomi $B%U%#!<%k%I$,$J$1$l$P!$Bh0lCx<T$N@+$N$_$+$i%i%Y%k$r:n$k!%(B
+%
+% format.lab.names(s) ==
+% BEGIN
+% if not empty$(yomi) then s := yomi fi
+% if is.kanji.str$(s) then return $BBh0lCx<T$N@+(B fi
+% else do
+% numnames := num.names$(s)
+% if numnames > 1 then
+% if numnames > 4 then
+% namesleft := 3
+% else
+% namesleft := numnames
+% nameptr := 1
+% nameresult := ""
+% while namesleft > 0
+% do
+% if (name_ptr = numnames) and
+% format.name$(s, nameptr, "{ff }{vv }{ll}{ jj}") = "others"
+% then nameresult := nameresult * "{\etalchar{+}}"
+% et.al.char.used := true
+% else nameresult := nameresult *
+% format.name$(s, nameptr, "{v{}}{l{}}")
+% nameptr := nameptr + 1
+% namesleft := namesleft - 1
+% od
+% if numnames > 4 then
+% nameresult := nameresult * "{\etalchar{+}}"
+% et.al.char.used := true
+% else
+% t := format.name$(s, 1, "{v{}}{l{}}")
+% if text.length$(t) < 2 then % there's just one name-token
+% nameresult := text.prefix$(format.name$(s,1,"{ll}"),3)
+% else
+% nameresult := t
+% fi
+% fi
+% return nameresult
+% od
+% END
+%
+% $B%i%Y%k$N<gMWItJ,$r:n$k;~$K$I$N%U%#!<%k%I$KCmL\$9$k$+$O%(%s%H%j$N7?$G0[$J$k!%(B
+% $B$3$l$K$h$C$F!$$I$N7?$G$bF1$8>pJs$r;H$&(B($BNc$($P(B author, editor, key $B$N=g$K;H$&(B)
+% $B>l9g$KHf$Y$F!$(BLaTeX book $B$G=R$Y$i$l$F$$$k!VL5;k$5$l$k!W%U%#!<%k%I$,K\Ev$K(B
+% $B!VL5;k$G$-$k!W$h$&$K$J$C$F$$$k!%(BMISC $B$NH=Dj$O(B calc.label $B4X?tCf$N(B if $B$N(B
+% $B:G8e$N(B else $BIt$KCV$+$l$F$$$k$+$i!$%G!<%?%Y!<%9Cf$N@5$7$/$J$$%(%s%H%j7?$G$b(B
+% $B$A$c$s$H=hM}$G$-$k$h$&$K$J$C$F$$$k!%(B
+%
+% $B%U%#!<%k%I$r8+$F$$$/=gHV$O#4$D$"$k$,!$$=$l$>$l$KBP1~$7$?Jd=u4X?t$,MQ0U$5$l$F(B
+% $B$$$k!%:G=i$N4X?t$O@h$:(B author $B%U%#!<%k%I$rD4$Y!$I,MW$J>l9g$K$O(B key $B%U%#!<%k%I(B
+% $B$rD4$Y$k!%B>$N#3$D$NJd=u4X?t$bF1$8$h$&$J$b$N$G$"$k$,!$:G=i$K#2$D$N%U%#!<%k%I(B
+% $B$rD4$Y!$$=$N8e$K(B key $B%U%#!<%k%I$rD4$Y$k$h$&$K$J$C$F$$$?$j!$(Bkey $B%U%#!<%k%I(B
+% $B$r(B organization $B%U%#!<%k%I$h$j@h$KD4$Y$k$h$&$J7A$K$J$C$F$$$k$N$b$"$k!%(B
+% (key $B$,@h$J$N$O%i%Y%k$KBP$7$F$NOC$G!$%=!<%HMQ$N%i%Y%k$G$O$J$$$3$H$KCm0U!K!%(B
+%
+% calc.label $B4X?t$O0J2<$N$h$&$K$7$F%(%s%H%j$NM=HwE*$J%i%Y%k$r:n$k!%(B
+% ($B$I$N%U%#!<%k%I$,6u$+$K$h$k$,!$$^$?(B organization $BCf$N(B "The"$B$OL5;k$9$k$,(B)
+% author $B$"$k$$$O(B editor $B$"$k$$$O(B organization $B$+$i#3J8;z<h$j=P$7(B($B$3$l$i$,(B
+% $B4A;z$N>l9g$K$O!$(Byomi $B%U%#!<%k%I$,6u$G$J$1$l$P(B yomi $B%U%#!<%k%I$r(B author,
+% editor, organization $B$NBe$o$j$K;H$C$F#3J8;z<h$j=P$7!$6u$J$i$P#24A;z<h$j=P$7(B)
+% $B$F:n$C$?$b$N$N8e$m$K(B year $B$N:G8e$N#2J8;z$rIU$12C$($k!%I,MW$J(B author, editor,
+% organization, key $B$,$J$1$l$P%(%i!<$G$"$k$,!$$=$N>l9g$K$O(B citt$ $B$N:G=i$N(B
+% $B#3J8;z$r;H$&!%(B
+%
+% $BF@$i$l$k%i%Y%k$N(B year $BItJ,$K$O(B purify$ $B$,E,MQ$5$l$F$$$k$,!$(B name $BItJ,$K$O(B
+% purify$ $B$OE,MQ$5$l$F$$$J$$!%(B(year $B$KBP$7$F(Bpurify$ $B$rE,MQ$9$k$N$G!$$3$l$rMxMQ(B
+% $B$7$FMxMQ<T$O%=!<%H4X?t$r$@$^$7$F!$=gHV$r<+J,$NET9g$NNI$$$h$&$K$G$-$k!K!%(B
+%
+% $B$3$l$i$N4X?t$G$O%=!<%H$G;H$&%i%Y%k$b:n@.$9$k!%(B
+%
+% $B:G=*E*$J%i%Y%k$K$O6hJL$N$?$a$K(B 'a', 'b' $B$J$I$r8e$m$K$D$1$kI,MW$b$"$k$,!$(B
+% $B$3$N(B extra.label $B$O%=!<%H$7$?8e$G:n$k!%(B
+%
+% calc.label ==
+% BEGIN
+% if type$ = "book" or "inbook" then
+% author.editor.key.label
+% else if type$ = "proceedings" then
+% editor.key.organization.label
+% else if type$ = "manual" then
+% author.key.organization.label
+% else
+% author.key.label
+% fi fi fi
+% label := label * substring$(purify$(field.or.null(year)), -1, 2)
+% % assuming we will also sort, we calculate a sort.label
+% sort.label := sortify(label), but use the last four, not two, digits
+% END
+
+#if LAB_ALPH
+
+INTEGERS { et.al.char.used }
+
+FUNCTION {initialize.et.al.char.used}
+{ #0 'et.al.char.used :=
+}
+
+EXECUTE {initialize.et.al.char.used}
+
+FUNCTION {format.lab.names}
+{ 's :=
+% yomi $B%U%#!<%k%I$,6u$G$J$1$l$P$=$l$r;H$&(B
+ yomi empty$
+ 'skip$
+ { yomi 's :=}
+ if$
+#if USE_FIRST_ONLY
+%
+% $BF|K\8lJ8;zNs$N>l9g$K$O!$Bh0lCx<T$N@+$N$_$H$9$k(B
+%
+ s is.kanji.str$
+ { s #1 "{ff}" format.name$ #4 text.prefix$ duplicate$ empty$
+ { pop$ s #1 "{ll}" format.name$ #4 text.prefix$
+ s #1 "{ll}" format.name$ " $B$K$O!$@+$HL>$N4V$K6uGr$,$J$$$h!)(B in " *
+ cite$ * warning$
+ }
+ 'skip$
+ if$
+ }
+% $BF|K\8lJ8;zNs$G$J$$>l9g$N=hM}(B
+ { s #1 "{ll}" format.name$ #3 text.prefix$ }
+ if$
+#else !USE_FIRST_ONLY
+%
+% $BF|K\8lJ8;zNs$N>l9g$K$O!$Bh0lCx<T$N@+$N$_$H$9$k(B
+%
+ s is.kanji.str$
+ { s #1 "{ff}" format.name$ #4 text.prefix$ duplicate$ empty$
+ {pop$ s #1 "{ll}" format.name$ #4 text.prefix$}
+ 'skip$
+ if$
+ }
+% $BF|K\8lJ8;zNs$G$J$$>l9g$N=hM}(B
+ {
+ s num.names$ 'numnames :=
+ numnames #1 >
+ { numnames #4 >
+ { #3 'namesleft := }
+ { numnames 'namesleft := }
+ if$
+ #1 'nameptr :=
+ ""
+ { namesleft #0 > }
+ { nameptr numnames =
+ { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { "{\etalchar{+}}" *
+ #1 'et.al.char.used :=
+ }
+ { s nameptr "{v{}}{l{}}" format.name$ * }
+ if$
+ }
+ { s nameptr "{v{}}{l{}}" format.name$ * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ numnames #4 >
+ { "{\etalchar{+}}" *
+ #1 'et.al.char.used :=
+ }
+ 'skip$
+ if$
+ }
+ { s #1 "{v{}}{l{}}" format.name$
+ duplicate$ text.length$ #2 <
+ { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ }
+ 'skip$
+ if$
+ }
+ if$
+ }
+ if$
+#endif USE_FIRST_ONLY
+}
+
+
+FUNCTION {author.key.label}
+{ author empty$
+ { key empty$
+#if SORTED
+ { cite$ #1 #3 substring$ }
+#else !SORTED % $B8e$G$O7Y9p$r=P$5$J$$$+$i$3$3$G=P$7$F$*$/(B
+ { "for label, need author or key in " cite$ * warning$
+ cite$ #1 #3 substring$
+ }
+#endif SORTED
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+ { editor empty$
+ { key empty$
+#if SORTED
+ { cite$ #1 #3 substring$ }
+#else !SORTED % $B8e$G$O7Y9p$r=P$5$J$$$+$i$3$3$G=P$7$F$*$/(B
+ { "for label, need author, editor, or key in " cite$ * warning$
+ cite #1 #3 substring$
+ }
+#endif SORTED
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {author.key.organization.label}
+{ author empty$
+ { key empty$
+ { organization empty$
+#if SORTED
+ { cite$ #1 #3 substring$ }
+#else !SORTED % $B8e$G$O7Y9p$r=P$5$J$$$+$i$3$3$G=P$7$F$*$/(B
+ { "for label, need author, key, or organization in " cite$ *
+ warning$
+ cite #1 #3 substring$
+ }
+#endif SORTED
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ if$
+ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {editor.key.organization.label}
+{ editor empty$
+ { key empty$
+ { organization empty$
+#if SORTED
+ { cite$ #1 #3 substring$ }
+#else !SORTED % $B8e$G$O7Y9p$r=P$5$J$$$+$i$3$3$G=P$7$F$*$/(B
+ { "for label, need editor, key, or organization in " cite$ *
+ warning$
+ cite #1 #3 substring$
+ }
+#endif SORTED
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ if$
+ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names }
+ if$
+}
+
+FUNCTION {calc.label}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label
+ { type$ "proceedings" =
+ 'editor.key.organization.label
+ { type$ "manual" =
+ 'author.key.organization.label
+ 'author.key.label
+ if$
+ }
+ if$
+ }
+ if$
+ duplicate$
+ year field.or.null purify$ #-1 #2 substring$
+ *
+ 'label :=
+ year field.or.null purify$ #-1 #4 substring$
+ *
+ sortify 'sort.label :=
+}
+
+% $BJ8;zNs%i%Y%k$r;H$&>l9g$K!$0zMQ=g$KJB$Y$k$N$ONI$$$H$O;W$($J$$$,!$(B
+% $B$=$N>l9g$K$O!$$A$g$C$HJL$N$d$jJ}$G%i%Y%k$r:n$i$J$/$F$O$J$i$J$$!%(B
+
+#if !SORTED
+
+ITERATE {calc.label}
+
+#endif !SORTED
+
+#endif LAB_ALPH
+
+% $B%=!<%F%#%s%0$G$O(B presort $B$r3F!9$N%(%s%H%j$KBP$7$F<B9T$9$k$3$H$G(B sortkey
+% $B$r5a$a$k!%(Bpresort $B%-!<$K$OJ#?t$N%V%i%s%/$G6h@Z$i$l$?(B sortify $B$5$l$?(B
+% $B$$$/$D$+$NJ8;zNs$,4^$^$l$k!%$3$l$K$h$C$F(B "brinch per" $B$NJ}$,(B
+% "brinch hansen per" $B$h$jA0$K$J$k!%(B
+%
+% $B$3$3$G;H$o$l$F$$$k%U%#!<%k%I72$O0J2<$NDL$j!%J8;zNs%i%Y%k$N>l9g$K$O(B
+% (calc.label $B$G5a$a$?(B) sort.label, $BB3$$$F%(%s%H%j$N7?$"$k$$$O2?$,7g$1$F$$$k$+(B
+% $B$G0[$J$k$,!$Cx<TL>(B($BJT<T!$@hF,$N(B "The" $B$r=|$$$?5!4XL>$N$3$H$b$"$k(B)$B$^$?$O(B
+% key $B%U%#!<%k%I!$<!$,G/!$$=$7$F(B($B@hF,$N(B "The ", "A ", or "An " $B$r=|$$$?(B)
+% $BI=Bj$N0lItJ,$G$"$k!%(B.
+% $BL>A0$O(B Von Last First Junior $B$N$h$&$K%U%)!<%^%C%H$5$l$k!%(B
+% $BL>A0$NCGJR$O(B("brinch hansen")$B$N$h$&$K#1$D$N6uGr$G6h@Z$i$l!$L>A0$N9=@.MWAG$O(B
+% (von $B$H@+$NItJ,$r=|$$$F(B)$B#2$D$N6uGr$G6h@Z$i$l!$J#?t$NL>A0$N4V$K$O#3$D$N6uGr(B
+% $B$,A^F~$5$l!$L>A0$HG/(B($BJ8;zNs%i%Y%k$N>l9g$K$O%i%Y%k$HL>A0!K$N4V$K$O(B
+% $B#4$D$N6uGr$,A^F~$5$l!$$^$?G/$HI=Bj$N4V$K$b#4$D$N6uGr$,A^F~$5$l$k!%(B
+%
+% sort.format.names $B4X?t$O(B (J)BibTeX $B$NL>A07A<0$G=q$+$l$?0z?t$r$H$j!$(B
+% $B>e=R$N7A<0$N(B " " $B$G6h@Z$i$l$?J8;zNs$rJV$9!%(B format.names$B$H$[$H$s$IF1$8!%(B
+%
+%
+#if SORTED
+
+FUNCTION {sort.format.names}
+{ 's :=
+%
+% yomi $B%U%#!<%k%I$,6u$G$J$1$l$P$=$l$r;H$&(B
+%
+ yomi empty$
+ 'skip$
+ { yomi 's := }
+ if$
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { ", " * }
+ 'skip$
+ if$
+#if NAME_FULL
+ s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
+#else !NAME_FULL
+ s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
+#endif NAME_FULL
+ nameptr numnames = t "others" = and
+ { s is.kanji.str$
+#if USE_KANJI_HOKA
+ {"$BB>(B" * }
+#else !USE_KANJI_HOKA
+ {"$B$[$+(B" * }
+#endif USE_KANJI_HOKA
+ {"et~al." *}
+ if$
+ }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+% sort.format.title $B$O0z?t$+$i@hF,$N(B "A ", "An ", "The " $B$r<h$j=|$$$?(B
+% $BJ8;zNs$rJV$9!%(B
+% chop.word $B$,JQ?t(B s $B$r;H$C$F$$$k$N$G!$JL$NJ8;zNsJQ?t(B t $B$r;H$&!%(B
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+% $B$3$3$N%=!<%H$NA0=hM}MQ$NJd=u4X?t72$O!$(Bcalc.label $B$N$b$N$HF1$8$h$&$J(B
+% $B$b$N$G$"$k$,!$$3$3$G$O(B key $B%U%#!<%k%I$h$j(B organization $B%U%#!<%k%I$,M%@h(B
+% $B$9$k!%$^$?%=!<%H$N$?$a$K(B organization $B%U%#!<%k%I$N@hF,$N(B "The "$B$O(B
+% $B<h$j=|$/!%(B
+
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+% sort.key$ $B$J$I$N%(%s%H%j$NJ8;zNsJQ?t$ND9$5$K$O(B entry.max$ $B$N>e8B$,$"$k!%(B
+% $B$=$3$G!$@8@.$9$k%-!<$ND9$5$r$=$l0JFb$H$9$k!%$=$l$@$1$ND9$5$,$"$l$P(B
+% 1$B$D$7$+%^%C%A$9$k$3$H$O$J$$$H2>Dj$9$k!%(B
+
+FUNCTION {presort}
+#if LAB_ALPH
+{ calc.label
+ sort.label
+ " "
+ *
+ type$ "book" =
+#else !LAB_ALPH
+{ type$ "book" =
+#endif LAB_ALPH
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+#if LAB_ALPH
+ *
+#endif LAB_ALPH
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+
+% $B%=!<%H$N=`Hw$O@0$C$?!%(B
+
+SORT
+
+#endif SORTED
+
+% $B$3$NCm<a$O%=!<%H$5$l$?J8;zNs%i%Y%k$r:n$k;~$N$_$"$F$O$^$k!%(B
+%
+% $BJ8;zNs%i%Y%k$N:G=*%9%F!<%8$G$"$j!$I,MW$K1~$8$F(B 'a', 'b' $B$J$I$r(B
+% $BIU2C$9$k!%(B2$B$D$N%Q%9$+$i$J$k!%(B 'b', 'c' $B$rIU2C$9$k$?$a$NA08~$-%Q%9$H!$(B
+% 'a' $B$rIU2C$9$k$?$a$N8e8~$-%Q%9$+$i$J$k!%(B('b' $B$,$J$1$l$P(B'a'$B$OIU2C$9$k(B
+% $BI,MW$O$J$$(B)
+% "thebibliography"$B4D6-$N$?$a$K(B width$ $B$G7W$C$F:G$bD9$$%i%Y%k$r5a$a$F$*$/!%(B
+%
+% VAR: longest.label, last.sort.label, next.extra: string
+% longest.label.width, last.extra.num: integer
+%
+% initialize.longest.label ==
+% BEGIN
+% longest.label := ""
+% last.sort.label := int.to.chr$(0)
+% next.extra := ""
+% longest.label.width := 0
+% last.extra.num := 0
+% END
+%
+% forward.pass ==
+% BEGIN
+% if last.sort.label = sort.label then
+% last.extra.num := last.extra.num + 1
+% extra.label := int.to.chr$(last.extra.num)
+% else
+% last.extra.num := chr.to.int$("a")
+% extra.label := ""
+% last.sort.label := sort.label
+% fi
+% END
+%
+% reverse.pass ==
+% BEGIN
+% if next.extra = "b" then
+% extra.label := "a"
+% fi
+% label := label * extra.label
+% if width$(label) > longest.label.width then
+% longest.label := label
+% longest.label.width := width$(label)
+% fi
+% next.extra := extra.label
+% END
+
+#if LAB_ALPH
+
+#if SORTED
+
+STRINGS { longest.label last.sort.label next.extra }
+
+INTEGERS { longest.label.width last.extra.num }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #0 int.to.chr$ 'last.sort.label :=
+ "" 'next.extra :=
+ #0 'longest.label.width :=
+ #0 'last.extra.num :=
+}
+
+FUNCTION {forward.pass}
+{ last.sort.label sort.label =
+ { last.extra.num #1 + 'last.extra.num :=
+ last.extra.num int.to.chr$ 'extra.label :=
+ }
+ { "a" chr.to.int$ 'last.extra.num :=
+ "" 'extra.label :=
+ sort.label 'last.sort.label :=
+ }
+ if$
+}
+
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+ { "a" 'extra.label := }
+ 'skip$
+ if$
+ label extra.label * 'label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+ extra.label 'next.extra :=
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {forward.pass}
+
+REVERSE {reverse.pass}
+
+#else !SORTED
+
+% $BJ8;zNs%i%Y%k$r;H$&;~$K$O!V0zMQ=g!W$N;29MJ88%%j%9%H$H$9$k$N$O(B
+% $B$"$^$jNI$/$J$$!%$7$+$7$=$N>l9g$KHw$($F:G$bD9$$%i%Y%k$r5a$a$F$*$/!%(B
+
+STRINGS { longest.label }
+
+INTEGERS { longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+#endif SORTED
+
+#else !LAB_ALPH
+
+
+% $B?t;z%i%Y%k$r5a$a$k!%%=!<%H$5$l$?=gHV!$$"$k$$$O85$N=gHV$G=hM}$9$k!%(B
+% "thebibliography" environment $B$GI,MW$J>pJs$G$"$k!$(B
+% width$ $B$G7W$C$F:G$bD9$$%i%Y%k$bF1;~$K5a$a$F$*$/!%(B
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+#endif LAB_ALPH
+
+% .BBL $B%U%!%$%k$K=q$-=P$9=`Hw$,@0$C$?!%(B
+% $B@h$:J8;zNs%i%Y%k$G>JN,$5$l$?L>A0$r<($9$N$K;H$&(B LaTeX $B%^%/%m$rI,MW$K(B
+% $B1~$8$F=q$-$@$7!$<!$K%G!<%?%Y!<%9Cf$N(B `preamble' $B%3%^%s%I$NCf?H$r=q$-=P$9!%(B
+% $B$=$7$F(B
+% \begin{thebibliography}{...}
+% $B$r=q$-=P$9!%$3$3$G(B `...'$B$O(B width$ $B$G7W;;$7$F:G$bD9$$%i%Y%k$G$"$k!%(B
+
+FUNCTION {begin.bib}
+#if LAB_ALPH
+{ et.al.char.used
+ { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
+ 'skip$
+ if$
+ preamble$ empty$
+#else !LAB_ALPH
+{ preamble$ empty$
+#endif LAB_ALPH
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+% $BA4$F$N%(%s%H%j$r=PNO$9$k!%(B
+
+ITERATE {call.type$}
+
+% $B:G8e$K(B `\end{thebibliography}' $B%3%^%s%I$r=q$-=P$7$F$*$7$^$$!*(B
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
diff --git a/biblio/pbibtex/base/jbtxdoc.bib b/biblio/pbibtex/base/jbtxdoc.bib
new file mode 100644
index 0000000000..2576dd26c6
--- /dev/null
+++ b/biblio/pbibtex/base/jbtxdoc.bib
@@ -0,0 +1,116 @@
+Copyright (C) 1988, all rights reserved.
+$B>>0f!wEECf8&$K$h$j!$%*%j%8%J%k$N(Bbtxdoc.bib$B$+$i:n@.$5$l$?!%(B
+
+@COMMENT(You may put a comment in a `comment' command,
+ the way you would with SCRIBE.)
+
+Or you may dispense with the command and simply give the comment,
+as long as it's not within an entry.
+
+If you really want to put a comment inside an entry, simply
+make up a never-to-be-used field.
+
+@FAKE-ENTRY
+ {fake-database-key,
+ never-to-be-used-field = "Even if this were a real entry,
+ I could still have a comment inside an entry
+ by making up a fake field"
+ }
+
+@string (SCRIBE-NOTE = {Chapter twelve and appendices E8 through E10 deal
+ with bibliographies})
+@string (denken={$BEENOCf1{8&5f=j(B})
+The next entry shows some of the syntactically legal things that
+those with the inclination may use.@
+
+MaNuAl (scribe,
+ TITLE="Scribe Document Production System
+
+
+ User Manual",
+ ORGANIZATION = {Unilogic,}#" Ltd"# {.
+ },
+ ADDRESS = "Pittsburgh",
+ MONTH
+=aPR
+ ,YEAR=1984,
+ note = scribe-note,
+) May the inclination not be with you.
+
+
+@MANUAL{$B>>0f(B,
+ author = "$B>>0f(B $B@50l(B",
+ title = "$BF|K\8l(BTeX$B$N;H$$J}F|K\8l(BTeX$B$N;H$$J}F|K\8l(BTeX$B$N;H$$J}F|K\8l(BTeX$B$N;H$$J}F|K\8l(BTeX$B$N;H$$J}F|K\8l(BTeX$B$N;H$$J}F|K\8l(BTeX$B$N;H$$J}F|K\8l(BTeX$B$N;H$$J}F|K\8l(BTeX$B$N;H$$J}(B",
+ address = denken,
+ yomi="Shouichi Matsui",
+ note = "$B#J#B#i#b#T#e#X$N%F%9%H(B",
+ year = 1987}
+
+@MISC{prime-number-theorem,
+ author = "Charles Louis Xavier Joseph de la Vall{\'e}e Poussin",
+ note = "A strong form of the prime number theorem, 19th century" }
+
+@INBOOK{chicago,
+ title = "The Chicago Manual of Style",
+ publisher = "University of Chicago Press",
+ edition = "Thirteenth",
+ year = 1982,
+ pages = "400--401",
+ key = "Chicago" }
+
+@BOOK{texbook,
+ author = "Donald E. Knuth",
+ title= "The {{\TeX}book}",
+ publisher = "Addison-Wesley",
+ year = 1984 ,
+ note="($BK.Lu!'!X(B{\TeX} $B%V%C%/!Y(B $B@FF#(B $B?.CK(B $B4FLu(B,
+ $B:mC+(B $B9%51(B $BLu(B, $B%"%9%-!<(B, 1989$BG/(B)"
+}
+
+@BOOK{latex,
+ author = "Leslie Lamport",
+ title = "{\LaTeX \rm:} {A} Document Preparation System",
+ publisher = "Addison-Wesley",
+ year = 1986,
+ note="($BK.Lu!'!XJ8=q=hM}%7%9%F%`(B {\LaTeX}$B!Y(B Edgar Cooke, $BARBt(B $BNI0l(B $B4FLu(B,
+ $BBgLn(B $B=S<#(B, $B>.Jk(B $BGnF;(B, $BF#1:(B $B$O$kH~(B $BLu(B, $B%"%9%-!<!$(B 1990$BG/(B)"
+ }
+
+@UNPUBLISHED{btxdoc,
+ author = "Oren Patashnik",
+ title = "{{\BibTeX ing}}",
+ note = "Documentation for general {\BibTeX} users",
+ month = jan,
+ year = 1988 }
+
+@UNPUBLISHED{btxhak,
+ author = "Oren Patashnik",
+ title = "Designing {\BibTeX} Styles",
+ note = "The part of \BibTeX's documentation
+ that's not meant for general users",
+ month = jan,
+ year = 1988 }
+
+@BOOK{strunk-and-white,
+ author = "Strunk, Jr., William and E. B. White",
+ title = "The Elements of Style",
+ publisher = "Macmillan",
+ edition = "Third",
+ year = 1979,
+ note = "($BK.Lu!'!X1Q8lJ8>O%k!<%k%V%C%/!Y9SC](B $B;0O:Lu(B, $B9SC]=PHG(B, 1985$BG/(B)"
+}
+
+@BOOK{van-leunen,
+ title = "A Handbook for Scholars",
+ author = "Mary-Claire van Leunen",
+ publisher = "Knopf",
+ year = 1979 }
+
+@UNPUBLISHED{jbibtex,
+ title="$BF|K\8l(B{\BibTeX:\JBibTeX}",
+ author="$B>>0f(B $B@50l(B",
+ yomi="Shouichi Matsui",
+ year=1991,
+ note="\JBibTeX~C Version$B%-%C%H$H6&$KG[I[$5$l$F$$$kJ8=q(B(ver.0.20$BMQ(B, 1989$BG/(B)" }
+
+
diff --git a/biblio/pbibtex/base/jbtxdoc.pdf b/biblio/pbibtex/base/jbtxdoc.pdf
new file mode 100644
index 0000000000..a93b140c09
--- /dev/null
+++ b/biblio/pbibtex/base/jbtxdoc.pdf
Binary files differ
diff --git a/biblio/pbibtex/base/jbtxdoc.tex b/biblio/pbibtex/base/jbtxdoc.tex
new file mode 100644
index 0000000000..bf7f992141
--- /dev/null
+++ b/biblio/pbibtex/base/jbtxdoc.tex
@@ -0,0 +1,1090 @@
+\documentstyle{jarticle}
+\def\dg{\gt}
+\def\dm{\mn}
+\voffset=-2.3cm
+\hoffset=-2.3cm
+\textwidth=16.6cm
+\textheight=25cm
+
+\def\JTeX{\leavevmode\lower .5ex\hbox{J}\kern-.17em\TeX}
+\def\JLaTeX{\leavevmode\lower.5ex\hbox{J}\kern-.17em\LaTeX}
+\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
+ T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
+
+\def\JBibTeX{\leavevmode\lower .5ex\hbox{{\rm J}}\kern-0.15em\BibTeX}
+\def\trnote#1{\footnote{\parindent=16pt\hskip-15pt\hang\indent $BLuCm!'(B#1\parindent=10pt}}
+
+\title{B\kern-.05em{\large I}\kern-.025em{\large B}\kern-.08em\TeX ing$B!'(B
+B\kern-.05em{\large I}\kern-.025em{\large B}\kern-.08em\TeX $B$N;H$$J}(B
+\footnote{$BK]Lu$NItJ,$O86Cx<T$N5v2D$rF@$FG[I[$9$k$b$N$G$"$j!$K]Lu$K$D$$$F!$(B
+\JBibTeX\ $B$K4X$9$k5-=R$K$D$$$F$O>>0f$KLd$$9g$o$;$i$l$?$$!%(B}
+\ $^,$\footnote{\JBibTeX\ (version 0.30)$B$N@bL@$b4^$`!%(B}}
+\author{Oren Patashnik($BLu!'>>0f@50l(B)}
+\date{January 31, 1988($BK]LuHG!'(B1991$BG/(B1$B7n(B1$BF|(B)}
+
+\begin{document}
+\baselineskip=17pt
+
+\maketitle
+
+\section{$B35MW(B}
+
+[$B$3$NJ8=q$O(B\BibTeX\ version 1.00$B$,40@.$7$?;~$K3H=<$5$l$k!%(B
+$B%?%$%W%_%9!$7gMn!$IT@53N$JItJ,!$FC$K!$J,$+$j$K$/$$ItJ,$K$D$$$F!$(B
+$BCx<T$^$GO"Mm$5$l$?$$(B({\tt patashnik@SCORE.STANFORD.EDU}, $BF|K\8l$*$h$S(B
+\JBibTeX\ $B$K4X$9$kItJ,$O(B{\tt matsui@denken.or.jp})$B!%(B
+$B2~A1$K4X$9$k0U8+$r4?7^$9$k!%(B]
+
+$B$3$l$O(B\BibTeX\ version 0.99a\trnote{version 0.99a$B0J9_$N(B
+$B0UL#$G$"$j!$(B\JBibTeX $B$N4p$K$J$C$F$$$k(B0.99c$B$b4^$^$l$k!%(B}
+$B$NMxMQ<T$N$?$a$N$b$N$G$"$j(B\trnote{\JBibTeX $BMxMQ<T$N$?$a$G$b$"$k!%(B
+\JBibTeX $B$K$D$$$F$O(B\cite{jbibtex}$B$b;2>H$5$l$?$$!%(B}$B!$(B
+$B;29MJ88%%9%?%$%k$N@_7W<T(B($B@=:n<T(B)$B$O$3$NJ8=q$rFI$s$@8e!$@=:n<T$N$?$a$@$1$K(B
+$B=q$+$l$F$$$k(B ``Designing \BibTeX\ Styles''~\cite{btxhak}$B$rFI$`I,MW$,$"$k!%(B
+
+$BK\9F$O0J2<$N(B3$B@a$+$i$J$k!%(B
+$BBh(B\ref{$BAj0cE@(B} $B@a$G(B \BibTeX $B$N(Bversion 0.98i$B$H(B0.99a$B$NAj0cE@$r!$(B
+$B3F!9$KBP1~$9$kI8=`%9%?%$%k%U%!%$%k$NAj0cE@$H$H$b$K=R$Y$k!%(B
+$BBh(B\ref{latex-appendix} $B@a$O(B\LaTeX\ book~\cite{latex}$B$NIUO?(BB.2$B$N=$@5$G$"$j!$(B
+$BBh(B\ref{odds-and-ends} $B@a$GB>$NJ8=q$K$O=q$+$l$F$$$J$$0lHLE*;v9`!$FC<l;v9`$K(B
+$B$D$$$F=R$Y$k!%(B
+$BK\9F$NFI<T$O(B\LaTeX\ book$B$N4XO"$9$k@a$K@:DL$7$F$$$k$3$H$,K>$^$l$k!%(B
+
+$B$3$NJ8=q$O(B\BibTeX\ $B$rAv$i$;$k:n6H$r=u$1$k$?$a$NF~NONc$H$7$F$NLr3d$b;}$D!%(B
+$BB?$/$NJ8=q$HF1$8$/$3$NJ8=q$b;29MJ88%$N0zMQ$r4^$s$G$$$k!%;29MJ88%%j%9%H$r(B
+$B:n$k$?$a$K$O!$(B
+$B$3$NJ8=q<+?H$r=hM}$9$k$?$a$K$O!$(B
+$B@h$:(B({\tt aux}$B%U%!%$%k$r:n$k$?$a$K(B)\LaTeX\ $B$r<B9T$7!$(B
+$B<!$K(B({\tt bbl}$B%U%!%$%k$r:n$k$?$a$K(B)\BibTeX\ $B$r<B9T$7!$(B
+$B:G8e$K(B\LaTeX $B$r$b$&(B2$B2s<B9T$9$k(B(1$B2s$O(B{\tt bbl}$B%U%!%$%kCf$N>pJs$r(B
+$B<h$j9~$`$?$a$G$"$j!$$b$&(B1$B2s$OA0J};2>H$r2r7h$9$k$?$a$G$"$k(B)$B!%(B
+$B$a$C$?$K5/$3$i$J$$$3$H$G$O$"$k$,!$$5$i$K$b$&(B1$B2s(B
+\BibTeX/\LaTeX\ $B$rAv$i$;$J$1$l$P$J$i$J$$$3$H$b$"$k(B.
+
+\BibTeX\ version 0.99a$B$O!$(Bclosed$B;29MJ88%=q<0$rI8=`$H$7$F$$$k!%(B
+\LaTeX\ version 2.09$B$H$H$b$K;H$&I,MW$,$"$k(B\trnote{\JBibTeX\ $B$O(B
+\JLaTeX\ $B$H$H$b$K;H$&!%(B}$B!%(B
+open$B;29MJ88%=q<0$K$9$k$?$a$K$O%*%W%7%g%sJ8=q%9%?%$%k$N(B{\tt openbib}
+$B$r;H$&I,MW$,$"$k!%(B
+(open$B=q<0$G$O<g%V%m%C%/$N4V$G2~9T$,9T$o$l$k$,!$(Bclosed$B$G$O9T$o$l$J$$!%(B)
+
+{\dg $BCm0U(B}$B!'(B\BibTeX\ 0.99a$B$G$O8E$$%9%?%$%k%U%!%$%k$O;H$($J$$!$F1MM$K(B
+\BibTeX\ 0.98i$B$G$O?7$7$$%9%?%$%k%U%!%$%k$O;H$($J$$!%(B
+($B$7$+$7?7$7$$(B\BibTeX\ $B$G8E$$%G!<%?%Y!<%9%U%!%$%k$r;H$&$3$H$O$G$-$k!%(B)
+
+{\dg $B%$%s%W%j%a%s%?$X$NCm0U(B}$B!'(B\BibTeX\ $B$K$O(B
+$B;29MJ88%%9%?%$%k%U%!%$%k$NF~NO%G%#%l%/%H%j$N$?$a$N(B{\tt TEXINPUTS:}$B$H!$(B
+$B%G!<%?%Y!<%9%U%!%$%k$NF~NO%G%#%l%/%H%j$N$?$a$N(B{\tt BIBINPUTS:}
+$B$N(B2$B$D$NO@M}L>(B\trnote{UNIX/MS-DOS$B$G$O$=$l$>$l(B{\tt TEXINPUTS}$B$H(B
+{\tt BIBINPUTS}$B$N4D6-JQ?t(B}$B$,MQ0U$5$l$F$$$k!%(B
+
+\vskip\baselineskip
+{\dg\bf\JBibTeX\ $B$G$NCm0UE@(B}$B!'(B
+$B4A;z%3!<%I7O$O(B{\tt BIBTERMCODE, BIBFILECODE}$B$N(B2$B$D$N(B
+$B4D6-JQ?t$GJQ992DG=$G$"$j!$(B\JTeX\ $B$N(B \verb|\kanjiterminaltype, \kanjifiletype|$B$K(B
+$B;XDj$9$k$N$HF1$8$b$N$r;XDj$9$k!%(BUNIX$BHG$G$O%5%$%HKh$KI8=`%3!<%I$,@_Dj$5$l$F(B
+$B$$$k$O$:$G$"$j!$(BMS-DOS$BHG$G$O(BSJIS$B$,I8=`$G$"$k!%(B
+
+\newpage
+\section{$BJQ99E@(B}
+\label{$BAj0cE@(B}
+$BK\@a$G$O(B\BibTeX\ versions 0.98i$B$H(B0.99a$B$N0c$$$H!$3F!9$N%P!<%8%g%s$KBP1~$9$k(B
+$B%9%?%$%k$N0c$$$K$D$$$F=R$Y$k!%(B0.98i$B$H(B0.99a$B$N4V$K$O(B
+$BB?$/$NAj0cE@$,$"$k$,(B0.99$B$H(B1.00$B$N4V$G$O$b$C$H$:$C$H>/$J$/$J$k$G$"$m$&!%(B
+
+\subsection{\BibTeX\ $B$N?75!G=(B}
+\label{features}
+
+$B0J2<$K(B\BibTeX\ $B$N?75!G=$H$=$N;H$$J}$rNs5s$9$k(B\trnote{\JBibTeX\ $B$N5!G=$G$b(B
+$B$"$k!%(B}$B!%(B
+
+\begin{enumerate}
+
+\item
+$B8D!9$NJ88%Kh$K(B \verb|\cite|, \verb|\nocite|$B$rL@<(E*$K;XDj(B
+$B$7$J$/$F$b!$(B `\verb|\nocite{*}|' $B%3%^%s%I$R$H$D$G!$(B
+$B%G!<%?%Y!<%9Cf$N$9$Y$F$NJ88%$rJB$Y$?%j%9%H$r:n$k$3$H$,$G$-$k!%(B
+$B$3$l$O!$$3$N%3%^%s%I$r(B
+$B;H$C$?>l=j$G!$%G!<%?%Y!<%9Cf$N$9$Y$F$N%(%s%H%j$r$=$N(B
+$B=gHV$G(B \verb|\nocite|$B$9$k$3$H$KAjEv$9$k!%(B
+
+\item
+\label{concat}
+$B%U%#!<%k%I(B($B$"$k$$$O(B{\tt @STRING}$B$NDj5ACf$G(B)$BJ8;zNs$NO"7k$r;XDj$G$-$k!%(B
+$BNc$($P!$<!$N$h$&$KDj5A$7$F$*$/$H!$(B
+\begin{verbatim}
+ @STRING( WGA = " World Gnus Almanac" )
+\end{verbatim}
+$BJL!9$G$O$"$k$,;w$?$h$&$J(B{\tt title}$B%(%s%H%j$r4JC1$K:n$l$k!%(B
+\begin{verbatim}
+ @BOOK(almanac-66,
+ title = 1966 # WGA,
+ . . .
+ @BOOK(almanac-67,
+ title = 1967 # WGA,
+\end{verbatim}
+$B<!$N$h$&$J;H$$J}$b2DG=$G$"$k!%(B
+\begin{verbatim}
+ month = "1~" # jan,
+\end{verbatim}
+$B$3$N;~!$%9%?%$%k%U%!%$%kCf$G$N(B{\tt jan}$B$N>JN,7A$NDj5A$K$h$C$F0[$J$k$,!$(B
+{\tt bbl}$B%U%!%$%kCf$G$O(B `\verb|1~Jan.|' $B$"$k$$$O(B
+`\verb|1~January|' $B$N$h$&$K$J$k!%(B
+($B%U%#!<%k%I$N%G!<%?D9$K$O>e8B$,$"$k$,(B) `{\tt\#}' $B$K$h$C$F(B
+$BG$0U$N?t$NJ8;zNs$rO"7k$G$-$k!%(B
+`{\tt\#}' $B$NA08e$K$O!$%9%Z!<%9(B\trnote{$B4A;z%3!<%I$N(B
+$B%9%Z!<%9(B($B6uGr(B)$B$G$O%@%a(B!}$B$+2~9T$rCV$/$3$H$rK:$l$F$O$J$i$J$$!%(B
+
+\item
+\BibTeX\ $B$K?7$?$JAj8_;2>H5!G=$rIU$12C$($?!%$3$l$rNc$K$=$C$F@bL@$9$k!%(B
+$BJ8=qCf$K(B \verb|\cite{no-gnats}|$B$H;XDj$7!$(B
+$B%G!<%?%Y!<%9Cf$K<!$N(B2$B$D$N%(%s%H%j$,$"$k$H$7$h$&!%(B
+\begin{verbatim}
+ @INPROCEEDINGS(no-gnats,
+ crossref = "gg-proceedings",
+ author = "Rocky Gneisser",
+ title = "No Gnats Are Taken for Granite",
+ pages = "133-139")
+ . . .
+ @PROCEEDINGS(gg-proceedings,
+ editor = "Gerald Ford and Jimmy Carter",
+ title = "The Gnats and Gnus 1988 Proceedings",
+ booktitle = "The Gnats and Gnus 1988 Proceedings")
+\end{verbatim}
+$B$3$N;~!$<!$K=R$Y$k(B2$B$D$N$3$H$,$*$3$k!%(B
+$BBh(B1$B$K!$FCJL$J0UL#$r;}$D%U%#!<%k%I(B{\tt crossref}$B$O!$(B{\tt no-gnats}
+$B%(%s%H%j$G7gMn$7$F$$$k%U%#!<%k%I$r!$(B
+$B0zMQ$7$F$$$k(B{\tt gg-proceedings}$B$+$i7Q>5$9$k$3$H$r(B\BibTeX $B$K(B
+$BEA$($k!%@h$NNc$G$$$($P(B{\tt editor}$B$H(B{\tt booktitle}$B$N(B2$B$D$r(B
+$B7Q>5$9$k!%(B
+$B$?$@$7!$I8=`$N%9%?%$%k$G$O(B{\tt booktitle}$B%U%#!<%k%I$O(B
+{\tt PROCEEDINGS}$B7?$N%(%s%H%j$G$O0UL#$r;}$?$J$$!%(B
+$B$3$NNc$N(B{\tt gg-proceedings}$B%(%s%H%j$N(B{\tt booktitle}$B%U%#!<%k%I$O!$(B
+$B$3$l$r;2>H$7$F$$$k(B
+$B$b$N$,$3$N%U%#!<%k%I$r7Q>5$G$-$k$h$&$K$9$k$?$a$@$1$N$b$N$G$"$k!%(B
+$B$3$N2q5D$NO@J8$,$I$s$J$KB?$/%G!<%?%Y!<%9Cf$K$"$C$F$b!$(B
+$B$3$N(B{\tt booktitle}$B%U%#!<%k%I$O(B1$B2s$@$1=q$1$P$h$$!%(B
+
+$BBh(B2$B$K(B, {\tt gg-proceedings}$B%(%s%H%j$r(B \verb|\cite|$B$"$k$$(B
+$B$O(B \verb|\nocite|$B$G0zMQ$7$F$$$k(B
+2$B$D0J>e$NO@J8$,;2>H$7$F$$$k$H(B, $B$3$N%(%s%H%j(B
+$B<+?H$,(B \verb|\cite|$B$"$k$$$O(B \verb|\nocite|$B$5$l$F$$$J$/$F$b!$(B
+\BibTeX $B$O<+F0E*$K(B{\tt gg-proceedings}$B%(%s%H%j$r;29MJ88%%j%9%H$K(B
+$B2C$($k!%$D$^$j(B{\tt no-gnats}$B$NB>$K(B1$B$D0J>e$NO@J8$,(B\linebreak {\tt gg-proceedings}$B$r(B
+$B;2>H$7$F$$$k$H!$<+F0E*$K;29MJ88%%j%9%H$K2C$($i$l$k!%(B
+
+$B$?$@$7!$>e5-$N7k2L$H$J$k$3$H$rJ]>Z$9$k$?$a$K$O!$(B
+$BAj8_;2>H$5$l$F$$$k%(%s%H%j$O!$(B
+$B$=$l$r0zMQ$7$F$$$k$9$Y$F$N%(%s%H%j$h$j%G!<%?%Y!<%9%U%!%$%kCf$G(B
+$B8e$m$K$J$1$l$P$J$i$J$$!%(B
+$B=>$C$F!$Aj8_;2>H$5$l$F$$$k%(%s%H%j$O:G8e$KCV$/$3$H$K$J$k!%(B
+($B$5$i$K!$;DG0$J$3$H$@$,!$%M%9%H$5$l$?Aj8_;2>H(B
+$B$O$&$^$/07$($J$$!%$9$J$o$A!$Aj8_;2>H$7$F$$$k@h$,$5$i$KB>$r;2>H$7$F$$$k(B
+$B>l9g$K$O$&$^$/F0:n$7$J$$$3$H$,$"$k!%(B)
+
+
+$B:G8e$NCm0U!'(B
+$B$3$NAj8_;2>H5!G=$O!$8=:_$G$bMxMQ$G$-$k!$8E$$(B\BibTeX $B$N(B
+$B;2>H$N5!G=$H$OA4$/4X78$,$J$$!%(B
+$B$9$J$o$A!$<!$N$h$&$J;H$$J}$O?7$7$$5!G=$+$i2?$N1F6A$b<u$1$J$$!%(B
+\begin{verbatim}
+ note = "Jones \cite{jones-proof} improves the result"
+\end{verbatim}
+
+
+\item
+\BibTeX\ $B$O%"%/%;%s%HIU$-J8;z(B(accented character)$B$r07$($k$h$&$K$J$C$?!%(B
+$BNc$($P<!$N$h$&$J(B2$B$D$N%U%#!<%k%I$+$i$J$k%(%s%H%j$,$"$j!$(B
+\begin{verbatim}
+ author = "Kurt G{\"o}del",
+ year = 1931,
+\end{verbatim}
+$B;29MJ88%%9%?%$%k$H$7$F(B{\tt alpha}$B$r;H$C$?$H$9$k$H!$(B
+\BibTeX\ $B$O$3$N%(%s%H%j$N%i%Y%k$r$"$J$?$NK>$_DL$j$K(B [G{\"o}d31] $B$H$9$k!%(B
+$B$3$N$h$&$J7k2L$rF@$k$?$a$K$O(B\verb|{\"o}|$B$"$k$$$O(B\verb|{\"{o}}|$B$N$h$&$K(B
+$B%"%/%;%s%HIU$-J8;zNs$rCf3g8L(B($B%V%l!<%9(B; \verb|{}|)$B$G0O$s$G$d$kI,MW$,$"$k!%(B
+$B$5$i$K!$$3$N$?$a$K;H$&Cf3g8L$O!$%U%#!<%k%I$d%(%s%H%j$N6h@Z$j0J30$NCf3g8L$N(B
+$BCf$K4^$^$l$F$O$J$i$J$$$7!$Cf3g8L$NCf$N0lHV:G=i$NJ8;z$O%P%C%/%9%i%C%7%e(B
+$B$G$J$1$l$P$J$i$J$$!%=>$C$F$3$NNc$G$$$($P(B\verb|{G{\"{o}}del}|
+$B$G$b(B\verb|{G\"{o}del}|$B$G$b$&$^$/$f$+$J$$!%(B
+
+$B$3$N5!G=$O(B\LaTeX~book$B$NI=(B3.1$B$HI=(B3.2$B$K$"$k!$%P%C%/%9%i%C%7%e$NIU$+$J$$(B
+$B309qJ8;z(B(foreign symbols)$B$r=|$/!$$9$Y$F$N%"%/%;%s%HIU$-J8;z$r07$&$3$H$,$G$-$k!%(B
+$B$3$N5!G=$OMxMQ<T$,Dj5A$9$k!V%"%/%;%s%HIU$-J8;z!W$G$b;H$($k!%$9$08e$GNc$r<($9!%(B
+$B%i%Y%k$NJ8;z?t$r?t$($k>l9g$K$O!$(B\BibTeX\ $B$OCf3g8L$NCf$N(B
+$BJ8;zNs$r$^$H$a$F(B1$BJ8;z$H?t$($k!%(B
+
+
+\item
+\BibTeX\ $B$O%O%$%U%sIU$-$N?ML>$b07$&$3$H$,$G$-$k!%Nc$($P!$<!$N$h$&$J(B
+$B%(%s%H%j!$(B
+\begin{verbatim}
+ author = "Jean-Paul Sartre",
+\end{verbatim}
+$B$G(B{\tt abbrv}$B%9%?%$%k$r;H$&$H!$7k2L$O(B `J.-P. Sartre' $B$H$J$k!%(B
+
+\item
+\label{preamble}
+$B%G!<%?%Y!<%9%U%!%$%kCf$K(B\verb|@PREAMBLE|$B$r=q$/$3$H$,$G$-$k!%(B
+$B%3%^%s%I$O!$J8;zNs$+$i$J$j!$L>A0$HEy9f5-9f$,$J$$$3$H$r(B
+$B=|$1$P(B\verb|@STRING|$B$HF1$8$G$"$k!%0J2<$KNc$r<($9!%(B
+\begin{verbatim}
+ @PREAMBLE{ "\newcommand{\noopsort}[1]{} "
+ # "\newcommand{\singleletter}[1]{#1} " }
+\end{verbatim}
+($B$3$3$G$bJ8;zNsO"7k$N5!G=$,;H$o$l$F$$$k$3$H$KCm0U$7$h$&(B)$B!%(B
+$BI8=`$N%9%?%$%k$G$O!$$3$3$K=q$$$?J8;zNs(B($BB?$/$N>l9g(B\LaTeX\ $B$N%^%/%m(B)
+$B$r$=$N$^$^(B{\tt bbl}$B%U%!%$%k$K=q$-=P$9!%(B
+$B>e$K<($7$?(B \verb|\noopsort|$B%3%^%s%I$rNc$K!$;H$$J}$r<($9!%(B
+
+$B%=!<%F%#%s%0$9$k(B($B%"%k%U%!%Y%C%H=g$KJB$Y$k(B)$B$3$H$r9M$($h$&!%(B
+\BibTeX\ $B$O3d$H$&$^$/JB$Y$F$/$l$k$,!$>r7o$K$h$C$F$O(B\BibTeX\ $B$,(B
+$B:.Mp$9$k$3$H$,$"$k!%(B
+$B%G!<%?%Y!<%9$NCf$KF10lCx<T$K$h$k(B2$B4,$+$i$J$kK\$N%(%s%H%j$,$"$j!$(B
+$B;29MJ88%%j%9%H$G$OBh(B1$B4,$,Bh(B2$B4,$ND>A0$KJB$s$GM_$7$$$H$7$h$&!%(B
+$B$5$i$KBh(B1$B4,$K$O(B1973$BG/$KH/4)$5$l$?Bh(B2$BHG$,$"$j!$Bh(B2$B4,$K$OBh(B1$BHG$7$+$J$/(B
+$B$=$NH/4)$O(B1971$BG/$G$"$C$?$H$7$h$&!%(B
+$BI8=`%9%?%$%k(B{\tt plain}$B$OCx<TL>$HH/4)G/$G%=!<%H%-!<$r:n$j!$(B
+$BBh(B2$B4,$NJ}$,H/4)$,Aa$$$?$a$K!$(B\BibTeX\ $B$r=u$1$F$d$i$J$$8B$j!$Bh(B2$B4,(B
+$B$NJ}$,@h$K$J$i$s$G$7$^$&!%(B
+$B$3$N$?$a$K$O$3$N(B2$B$D$N(B{\tt year}$B%U%#!<%k%I$r<!$N$h$&$K$9$k!%(B
+\begin{verbatim}
+ year = "{\noopsort{a}}1973"
+ . . .
+ year = "{\noopsort{b}}1971"
+\end{verbatim}
+\verb|\noopsort|$B$NDj5A$+$i!$(B
+\LaTeX\ $B$OG/$H$7$F$OK\Ev$NG/0J30$O0u:~$7$J$$!%(B
+$B$7$+$7(B\BibTeX\ $B$O(B \verb|\noopsort|$B$N;XDj$,(B `a', `b' $B$r(B
+$B=$>~$9$k$b$N$H$_$J$9$N$G!$%=!<%H$N;~$K$O$"$?$+$b(B `a1973' $B$H(B `b1971'
+$B$,G/$N$h$&$K07$&!%(B`a' $B$O(B `b' $B$h$jA0$J$N$G!$K>$_DL$jBh(B1$B4,$,Bh(B2$B4,$NA0$KJB$V!%(B
+$B$H$3$m$G!$$b$7$3$NCx<T$NJL$NCx:n$,%G!<%?%Y!<%9Cf$K$"$k>l9g$K$O(B
+$BB>$NCx:n$H$N4X78$r@5$7$/$9$k$?$a$K(B\verb|{\noopsort{1968a}}1973|$B$H(B
+\verb|{\noopsort{1968b}}1971|$B$H$$$C$?$h$&$K=q$+$M$P$J$i$J$$$3$H$b$"$k!%(B
+($B$3$3$G$OBh(B1$B4,$NBh(B1$BHG$NH/4)G/$,(B1968$BG/$G$"$k$3$H$+$i!$$3$l$G@5$7$$(B
+$B>l=j$KJB$V$b$N$H9M$($F$$$k!%(B)
+
+$B;H$($k(B\verb|@PREAMBLE|$B%3%^%s%I$N?t$K$O>e8B$,$"$k$,!$(B\verb|@PREAMBLE|
+$B$N?t$r(B1$B$D$N%G!<%?%Y!<%9$K$D$-(B1$B$D$K$7$F$*$1$P!$>e8B$rD6$($k$3$H$O$J$$!%(B
+$B$7$?$,$C$F!$9`L\(B\ref{concat} $B$G=R$Y$?!$J8;zNs$NO"7k5!G=$r;H$($P(B
+$B$3$N@)8B$OBg$7$?LdBj$G$O$J$$!%(B
+
+\item
+\BibTeX\ $B$N%=!<%F%#%s%0;;K!$O0BDj(B(stable)$B$J$b$N$H$J$C$?!%$D$^$j!$(B
+2$B$D$N0[$J$k%(%s%H%j$,F10l$N%=!<%H%-!<$r;}$D>l9g$K$O!$(B
+$B0zMQ=g$KJB$V$h$&$K$J$C$?!%(B
+($B;29MJ88%%9%?%$%k$,$3$l$i$N%=!<%H%-!<!$DL>o$OCx<TL>$N8e$KG/$H(B
+$BI=Bj$rIU2C$7$?$b$N!$$r:n$k(B\trnote{$BF|K\8lMQ$N%9%?%$%k$G$O!$(B
+yomi$B$H$$$&%U%#!<%k%I$,$"$l$P$=$l$rCx<TL>$NBe$o$j$K;H$&$3$H$G!$FI$_$N(B
+$B%"%k%U%!%Y%C%H=g$KJB$V$h$&$K$7$F$$$k!%(B})
+
+\item
+\BibTeX\ $B$O%U%!%$%kL>$N>.J8;z(B/$BBgJ8;zJQ49$r9T$o$J$$$h$&$K$J$C$?!%(B
+$B$3$l$K$h$j!$Nc$($P(BUNIX$B%7%9%F%`>e$K(B\BibTeX\ $B$r%$%s%9%H!<%k$9$k$N$,4JC1$K$J$C$?!%(B
+
+\item
+$B%3%^%s%I%i%$%s$N(B{\tt aux}$B%U%!%$%kL>$N=hM}$r9T$&%3!<%I$rIU2C$9$k$3$H$,(B
+$B4JC1$K9T$($k$h$&$K$J$C$?!%(B
+
+\end{enumerate}
+
+
+\subsection{$BI8=`%9%?%$%k$NJQ99E@(B}
+
+$BK\@a$G$O!$0lHLMxMQ<T$K4X78$9$kI8=`%9%?%$%k(B
+({\tt plain}, {\tt unsrt}, {\tt alpha}, {\tt abbrv})
+$B$NJQ99E@$K$D$$$F=R$Y$k(B\trnote{$BBP1~$9$kF|K\8lMQ$N%9%?%$%k$O(B
+$B3F!9(B{\tt jplain}, {\tt junsrt},{\tt jalpha}, {\tt jabbrv}$B$G$"$k!%(B}$B!%(B
+$B%9%?%$%k:n@.<T$K4X78$7$?JQ99E@$O(B
+``Designing \BibTeX\ Styles''~\cite{btxhak}$B$K=R$Y$i$l$F$$$k!%(B
+
+\begin{enumerate}
+
+\item
+$B0lHL$K%=!<%F%#%s%0$O@h$:(B ``author'' $B$G!$<!$KG/!$:G8e$KI=Bj$G9T$&!%(B
+$B8E$$%P!<%8%g%s$G$OG/$,;H$o$l$F$$$J$+$C$?!%(B
+($B$7$+$7(B{\tt alpha}$B%9%?%$%k$G$O@h$:%i%Y%k(B
+$B$G%=!<%H$7$?8e!$>e5-$N%=!<%H$r9T$&(B)$B!%(B
+author$B$NA08e$K0zMQId$,IU$$$F$$$k$N$O!$(Beditor, organization$B$J$I$N(B
+$BB>$N%U%#!<%k%I$,;H$o$l$k$3$H$b$"$k$+$i$G$"$k!%(B
+
+\item
+$BB?$/$NITI,MW$J%?%$(B(\verb|~|)$B$r<h$j=|$$$?!%(B
+$B$3$l$K$h$j!$;29MJ88%%j%9%H$r%U%)!<%^%C%H$7$?;~$K!$(B
+\LaTeX\ $B$+$i=PNO$5$l$k(B `\hbox{\tt Underfull} \verb|\hbox|'
+$B$N?t$,>/$J$/$J$C$?!%(B
+
+\item
+$B%$%?%j%C%/;XDj(B(\hbox{\verb|{\it ...}|})$B$r(B
+$B6/D4;XDj(B(\hbox{\verb|{\em ...}|})$B$KCV$-49$($?!%(B
+$B=PNO$OJQ2=$7$J$$$O$:$G$"$k!%(B
+
+\item
+{\tt alpha}$B%9%?%$%k$G$O!$%i%Y%k$r:n$k:]$KCx<TL>$N$$$/$D$+$r>JN,$7$?(B
+$B$3$H$r<($95-9f$r(B `*' $B$+$i(B `$^{+}$' $B$KJQ99$7$?!%(B
+$B$7$+$7!$0JA0$N7A<0$NJ}$,9%$-!$$"$k$$$O$3$s$J5-9f$,ITMW$J>l9g$G$b(B
+$B%9%?%$%k%U%!%$%k$N=$@5$OITMW$G$"$k!%(B
+{\tt alpha}$B%9%?%$%k$,(B(\verb|\thebibliography| environment$B$ND>A0$K(B)
+{\tt bbl}$B%U%!%$%k$K=q$-=P$9(B \verb|\etalchar|
+$B%3%^%s%I$r!$A0@a$NBh(B\ref{preamble} $B9`L\$G=R$Y$?$h$&$K!$(B
+$B%G!<%?%Y!<%9Cf$N(B{\tt @PREAMBLE}$B$r;H$C$F!$(B
+\LaTeX\ $B$N(B \verb|\renewcommand|$B$rMQ$$$FDj5A$7D>$;$P!$(B`$^{+}$'
+$B$N7A<0$rJQ99$G$-$k!%(B
+
+\item
+{\tt abbrv}$B%9%?%$%k$G$O!$7nL>$H$7$F(B`March'$B$H(B`Sep.'
+$B$NBX$o$j$K(B`Mar.'$B$H(B`Sept.'$B$r;H$&$h$&$K$J$C$?!%(B
+
+\item
+$BI8=`%9%?%$%k$G$O!$(B
+\BibTeX\ $B$N?7$7$$Aj8_;2>H5!G=$r;H$C$F$$$k>l9g$K$O!$(B
+$BB>$NJ88%$r;2>H$7$F$$$k%(%s%H%j$KBP$7$F$O!$(B
+$B;2>H@h$K5-=R$5$l$F$$$k%U%#!<%k%I$N$[$H$s$IA4$F$r(B
+$B>JN,$7!$(B \verb|\cite|$B$r;H$C$F;2>H$r<($9$h$&$K$J$C$F$$$k!%(B
+
+$B$3$l$O;2>H85$,BgIt$JCx:n$N0lItJ,$G$"$k>l9g$K;H$&!%(B
+$B$3$N$h$&$J>u67$H$7$F$O0J2<$N(B5$B$D$,9M$($i$l$k!%(B
+(1) {\tt INPROCEEDINGS}
+($B$"$k$$$O(B{\tt CONFERENCE}, $B$I$A$i$bF1$8$3$H(B)
+$B$,(B{\tt PROCEEDINGS}$B$r;2>H$7$F$$$k(B;
+(2) {\tt BOOK}, (3) {\tt INBOOK},
+$B$"$k$$$O(B(4) {\tt INCOLLECTION}
+$B$,(B{\tt BOOK}$B$r;2>H$7$F$$$k(B
+($BJ#?t4,$+$i$J$k=qJ*$NCf$N$"$k(B1$B4,$,;2>H$7$F$$$k(B);
+(5) {\tt ARTICLE}$B$,(B{\tt ARTICLE}$B$r;2>H$7$F$$$k!%(B
+($B$3$N>l9g$K$O!$;2>H$5$l$F$$$k$b$N$O<B$OO@J8;oA4BN$G$"$k$,!$(B
+$B%(%s%H%j7?$H$7$F(B{\tt JOURNAL}$B$,$J$$$+$i$3$&$9$k!%(B
+$B$3$N;~$K$OO@J8;o$N(B{\tt author}$B$H(B{\tt title}$B$,$J$$$H$$$&(B
+$B7Y9p%a%C%;!<%8$,=PNO$5$l$k$,!$$3$N%a%C%;!<%8$OL5;k$9$l$P$h$$(B)$B!%(B
+
+\item
+{\tt MASTERSTHESIS}$B$H(B{\tt PHDTHESIS}
+$B%(%s%H%j7?$G$O!$G$0U%U%#!<%k%I$H$7$F(B{\tt type}$B$r=q$1$k$h$&$K$J$C$?!%(B
+$B$3$l$K$h$j!$(B
+\begin{verbatim}
+ type = "{Ph.D.} dissertation"
+\end{verbatim}
+$B$H%G!<%?%Y!<%9Cf$K=q$/$3$H$G!$I8=`$N(B `PhD thesis' $B$NBX$o$j$K(B
+`Ph.D.\ dissertation' $B$H$G$-$k$h$&$K$J$C$?!%(B
+
+\item
+$BF1MM$K(B{\tt INBOOK}$B$H(B{\tt INCOLLECTION}
+$B%(%s%H%j7?$G$O!$G$0U%U%#!<%k%I$H$7$F(B{\tt type}$B$r=q$1$k$h$&$K$J$C$?!%(B
+$B$3$l$r;H$($P!$<!$N$h$&$K%G!<%?%Y!<%9$K=q$$$F$*$1$P!$(B
+$BI8=`$N(B `chapter~1.2' $B$NBX$o$j$K!$(B`section~1.2' $B$H$G$-$k!%(B
+\begin{verbatim}
+ chapter = "1.2",
+ type = "Section"
+\end{verbatim}
+
+\item
+{\tt BOOKLET}, {\tt MASTERSTHESIS},
+{\tt TECHREPORT}$B%(%s%H%j7?$G$O!$(B
+{\tt BOOK}$B$N(B{\tt title}$B$N$h$&$K$G$O$J$/!$(B
+{\tt ARTICLE}$B$N(B{\tt title}$B$N$h$&$K!$(B
+$BI=Bj$r%U%)!<%^%C%H(B($B%?%$%W%;%C%H(B)$B$9$k$h$&$K$J$C$?!%(B
+
+\item
+{\tt PROCEEDINGS}$B$H(B{\tt INPROCEEDINGS}
+$B%(%s%H%j7?$G$O!$(B{\tt address}$B%U%#!<%k%I$r=PHG<R!$<g:E<T$N=;=j$r(B
+$B<($9$?$a$K;H$&$N$G$O$J$/!$2q5D$N3+:E$5$l$?>l=j$r<($9$?$a$K;H$&$h$&$K(B
+$B$J$C$?!%(B
+$B=PHG<R!$3+:E<T$N=;=j$rF~$l$?$$$N$G$"$l$P!$(B
+{\tt publisher}$B$+(B{\tt organization}$B%U%#!<%k%I$KF~$l$k$3$H!%(B
+
+\item
+{\tt BOOK}, {\tt INBOOK}, {\tt INCOLLECTION},
+{\tt PROCEEDINGS}$B%(%s%H%j7?$G$O!$(B{\tt volume}$B$@$1$r(B
+$B5v$9$N$G$O$J$/!$(B
+{\tt volume}$B$+(B{\tt number}$B$N$$$:$l$+0lJ}$r5v$9$h$&$K$J$C$?!%(B
+
+\item
+{\tt INCOLLECTION}$B%(%s%H%j7?$G$O!$(B{\tt series}$B$H(B{\tt edition}
+$B%U%#!<%k%I$r5v$9$h$&$K$J$C$?!%(B
+
+\item
+{\tt INPROCEEDINGS}$B$H(B{\tt PROCEEDINGS}
+$B%(%s%H%j7?$G$O!$(B
+{\tt volume}$B$^$?$O(B{\tt number}$B$H(B
+{\tt series}$B$r5v$9$h$&$K$J$C$?!%(B
+
+\item
+{\tt UNPUBLISHED} $B%(%s%H%j7?$G$O!$F|IU>pJs$r8e$KIU$1$F!$(B
+{\tt note}$B%U%#!<%k%I$r(B1$B$D$N%V%m%C%/$H$7$F=PNO$9$k$h$&$K$J$C$?!%(B
+
+\item
+{\tt MANUAL}$B%(%s%H%j7?$G$O!$(B{\tt author}$B%U%#!<%k%I$,(B
+$B6u$G$"$l$P!$(B{\tt organization}$B%U%#!<%k%I$rBh(B1$B%V%m%C%/$H$7$F(B
+$B=PNO$9$k$h$&$K$J$C$?!%(B
+
+\item
+{\tt MISC}$B%(%s%H%j7?$G$O!$A4$F$NG$0U%U%#!<%k%I(B
+($B$9$J$o$AA4$F$N%U%#!<%k%I(B)$B$,6u$N;~$K$O(B
+$B7Y9p%a%C%;!<%8$r=PNO$9$k$h$&$K$J$C$?!%(B
+
+\end{enumerate}
+
+\subsection{\JBibTeX\ $B$NI8=`%9%?%$%k(B}
+
+\JBibTeX\ $B$NI8=`%9%?%$%k$H$7$F$O(B{\tt plain, alpha, abbrv, unsrt}$B$KBP1~$7$F(B
+{\tt jplain, jalpha, jabbrv,\linebreak junsrt}$B$,:n@.$5$l$F$$$k!%$^$?>pJs=hM}3X2q(B
+$BO@J8;o(B{\tt tipsj}, $B>pJs=hM}3X2q2$J8O@J8;o(B{\tt jipsj}, $BEE;R>pJsDL?.3X2qO@J8;o(B{\tt tieice},
+$BF|K\%*%Z%l!<%7%g%s%:%j%5!<%A3X2qO@J8;o(B{\tt jorsj},
+$B?M9)CNG=3X2q(B{\tt jsai}, $B%=%U%H%&%'%"3X2q;o(B{\tt jssst}$BMQ$N%9%?%$%k$b:n@.$5$l$F(B
+$B$$$k!%$3$l$i$N%9%?%$%k$G9T$J$C$F$$$kF|K\8lBP1~$O0J2<$NDL$j$G$"$k(B({\tt jipsj}
+$B$O1Q8l$J$N$G!$JQ99$OI,$:$7$bF|K\8lBP1~$N$?$a$@$1$G$O$J$$(B)$B!%(B
+
+\begin{enumerate}
+\item $BCx<TL>$,F|K\8l$+$I$&$+$GL>A0$N%U%)!<%^%C%H$NJ}K!$rJQ$($k!%(B
+
+\item $BCx:nL>$KF|K\8l$,4^$^$l$k>l9g$K$O6/D4;XDj$rIU$1$J$$!%(B
+
+\item $B%Z!<%8HO0O;XDj$r(B{\tt Page}, {\tt Pages}$B$+$i(B{\tt p.}, {\tt pp.}$B$K(B
+$BJQ99$7$?!%%J%s%P!<;XDj!$%\%j%e!<%`;XDj$r(B{\tt No.}, {\tt Vol.}$B$KJQ99$7$?!%(B
+
+\item $B%=!<%F%#%s%0%-!<$r:n$k;~$K$O!$(B{\tt yomi}$B%U%#!<%k%I$,$"$l$P$=$N>pJs$r(B
+$BCx<TL>!$JT=8<TL>$NBe$j$K;H$&!%(B
+\end{enumerate}
+
+\section{$B%G!<%?%Y!<%9$N%(%s%H%j(B}
+\label{latex-appendix}
+
+$BK\@a$O(B\LaTeX\ book~\cite{latex},
+\copyright~1986, by Addison-Wesley $B$NIUO?(BB.2$B$NC1$J$k=$@5HG$G$"$k!%(B
+$B4pK\9=@.$OF1$8$G$"$j!$:YL\$,>/$7JQ99$5$l$F$$$k!%(B
+
+\subsection{$B%(%s%H%j$N7?(B}
+
+$B;29MJ88%$r%G!<%?%Y!<%9$KEPO?$9$k>l9g$K0lHV:G=i$K7h$a$J$1$l$P(B
+$B$J$i$J$$$3$H$O!$$=$N7?(B($B<oN`(B)$B$G$"$k!%40A4$J7h$^$C$?$d$jJ}$O$J$$$,!$(B
+\BibTeX\ $B$[$H$s$I$9$Y$F$NJ88%$r9gM}E*$K07$&$?$a$N%(%s%H%j$N7?$r(B
+$BMQ0U$7$F$$$k!%(B
+
+$BJ88%$N=PHG7ABV$,0[$J$l$P$=$l$,;}$C$F$$$k>pJs$b0[$J$k!%(B
+$BO@J8;o$KH/I=$5$l$?$b$N$K$OO@J8;o$N4,?t(B(volume)$B$HHV9f(B(number)$B$,$"$k$,!$(B
+$BK\$N>l9g$K$O$3$l$i$ODL>o0UL#$,$J$$!%(B
+$B=>$C$F0[$J$C$?%(%s%H%j7?Kh$K0[$J$C$?%U%#!<%k%I$,$"$k!%(B
+$B%(%s%H%j$N7?Kh$K%U%#!<%k%I$O0J2<$N(B3$B$D$KJ,N`$5$l$k!%(B
+\begin{description}
+
+\item[$BI,?\(B]
+$B$3$l$,7gMn$7$F$$$k$H7Y9p%a%C%;!<%8$,=PNO$5$l!$$^$l$K$G$O$"$k$,(B
+$BJ88%%j%9%H$,JQ$J7A$K=PNO$5$l$k!%(B
+$B$b$7I,?\$J>pJs$,0UL#$r;}$?$J$$$N$G$"$l$P!$4V0c$C$?7?$r;XDj$7$F$$$k$N$G$"$k!%(B
+$BI,?\$J>pJs$,0UL#$r;}$D$N$G$"$k$,!$B>$N%U%#!<%k%I$K$=$l$,5-=R$5$l$F$$$k(B
+$B>l9g$K$O7Y9p%a%C%;!<%8$rL5;k$9$l$P$h$$!%(B
+
+\item[$BG$0U(B]
+$B$3$N%U%#!<%k%I$O!$$b$7$"$l$P;H$o$l$k$,!$2?$NLdBj$b$J$7$K>JN,$G$-$k!%(B
+$B$b$7$3$l$i$N%U%#!<%k%I$N>pJs$,FI<T$r=u$1$k$N$G$"$l$P!$(B
+$B$3$l$r>JN,$7$J$$J}$,$h$$!%(B
+
+\item[$BL5;k$5$l$k(B]
+$B$3$N%U%#!<%k%I$OL5;k$5$l$k!%(B
+\BibTeX\ $B$OI,?\$"$k$$$OG$0U$N%U%#!<%k%I0J30$OL5;k$9$k$+$i!$(B{\tt bib}$B%U%!%$%k(B
+$B$K$O9%$-$J%U%#!<%k%I$r=q$$$F$h$$!%(B
+$B;29MJ88%%j%9%H$K$O=PNO$5$l$J$$$+$b$7$l$J$$$,!$(B
+$BJ88%$K4XO"$9$k$9$Y$F$N>pJs$r(B{\tt bib}$B%U%!%$%k$K=q$$$F$*$/$H$h$$!%(B
+$BNc$($P!$O@J8$N%"%V%9%H%i%/%H$r%3%s%T%e!<%?$N%U%!%$%k$K$H$C$F$*$/$N$G$"$l$P!$(B
+{\tt bib}$B%U%!%$%kCf$N(B{\tt abstract}$B%U%#!<%k%I$KF~$l$F$*$1$P$h$$!%(B
+{\tt bib}$B%U%!%$%k$O%"%V%9%H%i%/%H$rF~$l$FCV$/$K$A$g$&$I$h$$>l=j$G$"$j!$(B
+$B%"%V%9%H%i%/%HIU$-$NJ88%%j%9%H$r:n@.$9$k%9%?%$%k$r:n$k$3$H$b$G$-$k!%(B
+
+{\dg $BCm0U(B}$B!'%U%#!<%k%IL>$r%_%9%9%Z%k$9$k$H$=$N%U%#!<%k%I$OL5;k$5$l$k!%(B
+$BFC$KG$0U%U%#!<%k%I$N>l9g$K$O(B\BibTeX\ $B$O7Y9p%a%C%;!<%8$r=P$5$J$$$+$i!$(B
+$B%?%$%W%_%9$KCm0U$7$J$1$l$P$J$i$J$$!%(B
+
+\end{description}
+
+$B0J2<$G3F!9$N%(%s%H%j$N7?$K$D$$$F@bL@$r9T$&!%(B
+$BF1;~$K!$J88%%j%9%H$N9`L\$H$7$FJB$Y$i$l$k=gHV$K(B
+($B%(%s%H%j7?$K$h$C$F$OFCDj$N%U%#!<%k%I$N$"$k$J$7$G<c43=gHV$,0[$J$k$3$H$b$"$k$,(B)
+$BI,?\%U%#!<%k%I!$G$0U%U%#!<%k%I$r<($9!%(B
+$B$3$l$i%(%s%H%j$N7?$O!$(B{\em Scribe}$B%7%9%F%`$N$?$a$K(BBrian Reid$B$,(B
+$B:NMQ$7$?(Bvan~Leunen~\cite{van-leunen}$B$NJ,N`$HF1$8$b$N$G$"$k!%(B
+$B8D!9$N%U%#!<%k%I$N0UL#$K$D$$$F$O<!@a$G@bL@$9$k!%(B
+$BI8=`0J30$N%9%?%$%k$G$OG$0U%U%#!<%k%I$N$$$/$D$+$rL5;k$9$k$3$H$,$"$k!%(B
+{\tt bib}$B%U%!%$%kCf$G$O%(%s%H%j$N7?$NA0$K(B{\tt @}$BJ8;z$r(B
+$BIU$1$k$N$rK:$l$F$O$J$i$J$$!%(B
+
+
+\begin{description}
+\sloppy
+
+\item[article\hfill] $BO@J8;oCf$NO@J8!$;(;o$N5-;v!%(B
+$BI,?\%U%#!<%k%I!'(B{\tt author}, {\tt title}, {\tt journal},
+{\tt year}.
+$BG$0U%U%#!<%k%I!'(B{\tt volume}, {\tt number},
+{\tt pages}, {\tt month}, {\tt note}.
+
+\item[book\hfill] $B=PHG<gBN$,L@3N$JK\!%(B
+$BI,?\%U%#!<%k%I!'(B{\tt author}$B$^$?$O(B{\tt editor},
+{\tt title}, {\tt publisher}, {\tt year}.
+$BG$0U%U%#!<%k%I!'(B{\tt volume}$B$^$?$O(B{\tt number}, {\tt series},
+{\tt address}, {\tt edition}, {\tt month},
+{\tt note}.
+
+\item[booklet\hfill] $B0u:~!$@=K\$5$l$F$$$k$,!$=PHG<T$"$k$$$O%9%]%s%5!<(B
+$B$NL>A0$,$J$$$b$N!%(B
+$BI,?\%U%#!<%k%I!'(B{\tt title}.
+$BG$0U%U%#!<%k%I!'(B{\tt author}, {\tt howpublished},
+{\tt address}, {\tt month}, {\tt year}, {\tt note}.
+
+\item[conference\hfill] {\tt INPROCEEDINGS}$B$HF1$8!%(B
+{\em Scribe\/}$B$H$N8_49@-$N$?$a!%(B
+
+\item[inbook\hfill] $B>O(B($B$"$k$$$O@a$J$I$N(B)$BK\$N0lItJ,$+$D(B/$B$^$?$O(B(and/or)
+$BK\$N$"$k%Z!<%8HO0O!%(B
+$BI,?\%U%#!<%k%I!'(B{\tt author}$B$"$k$$$O(B{\tt editor}, {\tt title},
+{\tt chapter}$B$+$D(B/$B$^$?$O(B{\tt pages}, {\tt publisher},
+{\tt year}.
+$BG$0U%U%#!<%k%I!'(B{\tt volume}$B$^$?$O(B{\tt number}, {\tt series},
+{\tt type}, {\tt address},
+{\tt edition}, {\tt month}, {\tt note}.
+
+\item[incollection\hfill] $B$=$l<+?H$NI=Bj$r;}$DK\$N0lIt!%(B
+$BI,?\%U%#!<%k%I!'(B{\tt author}, {\tt title}, {\tt booktitle},
+{\tt publisher}, {\tt year}.
+$BG$0U%U%#!<%k%I!'(B{\tt editor}, {\tt volume}$B$^$?$O(B{\tt number},
+{\tt series}, {\tt type}, {\tt chapter}, {\tt pages},
+{\tt address}, {\tt edition}, {\tt month}, {\tt note}.
+
+\item[inproceedings\hfill] $B2q5DO?Cf$NO@J8!%(B
+$BI,?\%U%#!<%k%I!'(B{\tt author}, {\tt title}, {\tt booktitle},
+{\tt year}.
+$BG$0U%U%#!<%k%I!'(B{\tt editor}, {\tt volume}$B$^$?$O(B{\tt number},
+{\tt series}, {\tt pages}, {\tt address}, {\tt month},
+{\tt organization}, {\tt publisher}, {\tt note}.
+
+\item[manual\hfill] $B%^%K%e%"%k!%(B
+$BI,?\%U%#!<%k%I!'(B{\tt title}.
+$BG$0U%U%#!<%k%I!'(B{\tt author}, {\tt organization},
+{\tt address}, {\tt edition}, {\tt month}, {\tt year},
+{\tt note}.
+
+\item[mastersthesis\hfill] $B=$;NO@J8!%(B
+$BI,?\%U%#!<%k%I!'(B{\tt author}, {\tt title}, {\tt school},
+{\tt year}.
+$BG$0U%U%#!<%k%I!'(B{\tt type}, {\tt address}, {\tt month},
+{\tt note}.
+
+\item[misc\hfill] $BB>$N$I$l$bEv$F$O$^$i$J$$;~$K;H$&!%(B
+$BI,?\%U%#!<%k%I!'$J$7!%(B
+$BG$0U%U%#!<%k%I!'(B{\tt author}, {\tt title}, {\tt howpublished},
+{\tt month}, {\tt year}, {\tt note}.
+
+\item[phdthesis\hfill] $BGn;NO@J8!%(B
+$BI,?\%U%#!<%k%I!'(B{\tt author}, {\tt title}, {\tt school},
+{\tt year}.
+$BG$0U%U%#!<%k%I!'(B{\tt type}, {\tt address}, {\tt month},
+{\tt note}.
+
+\item[proceedings\hfill] $B2q5DO?!%(B
+$BI,?\%U%#!<%k%I!'(B{\tt title}, {\tt year}.
+$BG$0U%U%#!<%k%I!'(B{\tt editor}, {\tt volume}$B$^$?$O(B{\tt number},
+{\tt series}, {\tt address}, {\tt month},
+{\tt organization}, {\tt publisher}, {\tt note}.
+
+
+\item[techreport\hfill] $B3X9;$J$I$GH/9T$5$l$F$$$k%F%/%K%+%k%l%]!<%H$G$"$j!$(B
+$BDL>o$ODLHV$r;}$D!%(B
+$BI,?\%U%#!<%k%I!'(B{\tt author},
+{\tt title}, {\tt institution}, {\tt year}.
+$BG$0U%U%#!<%k%I!'(B{\tt type}, {\tt number}, {\tt address},
+{\tt month}, {\tt note}.
+
+\item[unpublished\hfill] $B@5<0$K$O<gHG$5$l$F$$$J$$$,!$Cx<T!$I=Bj$N$"$kCx:nJ*!%(B
+$BI,?\%U%#!<%k%I!'(B{\tt author}, {\tt title}, {\tt note}.
+$BG$0U%U%#!<%k%I!'(B{\tt month}, {\tt year}.
+
+\end{description}
+
+$B>e$K<($7$?%U%#!<%k%I$K2C$($F!$3F!9$N%(%s%H%j7?$G$OG$0U%U%#!<%k%I$H$7$F(B
+{\tt key}$B$,$"$j!$%9%?%$%k$K$h$C$F$OJB$YBX$(!$Aj8_;2>H!$(B
+$B$"$k$$$O(B \verb|\bibitem|$B$r:n$k$N$K;H$o$l$k!%(B
+$B$^$?!$!VCx<T!W>pJs$,7g$1$F$$$k%(%s%H%j$KBP$7$F$OI,$:(B{\tt key}$B%U%#!<%k%I(B
+$B$rF~$l$F$*$+$J$$$H$$$1$J$$!%(B
+$B!VCx<T!W$ODL>o$O(B{\tt author}$B%U%#!<%k%I$K=q$/$,!$(B
+$B%(%s%H%j$N7?$K$h$C$F$O!$(B{\tt editor}$B%U%#!<%k%I(B
+$B$G$"$C$?$j!$$"$k$$$O(B{\tt organization}$B%U%#!<%k%I$G$"$C$?$j$b$9$k(B
+($BBh(B\ref{odds-and-ends} $B@a$G$b$C$H>\$7$/@bL@$9$k(B)$B!%(B
+{\tt key}$B%U%#!<%k%I$r(B \verb|\cite|$B$K8=$l$k%G!<%?%Y!<%9$N%(%s%H%j$N(B $B:G=i$K=q$/%-!<$H:.F1$7$F$O$J$i$J$$!%$3$N9`L\$,(B ``key'' $B$H$$$&L>A0(B
+$B$J$N$O(B{\it Scribe}$B$H$N8_49@-$N$?$a$G$"$k!%(B
+
+\vskip\baselineskip
+{\dg\bf \JBibTeX\ $B$G$NCm0U(B}$B!'(B\JBibTeX\ $B$NI8=`%9%?%$%k$G$O(B
+$B0J2<$K<($5$l$F$$$k%U%#!<%k%I$NB>$K!$G$0U%U%#!<%k%I$H$7$F!$(B
+$B4A;z%3!<%II=5-$5$l$?Cx<TL>$N!VFI$_!W$r=q$/$?$a$N%U%#!<%k%I$H$7$F(B
+{\tt yomi}$B$,$"$k!%(B
+
+\subsection{$B%U%#!<%k%I(B}
+
+$BI8=`%9%?%$%k$GG'<1$5$l$k%U%#!<%k%I$r0J2<$K<($9!%(B
+$BI8=`%9%?%$%k$G$OL5;k$5$l$k$,!$$3$NB>$NG$0U$N%U%#!<%k%I$r(B
+$B=q$$$F$b$h$$(B\trnote{\JBibTeX\ $B$NI8=`%9%?%$%kMQ$K(B{\tt yomi}$B%U%#!<%k%I$,(B
+$BDI2C$5$l$F$$$k!%(B}
+
+\begin{description}
+
+\item[address\hfill]
+$BDL>o$O(B{\tt publisher}$B$J$I$N=;=j$r=q$/!%(B
+van~Leunen$B$O!$Bg$-$J=PHG<R$KBP$7$F$O$3$l$r>JN,$9$k$3$H$r4+$a$F$$$k!%(B
+$BB>J}!$>.$5$J=PHG<R$KBP$7$F$O!$FI<T$NJX$r9M$($F!$40A4$J=;=j$r=q$/$H$h$$!%(B
+
+\item[annote\hfill]
+$BCm<a!%(B
+$BI8=`$N%9%?%$%k$G$O;H$o$l$J$$$,!$B>$NCm<a$D$-$N;29MJ88%%9%?%$%k$G;H$o$l$k!%(B
+
+\item[author\hfill]
+$BCx<TL>$G$"$j!$(B\LaTeX\ book$B$K@bL@$5$l$F$$$k$h$&$K=q$/(B\trnote{\JBibTeX\ $B$G$O!$(B
+$B4A;z%3!<%ICx<TL>$N@+$HL>$N4V$K$O%9%Z!<%9(B($BH>3Q$G$bA43Q$G$b(B)$B$rCV$/$3$H$,(B
+$BK>$^$7$$(B($B%9%Z!<%9$,$J$$$H(B{\tt jabbrv}$B%9%?%$%k$J$I>JN,7A$,4pK\$N%9%?%$%k$N(B
+$B;~$K@+$@$1$K$J$i$J$$(B)$B!%(B}$B!%(B
+
+\item[booktitle\hfill]
+$B0lItJ,$r0zMQ$9$kK\$NI=Bj!%(B
+$B5-=R$NJ}K!$K$D$$$F$O(B\LaTeX\ book$B$r;2>H$N$3$H!%(B
+$B%(%s%H%j7?$,K\(B({\tt book})$B$N>l9g$K$O(B{\tt title}$B$r;H$&!%(B
+
+\item[chapter\hfill]
+$B>O(B($B$"$k$$$O@a$J$I$N(B)$BHV9f!%(B
+
+\item[crossref\hfill]
+$B;2>H$9$kJ88%$N%G!<%?%Y!<%9%-!<!%(B
+
+\item[edition\hfill]
+$BK\$NHG(B---$BNc$($P(B ``Second''$B!%(B
+($BF|K\8l0J30$G$O(B)$B=g=x?t$G=q$/$3$H!$$^$?:G=i$NJ8;z$O>e5-$NNc$N$h$&$K(B
+$BBgJ8;z$N$3$H!%I,MW$G$"$l$PI8=`%9%?%$%k$,<+F0E*$K>.J8;z$KJQ49$9$k!%(B
+
+\item[editor\hfill]
+$BJT=8<T$NL>A0$r(B\LaTeX\ book$B$N@bL@$N$h$&$K=q$/!%(B
+{\tt author}$B%U%#!<%k%I$b$"$k>l9g$K$O!$$3$3$K$OO@J8$,:\$C$F$$$k(B
+$BK\$"$k$$$OO@J8=8$NJT=8<TL>$r=q$/(B\trnote{\JBibTeX\ $B$G$O!$(B
+$BJT=8<TL>$N@+$HL>$N4V$K$O%9%Z!<%9$rCV$/$3$H$,K>$^$7$$(B($B%9%Z!<%9$,(B
+$B$J$$$H(B{\tt jabbrv}$B%9%?%$%k$N;~$K@+$@$1$K$J$i$J$$(B)$B!%(B}$B!%(B
+
+\item[howpublished\hfill]
+$B$3$N4qL/$JCx:n$,$I$N$h$&$K$7$F=PHG$5$l$?$+!%(B
+$B:G=i$NJ8;z$OBgJ8;z$G$J$1$l$P$J$i$J$$!%(B
+
+\item[institution\hfill]
+$B%F%/%K%+%k%l%]!<%H$N%9%]%s%5!<L>!%(B
+
+\item[journal\hfill]
+$BO@J8;o$NL>A0!%(B
+$BB?$/$NO@J8;o$N>JN,7A$,MQ0U$5$l$F$$$k!%(B
+{\it Local Guide}$B$r;2>H$N$3$H!%(B
+
+\item[key\hfill]
+$BCx<T$K4X$9$k>pJs(B($BBh(B\ref{odds-and-ends} $B@a;2>H(B)$B$,$J$$;~$K(B
+$B%=!<%F%#%s%0!$Aj8_;2>H!$%i%Y%k:n@.$N=hM}$K;H$o$l$k!%(B
+$B$3$N%U%#!<%k%I$r!$%G!<%?%Y!<%9%(%s%H%j$N(B
+$B:G=i$N9`L\$G$"$k(B \verb|\cite|$B$G;H$&%-!<$H:.F1$7$F$O$J$i$J$$!%(B
+
+\item[month\hfill]
+$BCx:nJ*$,=PHG$5$l$?7n!%L$=PHG$G$"$l$P=q$+$l$?7n!%(B
+\LaTeX\ book$B$NIUO?(BB.1.3$B$K<($5$l$F$$$k(B3$BJ8;z$N>JN,7A$r;H$&$3$H(B\trnote{
+$BG0$N$?$a$KNs5s$9$k$H(B{\tt jan, feb, mar, apr, may, jun,
+jul, aug, sep, oct, nov, dec}}$B!%(B
+
+\item[note\hfill]
+$BFI<T$r=u$1$kIU2CE*$J>pJs$r5-=R$9$k!%(B
+$B:G=i$NJ8;z$OBgJ8;z$G$J$1$l$P$J$i$J$$!%(B
+
+\item[number\hfill]
+$BO@J8;o!$;(;o!$%F%/%K%+%k%l%]!<%H$"$k$$$O0lO"$NCx:n$NHV9f!%(B
+$BDL>o!$O@J8;o!$;(;o$NFCDj$N9f$O4,?t$HHV9f$G<1JL$5$l!$%F%/%K%+%k%l%]!<%H(B
+$B$rH/9T$7$F$$$k5!4X$O%l%]!<%H$KHV9f$r?6$C$F$$$k!%$^$?%7%j!<%:$N(B
+$BK\$K$bHV9f$,$"$k!%(B
+
+\item[organization\hfill]
+$B2q5D$N%9%]%s%5!<$"$k$$$O%^%K%e%"%k(B{\tt manual}$B$r=PHG$7$?5!4X$NL>>N!%(B
+
+\item[pages\hfill]
+{\tt 42--111}, {\tt 7,41,73--97}, {\tt 43+}$B$J$I$N(B($B$$$/$D$+$N(B)$B%Z!<%8$"$k$$$O(B
+$B%Z!<%8HO0O(B($B:G8e$NNc$O8eB3%Z!<%8$,C1=c$JHO0O$G$J$$$3$H$r<($9(B)$B!%(B
+{\em Scribe}$B8_49$N%G!<%?%Y!<%9$N0];}$r4JC1$K$9$k$?$a!$I8=`$N%9%?%$%k$G$O(B
+{\tt 7-33}$B$N$h$&$J%@%C%7%e(B1$B$D$N7A<0$r(B\TeX\ $B$G$N?tCMHO0O$N;XDj7A<0$G$"$k(B
+{\tt 7--33}$B$N$h$&$J%@%C%7%e(B2$B$D$K<+F0E*$KJQ49$9$k!%(B
+
+\item[publisher\hfill]
+$B=PHG<gBN$NL>>N!%(B
+
+\item[school\hfill]
+$B=$;NO@J8!$Gn;NO@J8$,=q$+$l$?(B($BDs=P$5$l$?(B)$BBg3XL>!%(B
+
+\item[series\hfill]
+$B0lO"$N=qJ*$N%7%j!<%:L>!$%;%C%HL>!%(B
+$BK\A4BN$r0zMQ$9$k>l9g$K$O!$(B{\tt title}$B%U%#!<%k%I$K$=$NK\$N(B
+$BI=Bj$r=q$-!$G$0U%U%#!<%k%I$G$"$k(B{\tt series}$B$K%7%j!<%:L>(B
+$B$"$k$$$OJ#?t4,$N=qJ*$NBjL>$r=q$/!%(B
+
+\item[title\hfill]
+$BCx:n$NI=Bj!%(B\LaTeX\ book$B$N@bL@$N$h$&$K%?%$%W%;%C%H$5$l$k!%(B
+
+\item[type\hfill]
+$B%F%/%K%+%k%l%]!<%H$N<oN`(B---$BNc$($P(B ``Research Note''$B!%(B
+
+\item[volume\hfill]
+$BO@J8;o$"$k$$$OJ#?t4,$N=qJ*$N4,?t!%(B
+
+\item[year\hfill]
+$BCx:nJ*$,=PHG$5$l$?G/!%L$=PHG$G$"$l$P=q$+$l$?G/!%(B
+$BI8=`%9%?%$%k$O!$(B`{(about 1984)}' $B$N$h$&$J!$$I$s$J7A$G$b(B{\tt year}$B%U%#!<%k%I(B
+$B$K5v$9$,!$6h@Z$jJ8;z0J30$N:G8e$N(B4$BJ8;z$O!$(B
+$BDL>o$O(B{\tt 1984}$B$N$h$&$J(B4$B$D$N?t;z$+$i9=@.$5$l$F$$$J$/$F$O$J$i$J$$!%(B
+
+\item[yomi\hfill]{\dg\bf\JBibTeX\ $B$N$_$G0UL#$r;}$D(B}$B!%(B
+$BCx<T(B($BJT=8<T(B)$BL>$,F|K\8lJ8;z$N;~$K%=!<%H!$%i%Y%k:n@.$,$&$^$/$$$/$h$&$K(B
+$B4A;z%3!<%I;aL>$NBe$j$K;H$&%U%#!<%k%I$G$"$j!$%m!<%^;zI=5-$7$?@+L>$rCx<TL>$J$I$H(B
+$BF1$8=q$-J}$G5-=R$9$k(B($B$R$i$,$J$G=q$$$F8^==2;=g$K%=!<%H$7$?$j$b$G$-$k(B)$B!%(B
+$BNc$r<($9!%(B
+\begin{verbatim}
+ author="$B>>0f(B $B@50l(B and $B9b66(B $B@?(B",
+ yomi="Shouichi Matsui and Makoto Takahasi"
+\end{verbatim}
+\end{description}
+\newpage
+
+\section{$B%R%s%H(B}
+\label{odds-and-ends}
+
+$BK\@a$G$O!$B>$G$O>\$7$/@bL@$5$l$F$$$J$$;v9`$r2r@b$9$k!%(B
+$B4JC1$J$b$N$+$i=g$K@bL@$9$k!%(B
+$B$=$NA0$K@h$:8}>e$r=R$Y$?$$!%(B
+
+$B;29MJ88%$N%?%$%W%;%C%H%9%?%$%k$NA*Br$NM>CO$O>/$J$$!%O@J8;o(B$X$$B$O(B$Y$$B$N(B
+$B%9%?%$%k$r;XDj$9$k$7!$$^$?JL$NO@J8;o$OJL$N$b$N$r;XDj$9$k!%(B
+$B$7$+$7!$A*Br$NM>CO$,$"$k$N$G$"$l$P!$(B{\tt plain}$BI8=`%9%?%$%k$r;H$&$3$H$r(B
+$B4+$a$k!%(B
+$B$3$N%9%?%$%k$O!$B>$N$b$N$h$j6qBNE*$G@8$-@8$-$7$?!$$h$jNI$$Cx:n$H(B
+$B$J$k$H(Bvan~Leunen~\cite{van-leunen}$B$O<gD%$7$F$$$k!%(B
+
+$BB>J}$G!$(B
+{\em The Chicago Manual of Style\/}~\cite{chicago},
+$B$O0zMQ$,K\J8Cf$K(B `(Jones, 1986)' $B$N$h$&$K(B
+$B8=$l$k!VCx<T(B-$BG/7nF|7A<0(B(author-date)$B!W$r?d>)$7$F$$$k!%(B
+$B$7$+$7!$;d$O$3$N$h$&$JJ}<0$O4XO"$9$k(B/$B$7$J$$>pJs$,;6Mp$9$k$@$1$G$J$/!$(B
+$BK\J8$,GyA3$H$7!$$?$$$7$?$3$H$G$O$J$$$+$bCN$l$J$$$,<uF0BV$d[#Kf$JJ8$,B?$/$J$k$H(B
+$B9M$($k!%$5$i$K%3%s%T%e!<%?%?%$%W%;%C%H$N=P8=$K$h$j!$(B
+$B!V$3$l$,:G$b<BMQE*$JJ}K!$G$"$k!W$H$$$C$?5DO@$O(B
+$B$^$C$?$/0UL#$N$J$$$b$N$H$J$C$?$H9M$($k!%(B
+$BNc$($P!$(B{\em Chicago Manual\/}$B$N(B401$B%Z!<%8$NCf$4$m$K=R$Y$i$l$F$$$k!$(B
+$B!V(B{\tt plain}$B$N$h$&$J%9%?%$%k$N7gE@$O!$%?%$%W$7$?8e$G$O!$(B
+$B0zMQJ88%$NDI2C!&:o=|$N$?$a$K$O!$(B
+$B;29MJ88%%j%9%H$N=$@5$@$1$G$J$/!$K\J8Cf$NHV9f$N=$@5$,I,MW$J$3$H$G$"$k!W(B
+$B$H$$$C$?<gD%$O$^$C$?$/$N;~Be:x8m$H$$$($k!%(B
+\LaTeX\ $B$r;H$($P7gE@$G$O$J$$$3$H$OL@$i$+$G$"$k!%(B
+
+$B:G8e$K!$(B
+$B!VCx<TL>(B-$BG/7nF|7A<0!W$NO@M}E*7g4Y$O$=$N$?$a$N%W%m%0%i%`$r:n@.$7$F$_$k$H(B
+$BHs>o$KL@Gr$K$J$k!%Nc$($P!$B??t$N;29MJ88%%j%9%H$rIaDL$K%"%k%U%!%Y%C%H=g(B
+$B$KJB$Y$?;~$K!$(B`(Aho et~al., 1983b)' $B$,(B `(Aho et~al., 1983a)' $B$NH>%Z!<%8(B
+$B$b8e$KJB$V$3$H$,$"$k!%(B
+$B$3$l$r=$@5$9$k$H$b$C$H0-$/$J$k$3$H$b$"$k!%(B
+$B$J$s$F$3$C$?!%(B
+($BHa$7$$$3$H$K!$;d$O$=$&$$$C$?%9%?%$%k$r%W%m%0%i%`$7$?$3$H$,$"$k!%(B
+$B0$Jr$J=PHG<T$N$;$$$G!$$"$k$$$O;d$N<gD%$KF1D4$;$:$K!$$3$N$h$&$J(B
+$B%9%?%$%k$r;H$$$?$$$N$G$"$l$P!$(B
+$B$3$NJ}<0$N%9%?%$%k$O(BRochester style collection$B$+$iF~<j2DG=$G$"$k!%(B)
+
+$BA08}>e$,D9$/$J$C$F$7$^$C$?$,!$;d$N5$J,$ONI$/$J$j!$7l05$b@5>o$KLa$C$?!%(B
+$B0J2<$KI8=`%9%?%$%k$G(B\BibTeX\ $B$r;H$&;~$N%R%s%H$r<($9(B($BI8=`0J30$N%9%?%$%k$G$b(B
+$BB?$/$N;vJA$,$"$F$O$^$k(B)$B!%(B
+
+\begin{enumerate}
+
+\item
+\BibTeX\ $B$N%9%?%$%k@_7W8@8l$r;H$($P!$;29MJ88%$N%j%9%H:n@.0J30$K$b!$(B
+$B0lHLE*$J%G!<%?%Y!<%9A`:n$N$?$a$N%W%m%0%i%`$r:n$k$3$H$,$G$-$k!%(B
+$B$3$l$r;H$C$F%G!<%?%Y!<%9Cf$N$9$Y$F$NJ88%$N%G!<%?%Y!<%9%-!<(B/$BCx<T$N(B
+$B:w0z$r@8@.$9$k%W%m%0%i%`$r:n$k$3$H$O!$$3$N8@8l$K@:DL$7$F$$$l$P4JC1$J(B
+$B$3$H$G$"$k!%(B
+$B$I$s$J%D!<%k$,MQ0U$5$l$F$$$k$+$K$D$$$F$O(B{\em Local Guide\/}
+$B$r;2>H$5$l$?$$!%(B
+
+\item
+$BI8=`%9%?%$%k$G;H$C$F$$$k(B13$B8D$N%(%s%H%j7?$G$[$H$s$I$NJ88%$r$&$^$/(B
+$B%U%)!<%^%C%H$G$-$k$,!$(B13$B8D$@$1$G$J$s$G$b$&$^$/$G$-$k$o$1$G$O$J$$!%(B
+$B$7$?$,$C$F!$%(%s%H%j7?$N;H$$J,$1$r9)IW$9$k$H$h$$(B($B$7$+$7!$(B
+$BM>$j$K$$$m$s$J7?$r;n$7$F$_$J$$$H$&$^$/$$$+$J$$$N$O!$(B
+$B%(%s%H%j$N7?$,4V0c$C$F$$$k$3$H$,B?$$(B)$B!%(B
+
+\item
+$B%U%#!<%k%IL>$O873J$K9M$($J$/$F$h$$!%(B
+$BNc$($P!$=PHG<T$N=;=j$r(B{\tt address}$B%U%#!<%k%I$G$O$J$/!$(B
+$BL>A0$H$H$b$K(B{\tt publisher}$B%U%#!<%k%I$KF~$l$k$3$H$b$G$-$k!%(B
+$B$"$k$$$O!$J#;($J7A<0$NJ88%$K$O(B{\tt note}$B%U%#!<%k%I$r$&$^$/;H$&$3$H$G(B
+$BBP=h$G$-$k!%(B
+
+\item
+$B7Y9p%a%C%;!<%8$O?<9o$K9M$($kI,MW$O$J$$!%(B
+$BNc$($P(B{\em The 1966 World Gnus Almanac}$B$N$h$&$K!$I=Bj$KG/$,(B
+$BF~$C$F$$$kJ88%$G$O!$(B{\tt year}$B%U%#!<%k%I$O>JN,$7$?J}$,$h$/!$(B
+\BibTeX\ $B$N7Y9p%a%C%;!<%8$OL5;k$7$F$h$$!%(B
+
+\item
+{\tt author}, {\tt editor}$B$NL>A0$,M>$j$KB?$$;~$K$OL>A0%j%9%H$r(B
+``and others'' $B$G=*$j$K$7$F$*$1$P!$I8=`%9%?%$%k$G$O(B
+``et~al.'' $B$K<+F0E*$KJQ49$5$l$k(B\trnote{\JBibTeX $B$G$O!$(B
+$B4A;z%3!<%ICx<T$J$i(B ``$B$[$+(B'' $B$KJQ49$5$l$k!%(B}$B!%(B
+
+\item
+$B0lHL$K!$(B\BibTeX\ $B$,BgJ8;z$r>.J8;z$K<+F0E*$KJQ49$9$k$N$r(B
+$B;_$a$5$;$?$+$C$?$i!$Cf3g8L(B({\tt \{ \}})$B$G0O$a$P$h$$!%(B
+$B$7$+$7!$:8Cf3g8L$KB3$/:G=i$NJ8;z$,%P%C%/%9%i%C%7%e$G$"$k$H!$(B
+$BJQ49$5$l$k$3$H$b$"$k!%(B
+$B!VFC<lJ8;z!W$N$H$3$m$G:F$S@bL@$9$k!%(B
+
+\item
+{\em Scribe\/}$B$H$N8_49@-$N$?$a!$%G!<%?%Y!<%9%U%!%$%kCf$K(B {\tt @COMMENT}
+$B%3%^%s%I$r=q$/$3$H$,$G$-$k!%(B
+\BibTeX\ $B$O%G!<%?%Y!<%9%U%!%$%kCf$G$O%(%s%H%j$NFbB&(B
+$B0J30$J$i$I$3$K$G$b%3%a%s%H$r=q$/$3$H$r5v$9$+$i!$(B
+$B<B:]$K$O$3$N%3%^%s%I$OITMW$G$"$k!%(B
+$B$"$k%(%s%H%j$r%3%a%s%H%"%&%H$9$k$K$O!$C1$K%(%s%H%j$N7?$N(B
+$BA0$N(B{\tt @}$BJ8;z$r<h$j=|$1$P$h$$!%(B
+
+\item
+$BI8=`%9%?%$%k%U%!%$%kCf$K$O7W;;5!2J3X4X78$NO@J8;o$N(B
+$B>JN,7A$,$$$/$D$+F~$l$F$"$k$,!$$3$l$O$"$/$^$G$bNc$G$"$k!%(B
+$B$3$l$H0[$J$kO@J8;o$N>JN,7A$O(B {\tt @STRING}$B%3%^%s%I$r(B
+$B;H$C$F!$8D?M$N%G!<%?%Y!<%9$GDj5A$9$k$N$,$h$$!%(B
+$B$=$7$F(B\LaTeX\ $B$N(B \verb|\bibliography|$B;XDj$N:G=i$N0z?t$H$7$F!$(B
+$B$3$N>JN,7A$NF~$C$?%G!<%?%Y!<%9$r5-=R$9$l$P$h$$!%(B
+
+\item
+$B!V7n!W$K4X$7$F$O!$<+J,$G7nL>$r=q$+$:$K!$(B3$BJ8;z$N>JN,7A$r;H$&$N$,$h$$!%(B
+$B$=$&$9$l$P@09gE*$J7A<0$H$J$k!%(B
+$B!VF|!W$N>pJs$b4^$a$?$$>l9g$K$O(B{\tt month}$B%U%#!<%k%I$K=q$/!%Nc$($P!$(B
+\begin{verbatim}
+ month = jul # "~4,"
+\end{verbatim}
+$B$H$9$l$P!$K>$_$N7k2L$,F@$i$l$k!%(B
+
+\item
+($B;29MJ88%$,0zMQ=g$KNs5s$5$l$k(B) {\tt unsrt}$B%9%?%$%k$r(B \verb|\nocite{*}|
+($B%G!<%?%Y!<%9$N$9$Y$F$NJ88%$,Ns5s$5$l$k(B)$B$H(B
+$B6&$K;H$&>l9g$K$O!$J8=qCf$N(B \verb|\nocite{*}|$B%3%^%s%I$N0LCV$G(B
+$B0zMQJ88%$NJB$V=gHV$,7h$^$k!%(B
+$BBh(B\ref{features} $B@a$G<($7$?5,B'$K$h$l$P!$(B
+$B%3%^%s%I$,J8=q$N@hF,$K$"$l$P!$%G!<%?%Y!<%9Cf$N=gHV$=$N$b$N$K$J$j!$(B
+$B:G8e$K$"$l$P!$(B \verb|\cite|$B$"$k$$$O(B \verb|\nocite|$B$GL@<(E*$K0zMQ$7$?(B
+$BJ88%$,0zMQ=g$KJB$S!$$=$N8e$K$=$l0J30$N$b$N$,%G!<%?%Y!<%9Cf$N=gHV$G(B
+$BJB$V!%(B
+
+\item
+$B3X0L$r<xM?$9$k$N$OBg3X$G$"$j3XIt$G$O$J$$$+$i!$(B
+$B3X0LO@J8$KBP$7$F$O!$(Bvan Leunen$B$O3X0L$N8e$K3XItL>$r=q$+$J$$$3$H$r(B
+$B?d>)$7$F$$$k!%(B
+$B3XItL>$r=q$$$?J}$,FI<T$,O@J8$r8+$D$1$d$9$$$H9M$($k$N$G$"$l$P!$(B
+$B3XItL>$O(B{\tt address}$B%U%#!<%k%I$K=q$/$H$h$$!%(B
+
+\item
+{\tt MASTERSTHESIS}$B$H(B{\tt PHDTHESIS}$B$N%(%s%H%j7A$O(B
+{\em Scribe\/}$B$H$N8_49@-$N$?$a$KIU$1$?L>>N$G$"$j!$(B
+{\tt MINORTHESIS}$B$H(B{\tt MAJORTHESIS}$B$NJ}$,NI$$L>A0$+$bCN$l$J$$!%(B
+$B=>$C$F%"%a%j%+0J30$G$N3X0LO@J8$G$O$3$N$3$H$rG0F,$K$*$/$3$H!%(B
+
+\item
+$B$"$kCx<T$N(B2$B$D$NCx:n$NCx<TL>$,<c430[$J$k>l9g$NBP=h$NJ}K!!%(B
+2$B$D$NO@J8$,<!$N$h$&$G$"$C$?$H$7$h$&!%(B
+\begin{verbatim}
+ author = "Donald E. Knuth"
+ . . .
+ author = "D. E. Knuth"
+\end{verbatim}
+2$B$D$N$d$jJ}$,9M$($i$l$k!%(B
+(1)$B$3$N$^$^$K$9$k!$(B(2)$B$3$l$OF10l?MJ*$G$"$k$G$"$k$3$H$,$O$C$-$j$H(B
+$BJ,$+$C$F$$$k$N$G!$Cx<T$N9%$_$N7A<0(B($BNc$($P!$(B`Donald~E.\ Knuth')$B$KE}0l$9$k!%(B
+$B:G=i$NJ}K!$G$OJ88%$NJB$V=gHV$,@5$7$/$J$/$J$k$+$b$7$l$J$$$7!$(B
+2$BHVL\$NJ}K!$G$OL>A0$r>/$7JQ$($?$3$H$G!$C/$+$,EE;RE*$K8!:w$7$?;~$K(B
+$B$X$^$r$d$k$+$b$7$l$J$$!%(B
+$B;d9%$_$NBh(B3$B$NJ}K!$,$"$k!%(B
+2$BHVL\$NO@J8$N%U%#!<%k%I$r<!$N$h$&$KJQ49$9$k!%(B
+\begin{verbatim}
+ author = "D[onald] E. Knuth"
+\end{verbatim}
+\BibTeX\ $B$O$+$.3g8L$,$J$$$H$7$F%=!<%H$9$k$7!$(B
+$B$+$.3g8L$K$h$C$FFI<T$O40A4$J!VL>!W$O85$NO@J8$K$O$J$+$C$?$H9M$($k(B
+$B$+$i!$A0=R$NLdBj$,2r7h$G$-$k!%(B
+$B$b$A$m$s(B `D[onald]~E.\ Knuth' $B$O$_$C$H$b$J$$$H$$$&JL$NLdBj$,@8$:$k$,!$(B
+$B;d$O$3$N>l9g$K$O@53N$5$N$?$a$K$OH~$7$5$r5>@7$K$7$F$h$$$H9M$($k!%(B
+
+\item
+\LaTeX\ $B$N%3%a%s%HJ8;z(B `{\tt\%}' $B$O%G!<%?%Y!<%9%U%!%$%kCf$G$O(B
+$B%3%a%s%HJ8;z$G$O$J$$!%(B
+
+\item
+$BA0@a$G$U$l$?!VCx<T!W$K$D$$$F$b$C$H>\$7$/@bL@$7$h$&!%(B
+$B$[$H$s$I$9$Y$F$N%(%s%H%j$G$O!VCx<T!W$OC1$K(B{\tt author}$B%U%#!<%k%I$N(B
+$B>pJs$G$"$k!%(B
+$B$7$+$7$J$,$i!$(B
+{\tt BOOK}$B$H(B{\tt INBOOK}$B%(%s%H%j7?$G$O!$(B
+{\tt author}$B$KCx<T$,$J$1$l$P(B{\tt editor}$B%U%#!<%k%I$,;H$o$l!$(B
+{\tt MANUAL}$B$G$O!$(B
+{\tt author}$B$KCx<T$,$J$1$l$P(B{\tt organization}$B%U%#!<%k%I$,;H$o$l!$(B
+{\tt PROCEEDINGS}$B$G$O!$(B
+{\tt editor}$B$KCx<T$J$1$l$P(B{\tt organization}$B%U%#!<%k%I$,;H$o$l$k!%(B
+
+\item
+$B%i%Y%k$N:n@.$N;~$K!$(B{\tt alpha}$B%9%?%$%k$G$O>e=R$N!VCx<T!W$r;H$&$,!$(B
+{\tt MANUAL}$B$H(B{\tt PROCEEDINGS}$B%(%s%H%j7?$G$O(B
+{\tt key}$B%U%#!<%k%I$,(B{\tt organization}$B%U%#!<%k%I$h$jM%@h$9$k!%(B
+$B$3$l$O<!$N$h$&$J>l9g$KLrN)$D!%(B
+\begin{verbatim}
+ organization = "The Association for Computing Machinery",
+ key = "ACM"
+\end{verbatim}
+{\tt key}$B%U%#!<%k%I$,$J$$$H(B{\tt alpha}$B%9%?%$%k$O(B{\tt organization}$B%U%#!<%k%I(B
+$B$N>pJs$+$i(B3$BJ8;z$N%i%Y%k$r:n$k!%(B
+{\tt alpha}$B%9%?%$%k$O(B `{\tt The}' $B$r<h$j=|$/$,!$$=$l$G$b(B
+$B%i%Y%k$O(B `\hbox{[Ass86]}' $B$H$J$C$F$7$^$$!$;EAH$_DL$j$G$O$"$k$,!$M-1W$J(B
+$B$b$N$G$O$J$$!%(B
+$B>e$N$h$&$K(B{\tt key}$B%U%#!<%k%I$rF~$l$k$3$H$G!$$b$C$H$h$$%i%Y%k(B
+`\hbox{[ACM86]}' $B$H$G$-$k!%(B
+
+$B$7$+$7!$(B{\tt organization}$B%U%#!<%k%I$rL58z$K$9$k$?$a$K(B
+{\tt key}$B%U%#!<%k%I$,>o$KI,MW$J$o$1$G$O$J$$!%(B
+$BNc$($P!$(B
+\begin{verbatim}
+ organization = "Unilogic, Ltd.",
+\end{verbatim}
+$B$H$7$F$*$1$P!$(B{\tt alpha}$B%9%?%$%k$O(B `\hbox{[Uni86]}' $B$H$$$C$?(B
+$B9gM}E*$J%i%Y%k$r@8@.$9$k!%(B
+
+\item
+$BBh(B\ref{features} $B@a$G%"%/%;%s%HIU$-J8;z$r@bL@$7$?!%(B
+\BibTeX\ $B$K$H$C$F$O%"%/%;%s%HIU$-J8;z$O!$(B
+$B%H%C%W%l%Y%k$N:8Cf3g8L$ND>8e$NJ8;z$,%P%C%/%9%i%C%7%e$G$"$k(B
+$BCf3g8L$G3g$i$l$F$$$kJ8;zNs!$$9$J$o$A(B
+$B!VFC<lJ8;z!W$NFCJL$J>l9g$K$9$.$J$$!%(B
+$BNc$($P!$(B
+\begin{verbatim}
+ author = "\AA{ke} {Jos{\'{e}} {\'{E}douard} G{\"o}del"
+\end{verbatim}
+$B$K$O(B `\verb|{\'{E}douard}|' $B$H(B `\verb|{\"o}|'$B$N(B2$B$D$NFC<lJ8;z$,$"$k!%(B
+($B>e$NNc$G!$%U%#!<%k%I$N6h@Z$jJ8;z$G$"$k%@%V%k%/%*!<%H$r(B
+$BCf3g8L$GCV$-49$($?$b$N$G$bF1$8$3$H$G$"$k(B)$B!%(B
+$B0lHL$K(B\BibTeX\ $B$OFC<lJ8;zCf$N(B\TeX\ $B$"$k$$$O(B\LaTeX\ $B%3%^%s%I$KBP$7$F$O(B
+$B2?$NA`:n$b$[$I$3$5$J$$$,!$$=$&$G$J$$>l9g$K$OA`:n$r(B{\dg $B$[$I$3$9(B}$B!%(B
+$B$7$?$,$C$FI=Bj$r>.J8;z$KJQ49$9$k%9%?%$%k$G$O(B
+\begin{verbatim}
+ The {\TeX BOOK\NOOP} Experience
+\end{verbatim}
+$B$r(B
+\begin{verbatim}
+ The {\TeX book\NOOP} experience
+\end{verbatim}
+$B$KJQ49$9$k!%(B
+($B$7$+$7!$(B`{\tt The}' $B$OI=Bj$N:G=i$NC18l$G$"$k$N$G(B
+$B$=$l$O$=$N$^$^$G$"$k(B)$B!%(B
+
+$BFC<lJ8;z$O%"%/%;%s%HIU$-J8;z$r07$&$N$KLrN)$A!$(B
+\BibTeX\ $B$K$"$J$?$NK>$_DL$j$N=gHV$GJ88%$rJB$Y$5$;$k$N$KLrN)$D!%(B
+$B$^$?(B\BibTeX\ $B$OFC<lJ8;z$r$9$Y$F$r$^$H$a$F(B1$BJ8;z$H?t$($k$+$i!$%i%Y%k$NCf$K(B
+$BJ8;z$rDI2C$9$k$N$KLrN)$D!%(B
+\BibTeX\ $B$H$H$b$KG[I[$5$l$F$$$k(B{\tt XAMPL.BIB}$B%U%!%$%kCf$K$9$Y$F$N;H$$J}$N(B
+$BNc$,$"$k!%(B
+
+\item
+$BK\@a$N:G8e$N9`L\$H$7$F(B({\tt author}, {\tt editor}$B%U%#!<%k%I$NCf$K(B
+$B5-=R$9$k(B)$BL>A0$K$D$$$F!$(B\LaTeX\ book$B$NIUO?(BB$B$h$j>/$7>\$7$/@bL@$9$k!%(B
+$B0J2<$G$O!VL>A0!W$O8D?M$KBP1~$9$k$b$N$H$7$h$&!%(B
+($BJ#?t$NCx<T$r(B1$B$D$N%U%#!<%k%I$KF~$l$k$K$O!$Cf3g8L$KF~$l$J$$$G!$(B
+$BA08e$K%9%Z!<%9$rF~$l$F(B ``and'' $B$G$D$J$0!%(B
+$B$3$3$G$O(B1$B$D$NL>A0$@$1$r9M$($k(B)$B!%(B
+
+$BL>A0$O!$@+(B(Last)$B!$(Bvon, $BL>(B(First)$B$H(BJr$B$N(B4$B$D$NItJ,$+$i$J$j!$(B
+$B$=$l$>$l$O(B($B6u$+$b$7$l$J$$$,(B)$BJ8;zNs(B($B%H!<%/%s(B)$B$N%j%9%H$+$i$J$k!%(B
+$B6u$G$J$$L>A0$N@+$O6u$G$J$$!$$9$J$o$A(B1$B$D$NJ8;zNs$+$i$J$kL>A0(B
+$B$O@+$@$1$N$b$N$H$J$k(B\trnote{$B4A;z%3!<%II=5-$5$l$?L>A0$G$O!$@+$HL>$N4V$K(B
+$B%9%Z!<%9(B($BH>3Q$G$bA43Q$G$b(B)$B$rF~$l$F$*$1$P!$(BFamily name$B$H(BLast-token$B$+$i(B
+$B$J$k$b$N$H$5$l!$%9%Z!<%9$,$J$1$l$P(BLast-token$B$N$_$+$i$J$k$H$5$l$k!%(B}$B!%(B
+
+
+Per Brinch~Hansen$B$NL>A0$O<!$N$h$&$K%?%$%W$7$J$1$l$P$J$i$J$$!%(B
+\begin{verbatim}
+ "Brinch Hansen, Per"
+\end{verbatim}
+$B$3$NL>A0$NL>$O(B ``Per'' $B$N(B1$B$D$N%H!<%/%s$+$i$J$j!$(B
+$B@+$O(B ``Brinch'' $B$H(B ``Hansen'' $B$N(B2$B$D$N%H!<%/%s$+$i$J$j!$(B
+von, Jr$B$NItJ,$O$J$$!%(B
+$B$b$7<!$N$h$&$K%?%$%W$7$?$H$9$k$H!$(B
+\begin{verbatim}
+ "Per Brinch Hansen"
+\end{verbatim}
+\BibTeX\ $B$O(B($B8m$C$F(B)$B!$(B``John~Paul Jones'' $B$NL>%H!<%/%s$,(B ``Paul'' $B$G$"$k$N$H(B
+$BF1$8$h$&$K(B ``Brinch'' $B$,L>$N%H!<%/%s$G$"$k$H9M$(!$(B2$B$D$NL>%H!<%/%s$H(B
+1$B$D$N@+%H!<%/%s$+$i$J$k$b$N$H$9$k!%(B
+
+$B$b$&(B1$B$DNc$r<($=$&!%(B
+\begin{verbatim}
+ "Charles Louis Xavier Joseph de la Vall{\'e}e Poussin"
+\end{verbatim}
+$B$3$NL>A0$K$O(B4$B$D$NL>%H!<%/%s$H!$(B2$B$D$N(Bvon$B%H!<%/%s$H!$(B2$B$D$N@+%H!<%/%s$,$"$k!%(B
+von$B%Q!<%H$O>.J8;z$G;O$^$k$3$H$+$i!$(B\BibTeX\ $B$O3F!9$NItJ,$,$I$3$+$i;O$^$j!$(B
+$B$I$3$G=*$k$+$,$o$+$k!%(B
+
+$B0lHL$KCf3g8L$N%l%Y%k$,(B0$B$N$H$3$m$G>.J8;z$G;O$^$k$b$N$O(Bvon$B%H!<%/%s$H$5$l$k!%(B
+$B5;=QE*$K$O!VFC<lJ8;z!W$OCf3g8L$N%l%Y%k(B0$B$G$"$k$+$i!$(B\TeX\ $B$N%3%^%s%I(B
+$BJ8;zNs$NBgJ8;z!$>.J8;z$rJ]$D$h$&$J%@%_!<$NFC<lJ8;z$r;H$&$3$H$G!$(B
+\BibTeX\ $B$,(Bvon$B%H!<%/%s$H$7$F07$&$h$&$K(B/$B07$o$J$$$h$&$K$G$-$k!%(B
+
+$B$^$H$a$k$H!$(B\BibTeX\ $B$OL>A0$N=q$-J}$H$7$F<!$N(B3$B$D$N7A<0$r5v$9!%(B
+\begin{verbatim}
+ "First von Last"
+ "von Last, First"
+ "von Last, Jr, First"
+\end{verbatim}
+Jr$B%Q!<%H$,$"$k>l9g!$$"$k$$$O@+$,J#?t$N9=@.MWAG$+$i$J$k>l9g0J30$G$O(B
+$B0lHV:G=i$N=q$-J}$r;H$&$N$,IaDL$G$"$k!%(B
+
+\item
+\JBibTeX\ $B$G$O4A;z%3!<%IL>$N>l9g$K$O@+$HL>$N4V$K%9%Z!<%9(B($BH>3Q$G$bA43Q$G$b(B)$B$r(B
+$BCV$/$3$H$rI8=`$H$9$k$,!$%9%Z!<%9$,$J$/$F$b!$(B{\tt jabbrv}$B%9%?%$%k$J$I$G=PNO(B
+$B$5$l$kL>A0$,@+$N$_$K$J$i$J$$$J$I$NLdBj$7$+@8$8$J$$!%$^$?!$J#?t$N;aL>$rJB$Y$k(B
+$B;~$K$O(B \verb*| and | $B$NBe$o$j$K!$A43Q$N6gE@(B ``$B!$(B'' $B$"$k$$$O(B ``$B!"(B'' $B$r;H$&(B
+$B$3$H$b$G$-$k!%(B
+
+\item $B%"%k%U%!%Y%C%H=g$G$J$/!$8^==2;=g$K%=!<%H$7$?$1$l$P(B{\tt yomi}$B%U%#!<%k%I$K(B
+$B!V$R$i$,$J!W$G!VFI$_!W$r=q$$$F$*$1$P$h$$!%(B
+{\tt jplain}, {\tt jabbrv}$B$G%"%k%U%!%Y%C%HI=5-$NCx<T$O%"%k%U%!%Y%C%H=g$K(B
+$BJB$Y!$$=$N8e$KF|K\8lCx<TL>$N$b$N$r8^==2;=g$KJB$Y$?$$>l9g$J$I$K!$(B
+$B$R$i$,$JI=5-$NFI$_$r;H$($P$h$$!%(B
+
+$B$?$@$7(B{\tt jalpha}$B%9%?%$%k$G$O%i%Y%k$r$&$^$/:n$j=P$9$K$O9)IW$,I,MW$G$"$k!%(B
+{\tt jalpha}$B%9%?%$%k$r;H$C$?;~$K$O!$8^==2;=g$K%=!<%H$9$k$3$H$O$J$$$G$"$m$&$,!$(B
+$B<!$NNc$N$h$&$K$9$l$P$h$$!%(B
+
+{\baselineskip=11pt
+\begin{verbatim}
+ @preamble{ "\newcommand{\noop}[1]{}" }
+ @BOOK{sym,
+ editor="Janusz S. Kowalik",
+ title="Coupling Symbolic and Numerical Computing in Expert Systems",
+ publisher="North-Holland", year=1986}
+ @BOOK{dss,
+ editor="Clyde W. Holsapple and Andrew B. Whinston",
+ title="Decision Support Systems: Theory and Application",
+ publisher="North-Holland", year=1987}
+ @INCOLLECTION{goto,
+ author="$B8eF#1Q0l(B", title="$B7W;;5!$K$h$k?t<0=hM}$H$O(B",
+ yomi="{\noop{$B$4$H$&(B}$B8e(B}$BF#(B",
+ crossref="reduce", pages="4--6", year=1986 }
+ @UNPUBLISHED{$B0k:j(B,
+ author="$B0k:j(B $B=(<y(B",title="How To Use {\JLaTeX}",
+ yomi="{\noop{$B$$$=$6$-(B}$B0k(B}$B:j(B",
+ note="memo for {\JLaTeX}", year=1987}
+\end{verbatim}
+}
+
+$B$3$&$7$F$*$1$P!$3F!9$N%i%Y%k$O(B[Kow86], [HW87],
+[$B8eF#(B86], [$B0k:j(B87]$B$H$J$j!$%"%k%U%!%Y%C%H=g$K(B[HW87], [Kow86]$B$HJB$s$@8e$K!$(B
+$B8^==2;=g$K(B[$B0k:j(B87], [$B8eF#(B86]$B$HJB$V!%(B
+\end{enumerate}
+
+\bibliography{jbtxdoc}
+\bibliographystyle{jplain}
+\end{document}
diff --git a/biblio/pbibtex/base/jbtxhak.pdf b/biblio/pbibtex/base/jbtxhak.pdf
new file mode 100644
index 0000000000..9637eb38f8
--- /dev/null
+++ b/biblio/pbibtex/base/jbtxhak.pdf
Binary files differ
diff --git a/biblio/pbibtex/base/jbtxhak.tex b/biblio/pbibtex/base/jbtxhak.tex
new file mode 100644
index 0000000000..4c795f80d5
--- /dev/null
+++ b/biblio/pbibtex/base/jbtxhak.tex
@@ -0,0 +1,692 @@
+\documentstyle{jarticle}
+\def\dg{\gt}
+\def\dm{\mc}
+\voffset=-2.3cm
+\hoffset=-2.3cm
+\textwidth=16.6cm
+\textheight=25cm
+
+\def\JTeX{\leavevmode\lower .5ex\hbox{J}\kern-.17em\TeX}
+\def\JLaTeX{\leavevmode\lower.5ex\hbox{J}\kern-.17em\LaTeX}
+\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
+ T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
+
+\def\JBibTeX{\leavevmode\lower .5ex\hbox{{\rm J}}\kern-0.15em\BibTeX}
+\def\trnote#1{\footnote{\parindent=16pt\hskip-15pt\hang\indent $BLuCm!'(B#1\parindent=10pt}}
+
+
+\title{Designing B\kern-.05em{\large I}\kern-.025em{\large B}\kern-.08em\TeX\
+ Styles\\
+B\kern-.05em{\large I}\kern-.025em{\large B}\kern-.08em\TeX $B%9%?%$%k(B
+$B$N:n$jJ}(B
+\footnote{$BK]Lu$NItJ,$O86Cx<T$N5v2D$rF@$FG[I[$9$k$b$N$G$"$j(B,$BK]Lu$K$D$$$F(B,
+\JBibTeX $B$K4X$9$k5-=R$K$D$$$F$O>>0f$KLd$$9g$o$;$i$l$?$$!%(B}
+\ $^,$\footnote{\JBibTeX (version 0.30)\cite{jbibtex}$B$N@bL@$b4^$`!%(B}
+}
+
+\author{Oren Patashnik($BLu!'>>0f@50l(B)}
+\date{January 31, 1988($BK]LuHG!'(B1991$BG/(B1$B7n(B1$BF|(B)}
+\def\orig#1{}
+\begin{document}
+\baselineskip=17pt
+
+\maketitle
+
+\setcounter{section}{4}
+\section{$B;29MJ88%%9%?%$%k$r%O%C%/$9$k(B}
+\label{style}
+$BK\9F$O!$<B:]$K$O(B
+\BibTeX $B$N0lHLE*$J%I%-%e%a%s%H$G$"$k(B``\BibTeX ing''~\cite{btxdoc}$B$N:G=*@a(B
+$B$G$"$j!$(B
+$BBh(B\ref{style} $B@a$+$i$O$8$^$k(B($B$=$7$F$3$N@a$@$1$G=*$k(B)$B!%(B
+$B$7$+$7@h$N%I%-%e%a%s%H$O(B\BibTeX $B$NMxMQ<T8~$1$G$"$j!$K\9F$O%9%?%$%k(B
+$B:n@.<T8~$1$G$"$k$N$G!$J*M}E*$KJ,N%$7$?$b$N$H$J$C$F$$$k!%(B
+$B$H$O$$$(!$$3$NJ8=q$NFI<T$O(B``\BibTeX ing''$B$K@:DL$7$F$$$kI,MW$,$"$j!$K\9F$G(B
+$B;2>H$7$F$$$k@a!$@aHV9f$O(B2$B$D$NJ8=q$,(B1$B$D$N$b$N$H2>Dj$7$F$$$k!%(B
+
+$BK\@a$HI8=`%9%?%$%k%U%!%$%k$N%I%-%e%a%s%H$G$"$k(B{\tt btxbst.doc}$B$G(B\trnote{$BF|K\(B
+$B8lBP1~HG$O(B{\tt jbtxbst.doc}$B$G$"$k!%(B}
+$B4{B8$N%9%?%$%k%U%!%$%k$N=$@5J}K!!$?7$?$J%9%?%$%k%U%!%$%k$N:n@.(B
+$BJ}K!$r@bL@$9$k!%(B
+$B$b$7$A$c$s$H$7$?%9%?%$%k%U%!%$%k$r:n$m$&$H;W$C$F$$$k$N$G$"$l$P!$(B
+$B%9%?%$%k$K4X$7$F(Bvan~Leunen~\cite{van-leunen}$B$K!$(B
+$B%?%$%W%;%C%H$K4X$7$F(BLamport~\cite{latex}$B$H(BKnuth~\cite{texbook}$B$K!$(B
+$B$5$i$K>l9g$K$h$C$F$O!$(B
+$B:Y$+$J8_49@-$NLdBj$+$i(B{\em Scribe\/}~\cite{scribe}$B$K@:DL$7$F$$$J$1$l$P(B
+$B$J$i$J$$!%(B
+$B$;$C$;$H;E;v$r$9$k9g4V$K!$(BStrunk and White$B$K$h$kL>>.:};R(B
+\cite{strunk-and-white}$B$rFI$`$3$H$rA&$a$k$,!$FI$^$J$$$N$G$"$l$P!$(B
+$B>/$J$/$F$b%G!<%?%Y!<%9Cf$N%(%s%H%j$H;29MJ88%%j%9%H$r8+$F!$(B\BibTeX $B$,J#?t$N(B
+$BL>A0$r$I$&07$C$F$$$k$+$rD4$Y$k$3$H(B\trnote{$BF|K\8lBP1~HG$G$N4A;z%3!<%ICx<TL>$N(B
+$B07$$J}$K$D$$$F$bD4$Y$k$3$H!%(B}$B!%(B
+
+$B?7$?$J%9%?%$%k$r:n$k>l9g$K$O!$K>$_$N$b$N$K6a$$4{B8$N%9%?%$%k$r=$@5$9$k(B
+$B$N$,$h$$(B\trnote{$B?7$?$J%9%?%$%k$r:n$k;~$@$1$G$J$/!$4{B8$N%9%?%$%k$r(B
+$B=$@5$9$k;~$G$b!$D>@\(B{\tt .bst}$B%U%!%$%k$r=$@5$9$k$N$G$O$J$/(B{\tt btxbst.doc,
+jbtxbst.doc}$B$r=$@5$9$kJ}$,!$:FMxMQ2DG=@-$,9b$/$J$k!$1?$,NI$1$l$P(B1$B$D$N=$@5$G(B
+$BJ#?t$N%9%?%$%k$r=$@5$G$-$k!$$J$I$NMxE@$,$"$k!%(B}$B!%(B
+$B$3$l$O8E$$%9%?%$%k$r(B\BibTeX\ version 0.99$BMQ$K=$@5$9$k>l9g$K$b$"$F$O$^$k!%(B
+($B;d<+?H$,(B4$B$D$NHsI8=`%9%?%$%k$r=$@5$7$?7P83$+$i$NCi9p$G$"$k(B)$B!%(B
+$B8E$$(B(version 0.98i)$B%9%?%$%k$N$?$a$K:n$C$?4X?t$r?7$7$$%9%?%$%k%U%!%$%k$K(B
+$BF~$l$k;~$K$O!$BeF~4X?t(B({\tt :=})$B$N0z?t$N=gHV$,JQ99$5$l$?$3$H$KCm0U(B
+$B$7$J$$$H$$$1$J$$!%(B
+$B%9%?%$%k%U%!%$%k$,40@.$7$?$i!$(B{\tt XAMPL.BIB}$B%G!<%?%Y!<%9$NA4$F$r(B
+$B;H$C$F(B\trnote{{\tt \char"5Cnocite\{*\}}$B$G9T$($k!%(B}$B!$I8=`%(%s%H%j$NA4$F$N(B
+$B7?$KBP$7$FK>$_$N7k2L$K$J$k$3$H$r3NG'$9$l$P$h$$!%(B
+
+$BI8=`%9%?%$%k$NCn!$$d$j$?$$$3$H$,$G$-$J$$>l9g$K$O(BOren Patashnik$B$K(B
+$BJ86g$r8@$&$3$H(B\trnote{$BF|K\8lMQ$N$b$N$K$D$$$F$O(B
+$B>>0f@50l(B{\tt (matsui@denken.or.jp)}$B$KCN$i$;$k$3$H!%(B}$B!%(B
+
+\subsection{$B35MW(B}
+
+$B;29MJ88%%9%?%$%k$O%9%?%C%/%^%7%s$KBP$9$kL?Na$r8eCV1i;;;R7A<0$G5-=R$9$k!%(B
+$BI8=`%9%?%$%k$N%I%-%e%a%s%H$r8+$l$P!$$I$&=q$/$+$rCN$k$N$OFq$7$$$3$H$G$O(B
+$B$J$$$,!$K\9F$G$O$b$C$H>\$7$/@bL@$9$k(B($B4uK>$,$"$l$P$5$i$K>\$7$/$9$k(B)$B!%(B
+
+$B4pK\E*$K$O%9%?%$%k%U%!%$%k$O!$(B
+$BL>A0$N$J$$8@8l$G!$%W%m%0%i%`$r5-=R$9$k$3$H$K$h$j!$(B
+$B$I$N$h$&$K$7$F%G!<%?%Y!<%9$N%(%s%H%j(B
+$B$+$i;29MJ88%%j%9%H$r:n$k$+$r(B\BibTeX $B$K65$($k$b$N$G$"$k(B($BF|K\8lBP1~%9%?%$%k(B
+$B$G$O(B\JBibTeX $B$K65$($k$3$H$G$"$k!%0J2<(B\BibTeX $B$KEv$F$O$^$k$3$H$O(B\JBibTeX $B$K$b(B
+$BEv$F$O$^$k$N$G!$$$$A$$$A$3$H$o$i$J$$(B)$B!%(B
+($B0J2<$G$O!V%(%s%H%j!W$O!V%(%s%H%j!&%j%9%H!W$N$3$H$G$"$j!$J8L.$+$iL@$i$+$J(B
+$B>l9g$K$OC1$K!V%j%9%H!W$H$9$k(B)$B!%(B
+$B$3$N%W%m%0%i%`8@8l$K$O!$<!$N:Y@a(B(subsection)$B$G@bL@$9$k(B10$B8D$N%3%^%s%I$,$"$k!%(B
+$B$3$l$i$N%3%^%s%I$O8@8l$N%*%V%8%'%/%H!'Dj?t!$JQ?t!$4X?t!$%9%?%C%/!$(B
+$B%(%s%H%j!&%j%9%H$rA`:n$9$k$b$N$G$"$k!%(B
+($BCm0U!'$3$NJ8=qCf$NMQ8l$O@bL@$r4JC1$K$9$k$?$a$KA*$s$@$b$N$G$"$j!$(B
+\BibTeX $BK\Mh$NMQ8l$H$O<c430[$J$k!%Nc$($P$3$NJ8=qCf$N!VJQ?t!W!$!V4X?t!W(B
+$B$O$I$A$i$b(B\BibTeX $B$K$H$C$F$O4X?t$G$"$k!%(B\BibTeX $B$N%(%i!<%a%C%;!<%8$r(B
+$B2r<a$9$k;~$K$O$3$N$3$H$rG0F,$K$*$/$3$H(B)$B!%(B
+
+\BibTeX $B$N4X?t$K$O(B{\dg $BAH$_9~$_(B}$B$N$b$N(B($BBh(B\ref{built-in-fns}$B@a$G@bL@$9$k(B)
+$B$H(B{\tt MACRO}$B$+(B{\tt FUNCTION}$B$GDj5A$9$k$b$N$N(B2$B<oN`$,$"$k!%(B
+
+$B%9%?%$%k:n@.$G:G$b;~4V$N$+$+$k:n6H$O(B{\tt FUNCTION}$B%3%^%s%I$r;H$C$F(B
+$B4X?t$r:n@.$9$k!$$"$k$$$O4{B8$N$b$N$rJQ99$9$k$3$H$G$"$k!%(B
+($B<B:]$K$O!$A0=R$N;29MJ88%$K@:DL$9$k$N$KMW$9$k;~4V$NJ}$,D9$$$,!$(B
+$B$=$l$,=*$C$?8e$NOC$7$G$"$k(B)$B!%(B
+
+$BNc$H$7$F4X?t$N0lIt$r<h$j=P$7$?$b$N$r8+$F$_$h$&!%(B
+$BJ8;zNs7?JQ?t(B{\tt label}$B!$@0?t7?JQ?t(B{\tt lab.width}$B$,$"$j!$(B
+{\tt label}$B$N8e$m$K$K(B`{\tt a}'$B$rO"7k$7!$(B{\tt lab.width}$B$r(B1$BA}$d$7$?$$$H$7$h$&!%(B
+\begin{verbatim}
+ . . .
+ label "a" * 'label := % label := label * "a"
+ lab.width #1 + 'lab.width := % lab.width := lab.width + 1
+ . . .
+\end{verbatim}
+1$B9TL\$G@h$:(B{\tt label}$B$O$=$NCM$r%9%?%C%/$K%W%C%7%e$9$k!%(B
+$B<!$K(B {\tt "a"} $B$,J8;zNsDj?t(B `{\tt a}' $B$r%9%?%C%/$KCV$/!%(B
+$BB3$$$FAH$_9~$_4X?t(B {\tt *} $B$,%9%?%C%/%H%C%W$N(B2$B$D$NJ8;zNs$r%]%C%W$7!$(B
+$B$=$l$i$rO"7k$7$?$b$N$r%W%C%7%e$9$k!%(B
+{\tt 'label}$B$O$=$NJQ?tL>$r%W%C%7%e$9$k!%(B
+$B:G8e$KAH$_9~$_4X?t(B {\tt :=} $B$,JQ?tL>$HO"7k7k2L$r%]%C%W$7!$BeF~$r(B
+$B<B9T$9$k!%(B
+\BibTeX $B$O%9%?%$%k%U%!%$%kCf$N(B {\tt \%} $B0J9_$O%3%a%s%H$H$7$F07$&!%(B
+2$B9TL\$bF1MM$G$"$k$,!$%W%C%7%e$9$k@0?tDj?t(B
+$B$H$7$F(B`{\tt \#}'$B$H(B`{\tt 1}'$B$N4V$K%9%Z!<%9$N$J$$(B {\tt \#1} $B$r;H$C$F$$$k!%(B
+
+$B%9%Z!<%9$N?t$O$$$/$D$G$b$h$/!$%9%Z!<%9!$%?%V!$2~9T$O$$$/$D$"$C$F$b(B
+1$B$D$H$_$J$5$l$k(B($B8e$G4JC1$K@bL@$9$k$h$&$K!$(B
+$B%3%^%s%I$NESCf$G$O2~9T$7$J$$$[$&$,$h$$(B)$B!%(B
+
+$BJ8;zNsDj?t$H$7$F$O!$%@%V%k%/%)!<%H$G0O$C$?Cf$K$O0u;z2DG=J8;z$J$i(B
+$B2?$r=q$$$F$b$h$$(B\trnote{$BF|K\8lBP1~HG$G$O4A;z%3!<%I$G$b$h$$!%(B}$B!%(B
+$BJ8;zNsDj?t$K8B$C$F(B\BibTeX $B$OBgJ8;z$H>.J8;z$N(B
+$B6hJL$r$9$k!%$5$i$KJ8;zNsDj?t$NCf$N%9%Z!<%9$N?t$O0UL#$,(B{\dg $B$"$k(B}$B!%(B
+$B$^$?J8;zNsDj?t$O9T$r$^$?$,$C$F$O$J$i$J$$(B($B$9$J$o$AJ8;zNs$N(B
+$B;O$a$H=*$j$N%@%V%k%/%)!<%H$OF1$89T$K$J$1$l$P$J$i$J$$(B)$B!%(B
+
+$BJQ?t!$4X?t$NL>A0$O?t;z$G;O$^$C$F$O$J$i$:!$(B\LaTeX~book$B$N(B143$B%Z!<%8$K(B
+$B$"$k(B10$B8D$N6X;_J8;z$r4^$s$G$O$J$i$J$$$,!$$=$l0J30$N0u;z2DG=J8;z$J$i(B
+$B2?$r;H$C$F$b$h$$(B\trnote{$BF|K\8lBP1~HG$G$O4A;z%3!<%I$G$b$h$$!%F|K\8l(B
+$B%W%m%0%i%_%s%0$G$-$k(B{\tt :-)}$B!%(B}$B!%(B
+$B$5$i$K(B(ASCII$B%3!<%I$N(B)$BBgJ8;z$H>.J8;z$N6hJL$O$7$J$$!%(B
+
+$BJQ?t!$Dj?t$N7?$H$7$F$O@0?t7?$HJ8;zNs7?$7$+$J$$(B
+($BO@M}CM$O@0?t$N(B0($B56(B)$B$H(B1($B??(B)$B$H$7$F<B8=$7$F$$$k(B)$B!%(B
+$BJQ?t$N<oN`$H$7$F$O(B3$B<oN`$"$k!%(B
+\begin{description}
+
+\item[$BBg0hJQ?t(B\hfill] {\tt INTEGERS}$B$"$k$$$O(B{\tt STRINGS}$B%3%^%s%I$G@k8@(B
+$B$5$l$?@0?t7?$"$k$$$OJ8;zNs7?$NJQ?t!%(B
+
+\item[$B%(%s%H%jJQ?t(B\hfill] {\tt ENTRY}$B%3%^%s%I$G@k8@(B
+$B$5$l$?@0?t7?$"$k$$$OJ8;zNs7?$NJQ?t!%%(%s%H%j%j%9%H$N%(%s%H%jKh$K(B
+$BJL!9$NCM$r;}$D(B($BNc$($P(B{\tt label}$B$K%(%s%H%j$N%i%Y%k$r;}$?$;$k$3$H$,(B
+$B$G$-$k(B)$B!%(B
+
+\item[$B%U%#!<%k%I(B\hfill] $BFI$_$@$7@lMQ$NJ8;zNs7?$NJQ?t$G$"$j!$%G!<%?%Y!<%9$N(B
+$B>pJs$,3JG<$5$l$k!%CM$O(B{\tt READ}$B%3%^%s%I$G%G!<%?%Y!<%9$,FI$_9~$^$l$k(B
+$B$3$H$G@_Dj$5$l$k!%(B
+$B%(%s%H%jJQ?tF1MM$K3F!9$N%(%s%H%jKh$KJL!9$NCM$r;}$D!%(B
+\end{description}
+
+
+\subsection{$B%3%^%s%I(B}
+
+10$B8D$N%3%^%s%I$,$"$k!%(B
+\hbox{\tt ENTRY}, \hbox{\tt FUNCTION}, \hbox{\tt INTEGERS},
+\hbox{\tt MACRO}, \hbox{\tt STRINGS}$B$N(B5$B8D$OJQ?t$N@k8@!$(B
+$B4X?t$NDj5A$N$?$a$G$"$j!$(B
+\hbox{\tt READ}$B$O%G!<%?%Y!<%9$N>pJs$rFI$_9~$_!$(B
+\hbox{\tt EXECUTE}, \hbox{\tt ITERATE}, \hbox{\tt REVERSE},
+\hbox{\tt SORT})$B$N(B4$B8D$O%(%s%H%j$rA`:n$7!$=PNO$r:n$j=P$9!%(B
+$B$9$Y$F$N%3%^%s%I$rBgJ8;z$G<($7$?$,!$(B
+\BibTeX $B$O%3%^%s%IL>$NBgJ8;z$H>.J8;z$N6hJL$r$7$J$$!%(B
+
+$B$$$/$D$+$N@)8B!'(B{\tt ENTRY}$B$H(B{\tt READ}$B$N?t$O(B1$B$D$G$J$1$l$P$i$J$$!%(B
+{\tt ENTRY}$B%3%^%s%I(B, $B$9$Y$F$N(B{\tt MACRO}$B%3%^%s%I!$(B{\tt FUNCTION}$B%3%^%s%I(B
+$B$N$$$/$D$+(B($B<!@a(B{\tt call.type\$} $B;2>H(B)$B$O(B{\tt READ}$B%3%^%s%I$NA0$K(B
+$B$J$1$l$P$J$i$J$$!%$^$?(B{\tt READ}$B%3%^%s%I$O%(%s%H%jA`:n!$=PNO$N(B
+4$B$D$N%3%^%s%I$h$jA0$K$J$1$l$P$J$i$J$$!%(B
+
+($BK\<AE*$G$O$J$$$,(B)$B%3%^%s%I$N4V$K$O(B1$B$D0J>e$N%V%i%s%/9T$rCV$-!$(B
+$B4X?tDj5A$NCf$K$O%V%i%s%/9T$rCV$+$J$$$h$&$K$9$k$H$h$$!%(B
+$B$3$l$K$h$C$F(B\BibTeX $B$N9=J8%(%i!<$+$i$N2sI|$r=u$1$k$3$H$,$G$-$k!%(B
+
+$B%3%^%s%I$N0z?t$OCf3g8L(B(\verb|{ }|)$B$KF~$l$k!%(B
+$BK\@a$G=R$Y$i$l$F$$$J$$9=J8$K4X$9$k;v9`$OI8=`%U%!%$%k$N%I%-%e%a%s%H(B\trnote{
+{\tt btxbst.doc, jbtxbst.doc}$B$N$3$H!%(B}$B$r;2>H$5$l$?$$!%(B
+$B0J2<$G(B10$B8D$N%3%^%s%I$N@bL@$r9T$&!%(B
+
+\begin{description}
+
+\item[\hbox{\tt ENTRY}\hfill]
+$B%U%#!<%k%I$H%(%s%H%jJQ?t$r@k8@$9$k!%(B
+3$B0z?t$G$"$j!$3F!9$N0z?t$O(B($B6u$+$b$7$l$J$$$,(B)$BJQ?tL>$N%j%9%H$G$"$k!%(B
+$B$=$l$i$O%U%#!<%k%I!$@0?t7?$N%(%s%H%jJQ?t!$J8;zNs7?$N%(%s%H%jJQ?t$G$"$k!%(B
+$B$^$?(B\BibTeX $B$,Aj8_;2>H$G;H$&$?$a$K<+F0E*$K@k8@$9$k(B
+{\tt crossref}$B%U%#!<%k%I$H!$(B
+{\tt SORT}$B%3%^%s%I$G;H$&%=!<%H%-!<$H$7$F(B{\tt sort.key\$} $B$,!$J8;zNs7?$N(B
+$B%(%s%H%jJQ?t$H$7$F<+F0E*$K@k8@$5$l$k!%(B
+$B0J>e$NJQ?t$O%(%s%H%j!&%j%9%H$N%(%s%H%jKh$KJL!9$NCM$r;}$D!%(B
+
+\item[\hbox{\tt EXECUTE}\hfill]
+$B4X?t$r(B1$B$D<B9T$9$k!%0z?t$O4X?tL>(B1$B$D$G$"$k!%(B
+
+\item[\hbox{\tt FUNCTION}\hfill]
+$B?7$?$J4X?t$rDj5A$9$k!%(B
+2$B0z?t$G$"$j!$:G=i$,L>A0$G(B2$BHVL\$,Dj5A$G$"$k!%(B
+$B4X?t$O;H$&A0$KDj5A$7$J$1$l$P$J$i$J$$!%$7$?$,$C$F:F5"4X?t$O5v$5$l$J$$!%(B
+
+\item[\hbox{\tt INTEGERS}\hfill]
+$B@0?t7?$NBg0hJQ?t$r@k8@$9$k!%(B
+$B0z?t$OJQ?tL>$N%j%9%H(B1$B$D$G$"$k!%(B
+$BJ8;zNsJQ?t$ND9$5$r@)8B$9$kBg0hE*JQ?t$H$7$F(B{\tt entry.max\$} $B$H(B
+{\tt global.max\$} $B$,<+F0E*$K@k8@$5$l$k!%(B
+$B$3$N%3%^%s%I$O%9%?%$%k%U%!%$%kCf$K$$$/$D$"$C$F$b$h$$$,!$JQ?t$O;H$&A0$K(B
+$B@k8@$7$J$1$l$P$J$i$J$$!%(B
+
+\item[\hbox{\tt ITERATE}\hfill]
+$B8=:_$N%j%9%H$N=gHV$K%j%9%H$N%(%s%H%j$KBP$7$F(B1$B$D$N4X?t$r<B9T$9$k(B
+($B:G=i$O%j%9%H$O0zMQ=g$KJB$s$G$$$k$,!$(B{\tt SORT}$B$K$h$C$F=gHV$OJQ$o$k(B)$B!%(B
+$B0z?t$O4X?tL>(B1$B$D$G$"$k!%(B
+
+\item[\hbox{\tt MACRO}\hfill]
+$BJ8;zNs%^%/%m$rDj5A$9$k!%(B
+$B0z?t$O(B2$B$D$G!$:G=i$,JQ?tL>!$4X?tL>$HF1$8$h$&$K07$o$l$k%^%/%mL>$G!$(B
+$B<!$,%@%V%k%/%)!<%H$G0O$^$l$?J8;zNs$G$"$j!$$=$NDj5A$G$"$k!%(B
+$B7nL>$N(B3$BJ8;z$N>JN,7A$H$h$/;H$o$l$kO@J8;o$N>JN,7A$rDj5A$7$F$*$/$3$H!%(B
+$B$3$NDj5A$OMxMQ<T$N%G!<%?%Y!<%9Cf$NDj5A$GCV$-49$($k$3$H$,$G$-$k$+$i!$(B
+$BMxMQ<T$KJQ99$7$F$b$i$$$?$/$J$$$b$N$O!$F1$89=J8$N(B{\tt FUNCTION}$B$r(B
+$B;H$C$FDj5A$9$l$P$h$$!%(B
+
+\item[\hbox{\tt READ}\hfill]
+$B%(%s%H%j!&%j%9%HCf$N%(%s%H%j$N%U%#!<%k%I$NCM$r%G!<%?%Y!<%9(B
+$B$+$iC5:w$7$F@_Dj$9$k!%(B
+$B0z?t$O$J$$!%(B
+$B%G!<%?%Y!<%9Cf$N%(%s%H%j$K!$BP1~$9$k%U%#!<%k%I$NCM$,$J$$>l9g$K$O(B
+($BI,$:$7$b%G!<%?%Y!<%9Cf$K$9$Y$F$N%U%#!<%k%I$,=q$+$l$F$$$k$o$1$G$O$J$$(B)
+$B$=$N%U%#!<%k%I$NCM$K$O7gB,CM$N%^!<%/$,IU$/!%(B
+
+\item[\hbox{\tt REVERSE}\hfill]
+{\tt ITERATE}$B%3%^%s%I$H$^$C$?$/F1$8$3$H$r%(%s%H%j%j%9%H$N5U=g$K<B9T$9$k!%(B
+
+\item[\hbox{\tt SORT}\hfill]
+$BJ8;zNs7?$N%(%s%H%jJQ?t(B{\tt sort.key\$} $B$r;H$C$F%(%s%H%j%j%9%H$r(B
+$B%=!<%H$9$k!%(B
+$B0z?t$O$J$$!%(B
+
+\item[\hbox{\tt STRINGS}\hfill]
+$BJ8;zNs7?$NBg0hJQ?t$r@k8@$9$k!%(B
+$B0z?t$OJQ?tL>$N%j%9%H(B1$B$D$G$"$k!%(B
+$B$3$N%3%^%s%I$O%9%?%$%k%U%!%$%kCf$K$$$/$D$"$C$F$b$h$$$,!$JQ?t$O;H$&A0$K(B
+$B@k8@$7$J$1$l$P$J$i$J$$!%(B
+\end{description}
+
+\subsection{$BAH$_9~$_4X?t(B}
+\label{built-in-fns}
+
+$BAH$_9~$_4X?t$N@bL@$NA0$K!$AH$_9~$_%*%V%8%'%/%H$D$$$F>/$7@bL@$7$F$*$/!%(B
+$BAH$_9~$_$N%(%s%H%jJ8;zNsJQ?t$H$7$F(B{\tt sort.key\$} $B$,$"$j!$(B
+$B%=!<%H$r9T$&%9%?%$%k$G$OCM$r@_Dj$7$J$1$l$P$J$i$J$$!%(B
+$BAH$_9~$_$N%U%#!<%k%I$H$7$F!$Bh(B4$B@a$G=R$Y$?Aj8_;2>H5!G=$N$?$a$N(B
+{\tt crossref}$B$,$"$k!%(B
+$B$5$i$K@0?t7?$NBg0hJQ?t(B
+{\tt entry.max\$} $B$H(B{\tt global.max\$} $B$,$"$j!$$=$NCM$O(B\BibTeX $B$NFbItDj?t(B
+$B$K@_Dj$5$l$F$$$k!%(B
+\BibTeX $B$+$i7Y9p%a%C%;!<%8$,=P$J$$$h$&!$(B
+$BJ8;zNs$X$NBeF~$NA0$K!$BeF~$9$kJ8;zNsD9$r$3$l$i$NCM$h$jC;$/$7$F(B
+$B$*$+$M$P$J$i$J$$!%(B
+
+$B8=:_AH$_9~$_4X?t$O(B37$B8D$"$k(B\trnote{$BF|K\8lBP1~HG$G$O!$AH$_9~$_4X?t$r(B1$B$D(B
+$BDI2C$7$F$$$k$N$G!$(B38$B8D$"$k!%(B}$B!%(B
+$B$9$Y$F$NAH$_9~$_4X?t$NL>A0$O:G8e$,(B `{\tt \$}' $B$G=*$k!%(B
+$B0J2<$G$O!V(B1$BHVL\!W!$!V(B2$BHVL\!W$H$$$&$N$O%9%?%C%/$+$i%]%C%W$5$l$?=gHV$r0UL#$9$k!%(B
+$B!V%j%F%i%k!W$O%9%?%C%/$NMWAG$G$"$j!$@0?tCM!$J8;zNs!$JQ?tL>!$(B
+$B4X?tL>!$$"$k$$$O7gB,%U%#!<%k%I$rI=$9FCJL$NCM$N$$$:$l$+$G$"$k!%(B
+$B%]%C%W$5$l$?%j%F%i%k$N7?$,8m$C$F$$$k$H(B\BibTeX $B$OJ86g$r$$$C$?8e!$(B
+$B4X?t$NJV$9CM$N7?$KBP1~$7$F!$@0?tCM$N(B0$B$"$k$$$O6uJ8;zNs$r%W%C%7%e$9$k!%(B
+
+\begin{description}
+
+\item[\hbox{\tt >}\hfill]
+2$B$D$N(B($B@0?t(B)$B%j%F%i%k$r%]%C%W$7!$Hf3S$r9T$$!$(B2$BHVL\$,(B1$BHVL\$h$jBg$-$1$l$P(B1$B$r(B
+$B$=$&$G$J$1$l$P(B0$B$r%W%C%7%e$9$k!%(B
+
+\item[\hbox{\tt <}\hfill]
+$B>e$HF1MM(B($B>.$5$1$l$P(B)$B!%(B
+
+\item[\hbox{\tt =}\hfill]
+$B%9%?%C%/%H%C%W$N(B($B$H$b$K@0?t$"$k$$$OJ8;zNs$N(B) 2$B$D$N%j%F%i%k$r(B
+$B%]%C%W$7$FHf3S$7!$Ey$7$1$l$P(B1$B$r!$$=$&$G$J$1$l$P(B0$B$r%W%C%7%e$9$k!%(B
+
+\item[\hbox{\tt +}\hfill]
+($B@0?t$N(B)2$B$D$N%j%F%i%k$r%]%C%W$7$=$NOB$r%W%C%7%e$9$k!%(B
+
+\item[\hbox{\tt -}\hfill]
+($B@0?t$N(B)2$B$D$N%j%F%i%k$r%]%C%W$7$=$N:9$r%W%C%7%e$9$k!%(B
+(2$BHVL\$+$i(B1$BHVL\$r0z$/(B)$B!%(B
+
+\item[\hbox{\tt *}\hfill]
+2$B$D$N(B($BJ8;zNs(B)$B%j%F%i%k$r%]%C%W$7!$$=$l$i$rO"7k$7$?$b$N$r%W%C%7%e$9$k(B
+($B5U=g!$(B2$BHVL\$N8e$K(B1$BHVL\$rO"7k$9$k(B)$B!%(B
+
+\item[\hbox{\tt :=}\hfill]
+2$B$D$N%j%F%i%k$r%]%C%W$7(B1$BHVL\(B($BBg0hJQ?t$+%(%s%H%jJQ?t(B)$B$K(B2$BHVL\$N%j%F%i%k$N(B
+$BCM$rBeF~$9$k!%(B
+
+\item[\hbox{\tt add.period\$}\hfill]
+$B%9%?%C%/%H%C%W$N(B($BJ8;zNs(B)$B%j%F%i%k$r%]%C%W$7!$(B`{\tt \}}' $B$G$J$$:G8e$NJ8;z$,(B
+`{\tt .}'$\!$, `{\tt ?}'$\!$, `{\tt !}'$B$N$$$:$l$G$b$J$1$l$P(B
+`{\tt .}'$B$r:G8e$K2C$($?7k2L$r%W%C%7%e$9$k!%$$$:$l$+$G$"$l$P85$NJ8;zNs$r(B
+$B%W%C%7%e$9$k!%(B
+
+{\dg \JBibTeX $B$G$NCm0U(B}$B!'(B
+$BA43Q$N(B`$B!%(B'$B!$(B`$B!#(B'$B!$(B`$B!)(B'$B!$(B`$B!*(B'$B$N8e$K$b(B `{\tt .}' $B$O2C$($J$$!%(B
+
+\item[\hbox{\tt call.type\$}\hfill]
+$B$=$NL>A0$,%(%s%H%j$N%(%s%H%j7?$NL>A0$G$"$k4X?t$r<B9T$9$k!%(B
+$BNc$($P!$%(%s%H%j$N7?$,(B{\tt book}$B$G$"$l$P(B{\tt book}$B$H$$$&4X?t$,<B9T$5$l$k!%(B
+{\tt ITERATE}$B%3%^%s%I$N0z?t$H$7$F;XDj$5$l$?>l9g$K$O!$(B{\tt call.type\$} $B$O(B
+$B%(%s%H%j$N>pJs$r(B{\tt .bbl}$B%U%!%$%k$K=PNO$9$k!%(B
+$BITL@$J%(%s%H%j7?(B($BL$Dj5A$N7?(B)$B$KBP$7$F$O(B{\tt default.type}$B$r<B9T$9$k!%(B
+$B$7$?$,$C$F3F!9$NI8=`%(%s%H%j7?$KBP1~$9$k$b$N0J30$K(B{\tt default.type}$B$H$$$&7?$K(B
+$BBP1~$9$k4X?t$r(B{\tt READ}$B%3%^%s%I$NA0$KDj5A$7$F$*$+$M$P$J$i$J$$!%(B
+
+\item[\hbox{\tt change.case\$}\hfill]
+2$B$D$N(B($BJ8;zNs(B)$B%j%F%i%k$r%]%C%W$7!$(B1$BHVL\$N%j%F%i%k$N;XDj$K$7$?$,$C$F!$(B
+$B0J2<$K@bL@$9$k7A<0$G!$(B2$BHVL\$NJ8;zNs$NBgJ8;z(B/$B>.J8;zJQ49$r9T$&(B
+($BCm0U!'<!J8$G!VJ8;z!W$H$OCf3g8L$N%l%Y%k(B0$B!$:G$b30B&$NCf3g8L$N%l%Y%k$NJ8;z$N(B
+$B$3$H$G$"$j!$Bh(B4$B@a$G@bL@$7$?!VFC<lJ8;z!W$r=|$/$=$l0J30$NJ8;z$OJQ49$5$l$J$$(B)$B!%(B
+1$BHVL\$N%j%F%i%k$,(B`{\tt t}'$B$G$"$l$P!$J8;zNs$N(B1$BHV;O$a$NJ8;z$*$h$S%3%m%s$N8e$K(B
+$B%9%Z!<%9$,(B1$B8D0J>eB3$/J8;zNs$N:G=i$NJ8;z$O$=$N$^$^$G!$$=$l0J30$r>.J8;z$K(B
+$BJQ49$9$k!%(B
+1$BHVL\$N%j%F%i%k$,(B`{\tt l}'$B$G$"$l$P!$$9$Y$F$NJ8;z$r>.J8;z$KJQ49$9$k!%(B
+1$BHVL\$N%j%F%i%k$,(B`{\tt u}'$B$G$"$l$P!$$9$Y$F$NJ8;z$rBgJ8;z$KJQ49$9$k!%(B
+$B$=$7$FJQ497k2L$NJ8;zNs$r%W%C%7%e$9$k!%(B
+2$B$D$N%j%F%i%k$N7?$,J8;zNs7?$G$J$$>l9g$K$OJ86g$r8@$$!$6uJ8;zNs$r%W%C%7%e$9$k!%(B
+$B%j%F%i%k$N7?$O9g$C$F$$$k$,!$JQ49;XDj$,>e5-$N2?$l$G$b$J$$>l9g$K$O!$J86g$r(B
+$BIU$1$?8e!$C1$K(B2$BHVL\$NJ8;zNs$r$=$N$^$^$N7A$G%W%C%7%e$9$k(B
+($B$b$&(B1$B$D$NCm0U!'JQ49;XDjJ8;z$NBgJ8;z(B/$B>.J8;z$O6hJL$5$l$J$$!%$9$J$o$A(B
+{\tt t}$B$H(B{\tt T}$B$OF1$8$b$N$H$5$l$k(B)$B!%(B
+
+\item[\hbox{\tt chr.to.int\$}\hfill]
+$B%9%?%C%/%H%C%W$N(B($BJ8;zNs(B)$B%j%F%i%k$r%]%C%W$7!$$=$ND9$5$,(B1$BJ8;z$G$"$k$3$H(B
+$B$r3NG'$7$?8e!$$=$N(BASCII$B%3!<%I$N@0?t$r%W%C%7%e$9$k!%(B
+
+{\dg \JBibTeX $B$G$NCm0U(B}$B!'(B
+$B4A;z%3!<%IJ8;z$KBP1~$9$k$?$a$K!$%j%F%i%k$,4A;z%3!<%IJ8;z$N>l9g$K$O(B
+2$B%P%$%H$r(B1$BJ8;z$H?t$(!$CM$H$7$F$O(B1$B%P%$%HL\$N%3!<%ICM(B(EUC$B%3!<%ICM(B)$B$r(B
+$B%W%C%7%e$9$k!%$?$@$7(B
+$B$3$l$O(B\JBibTeX\ version 0.10$B$H$N8_49@-$N$?$a$K;D$7$?$b$N$G$"$j!$;EMMJQ99(B
+$B$5$l$k2DG=@-$,9b$$!%(B
+
+\item[\hbox{\tt cite\$}\hfill]
+$B%(%s%H%j$KBP1~$9$k(B {\verb|\cite|}$B%3%^%s%I$N0z?t$NJ8;zNs$r%W%C%7%e$9$k!%(B
+
+\item[\hbox{\tt duplicate\$}\hfill]
+$B%9%?%C%/%H%C%W$N%j%F%i%k$r%]%C%W$7$=$N%3%T!<$r(B2$B$D%W%C%7%e$9$k!%(B
+
+\item[\hbox{\tt empty\$}\hfill]
+$B%9%?%C%/%H%C%W$N%j%F%i%k$r%]%C%W$7!$$=$l$,7gB,%U%#!<%k%I$G$"$k$+!$$"$k$$$O(B
+$BJ8;zNsCf$K6uGrJ8;z0J30$,L5$$>l9g$K!$@0?t$N(B1$B$r%W%C%7%e$7!$$=$l0J30$N>l9g$K$O(B
+0$B$r%W%C%7%e$9$k!%(B
+
+\item[\hbox{\tt format.name\$}\hfill]
+$B%9%?%C%/%H%C%W$N(B3$B$D$N%j%F%i%k(B($B=g$KJ8;zNs!$@0?t!$J8;zNs(B)$B$r%]%C%W$9$k!%(B
+$B:G8e$NJ8;zNs%j%F%i%k$,L>A0%j%9%H(B($BMWAG$,8D?ML>$KBP1~(B)$B$G$"$j!$@0?t%j%F%i%k$,(B
+$B%j%9%H$N2?HVL\$r<h$j=P$9$N$+$N;XDj$G$"$j!$:G=i$NJ8;zNs%j%F%i%k$,L>A0$r(B
+$B$I$NMM$K%U%)!<%^%C%H$9$k$N$+(B($B<!@a$G@bL@$9$k(B)$B$N;XDj$G$"$k!%(B
+$B%U%)!<%^%C%H$5$l$?L>A0$NJ8;zNs$r%W%C%7%e$9$k!%(B
+
+{\dg \JBibTeX $B$G$NCm0U(B}$B!'(B
+$B$3$N4X?t$G$OA43Q$N%9%Z!<%9$OH>3Q$N%9%Z!<%9$HF1$8$H$_$J$9(B($B$h$j@53N$K(B
+$B$$$&$HA43Q$N%9%Z!<%9$OH>3Q$N%9%Z!<%9$KJQ49$5$l$F=hM}$5$l$k(B)$B!%$^$?!$A43Q$N(B
+$B6gE@(B ``$B!$(B'' $B$H(B ``$B!"(B'' $B$b(B ``\verb*| and |'' $B$HF1MM$K07$&$N$G!$(B
+$B4A;z%3!<%I;aL>$O6gE@$G6h@Z$C$FJB$Y$k$3$H$,$G$-$k!%(B
+
+
+\item[\hbox{\tt if\$}\hfill]
+3$B$D$N%j%F%i%k(B($B=g$K(B2$B$D$N4X?t%j%F%i%k!$@0?t%j%F%i%k(B)$B$r%]%C%W$7!$(B
+$B:G8e$N%j%F%i%kCM$N@0?tCM$,(B0$B$h$jBg$-$$;~$K$O(B2$BHVL\$N%j%F%i%k$r<B9T$7!$(B
+$B$=$&$G$J$1$l$P(B1$BHVL\$N%j%F%i%k$r<B9T$9$k!%(B
+
+\item[\hbox{\tt int.to.chr\$}\hfill]
+$B%9%?%C%/%H%C%W$N(B($B@0?t(B)$B%j%F%i%k$r%]%C%W$7!$$=$l$r(BASCII$B%3!<%I$H$7$F!$(B
+$BBP1~$9$kJ8;z$r(B1$BJ8;z$NJ8;zNs$KJQ49$7$?$b$N$r%W%C%7%e$9$k!%(B
+
+\item[\hbox{\tt int.to.str\$}\hfill]
+$B%9%?%C%/%H%C%W$N(B($B@0?t(B)$B%j%F%i%k$r%]%C%W$7!$$=$l$r(B($B0l0U$KDj$^$k(B)$BJ8;zNs$K(B
+$BJQ49$7$F%W%C%7%e$9$k!%(B
+
+\item[\hbox{\tt missing\$}\hfill]
+$B%9%?%C%/%H%C%W$r%]%C%W$7!$$=$l$,7gB,%U%#!<%k%I$G$"$l$P@0?t$N(B1$B$r!$$=$&$G(B
+$B$J$1$l$P(B0$B$r%W%C%7%e$9$k!%(B
+
+\item[\hbox{\tt newline\$}\hfill]
+$B=PNO%P%C%U%!$KC_@Q$5$l$F$$$k>pJs$r(B{\tt bbl}$B%U%!%$%k$K=q$-=P$9!%(B
+$B=PNO%P%C%U%!$,6u$G$"$k>l9g$K8B$j6u9T$r=q$-=P$9!%(B
+{\tt write\$} $B$OE,Ev$K2~9T$r9T$J$&$+$i!$6u9T$r=q$-=P$9;~!$$"$k$$$O(B
+$BL@<(E*$K2~9T$7$?$$;~$@$1$K!$$3$N4X?t$r;H$&$N$,$h$$!%(B
+
+\item[\hbox{\tt num.names\$}\hfill]
+$B%9%?%C%/%H%C%W$N(B($BJ8;zNs(B)$B%j%F%i%k$r%]%C%W$7J8;zNsCf$NL>A0$N?t!$(B
+$B$9$J$o$A!$BgJ8;z(B/$B>.J8;z$rL5;k$7$F!$Cf3g8L$N%l%Y%k(B0$B$N0LCV$K$"$j!$A08e$,(B
+$B6uGrJ8;z$G$"$k(B``and''$BItJ,J8;zNs$N?t$K(B1$B$r2C$($?CM!$(B
+$B$r%W%C%7%e$9$k!%(B
+
+{\dg \JBibTeX $B$G$NCm0U(B}$B!'(B
+$B$3$N4X?t$G$OA43Q$N%9%Z!<%9$OH>3Q$N%9%Z!<%9$HF1$8$H$_$J$9(B($B$h$j@53N$K(B
+$B$$$&$HA43Q$N%9%Z!<%9$OH>3Q$N%9%Z!<%9$KJQ49$5$l$F=hM}$5$l$k(B)$B!%$^$?!$A43Q$N(B
+$B6gE@(B ``$B!$(B'' $B$H(B ``$B!"(B'' $B$b(B ``\verb*| and |'' $B$HF1MM$K07$&$N$G!$(B
+$B4A;z%3!<%I;aL>$O6gE@$G6h@Z$C$FJB$Y$k$3$H$,$G$-$k!%(B
+
+\item[\hbox{\tt pop\$}\hfill]
+$B%9%?%C%/%H%C%W$r%]%C%W$9$k$,%W%j%s%H$O$7$J$$!%ITI,MW$J%j%F%i%k$r(B
+$B<h$j=|$/$N$K;H$&!%(B
+
+\item[\hbox{\tt preamble\$}\hfill]
+$B%G!<%?%Y!<%9%U%!%$%k$+$iFI$_9~$s$@(B{\tt @PREAMBLE}$B$9$Y$F$rO"7k$7$?J8;zNs$r(B
+$B%W%C%7%e$9$k!%(B
+
+\item[\hbox{\tt purify\$}\hfill]
+$B%9%?%C%/%H%C%W$N(B($BJ8;zNs(B)$B%j%F%i%k$r%]%C%W$7!$(B
+$B6uGrJ8;z!$%O%$%U%s(B`\verb|-|'$B$H%?%$(B`\verb|~|'
+($B$3$l$i$O%9%Z!<%9$KJQ49$5$l$k(B)$B$N$$$:$l$G$b$J$$%"%k%U%!%Y%C%H(B
+$B0J30$NJ8;z!$!VFC<lJ8;z!W$KIU?o$7$?@)8fJ8;zNs(B($B%3%^%s%I(B; control sequence)$B$K(B
+$B4^$^$l$k%"%k%U%!%Y%C%HJ8;z$r=|5n$7$?J8;zNs$r%W%C%7%e$9$k(B\trnote{$B4A;z%3!<%I(B
+$BJ8;zNs$J$iJQ2=$7$J$$!%(B}$B!%(B
+
+\item[\hbox{\tt quote\$}\hfill]
+$B%@%V%k%/%)!<%HJ8;z(B(`\verb|"|')1$BJ8;z$+$i$J$kJ8;zNs$r%W%C%7%e$9$k!%(B
+
+\item[\hbox{\tt skip\$}\hfill]
+$B2?$b$7$J$$!%(B
+
+\item[\hbox{\tt stack\$}\hfill]
+$B%9%?%C%/$NFbMF$rA4It%]%C%W$7$F%W%j%s%H$9$k!%%9%?%$%k:n@.;~$N%G%P%C%0MQ!%(B
+
+\item[\hbox{\tt substring\$}\hfill]
+$B%9%?%C%/%H%C%W$N(B3$B$D$N%j%F%i%k(B($B=g$KD9$5(B{\it len}$B!$3+;O0LCV(B{\it start}$B$N(B
+2$B$D$N@0?t%j%F%i%k!$J8;zNs%j%F%i%k(B)$B$r%]%C%W$9$k!%(B
+{\it start}$B$,@5$J$i$PJ8;zNs$N@hF,$+$i?t$($F!$(B
+($B:G=i$,(B1$BJ8;zL\$H$7$F(B){\it start}$BJ8;zL\$+$i$N!$(B
+{\it start}$B$,Ii$J$i$PJ8;zNs$N=*$j$+$i?t$($F(B($B:G8e$NJ8;z$,(B1$BJ8;zL\$H$7$F(B)$B!$(B
+$-${\it start}$BJ8;zL\$+$i$N!$(B
+$BO"B3$9$k(B($B9b!9(B){\it len}$BJ8;z$NItJ,J8;zNs$r%W%C%7%e$9$k!%(B
+
+{\dg \JBibTeX $B$G$NCm0U(B}$B!'(B
+$B$3$N4X?t$O(B1$BJ8;z$O(B1$B%P%$%H$+$i$J$k$b$N$H$7$F=hM}$9$k$N$G!$4A;z%3!<%I(B
+$BJ8;zNs$G$O;XDj$7$?(B
+$BJ8;z?t$NH>J,$N?t$N4A;z%3!<%I(B
+$B$,F@$i$l$k!%$^$?4A;z%3!<%I$N(B1$BJ8;z$N4V$G@Z$i$l$J$$$h$&$K(B
+$B3+;O0LCV!$J8;z?t(B($B%P%$%H?t(B)$B$ND4@0$r9T$J$&!%D4@0$O3+;O0LCV$,4A;z%3!<%I$N(B1$B%P%$%HL\(B
+$B$K0lCW$7$F$$$l$P!%3+;O0LCV$O$=$N$^$^!$(B2$B%P%$%HL\$G$"$l$P(B1$B%P%$%HL\$+$i<h$j=P$9(B
+$B$h$&$KD4@0$9$k!%=*N;0LCV$,4A;z%3!<%I$N(B1$B%P%$%HL\$G$"$l$P(B2$B%P%$%HL\$^$G<h$j=P$9(B
+$B$h$&$KD4@0$9$k!%$7$?$,$C$F;XDj$7$?D9$5$h$j:GBg(B2$B%P%$%HD9$$J8;zNs$H$J$k!%(B
+$B$3$l$OF|K\8lMQ$G$J$$%9%?%$%k%U%!%$%k$r;H$C$?>l9g$G$b$=$l$J$j$N=PNO$,F@$i$l$k(B
+$B$h$&$K$9$k$?$a$G$"$k!%(B
+
+\item[\hbox{\tt swap\$}\hfill]
+$B%9%?%C%/%H%C%W$N(B2$B$D$N%j%F%i%k$N=g=x$rF~$lBX$($k!%(B
+
+\item[\hbox{\tt text.length\$}\hfill]
+$B%9%?%C%/%H%C%W$N(B($BJ8;zNs(B)$B%j%F%i%k$r%]%C%W$7!$(B
+$B%"%/%;%s%HIU$-J8;z(B($B@53N$K$OBh(B4$B@a$GDj5A$5$l$F$$$k!VFC<lJ8;z!W(B)$B$O!$(B
+($BBP1~$9$k1&Cf3g8L$,7g$1$F$$$F$b(B)$B!$(B
+1$BJ8;z$H$7$F?t$($?;~$NJ8;z?t$r%W%C%7%e$9$k!%(B
+
+{\dg \JBibTeX $B$G$NCm0U(B}$B!'(B
+$B4A;z%3!<%I(B1$BJ8;z$O(B2$BJ8;z$H?t$($k!%(B
+
+\item[\hbox{\tt text.prefix\$}\hfill]
+2$B$D$N%j%F%i%k(B($B=g$K@0?t%j%F%i%k(B{\it len}$B!$J8;zNs%j%F%i%k(B)$B$r%]%C%W$7!$(B
+$BJ8;zNs$N@hF,$+$i(B($B9b!9(B){\it len}$BJ8;z$NO"B3$7$?J8;zNs$r%W%C%7%e$9$k!%(B
+{\tt substring\$} $B$K;w$F$$$k$,!$$3$N4X?t$G$O!$!VFC<lJ8;z!W$O(B
+$BBP1~$9$k1&Cf3g8L$,7g$1$F$$$F$b!$J#?t$N(BASCII$BJ8;z$+$i9=@.$5$l$F$$$F$b!$(B
+1$BJ8;z$H$7$F?t$($k!%(B
+
+{\dg \JBibTeX $B$G$NCm0U(B}$B!'(B
+$B$3$N4X?t$G$OFC<lJ8;z0J30$NJ8;z$O!$(B1$BJ8;z$O(B1$B%P%$%H$+$i$J$k$b$N$H$7$F(B
+$B=hM}$9$k$N$G!$4A;z%3!<%IJ8;zNs$G$O;XDj$7$?J8;z?t$NH>J,$N?t$N4A;z$+$i$J$k(B
+$BJ8;zNs$,F@$i$l$k!%(B
+$B$^$?4A;z%3!<%I$N(B1$BJ8;z$N4V$G@Z$i$l$J$$$h$&$K!$=*N;0LCV$,4A;z%3!<%I$N(B
+1$B%P%$%HL\$G$"$l$P(B2$B%P%$%HL\$^$G<h$j=P$9$h$&$KD4@0$9$k!%(B
+$B$7$?$,$C$F;XDj$7$?D9$5$h$j:GBg(B1$B%P%$%HD9$$J8;zNs$H$J$k!%(B
+$B$3$l$OF|K\8lMQ$G$J$$%9%?%$%k%U%!%$%k$r;H$C$?>l9g$G$b$=$l$J$j$N=PNO$,F@$i$l$k(B
+$B$h$&$K$9$k$?$a$G$"$k(B($BNc$($P(B{\tt alpha}$B$G$O%i%Y%k$rCx<TL>$N@+$N@hF,(B3$BJ8;z(B
+$B$rMQ$$$F:n@.$9$k$,!$4A;z%3!<%I$NCf4V$G=*$i$J$$$h$&$K(B2$BJ8;z$K$7$F$7$^$&$H(B
+$B>pJsNL$,>/$J$/$J$k!$$^$?4A;z%3!<%I$OFC<lJ8;z$H9M$($F=hM}$9$k$H%i%Y%k$,D9$/(B
+$B$J$j2a$.$k$N$G$3$N$h$&$J;EMM$H$7$?(B)$B!%(B
+
+\item[\hbox{\tt top\$}\hfill]
+$B%9%?%C%/%H%C%W$r%]%C%W$7$=$NFbMF$rC<Kv$H%m%0%U%!%$%k(B{\tt blg}$B$K%W%j%s%H$9$k!%(B
+$B%G%P%C%0$KLrN)$D!%(B
+
+\item[\hbox{\tt type\$}\hfill]
+$B8=:_$N%(%s%H%j$N7?(B({\tt book, article}$B$J$I(B)$B$NJ8;zNs$r%W%C%7%e$9$k!%(B
+$BCN$i$J$$7?$"$k$$$OL$Dj5A$N7?$G$"$l$P6uJ8;zNs$r%W%C%7%e$9$k!%(B
+
+\item[\hbox{\tt warning\$}\hfill]
+$B%9%?%C%/%H%C%W$N(B($BJ8;zNs7?(B)$B%j%F%i%k$r%]%C%W$7!$(B
+$B7Y9p%a%C%;!<%8$G$"$k$3$H$r<($7$F%W%j%s%H$9$k!%(B
+$B$^$?!$=PNO$7$?7Y9p%a%C%;!<%8$N?t$r(B1$BA}$d$9!%(B
+
+\item[\hbox{\tt while\$}\hfill]
+2$B$D$N(B($B4X?t(B)$B%j%F%i%k$r%]%C%W$7!$:G=i$N4X?t$r<B9T$7$?7k2L$G$"$k%9%?%C%/%H%C%W(B
+$B$NCM$,(B0$B$h$jBg$-$$4V!$(B2$BHVL\$N4X?t$r7+JV$7<B9T$9$k!%(B
+
+\item[\hbox{\tt width\$}\hfill]
+$B%9%?%C%/%H%C%W$N(B($BJ8;zNs7?(B)$B%j%F%i%k$r%]%C%W$7!$$=$N0u;zI}$r$"$kAjBPC10L$K(B
+$B4p$E$$$F7W;;$7$?@0?tCM$r%W%C%7%e$9$k(B
+($B8=:_$O(B1987$BG/(B6$B7n%P!<%8%g%s$N(B$cmr10$$B%U%)%s%H$K4p$E$$$F!$(B1/100$B%]%$%s%H$r(B
+1$B$H$7$F7W;;$9$k(B\trnote{$B4A;z%3!<%I$NI}>pJs$O@53N$G$J$$$N$GCm0U$,I,MW!%(B})$B!%(B
+$B$3$N4X?t$OJ8;zNs$rJ8;zDL$j$K07$&!$$9$J$o$A!$(B($BBP1~$9$k1&Cf3g8L$,7g$1$F$$$F$b(B)
+$B!VFC<lJ8;z!W$OFCJL$K07$&0J30$O!$(B
+$B$?$H$($"$kJ8;z$,(B\TeX $B$GFCJL$J0UL#$r;}$C$F$$$F$b!$(B
+$BJ8;z$O$=$N$^$^$N7A$G%W%j%s%H$5$l$k$b$N$H$7$FI}$r7W;;$9$k!%(B
+$B%i%Y%kJ8;zNs$NI}$rHf3S$9$k$?$a$N$b$N$G$"$k!%(B
+
+\item[\hbox{\tt write\$}\hfill]
+$B%9%?%C%/%H%C%W$N(B($BJ8;zNs(B)$B%j%F%i%k$r%]%C%W$7!$=PNO%P%C%U%!$K=q$-=P$9(B($B$=$N7k2L!$(B
+$B%P%C%U%!$,0lGU$K$J$l$P(B{\tt bbl}$B%U%!%$%k$K$b=q$-=P$5$l$k(B)$B!%(B
+
+\item[\hbox{\tt is.kanji.str\$}\hfill]
+\JBibTeX $B$N$_$GDj5A$5$l$F$$$kAH9~$_4X?t$G$"$j!$(B
+$B%9%?%C%/%H%C%W$N(B($BJ8;zNs(B)$B%j%F%i%k$r%]%C%W$7!$J8;zNsCf$KF|K\8lJ8;z(B($BA43QJ8;z(B)$B$,(B
+$B4^$^$l$F$$$l$P(B($B@0?t$N(B)1$B$r!$$=$&$G$J$1$l$P(B0$B$r%W%C%7%e$9$k!%(B
+
+\end{description}
+
+$BAH9~$_4X?t(B{\tt while\$} $B$H(B{\tt if\$} $B$G$O%9%?%C%/>e$K(B2$B$D$N4X?t%j%F%i%k$,(B
+$BI,MW$G$"$k!%(B
+$B$3$l$i$O4X?tL>$NA0$K%7%s%0%k%/%)!<%H$rIU$1$k$+!$(B
+{\tt FUNCTION}$B%3%^%s%I$r;H$C$F4X?t$rDj5A$7$?$/$J$1$l$P!$$=$NDj5A$r(B
+({\tt FUNCTION}$B%3%^%s%I$N(B2$BHVL\$N0z?t$rCf3g8L$G0O$s$G(B)$B$=$N$^$^=q$1$P$h$$!%(B
+$BNc$($P<!$K<($94X?t$N0lItJ,$O!$(B{\tt label}$B$,6uJ8;zNs$G$J$1$l$P!$(B
+$B$=$N:G8e$KJ8;z(B`{\tt a}'$B$rIU$12C$($k!%(B
+
+\begin{verbatim}
+ . . .
+ label "" =
+ 'skip$
+ { label "a" * 'label := }
+ if$
+ . . .
+\end{verbatim}
+
+$BL>A0$r%/%)!<%H$9$k4X?t$O!$(B{\tt skip\$} $B$N$h$&$JAH9~$_4X?t$G$"$kI,MW$O$J$/!$(B
+$BNc$($P!$%U%#!<%k%I$G$b!$<+J,$GDj5A$7$?4X?t$G$b$h$$!%(B
+
+
+\subsection{$BL>A0$N%U%)!<%^%C%H(B}
+
+$BL>A0$K$O2?$,F~$C$F$$$k$N$+(B? $B$3$l$K$D$$$F$OBh(B4$B@a$G>/$7>\$7$/@bL@$7$?!%(B
+$BL>A0$O!VL>(B(first)$B!W%Q!<%H(B, von$B%Q!<%H(B, $B!V@+(B(last)$B!W%Q!<%H$H(BJr$B%Q!<%H$+$i(B
+$B$J$j!$$=$l$>$l$OL>A0%H!<%/%s$N%j%9%H$+$i$J$j!$$=$l$>$l$N%Q!<%H$O(B
+$B6u$+$b$7$l$J$$$,!$L>A0$,6u$G$J$1$l$P@+%Q!<%H$OI,$:6u$G$O$J$$!%(B
+$B$3$N>.@a$G$OAH9~$_4X?t$N(B{\tt format.name\$} $B$K;XDj$9$k%U%)!<%^%C%H;XDjJ8;z(B
+$B$r@bL@$9$k!%(B
+
+$BNc$H$7$F!$Hs>o$KD9$$L>A0$r9M$($F$_$h$&!%(B
+$B%G!<%?%Y!<%9$N%(%s%H%j(B~\cite{prime-number-theorem}$B$K<!$N%U%#!<%k%I$,(B
+$B$"$k$H$7$h$&!%(B
+\begin{verbatim}
+ author = "Charles Louis Xavier Joseph de la Vall{\'e}e Poussin"
+\end{verbatim}
+$B$^$?!V@+(B $B%+%s%^(B $B%$%K%7%c%k!W(B(``last name comma initials'')$B$N=g$GL>A0$r(B
+$B%U%)!<%^%C%H$7$?$$$H$7$h$&!%(B
+$B<!$N$h$&$J%U%)!<%^%C%H;XDjJ8;zNs$r;H$&$H!$(B
+\begin{verbatim}
+ "{vv~}{ll}{, jj}{, f}?"
+\end{verbatim}
+\BibTeX $B$O%U%)!<%^%C%H$5$l$?J8;zNs$H$7$F<!$r:n$j=P$9!%(B
+\begin{verbatim}
+ de~la Vall{\'e}e~Poussin, C.~L. X.~J?
+\end{verbatim}
+
+$B$3$NNc$r$b$C$H>\$7$/8+$F$_$h$&!%(B
+$B$3$N%U%)!<%^%C%H;XDjJ8;zNs$K$O!$L>A0$N$=$l$>$l$N9=@.MWAG$K(B
+$BBP1~$9$k!$Cf3g8L%l%Y%k$,(B1$B$N(B4$B$D$N(B{\dg $BCGJR(B}({\em pieces\/})$B$,$"$k!%(B
+$BBP1~$9$k9=@.MWAG$,$J$1$l$P(B($B$3$NL>A0$G$O(BJr$BMWAG(B)$B!$$=$NCGJR$NCf$N$9$Y$F$,(B
+$BL5;k$5$l$k!%(B
+$BCf3g8L$N%l%Y%k(B0$B$K$"$k$b$N$O(B($B$3$NNc$G$O!$$?$V$s%?%$%W%_%9$G$"$m$&$,!$(B
+`{\tt ?}'$B$NJ8;z$O(B)$B$=$N$^$^$N7A$G=PNO$5$l$k$,!$(B
+$B$3$N5!G=$O$"$^$j;H$o$J$$$G$"$m$&!%(B
+
+$B%U%)!<%^%C%H;XDj$NItJ,Cf$G$OFs=EJ8;z(B(double letter)$B$O(B
+$B9=@.MWAG$N$9$Y$F$r;H$&$3$H$r!$(B
+$BC1J8;z(B(single letter)$B$O>JN,7A$K$7$?$b$N$r;H$&$3$H$r(B\BibTeX $B$K;XDj$9$k!%(B
+$B$3$l$i$N;XDjJ8;z$OCf3g8L$N%l%Y%k(B1$B$K$J$1$l$P$J$i$:!$$=$l0J30$NJ8;z$O(B(
+$B8e$G@bL@$7$F$"$kJ8;z0J30$N$[$H$s$I$9$Y$F$NJ8;z$O(B)$B$=$N$^$^$N7A$G;H$o$l$k!%(B
+von$B%Q!<%H$N:G8e$K$"$k%?%$(B(\verb|~|)$B$OG$0U%?%$$G$"$j!$(B\BibTeX $B$,I,MW$HH=CG(B
+$B$7$?>l9g$K$N$_=PNO$5$l!$$=$&$G$J$1$l$P%9%Z!<%9$H$7$F=PNO$5$l$k!%(B
+$BK\Ev$K%?%$$r=PNO$7$?$$$N$G$"$l$P(B2$B$D=q$$$F$*$1$P!$$D$^$j(B{\verb|{vv~~}|}$B$H(B
+$B$7$F$*$1$P(B(1$B$D$@$1(B)$B=PNO$5$l$k!%(B
+$BCGJR$N:G8e$NJ8;z$G$"$k%?%$$OG$0U%?%$$H$5$l$k$,!$$=$l0J30$ODL>o$N(B
+$BJ8;z$H$7$F07$o$l$k!%(B
+
+\BibTeX $B$OL>A0%H!<%/%s$N(B{\dg $B4V$K(B}$B%G%U%)!<%k%H$N6h@Z$jJ8;zNs$r=q$-=P$9!%(B
+$B$3$l$O%9%Z!<%9$+%?%$$N$I$A$i$+E,$7$?J}!$$"$k$$$O>JN,7A%H!<%/%s$G$O(B
+$B%T%j%*%I$N8e$K%9%Z!<%9$+%?%$$NE,$7$?J}$rIU$1$?$b$N$G$"$k!%(B
+$B$7$+$7%U%)!<%^%C%H;XDj$N:G8e$N%H!<%/%s$N8e$K$O(B
+$B%G%U%)!<%k%H6h@Z$jJ8;zNs$r=q$-=P$5$J$$$+$i!$(B
+$B@h$NNc$G8@$($P(B`J'$B$N8e$K$O%T%j%*%I$OIU$+$J$$!%(B
+$B$7$?$,$C$F<!$N$h$&$K;XDj$7$F!$(B
+\begin{verbatim}
+ "{vv~}{ll}{, jj}{, f.}"
+\end{verbatim}
+$BA0$N=PNONc$N5?LdId$r%T%j%*%I$KCV$-49$($?%U%)!<%^%C%H7k2L$rF@$k$3$H$,$G$-$k!%(B
+$BL>A0$K!VL>!W%Q!<%H$,$J$$>l9g$KBP1~$9$k$h$&$K!$%T%j%*%I$O(B
+$B5?LdId$N0LCV$G$J$/!VL>!WCGJR$NCf$KCV$+$M$P$J$i$J$$$3$H$KCm0U$7$h$&!%(B
+
+\BibTeX $B$N%G%U%)!<%k%H$N6h@Z$jJ8;z$rCV$-49$($?$$$N$J$i!$L@<(E*$K;XDj(B
+$B$9$kI,MW$,$"$k!%(B
+$BNc$($P(Bvon$B%Q!<%H$H@+%Q!<%H$N$9$Y$F$N%H!<%/%s$N@hF,J8;z$r!$4V$K%9%Z!<%9$r(B
+$BCV$+$:$KO"7k$7$?%i%Y%k$r:n$j$?$$$N$G$"$l$P!$(B
+$B<!$N$h$&$K;XDj$7$J$1$l$P$J$i$J$$!%(B
+\begin{verbatim}
+ "{v{}}{l{}}"
+\end{verbatim}
+$B$3$&$9$l$P%U%)!<%^%C%H7k2L$NJ8;zNs$H$7$F(B`{\tt dlVP}'$B$,F@$i$l$k!%(B
+$BCV$-49$($?$$$9$Y$F$NItJ,Kh$K;XDj$,I,MW$G$"$j(B($B$3$NNc$G$ON>J}$K6uJ8;zNs$,(B
+$B;XDj$5$l$F$$$k(B)$B!$;XDj$OC1J8;z!$Fs=EJ8;z$N$9$08e$K$J$1$l$P$J$i$J$$!%(B
+$B%U%)!<%^%C%H;XDjJ8;zNs$NCf3g8L$N%l%Y%k(B1$B$NCf$G$O!$(B
+$B0J>e$G=R$Y$?J8;z0J30$r=q$/$3$H$O$G$-$J$$!%(B
+
+{\dg\noindent\JBibTeX $B$G$NCm0UE@(B}$B!'(B
+
+\begin{itemize}
+\item $B4A;z%3!<%II=5-$5$l$?L>A0$G$O!$@+$HL>$N4V$K(B
+$B%9%Z!<%9(B($BH>3Q$G$bA43Q$G$b(B)$B$rF~$l$F$*$1$P!$(B`{\tt f}'$B$O(BFamily name($B@+(B)$B$K!$(B
+`{\tt l}'$B$O(BLast-token($BL>(B)$B$KBP1~$9$k$3$H$K$J$k$N$G!$DL>o$N(B
+$BI=5-=g$KL>A0$,=q$1$k!%$7$+$7%9%?%$%k$N:n@.$G$OCm0U$,I,MW$G$"$k!%(B
+$B$3$l$O(B{\tt format.name\$} $B$r40A4$JF|K\8lBP1~HG$H$7$F$$$J$$$+$i$G$"$k$,!$(B
+$B<B:]$KF|K\8lBP1~$N%9%?%$%k%U%!%$%k$r:n@.$7$?7P83$+$i$$$&$H!$4A;z%3!<%II=5-(B
+$B$5$l$?L>A0$H$=$l0J30$NL>A0$KBP$7$F!$F1$8%U%)!<%^%C%H;XDj$G(B
+{\tt format.name\$} $B$r8F$S=P$9$3$H$OKX$I$J$$$N$G!$$"$($F$3$N$^$^$K(B
+$B$7$F$"$k!%$7$+$7:.Mp$N<o$+$b$7$l$J$$!%(B
+
+\item {\tt jabbrv}$B$G@+$N$_$r=PNO$G$-$k$h$&$K$J$I$NL\E*$G!$(B
+\JBibTeX\ ver. 0.20$B0J9_$G$O(B
+$B@+$HL>$N4V$K%9%Z!<%9(B($BH>3Q$G$bA43Q$G$b(B)$B$rCV$/$3$H$rI8=`$H$7$F$$$k!%(B
+$B$7$+$7%9%Z!<%9$,$J$$>l9g$K$b7k2L$,$*$+$7$/$J$i$J$$$h$&$K!$%U%)!<%^%C%H;XDj(B
+$B$K$OCm0U$,I,MW$G$"$k!%Nc$($PF|K\8l%9%?%$%k$NCf$G$O<!$N$h$&$J%3!<%G%#%s%0$r(B
+$B9T$J$C$F$$$k!%(B
+
+{\baselineskip=11pt
+\begin{verbatim}
+editor is.kanji.str$ % $B4A;z%3!<%I$NJT=8<T(B?
+ {editor #1 "{ff}" format.name$ duplicate$ % $B@+$r<h$j=P$9(B
+ empty$ % $B6u(B?($B@+$HL>$N4V$K6uGr$,$J$$(B)
+ {pop$ editor #1 "{ll}" format.name$} % Last token$B$r<h$j=P$9(B
+ 'skip$ % noop
+ if$
+ }
+ {editor #1 "{vv~}{ll}" format.name$} % $B1QJ8JT=8<T(B
+if$
+\end{verbatim}
+}
+\end{itemize}
+
+\subsection{\JBibTeX $B$NI8=`%9%?%$%k(B}
+
+\JBibTeX $B$NI8=`%9%?%$%k$H$7$F$O(B{\tt plain, alpha, abbrv, unsrt}$B$KBP1~$7$F(B
+{\tt jplain, jalpha,jabbrv,\linebreak junsrt}$B$,:n@.$5$l$F$$$k!%(B
+$B$5$i$K>pJs=hM}3X2qO@J8;o(B{\tt tipsj}$B!$>pJs=hM}3X2q2$J8O@J8;o(B{\tt jipsj}$B!$(B
+$BEE;R>pJsDL?.3X2qO@J8;o(B{\tt tieic}$B!$F|K\%*%Z%l!<%7%g%s%:%j%5!<%A3X2qO@J8;o(B
+{\tt jorsj}$B!$?M9)CNG=3X2q;o(B{\tt jsai}$B!$%=%U%H%&%'%"2J3X2q;o(B{\tt jssst}$BMQ$N(B
+$B%9%?%$%k$b:n@.$5$l$F$$$k!%$3$l$i$N%9%?%$%k$G(B
+$B9T$J$C$F$$$kF|K\8lBP1~$N<g$JJQ99$O0J2<$NDL$j$G$"$k!%>\$7$/$O(B{\tt jbtxbst.doc}
+$B$r;2>H$5$l$?$$!%(B
+
+\begin{enumerate}
+\item $BCx<TL>$,F|K\8l$+$I$&$+$r(B{\tt is.kanji.str\$} $B$r;H$C$FH=Dj$7!$(B
+$BL>A0$N%U%)!<%^%C%H$NJ}K!$rJQ$($k!%(B
+
+\item $BCx:nL>$KF|K\8l$,4^$^$l$k>l9g$K$O6/D4;XDj$rIU$1$J$$!%(B
+
+\item $B%Z!<%8HO0O;XDj$r(B{\tt Pages}$B$+$i(B{\tt pp.\ }$B$KJQ99$7$?!%(B
+
+\item {\tt yomi}$B%U%#!<%k%I$,$"$l$P!$$=$N>pJs$r%=!<%F%#%s%0%-!<$r:n$k;~$K(B
+$BCx<TL>!$JT=8<TL>$NBe$j$K;H$&!%(B
+\end{enumerate}
+
+\baselineskip=16pt
+\bibliography{jbtxdoc}
+\bibliographystyle{jalpha}
+\end{document}
diff --git a/biblio/pbibtex/base/jipsj.bst b/biblio/pbibtex/base/jipsj.bst
new file mode 100644
index 0000000000..abdb85040e
--- /dev/null
+++ b/biblio/pbibtex/base/jipsj.bst
@@ -0,0 +1,1393 @@
+ % version 0.30 for JBibTeX versions 0.30 or later, LaTeX version 2.09.
+ % Copyright (C) 1990, all rights reserved.
+ %
+ % This file is derived from btxbst.doc of BibTeX 0.99c
+ %
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % jbtxbst.doc, jplain.bst, junsrt.bst, jalpha.bst, jabbrv.bst,
+ % tipsj.bst, jipsj.bst, tieice.bst, jname.bst, jorsj.bst
+ %
+ % This restriction helps ensure that all standard styles are identical.
+ % The file jbtxbst.doc has the documentation for this style.
+ %
+ % Please notify Shouichi MATSUI(matsui@denken.or.jp) of any bugs in
+ % these standard styles or in this documentation file.
+ % $B>>0f(B $B@50l(B ($B:b(B) $BEENOCf1{8&5f=j!!>pJs%7%9%F%`It(B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ yomi
+ }
+ {is.kanji.entry}
+
+ { label }
+
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block
+ after.author}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+
+ #4 'after.author :=
+
+}
+STRINGS { s t }
+
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+
+ { ", " * write$ }
+
+ { output.state after.block =
+ {
+
+ add.period$ write$
+
+ newline$
+ "\newblock " write$
+ }
+
+ { output.state after.author =
+
+ { " " * write$
+
+ mid.sentence 'output.state :=
+ }
+ 'write$
+ if$
+ }
+
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.bibitem}
+{ newline$
+
+ "\bibitem{" write$
+
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+FUNCTION {fin.entry}
+{
+
+ add.period$
+
+ write$
+ newline$
+}
+FUNCTION {new.block}
+{ output.state before.all =
+
+ { after.author 'output.state := }
+ 'skip$
+
+ if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { duplicate$ is.kanji.str$
+ 'skip$
+ { "{\em " swap$ * "}" * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+
+ { s nameptr "{ff}{ll}" format.name$ is.kanji.str$
+
+ {s nameptr "{ff}{ll}" format.name$ 't :=}
+
+
+ {s nameptr "{ll,~~}{vv~}{f.}{, jj}" format.name$ 't :=}
+
+ if$
+
+ nameptr #1 >
+ { namesleft #1 >
+
+ {", " * t * }
+
+
+ { t "others" = t "others,~" = or
+
+ { s is.kanji.str$
+
+ {"$BB>(B" * }
+
+
+ {"{\rm, et~al.}" * }
+
+ if$
+ }
+ { s is.kanji.str$
+
+ {", " * t * }
+
+
+
+ {"{\rm\ and }" * t * }
+
+
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+
+ { "{\sc " author format.names * "}" * }
+
+ if$
+}
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+
+ { "{\sc " editor format.names * "}" *
+
+ editor num.names$ #1 >
+ { editor is.kanji.str$
+
+
+ {"$B!JJT!K(B" * } {" eds." * } if$
+
+
+ }
+ { editor is.kanji.str$
+
+
+ {"$B!JJT!K(B" *} {" ed." * } if$
+
+
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.editors}
+{ editor empty$
+ { "" }
+ { editor format.names
+ editor num.names$ #1 >
+ { editor is.kanji.str$
+
+ {"$B!JJT!K(B" *} {"eds." swap$ * } if$
+
+ }
+ { editor is.kanji.str$
+
+ {"$B!JJT!K(B" *} {"ed." swap$ *} if$
+
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+
+{ after.author 'output.state :=
+ title empty$
+
+ { "" }
+
+ 'title
+
+ if$
+}
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+FUNCTION {format.date}
+
+{ before.all 'output.state :=
+ year empty$
+ { "there's no year in " cite$ * warning$
+ ""
+ }
+
+ { month empty$
+ { " (" year * ")" *}
+ { " (" month * " " * year * ")" * }
+ if$
+ }
+
+ if$
+}
+
+FUNCTION {format.btitle}
+
+{after.author 'output.state :=
+
+title emphasize
+
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect}
+ if$
+ }
+ if$
+ series empty$
+ 'skip$
+ { series is.kanji.str$
+ { volume empty$
+ {series swap$ * }
+
+ {series ", " * swap$ * }
+
+ if$
+ }
+ { " of " * series emphasize * }
+ if$
+ }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { number is.kanji.str$
+ { number }
+ {"No." number tie.or.space.connect}
+ if$
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { edition is.kanji.str$
+ { edition }
+ { is.kanji.entry
+ {"$BBh(B" edition * "$BHG(B" *}
+ { output.state mid.sentence =
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+
+ { " " pages n.dashify * }
+ { " " pages * }
+
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.vol.num.year.pages}
+{ volume empty$
+ {""}
+
+ {", {\bf " volume * "}" * }
+
+ if$
+
+ number empty$
+ 'skip$
+ {", " number * * }
+ if$
+
+ year empty$
+ { "there's no year in " cite$ * warning$ }
+
+ { format.date * }
+
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ", " * pages n.dashify * }
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { chapter is.kanji.str$
+ { "" }
+ { is.kanji.entry
+ {"$B>O(B"}
+ {"chapter"}
+ if$
+ }
+ if$
+ }
+ { type "l" change.case$ }
+ if$
+ chapter is.kanji.str$ not is.kanji.entry and
+ {"$BBh(B" chapter * swap$ *}
+ { chapter is.kanji.str$
+ {chapter *}
+ {chapter tie.or.space.connect}
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+
+ { ", " * format.pages * }
+
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { booktitle }
+ { booktitle " (" * format.in.ed.editors * ")" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+
+ key empty$ not and
+
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Technical Report" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { title is.kanji.str$
+ { " " journal * }
+
+
+ { "in {\em " journal * "\/}" * }
+
+
+ if$
+ }
+ if$
+ }
+ { title is.kanji.str$
+ { " " key * }
+
+ { "in " key * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.crossref.editor}
+{ editor is.kanji.str$
+
+ {editor #1 "{ff}" format.name$ duplicate$
+
+ empty$
+ {pop$ editor #1 "{ll}" format.name$}
+ 'skip$
+ if$
+ }
+
+ {editor #1 "{vv~}{ll}" format.name$}
+
+ if$
+ editor num.names$ duplicate$
+ #2 >
+ { editor is.kanji.str$
+
+ {pop$ "$BB>(B" *} {pop$ ", et~al." * } if$
+
+ }
+ { #2 <
+ 'skip$
+
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+
+ { editor is.kanji.str$
+
+ {"$BB>(B" *} {", et~al." * } if$
+
+ }
+ { editor is.kanji.str$
+ {
+
+ ", " *
+
+ editor #2 "{ff}" format.name$ duplicate$
+ empty$
+ {pop$ editor #2 "{ll}" format.name$}
+ 'skip$
+ if$
+ *
+ }
+ {" and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ title is.kanji.str$
+
+ {" "} {"in "} if$
+
+ }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect " of " * }
+ if$
+ }
+ if$
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { booktitle is.kanji.str$
+ { booktitle }
+
+
+
+ {"in {\em " booktitle * "\/}" * }
+
+
+
+ if$
+ }
+ if$
+ }
+
+ { "in " key * }
+
+ if$
+ }
+ { title is.kanji.str$
+ {" " format.crossref.editor * }
+
+ {"in " format.crossref.editor * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+
+ format.vol.num.year.pages output
+
+}
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+
+ new.block
+
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+
+ new.block
+ format.number.series output
+
+ new.block
+
+ publisher "publisher" output.check
+ address output
+ }
+
+ {
+
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+
+ format.chapter.pages "chapter and pages" output.check
+
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+
+ new.block
+
+ publisher "publisher" output.check
+ address output
+ format.edition output
+
+ format.date "year" output.check
+
+ format.chapter.pages output
+
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+ mid.sentence 'output.state :=
+
+
+ new.block
+
+ address empty$
+ { organization publisher new.sentence.checkb
+
+ new.block
+
+ organization output
+
+
+ new.block
+ mid.sentence 'output.state :=
+
+
+ publisher output
+
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+
+ format.date "year" output.check
+
+
+ new.block
+
+ organization output
+
+ mid.sentence 'output.state :=
+ new.block
+
+ publisher output
+
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "Master's thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "PhD thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+ format.date "year" output.check
+
+
+ new.block
+
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"Jan."}
+MACRO {feb} {"Feb."}
+MACRO {mar} {"Mar."}
+MACRO {apr} {"Apr."}
+MACRO {may} {"May"}
+MACRO {jun} {"June"}
+MACRO {jul} {"July"}
+MACRO {aug} {"Aug."}
+MACRO {sep} {"Sept."}
+MACRO {oct} {"Oct."}
+MACRO {nov} {"Nov."}
+MACRO {dec} {"Dec."}
+
+
+MACRO {acmcs} {"ACM Comput. Surv."}
+MACRO {acta} {"Acta Inf."}
+MACRO {cacm} {"Commun. ACM"}
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+MACRO {ibmsj} {"IBM Syst.~J."}
+MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
+MACRO {ipl} {"Inf. Process. Lett."}
+MACRO {jacm} {"J.~ACM"}
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+MACRO {scp} {"Sci. Comput. Programming"}
+MACRO {sicomp} {"SIAM J. Comput."}
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+MACRO {tods} {"ACM Trans. Database Syst."}
+MACRO {tog} {"ACM Trans. Gr."}
+MACRO {toms} {"ACM Trans. Math. Softw."}
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
+MACRO {tcs} {"Theoretical Comput. Sci."}
+MACRO {tieice} {"$B?.3XO@(B"}
+MACRO {tipsj} {"$B>pJs=hM}3X2qO@J8;o(B"}
+MACRO {jipsj} {"J.~Info. Proc. Soc. of Japan"}
+MACRO {jorsj} {"Journal of the O. R. Society of Japan"}
+
+READ
+FUNCTION {set.is.kanji.entry}
+{
+ author field.or.null is.kanji.str$
+ title field.or.null is.kanji.str$ or
+ editor field.or.null is.kanji.str$ or
+ journal field.or.null is.kanji.str$ or
+ booktitle field.or.null is.kanji.str$ or
+ series field.or.null is.kanji.str$ or
+ 'is.kanji.entry :=
+}
+ITERATE {set.is.kanji.entry}
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+INTEGERS { len }
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+
+
+FUNCTION {sort.format.names}
+{ 's :=
+ yomi empty$
+ 'skip$
+ { yomi 's := }
+ if$
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { ", " * }
+ 'skip$
+ if$
+
+ s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
+
+ nameptr numnames = t "others" = and
+ { s is.kanji.str$
+
+ {"$BB>(B" * }
+
+ {"et~al." *}
+ if$
+ }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+FUNCTION {presort}
+
+{ type$ "book" =
+
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+ITERATE {presort}
+SORT
+
+
+STRINGS { longest.label }
+INTEGERS { number.label longest.label.width }
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+EXECUTE {initialize.longest.label}
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+
+{ preamble$ empty$
+
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
diff --git a/biblio/pbibtex/base/jname.bst b/biblio/pbibtex/base/jname.bst
new file mode 100644
index 0000000000..29d5b050ff
--- /dev/null
+++ b/biblio/pbibtex/base/jname.bst
@@ -0,0 +1,1583 @@
+ % version 0.30 for JBibTeX versions 0.30 or later, LaTeX version 2.09.
+ % Copyright (C) 1990, all rights reserved.
+ %
+ % This file is derived from btxbst.doc of BibTeX 0.99c
+ %
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % jbtxbst.doc, jplain.bst, junsrt.bst, jalpha.bst, jabbrv.bst,
+ % tipsj.bst, jipsj.bst, tieice.bst, jname.bst, jorsj.bst
+ %
+ % This restriction helps ensure that all standard styles are identical.
+ % The file jbtxbst.doc has the documentation for this style.
+ %
+ % Please notify Shouichi MATSUI(matsui@denken.or.jp) of any bugs in
+ % these standard styles or in this documentation file.
+ % $B>>0f(B $B@50l(B ($B:b(B) $BEENOCf1{8&5f=j!!>pJs%7%9%F%`It(B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ yomi
+ }
+ {is.kanji.entry}
+
+
+ { label extra.label sort.label }
+
+
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block
+ after.author}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+
+ #4 'after.author :=
+
+}
+STRINGS { s t }
+
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+
+ { ", " * write$ }
+
+ { output.state after.block =
+ {
+
+ add.period$ write$
+
+ newline$
+ "\newblock " write$
+ }
+
+ { output.state after.author =
+
+ { author empty$ editor empty$ and organization empty$ and
+ {write$}
+
+ { author field.or.null is.kanji.str$
+ editor field.or.null is.kanji.str$ or
+ organization field.or.null is.kanji.str$ or
+ {"$B!'(B" * write$}
+ {": " * write$}
+ if$
+ }
+
+ if$
+
+ mid.sentence 'output.state :=
+ }
+ 'write$
+ if$
+ }
+
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.bibitem}
+{ newline$
+
+ "\bibitem[" write$
+ label write$
+ "]{" write$
+
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+FUNCTION {fin.entry}
+{
+
+ add.period$
+
+ write$
+ newline$
+}
+FUNCTION {new.block}
+{ output.state before.all =
+
+ { after.author 'output.state := }
+ 'skip$
+
+ if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { duplicate$ is.kanji.str$
+ 'skip$
+ { "{\em " swap$ * "}" * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+
+ { s nameptr "{ff}{ll}" format.name$ is.kanji.str$
+
+ {s nameptr "{ff}" format.name$ 't :=
+ t empty$
+ { s nameptr "{ll}" format.name$ 't :=
+ t " $B$K$O!$@+$HL>$N4V$K6uGr$,$J$$$h!)(B in " * cite$ * warning$
+ }
+ 'skip$
+ if$
+ }
+
+
+
+ { nameptr #1 =
+ {s nameptr "{ll,~~}{vv~}{f.}{, jj}" format.name$ 't :=}
+ {s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=}
+ if$
+ }
+
+
+ if$
+
+ nameptr #1 >
+ { namesleft #1 >
+
+ {", " * t * }
+
+
+ { t "others" =
+
+ { s is.kanji.str$
+
+ {"$BB>(B" * }
+
+
+ {", et~al." * }
+
+ if$
+ }
+ { s is.kanji.str$
+
+ {", " * t * }
+
+
+
+ { numnames #2 =
+ {" and " * t * }
+ {", and " * t * }
+ if$
+ }
+
+
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+
+ { author format.names }
+
+ if$
+}
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+
+ { editor format.names
+
+ editor num.names$ #1 >
+ { editor is.kanji.str$
+
+
+ {"$B!JJT!K(B" * } {" eds." * } if$
+
+
+ }
+ { editor is.kanji.str$
+
+
+ {"$B!JJT!K(B" *} {" ed." * } if$
+
+
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+
+{ after.author 'output.state :=
+ title empty$
+
+ { "" }
+
+ 'title
+
+ if$
+}
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+FUNCTION {format.date}
+
+{ before.all 'output.state :=
+ year empty$
+ { "there's no year in " cite$ * warning$
+ ""
+ }
+
+
+
+ {", " year * }
+
+
+
+ if$
+}
+
+FUNCTION {format.btitle}
+
+{after.author 'output.state :=
+
+title emphasize
+
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect}
+ if$
+ }
+ if$
+ series empty$
+ 'skip$
+ { series is.kanji.str$
+ { volume empty$
+ {series swap$ * }
+
+ {series ", " * swap$ * }
+
+ if$
+ }
+ { " of " * series emphasize * }
+ if$
+ }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { number is.kanji.str$
+ { number }
+ {"No." number tie.or.space.connect}
+ if$
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { edition is.kanji.str$
+ { edition }
+ { is.kanji.entry
+ {"$BBh(B" edition * "$BHG(B" *}
+ { output.state mid.sentence =
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+
+ { "pp." pages n.dashify tie.or.space.connect }
+ { "p." pages tie.or.space.connect }
+
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.vol.num.pages}
+{ volume empty$
+ {""}
+
+
+ { volume is.kanji.str$
+ {volume ", " * }
+ {"Vol." volume tie.or.space.connect ", " * }
+ if$
+ }
+
+
+ if$
+ number empty$
+ 'skip$
+
+ { number is.kanji.str$
+ {number *}
+ {"No." number tie.or.space.connect *}
+ if$
+
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { number empty$
+
+ { format.pages * }
+ { ", " * format.pages * }
+
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { chapter is.kanji.str$
+ { "" }
+ { is.kanji.entry
+ {"$B>O(B"}
+ {"chapter"}
+ if$
+ }
+ if$
+ }
+ { type "l" change.case$ }
+ if$
+ chapter is.kanji.str$ not is.kanji.entry and
+ {"$BBh(B" chapter * swap$ *}
+ { chapter is.kanji.str$
+ {chapter *}
+ {chapter tie.or.space.connect}
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+
+ { ", " * format.pages * }
+
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { booktitle is.kanji.str$
+ { " " booktitle emphasize * }
+
+ { "in " booktitle emphasize * }
+
+ if$
+ }
+ { booktitle is.kanji.str$
+
+ { " " format.editors * ", " * booktitle * }
+
+
+ { "in " format.editors * ", " * booktitle emphasize * }
+
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+
+ key empty$ not and
+
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Technical Report" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { title is.kanji.str$
+ { " " journal * }
+
+
+ { "in {\em " journal * "\/}" * }
+
+
+ if$
+ }
+ if$
+ }
+ { title is.kanji.str$
+ { " " key * }
+
+ { "in " key * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.crossref.editor}
+{ editor is.kanji.str$
+
+ {editor #1 "{ff}" format.name$ duplicate$
+
+ empty$
+ {pop$ editor #1 "{ll}" format.name$}
+ 'skip$
+ if$
+ }
+
+ {editor #1 "{vv~}{ll}" format.name$}
+
+ if$
+ editor num.names$ duplicate$
+ #2 >
+ { editor is.kanji.str$
+
+ {pop$ "$BB>(B" *} {pop$ ", et~al." * } if$
+
+ }
+ { #2 <
+ 'skip$
+
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+
+ { editor is.kanji.str$
+
+ {"$BB>(B" *} {", et~al." * } if$
+
+ }
+ { editor is.kanji.str$
+ {
+
+ ", " *
+
+ editor #2 "{ff}" format.name$ duplicate$
+ empty$
+ {pop$ editor #2 "{ll}" format.name$}
+ 'skip$
+ if$
+ *
+ }
+ {" and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ title is.kanji.str$
+
+ {" "} {"in "} if$
+
+ }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect " of " * }
+ if$
+ }
+ if$
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { booktitle is.kanji.str$
+ { booktitle }
+
+
+
+ {"in {\em " booktitle * "\/}" * }
+
+
+
+ if$
+ }
+ if$
+ }
+
+ { "in " key * }
+
+ if$
+ }
+ { title is.kanji.str$
+ {" " format.crossref.editor * }
+
+ {"in " format.crossref.editor * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+
+ format.vol.num.pages output
+ format.date "year" output.check
+
+}
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+
+ new.block
+
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+
+ format.chapter.pages "chapter and pages" output.check
+
+ new.block
+ format.number.series output
+
+ new.block
+
+ publisher "publisher" output.check
+ address output
+ }
+
+ { format.chapter.pages "chapter and pages" output.check
+
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+
+ format.chapter.pages output
+
+
+
+ new.block
+
+ publisher "publisher" output.check
+ address output
+ format.edition output
+
+ format.date "year" output.check
+
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+
+ format.pages output
+
+
+
+ new.block
+
+ address empty$
+ { organization publisher new.sentence.checkb
+
+ new.block
+
+ organization output
+
+
+ mid.sentence 'output.state :=
+ new.block
+
+
+ publisher output
+
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+
+ format.date "year" output.check
+
+
+ new.block
+
+ organization output
+
+ mid.sentence 'output.state :=
+ new.block
+
+ publisher output
+
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "Master's thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "PhD thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+ format.date "year" output.check
+
+
+ new.block
+
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"Jan."}
+MACRO {feb} {"Feb."}
+MACRO {mar} {"Mar."}
+MACRO {apr} {"Apr."}
+MACRO {may} {"May"}
+MACRO {jun} {"June"}
+MACRO {jul} {"July"}
+MACRO {aug} {"Aug."}
+MACRO {sep} {"Sept."}
+MACRO {oct} {"Oct."}
+MACRO {nov} {"Nov."}
+MACRO {dec} {"Dec."}
+
+
+MACRO {acmcs} {"ACM Comput. Surv."}
+MACRO {acta} {"Acta Inf."}
+MACRO {cacm} {"Commun. ACM"}
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+MACRO {ibmsj} {"IBM Syst.~J."}
+MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
+MACRO {ipl} {"Inf. Process. Lett."}
+MACRO {jacm} {"J.~ACM"}
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+MACRO {scp} {"Sci. Comput. Programming"}
+MACRO {sicomp} {"SIAM J. Comput."}
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+MACRO {tods} {"ACM Trans. Database Syst."}
+MACRO {tog} {"ACM Trans. Gr."}
+MACRO {toms} {"ACM Trans. Math. Softw."}
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
+MACRO {tcs} {"Theoretical Comput. Sci."}
+MACRO {tieice} {"$B?.3XO@(B"}
+MACRO {tipsj} {"$B>pJs=hM}3X2qO@J8;o(B"}
+MACRO {jipsj} {"J.~Info. Proc. Soc. of Japan"}
+MACRO {jorsj} {"Journal of the O. R. Society of Japan"}
+
+READ
+FUNCTION {set.is.kanji.entry}
+{
+ author field.or.null is.kanji.str$
+ title field.or.null is.kanji.str$ or
+ editor field.or.null is.kanji.str$ or
+ journal field.or.null is.kanji.str$ or
+ booktitle field.or.null is.kanji.str$ or
+ series field.or.null is.kanji.str$ or
+ 'is.kanji.entry :=
+}
+ITERATE {set.is.kanji.entry}
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+INTEGERS { len }
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+
+INTEGERS { et.al.char.used }
+FUNCTION {initialize.et.al.char.used}
+{ #0 'et.al.char.used :=
+}
+EXECUTE {initialize.et.al.char.used}
+FUNCTION {format.lab.names}
+{ 's :=
+ yomi empty$
+ 'skip$
+ { yomi 's :=}
+ if$
+
+ s is.kanji.str$
+ { s #1 "{ff}" format.name$ #4 text.prefix$ duplicate$ empty$
+ { pop$ s #1 "{ll}" format.name$ #4 text.prefix$
+ s #1 "{ll}" format.name$ " $B$K$O!$@+$HL>$N4V$K6uGr$,$J$$$h!)(B in " *
+ cite$ * warning$
+ }
+ 'skip$
+ if$
+ }
+ { s #1 "{ll}" format.name$ #3 text.prefix$ }
+ if$
+
+}
+FUNCTION {author.key.label}
+{ author empty$
+ { key empty$
+
+ { cite$ #1 #3 substring$ }
+
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+FUNCTION {author.editor.key.label}
+{ author empty$
+ { editor empty$
+ { key empty$
+
+ { cite$ #1 #3 substring$ }
+
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+FUNCTION {author.key.organization.label}
+{ author empty$
+ { key empty$
+ { organization empty$
+
+ { cite$ #1 #3 substring$ }
+
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ if$
+ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+FUNCTION {editor.key.organization.label}
+{ editor empty$
+ { key empty$
+ { organization empty$
+
+ { cite$ #1 #3 substring$ }
+
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ if$
+ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names }
+ if$
+}
+FUNCTION {calc.label}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label
+ { type$ "proceedings" =
+ 'editor.key.organization.label
+ { type$ "manual" =
+ 'author.key.organization.label
+ 'author.key.label
+ if$
+ }
+ if$
+ }
+ if$
+ duplicate$
+ year field.or.null purify$ #-1 #2 substring$
+ *
+ 'label :=
+ year field.or.null purify$ #-1 #4 substring$
+ *
+ sortify 'sort.label :=
+}
+
+
+
+FUNCTION {sort.format.names}
+{ 's :=
+ yomi empty$
+ 'skip$
+ { yomi 's := }
+ if$
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { ", " * }
+ 'skip$
+ if$
+
+ s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
+
+ nameptr numnames = t "others" = and
+ { s is.kanji.str$
+
+ {"$BB>(B" * }
+
+ {"et~al." *}
+ if$
+ }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+FUNCTION {presort}
+
+{ calc.label
+ sort.label
+ " "
+ *
+ type$ "book" =
+
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+
+ *
+
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+ITERATE {presort}
+SORT
+
+
+
+STRINGS { longest.label last.sort.label next.extra }
+INTEGERS { longest.label.width last.extra.num }
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #0 int.to.chr$ 'last.sort.label :=
+ "" 'next.extra :=
+ #0 'longest.label.width :=
+ #0 'last.extra.num :=
+}
+FUNCTION {forward.pass}
+{ last.sort.label sort.label =
+ { last.extra.num #1 + 'last.extra.num :=
+ last.extra.num int.to.chr$ 'extra.label :=
+ }
+ { "a" chr.to.int$ 'last.extra.num :=
+ "" 'extra.label :=
+ sort.label 'last.sort.label :=
+ }
+ if$
+}
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+ { "a" 'extra.label := }
+ 'skip$
+ if$
+ label extra.label * 'label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+ extra.label 'next.extra :=
+}
+EXECUTE {initialize.longest.label}
+ITERATE {forward.pass}
+REVERSE {reverse.pass}
+
+
+FUNCTION {begin.bib}
+
+{ et.al.char.used
+ { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
+ 'skip$
+ if$
+ preamble$ empty$
+
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
diff --git a/biblio/pbibtex/base/jorsj.bst b/biblio/pbibtex/base/jorsj.bst
new file mode 100644
index 0000000000..266016e8ec
--- /dev/null
+++ b/biblio/pbibtex/base/jorsj.bst
@@ -0,0 +1,1403 @@
+ % version 0.30 for JBibTeX versions 0.30 or later, LaTeX version 2.09.
+ % Copyright (C) 1990, all rights reserved.
+ %
+ % This file is derived from btxbst.doc of BibTeX 0.99c
+ %
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % jbtxbst.doc, jplain.bst, junsrt.bst, jalpha.bst, jabbrv.bst,
+ % tipsj.bst, jipsj.bst, tieice.bst, jname.bst, jorsj.bst
+ %
+ % This restriction helps ensure that all standard styles are identical.
+ % The file jbtxbst.doc has the documentation for this style.
+ %
+ % Please notify Shouichi MATSUI(matsui@denken.or.jp) of any bugs in
+ % these standard styles or in this documentation file.
+ % $B>>0f(B $B@50l(B ($B:b(B) $BEENOCf1{8&5f=j!!>pJs%7%9%F%`It(B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ yomi
+ }
+ {is.kanji.entry}
+
+ { label }
+
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block
+ after.author}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+
+ #4 'after.author :=
+
+}
+STRINGS { s t }
+
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+
+ { ", " * write$ }
+
+ { output.state after.block =
+ {
+
+ add.period$ write$
+
+ newline$
+ "\newblock " write$
+ }
+
+ { output.state after.author =
+
+ { author empty$ editor empty$ and organization empty$ and
+ {write$}
+
+ { author field.or.null is.kanji.str$
+ editor field.or.null is.kanji.str$ or
+ organization field.or.null is.kanji.str$ or
+ {"$B!'(B" * write$}
+ {": " * write$}
+ if$
+ }
+
+ if$
+
+ mid.sentence 'output.state :=
+ }
+ 'write$
+ if$
+ }
+
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.bibitem}
+{ newline$
+
+ "\bibitem{" write$
+
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+FUNCTION {fin.entry}
+{
+
+ add.period$
+
+ write$
+ newline$
+}
+FUNCTION {new.block}
+{ output.state before.all =
+
+ { after.author 'output.state := }
+ 'skip$
+
+ if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { duplicate$ is.kanji.str$
+ 'skip$
+ { "{\em " swap$ * "}" * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+
+ { s nameptr "{ff}{ll}" format.name$ is.kanji.str$
+
+ {s nameptr "{ff}{ll}" format.name$ 't :=}
+
+
+ {s nameptr "{ll,~~}{vv~}{f.}{, jj}" format.name$ 't :=}
+
+ if$
+
+ nameptr #1 >
+ { namesleft #1 >
+
+ {", " * t * }
+
+
+ { t "others" = t "others,~" = or
+
+ { s is.kanji.str$
+
+ {"$BB>(B" * }
+
+
+ {", et~al." * }
+
+ if$
+ }
+ { s is.kanji.str$
+
+ {", " * t * }
+
+
+
+ {" and " * t * }
+
+
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+
+ { author format.names }
+
+ if$
+}
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+
+ { editor format.names
+
+ editor num.names$ #1 >
+ { editor is.kanji.str$
+
+
+ {"$B!JJT!K(B" * } {" eds." * } if$
+
+
+ }
+ { editor is.kanji.str$
+
+
+ {"$B!JJT!K(B" *} {" ed." * } if$
+
+
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+
+{ after.author 'output.state :=
+ title empty$
+
+ { "" }
+
+ 'title
+
+ if$
+}
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+FUNCTION {format.date}
+
+{ before.all 'output.state :=
+ year empty$
+ { "there's no year in " cite$ * warning$
+ ""
+ }
+
+
+
+ {", " year * }
+
+
+
+ if$
+}
+
+FUNCTION {format.btitle}
+
+{after.author 'output.state :=
+
+title emphasize
+
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect}
+ if$
+ }
+ if$
+ series empty$
+ 'skip$
+ { series is.kanji.str$
+ { volume empty$
+ {series swap$ * }
+
+ {series ", " * swap$ * }
+
+ if$
+ }
+ { " of " * series emphasize * }
+ if$
+ }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { number is.kanji.str$
+ { number }
+ {"No." number tie.or.space.connect}
+ if$
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { edition is.kanji.str$
+ { edition }
+ { is.kanji.entry
+ {"$BBh(B" edition * "$BHG(B" *}
+ { output.state mid.sentence =
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+
+ { " " pages n.dashify * }
+ { " " pages * }
+
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.vol.num.year.pages}
+{ volume empty$
+ {""}
+
+ { volume is.kanji.str$
+ { volume }
+ {"Vol." volume tie.or.space.connect }
+ if$
+ }
+
+ if$
+
+ year empty$
+ { "there's no year in " cite$ * warning$ }
+
+ { " (" year * ")" * *}
+
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ", " * pages n.dashify * }
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { chapter is.kanji.str$
+ { "" }
+ { is.kanji.entry
+ {"$B>O(B"}
+ {"chapter"}
+ if$
+ }
+ if$
+ }
+ { type "l" change.case$ }
+ if$
+ chapter is.kanji.str$ not is.kanji.entry and
+ {"$BBh(B" chapter * swap$ *}
+ { chapter is.kanji.str$
+ {chapter *}
+ {chapter tie.or.space.connect}
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+
+ { ", " * format.pages * }
+
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { booktitle is.kanji.str$
+ { " " booktitle emphasize * }
+
+ { "in " booktitle emphasize * }
+
+ if$
+ }
+ { booktitle is.kanji.str$
+
+ { " " format.editors * ", " * booktitle * }
+
+
+ { "in " format.editors * ", " * booktitle emphasize * }
+
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+
+ key empty$ not and
+
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Technical Report" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { title is.kanji.str$
+ { " " journal * }
+
+
+ { "in {\em " journal * "\/}" * }
+
+
+ if$
+ }
+ if$
+ }
+ { title is.kanji.str$
+ { " " key * }
+
+ { "in " key * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.crossref.editor}
+{ editor is.kanji.str$
+
+ {editor #1 "{ff}" format.name$ duplicate$
+
+ empty$
+ {pop$ editor #1 "{ll}" format.name$}
+ 'skip$
+ if$
+ }
+
+ {editor #1 "{vv~}{ll}" format.name$}
+
+ if$
+ editor num.names$ duplicate$
+ #2 >
+ { editor is.kanji.str$
+
+ {pop$ "$BB>(B" *} {pop$ ", et~al." * } if$
+
+ }
+ { #2 <
+ 'skip$
+
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+
+ { editor is.kanji.str$
+
+ {"$BB>(B" *} {", et~al." * } if$
+
+ }
+ { editor is.kanji.str$
+ {
+
+ ", " *
+
+ editor #2 "{ff}" format.name$ duplicate$
+ empty$
+ {pop$ editor #2 "{ll}" format.name$}
+ 'skip$
+ if$
+ *
+ }
+ {" and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ title is.kanji.str$
+
+ {" "} {"in "} if$
+
+ }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect " of " * }
+ if$
+ }
+ if$
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { booktitle is.kanji.str$
+ { booktitle }
+
+
+
+ {"in {\em " booktitle * "\/}" * }
+
+
+
+ if$
+ }
+ if$
+ }
+
+ { "in " key * }
+
+ if$
+ }
+ { title is.kanji.str$
+ {" " format.crossref.editor * }
+
+ {"in " format.crossref.editor * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+
+ format.vol.num.year.pages output
+
+}
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+
+ new.block
+
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+
+ new.block
+ format.number.series output
+
+ new.block
+
+ publisher "publisher" output.check
+ address output
+ }
+
+ {
+
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+
+ format.chapter.pages "chapter and pages" output.check
+
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+
+ new.block
+
+ publisher "publisher" output.check
+ address output
+ format.edition output
+
+ format.date "year" output.check
+
+ format.chapter.pages output
+
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+ mid.sentence 'output.state :=
+
+
+ new.block
+
+ address empty$
+ { organization publisher new.sentence.checkb
+
+ new.block
+
+ organization output
+
+
+ new.block
+ mid.sentence 'output.state :=
+
+
+ publisher output
+
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+
+ format.date "year" output.check
+
+
+ new.block
+
+ organization output
+
+ mid.sentence 'output.state :=
+ new.block
+
+ publisher output
+
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "Master's thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "PhD thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+ format.date "year" output.check
+
+
+ new.block
+
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"Jan."}
+MACRO {feb} {"Feb."}
+MACRO {mar} {"Mar."}
+MACRO {apr} {"Apr."}
+MACRO {may} {"May"}
+MACRO {jun} {"June"}
+MACRO {jul} {"July"}
+MACRO {aug} {"Aug."}
+MACRO {sep} {"Sept."}
+MACRO {oct} {"Oct."}
+MACRO {nov} {"Nov."}
+MACRO {dec} {"Dec."}
+
+
+MACRO {acmcs} {"ACM Comput. Surv."}
+MACRO {acta} {"Acta Inf."}
+MACRO {cacm} {"Commun. ACM"}
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+MACRO {ibmsj} {"IBM Syst.~J."}
+MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
+MACRO {ipl} {"Inf. Process. Lett."}
+MACRO {jacm} {"J.~ACM"}
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+MACRO {scp} {"Sci. Comput. Programming"}
+MACRO {sicomp} {"SIAM J. Comput."}
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+MACRO {tods} {"ACM Trans. Database Syst."}
+MACRO {tog} {"ACM Trans. Gr."}
+MACRO {toms} {"ACM Trans. Math. Softw."}
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
+MACRO {tcs} {"Theoretical Comput. Sci."}
+MACRO {tieice} {"$B?.3XO@(B"}
+MACRO {tipsj} {"$B>pJs=hM}3X2qO@J8;o(B"}
+MACRO {jipsj} {"J.~Info. Proc. Soc. of Japan"}
+MACRO {jorsj} {"Journal of the O. R. Society of Japan"}
+
+READ
+FUNCTION {set.is.kanji.entry}
+{
+ author field.or.null is.kanji.str$
+ title field.or.null is.kanji.str$ or
+ editor field.or.null is.kanji.str$ or
+ journal field.or.null is.kanji.str$ or
+ booktitle field.or.null is.kanji.str$ or
+ series field.or.null is.kanji.str$ or
+ 'is.kanji.entry :=
+}
+ITERATE {set.is.kanji.entry}
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+INTEGERS { len }
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+
+
+FUNCTION {sort.format.names}
+{ 's :=
+ yomi empty$
+ 'skip$
+ { yomi 's := }
+ if$
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { ", " * }
+ 'skip$
+ if$
+
+ s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
+
+ nameptr numnames = t "others" = and
+ { s is.kanji.str$
+
+ {"$BB>(B" * }
+
+ {"et~al." *}
+ if$
+ }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+FUNCTION {presort}
+
+{ type$ "book" =
+
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+ITERATE {presort}
+SORT
+
+
+STRINGS { longest.label }
+INTEGERS { number.label longest.label.width }
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+EXECUTE {initialize.longest.label}
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+
+{ preamble$ empty$
+
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
diff --git a/biblio/pbibtex/base/jplain.bst b/biblio/pbibtex/base/jplain.bst
new file mode 100644
index 0000000000..7fa9f8f74e
--- /dev/null
+++ b/biblio/pbibtex/base/jplain.bst
@@ -0,0 +1,1385 @@
+ % version 0.30 for JBibTeX versions 0.30 or later, LaTeX version 2.09.
+ % Copyright (C) 1990, all rights reserved.
+ %
+ % This file is derived from btxbst.doc of BibTeX 0.99c
+ %
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % jbtxbst.doc, jplain.bst, junsrt.bst, jalpha.bst, jabbrv.bst,
+ % tipsj.bst, jipsj.bst, tieice.bst, jname.bst, jorsj.bst
+ %
+ % This restriction helps ensure that all standard styles are identical.
+ % The file jbtxbst.doc has the documentation for this style.
+ %
+ % Please notify Shouichi MATSUI(matsui@denken.or.jp) of any bugs in
+ % these standard styles or in this documentation file.
+ % $B>>0f(B $B@50l(B ($B:b(B) $BEENOCf1{8&5f=j!!>pJs%7%9%F%`It(B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ yomi
+ }
+ {is.kanji.entry}
+
+ { label }
+
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+
+}
+STRINGS { s t }
+
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+
+ { ", " * write$ }
+
+ { output.state after.block =
+ {
+
+ add.period$ write$
+
+ newline$
+ "\newblock " write$
+ }
+
+ { output.state before.all =
+ 'write$
+
+ { add.period$ " " * write$ }
+
+ if$
+ }
+
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.bibitem}
+{ newline$
+
+ "\bibitem{" write$
+
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+FUNCTION {fin.entry}
+{
+
+ add.period$
+
+ write$
+ newline$
+}
+FUNCTION {new.block}
+{ output.state before.all =
+
+ 'skip$
+ { after.block 'output.state := }
+
+ if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { duplicate$ is.kanji.str$
+ 'skip$
+ { "{\em " swap$ * "}" * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+
+ { s nameptr "{ff}{ll}" format.name$ is.kanji.str$
+ {s nameptr "{ff}{ll}" format.name$ 't :=}
+ {s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=}
+ if$
+
+ nameptr #1 >
+ { namesleft #1 >
+
+ {", " * t * }
+
+
+ { t "others" =
+
+ { s is.kanji.str$
+
+ {"$B$[$+(B" * }
+
+
+ {", et~al." * }
+
+ if$
+ }
+ { s is.kanji.str$
+
+ {", " * t * }
+
+
+
+ { numnames #2 =
+ {" and " * t * }
+ {", and " * t * }
+ if$
+ }
+
+
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+
+ { author format.names }
+
+ if$
+}
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+
+ { editor format.names
+
+ editor num.names$ #1 >
+ { editor is.kanji.str$
+
+ {"$B!JJT!K(B" * } {", editors" * } if$
+
+ }
+ { editor is.kanji.str$
+
+ {"$B!JJT!K(B" *} {", editor" * } if$
+
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+
+{ title empty$
+
+ { "" }
+
+
+ { title "t" change.case$ }
+
+
+ if$
+}
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+FUNCTION {format.date}
+
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.btitle}
+
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect}
+ if$
+ }
+ if$
+ series empty$
+ 'skip$
+ { series is.kanji.str$
+ { volume empty$
+ {series swap$ * }
+
+ {series ", " * swap$ * }
+
+ if$
+ }
+ { " of " * series emphasize * }
+ if$
+ }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { number is.kanji.str$
+ { number }
+ {"No." number tie.or.space.connect}
+ if$
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { edition is.kanji.str$
+ { edition }
+ { is.kanji.entry
+ {"$BBh(B" edition * "$BHG(B" *}
+ { output.state mid.sentence =
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+
+ { "pp." pages n.dashify tie.or.space.connect }
+ { "p." pages tie.or.space.connect }
+
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.vol.num.pages}
+{ volume empty$
+ {""}
+
+
+ { volume is.kanji.str$
+ {volume ", " * }
+ {"Vol." volume tie.or.space.connect ", " * }
+ if$
+ }
+
+
+ if$
+ number empty$
+ 'skip$
+
+ { number is.kanji.str$
+ {number *}
+ {"No." number tie.or.space.connect *}
+ if$
+
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { number empty$
+
+ { format.pages * }
+ { ", " * format.pages * }
+
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { chapter is.kanji.str$
+ { "" }
+ { is.kanji.entry
+ {"$B>O(B"}
+ {"chapter"}
+ if$
+ }
+ if$
+ }
+ { type "l" change.case$ }
+ if$
+ chapter is.kanji.str$ not is.kanji.entry and
+ {"$BBh(B" chapter * swap$ *}
+ { chapter is.kanji.str$
+ {chapter *}
+ {chapter tie.or.space.connect}
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+
+ { ", " * format.pages * }
+
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { booktitle is.kanji.str$
+ { " " booktitle emphasize * }
+
+ { "In " booktitle emphasize * }
+
+ if$
+ }
+ { booktitle is.kanji.str$
+
+ { " " format.editors * ", " * booktitle * }
+
+
+ { "In " format.editors * ", " * booktitle emphasize * }
+
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+
+ key empty$ not and
+
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Technical Report" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { title is.kanji.str$
+ { " " journal * }
+
+ { "In {\em " journal * "\/}" * }
+
+ if$
+ }
+ if$
+ }
+ { title is.kanji.str$
+ { " " key * }
+
+ { "In " key * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.crossref.editor}
+{ editor is.kanji.str$
+
+ {editor #1 "{ff}" format.name$ duplicate$
+
+ empty$
+ {pop$ editor #1 "{ll}" format.name$}
+ 'skip$
+ if$
+ }
+
+ {editor #1 "{vv~}{ll}" format.name$}
+
+ if$
+ editor num.names$ duplicate$
+ #2 >
+ { editor is.kanji.str$
+
+ {pop$ "$B$[$+(B" *} {pop$ ", et~al." * } if$
+
+ }
+ { #2 <
+ 'skip$
+
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+
+ { editor is.kanji.str$
+
+ {"$B$[$+(B" *} {", et~al." * } if$
+
+ }
+ { editor is.kanji.str$
+ {
+
+ ", " *
+
+ editor #2 "{ff}" format.name$ duplicate$
+ empty$
+ {pop$ editor #2 "{ll}" format.name$}
+ 'skip$
+ if$
+ *
+ }
+ {" and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ title is.kanji.str$
+
+ {" "} {"In "} if$
+
+ }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect " of " * }
+ if$
+ }
+ if$
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { booktitle is.kanji.str$
+ { booktitle }
+
+ {"In {\em " booktitle * "\/}" * }
+
+ if$
+ }
+ if$
+ }
+
+ { "In " key * }
+
+ if$
+ }
+ { title is.kanji.str$
+ {" " format.crossref.editor * }
+
+ {"In " format.crossref.editor * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+
+ format.vol.num.pages output
+ format.date "year" output.check
+
+}
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+
+ new.sentence
+
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+
+ format.chapter.pages "chapter and pages" output.check
+
+ new.block
+ format.number.series output
+
+ new.sentence
+
+ publisher "publisher" output.check
+ address output
+ }
+
+ { format.chapter.pages "chapter and pages" output.check
+
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+
+ format.chapter.pages output
+
+
+
+ new.sentence
+
+ publisher "publisher" output.check
+ address output
+ format.edition output
+
+ format.date "year" output.check
+
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+
+ format.pages output
+
+
+
+ address empty$
+ { organization publisher new.sentence.checkb
+
+ organization output
+
+ publisher output
+
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+
+ format.date "year" output.check
+
+
+ new.sentence
+
+ organization output
+
+ publisher output
+
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "Master's thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "PhD thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+ format.date "year" output.check
+
+
+ new.sentence
+
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+MACRO {feb} {"February"}
+MACRO {mar} {"March"}
+MACRO {apr} {"April"}
+MACRO {may} {"May"}
+MACRO {jun} {"June"}
+MACRO {jul} {"July"}
+MACRO {aug} {"August"}
+MACRO {sep} {"September"}
+MACRO {oct} {"October"}
+MACRO {nov} {"November"}
+MACRO {dec} {"December"}
+
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+MACRO {acta} {"Acta Informatica"}
+MACRO {cacm} {"Communications of the ACM"}
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+MACRO {ibmsj} {"IBM Systems Journal"}
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+MACRO {ipl} {"Information Processing Letters"}
+MACRO {jacm} {"Journal of the ACM"}
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+MACRO {scp} {"Science of Computer Programming"}
+MACRO {sicomp} {"SIAM Journal on Computing"}
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+MACRO {tods} {"ACM Transactions on Database Systems"}
+MACRO {tog} {"ACM Transactions on Graphics"}
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+MACRO {tcs} {"Theoretical Computer Science"}
+MACRO {tieice} {"$BEE;R>pJsDL?.3X2qO@J8;o(B"}
+MACRO {tipsj} {"$B>pJs=hM}3X2qO@J8;o(B"}
+MACRO {jipsj} {"Journal of Informatin Processing Society of Japan"}
+MACRO {jorsj} {"Journal of the Operations Research Society of Japan"}
+
+READ
+FUNCTION {set.is.kanji.entry}
+{
+ author field.or.null is.kanji.str$
+ title field.or.null is.kanji.str$ or
+ editor field.or.null is.kanji.str$ or
+ journal field.or.null is.kanji.str$ or
+ booktitle field.or.null is.kanji.str$ or
+ series field.or.null is.kanji.str$ or
+ 'is.kanji.entry :=
+}
+ITERATE {set.is.kanji.entry}
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+INTEGERS { len }
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+
+
+FUNCTION {sort.format.names}
+{ 's :=
+ yomi empty$
+ 'skip$
+ { yomi 's := }
+ if$
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { ", " * }
+ 'skip$
+ if$
+
+ s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
+
+ nameptr numnames = t "others" = and
+ { s is.kanji.str$
+
+ {"$B$[$+(B" * }
+
+ {"et~al." *}
+ if$
+ }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+FUNCTION {presort}
+
+{ type$ "book" =
+
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+ITERATE {presort}
+SORT
+
+
+STRINGS { longest.label }
+INTEGERS { number.label longest.label.width }
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+EXECUTE {initialize.longest.label}
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+
+{ preamble$ empty$
+
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
diff --git a/biblio/pbibtex/base/junsrt.bst b/biblio/pbibtex/base/junsrt.bst
new file mode 100644
index 0000000000..51619ad423
--- /dev/null
+++ b/biblio/pbibtex/base/junsrt.bst
@@ -0,0 +1,1221 @@
+ % version 0.30 for JBibTeX versions 0.30 or later, LaTeX version 2.09.
+ % Copyright (C) 1990, all rights reserved.
+ %
+ % This file is derived from btxbst.doc of BibTeX 0.99c
+ %
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % jbtxbst.doc, jplain.bst, junsrt.bst, jalpha.bst, jabbrv.bst,
+ % tipsj.bst, jipsj.bst, tieice.bst, jname.bst, jorsj.bst
+ %
+ % This restriction helps ensure that all standard styles are identical.
+ % The file jbtxbst.doc has the documentation for this style.
+ %
+ % Please notify Shouichi MATSUI(matsui@denken.or.jp) of any bugs in
+ % these standard styles or in this documentation file.
+ % $B>>0f(B $B@50l(B ($B:b(B) $BEENOCf1{8&5f=j!!>pJs%7%9%F%`It(B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ yomi
+ }
+ {is.kanji.entry}
+
+ { label }
+
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+
+}
+STRINGS { s t }
+
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+
+ { ", " * write$ }
+
+ { output.state after.block =
+ {
+
+ add.period$ write$
+
+ newline$
+ "\newblock " write$
+ }
+
+ { output.state before.all =
+ 'write$
+
+ { add.period$ " " * write$ }
+
+ if$
+ }
+
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.bibitem}
+{ newline$
+
+ "\bibitem{" write$
+
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+FUNCTION {fin.entry}
+{
+
+ add.period$
+
+ write$
+ newline$
+}
+FUNCTION {new.block}
+{ output.state before.all =
+
+ 'skip$
+ { after.block 'output.state := }
+
+ if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { duplicate$ is.kanji.str$
+ 'skip$
+ { "{\em " swap$ * "}" * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+
+ { s nameptr "{ff}{ll}" format.name$ is.kanji.str$
+ {s nameptr "{ff}{ll}" format.name$ 't :=}
+ {s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=}
+ if$
+
+ nameptr #1 >
+ { namesleft #1 >
+
+ {", " * t * }
+
+
+ { t "others" =
+
+ { s is.kanji.str$
+
+ {"$B$[$+(B" * }
+
+
+ {", et~al." * }
+
+ if$
+ }
+ { s is.kanji.str$
+
+ {", " * t * }
+
+
+
+ { numnames #2 =
+ {" and " * t * }
+ {", and " * t * }
+ if$
+ }
+
+
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+
+ { author format.names }
+
+ if$
+}
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+
+ { editor format.names
+
+ editor num.names$ #1 >
+ { editor is.kanji.str$
+
+ {"$B!JJT!K(B" * } {", editors" * } if$
+
+ }
+ { editor is.kanji.str$
+
+ {"$B!JJT!K(B" *} {", editor" * } if$
+
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+
+{ title empty$
+
+ { "" }
+
+
+ { title "t" change.case$ }
+
+
+ if$
+}
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+FUNCTION {format.date}
+
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.btitle}
+
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect}
+ if$
+ }
+ if$
+ series empty$
+ 'skip$
+ { series is.kanji.str$
+ { volume empty$
+ {series swap$ * }
+
+ {series ", " * swap$ * }
+
+ if$
+ }
+ { " of " * series emphasize * }
+ if$
+ }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { number is.kanji.str$
+ { number }
+ {"No." number tie.or.space.connect}
+ if$
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { edition is.kanji.str$
+ { edition }
+ { is.kanji.entry
+ {"$BBh(B" edition * "$BHG(B" *}
+ { output.state mid.sentence =
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+
+ { "pp." pages n.dashify tie.or.space.connect }
+ { "p." pages tie.or.space.connect }
+
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.vol.num.pages}
+{ volume empty$
+ {""}
+
+
+ { volume is.kanji.str$
+ {volume ", " * }
+ {"Vol." volume tie.or.space.connect ", " * }
+ if$
+ }
+
+
+ if$
+ number empty$
+ 'skip$
+
+ { number is.kanji.str$
+ {number *}
+ {"No." number tie.or.space.connect *}
+ if$
+
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { number empty$
+
+ { format.pages * }
+ { ", " * format.pages * }
+
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { chapter is.kanji.str$
+ { "" }
+ { is.kanji.entry
+ {"$B>O(B"}
+ {"chapter"}
+ if$
+ }
+ if$
+ }
+ { type "l" change.case$ }
+ if$
+ chapter is.kanji.str$ not is.kanji.entry and
+ {"$BBh(B" chapter * swap$ *}
+ { chapter is.kanji.str$
+ {chapter *}
+ {chapter tie.or.space.connect}
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+
+ { ", " * format.pages * }
+
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { booktitle is.kanji.str$
+ { " " booktitle emphasize * }
+
+ { "In " booktitle emphasize * }
+
+ if$
+ }
+ { booktitle is.kanji.str$
+
+ { " " format.editors * ", " * booktitle * }
+
+
+ { "In " format.editors * ", " * booktitle emphasize * }
+
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+
+
+
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Technical Report" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { title is.kanji.str$
+ { " " journal * }
+
+ { "In {\em " journal * "\/}" * }
+
+ if$
+ }
+ if$
+ }
+ { title is.kanji.str$
+ { " " key * }
+
+ { "In " key * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.crossref.editor}
+{ editor is.kanji.str$
+
+ {editor #1 "{ff}" format.name$ duplicate$
+
+ empty$
+ {pop$ editor #1 "{ll}" format.name$}
+ 'skip$
+ if$
+ }
+
+ {editor #1 "{vv~}{ll}" format.name$}
+
+ if$
+ editor num.names$ duplicate$
+ #2 >
+ { editor is.kanji.str$
+
+ {pop$ "$B$[$+(B" *} {pop$ ", et~al." * } if$
+
+ }
+ { #2 <
+ 'skip$
+
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+
+ { editor is.kanji.str$
+
+ {"$B$[$+(B" *} {", et~al." * } if$
+
+ }
+ { editor is.kanji.str$
+ {
+
+ ", " *
+
+ editor #2 "{ff}" format.name$ duplicate$
+ empty$
+ {pop$ editor #2 "{ll}" format.name$}
+ 'skip$
+ if$
+ *
+ }
+ {" and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ title is.kanji.str$
+
+ {" "} {"In "} if$
+
+ }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect " of " * }
+ if$
+ }
+ if$
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { booktitle is.kanji.str$
+ { booktitle }
+
+ {"In {\em " booktitle * "\/}" * }
+
+ if$
+ }
+ if$
+ }
+
+ { "In " key * }
+
+ if$
+ }
+ { title is.kanji.str$
+ {" " format.crossref.editor * }
+
+ {"In " format.crossref.editor * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+
+ format.vol.num.pages output
+ format.date "year" output.check
+
+}
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+
+ new.sentence
+
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+
+ format.chapter.pages "chapter and pages" output.check
+
+ new.block
+ format.number.series output
+
+ new.sentence
+
+ publisher "publisher" output.check
+ address output
+ }
+
+ { format.chapter.pages "chapter and pages" output.check
+
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+
+ format.chapter.pages output
+
+
+
+ new.sentence
+
+ publisher "publisher" output.check
+ address output
+ format.edition output
+
+ format.date "year" output.check
+
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+
+ format.pages output
+
+
+
+ address empty$
+ { organization publisher new.sentence.checkb
+
+ organization output
+
+ publisher output
+
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+
+ format.date "year" output.check
+
+
+ new.sentence
+
+ organization output
+
+ publisher output
+
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "Master's thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "PhD thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+ format.date "year" output.check
+
+
+ new.sentence
+
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+MACRO {feb} {"February"}
+MACRO {mar} {"March"}
+MACRO {apr} {"April"}
+MACRO {may} {"May"}
+MACRO {jun} {"June"}
+MACRO {jul} {"July"}
+MACRO {aug} {"August"}
+MACRO {sep} {"September"}
+MACRO {oct} {"October"}
+MACRO {nov} {"November"}
+MACRO {dec} {"December"}
+
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+MACRO {acta} {"Acta Informatica"}
+MACRO {cacm} {"Communications of the ACM"}
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+MACRO {ibmsj} {"IBM Systems Journal"}
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+MACRO {ipl} {"Information Processing Letters"}
+MACRO {jacm} {"Journal of the ACM"}
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+MACRO {scp} {"Science of Computer Programming"}
+MACRO {sicomp} {"SIAM Journal on Computing"}
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+MACRO {tods} {"ACM Transactions on Database Systems"}
+MACRO {tog} {"ACM Transactions on Graphics"}
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+MACRO {tcs} {"Theoretical Computer Science"}
+MACRO {tieice} {"$BEE;R>pJsDL?.3X2qO@J8;o(B"}
+MACRO {tipsj} {"$B>pJs=hM}3X2qO@J8;o(B"}
+MACRO {jipsj} {"Journal of Informatin Processing Society of Japan"}
+MACRO {jorsj} {"Journal of the Operations Research Society of Japan"}
+
+READ
+FUNCTION {set.is.kanji.entry}
+{
+ author field.or.null is.kanji.str$
+ title field.or.null is.kanji.str$ or
+ editor field.or.null is.kanji.str$ or
+ journal field.or.null is.kanji.str$ or
+ booktitle field.or.null is.kanji.str$ or
+ series field.or.null is.kanji.str$ or
+ 'is.kanji.entry :=
+}
+ITERATE {set.is.kanji.entry}
+
+
+
+
+
+
+STRINGS { longest.label }
+INTEGERS { number.label longest.label.width }
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+EXECUTE {initialize.longest.label}
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+
+{ preamble$ empty$
+
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
diff --git a/biblio/pbibtex/base/jxampl.bib b/biblio/pbibtex/base/jxampl.bib
new file mode 100644
index 0000000000..3ae16ef588
--- /dev/null
+++ b/biblio/pbibtex/base/jxampl.bib
@@ -0,0 +1,798 @@
+@preamble{ "\newcommand{\noopsort}[1]{} "
+ # "\newcommand{\printfirst}[2]{#1} "
+ # "\newcommand{\singleletter}[1]{#1} "
+ # "\newcommand{\switchargs}[2]{#2#1} " }
+
+@ARTICLE{article-minimal,
+ author = {L[eslie] A. Aamport},
+ title = {The Gnats and Gnus Document Preparation System},
+ journal = {\mbox{G-Animal's} Journal},
+ year = 1986,
+}
+
+@ARTICLE{article-full,
+ author = {L[eslie] A. Aamport},
+ title = {The Gnats and Gnus Document Preparation System},
+ journal = {\mbox{G-Animal's} Journal},
+ year = 1986,
+ volume = 41,
+ number = 7,
+ pages = "73+",
+ month = jul,
+ note = "This is a full ARTICLE entry",
+}
+
+The KEY field is here to override the KEY field in the journal being
+cross referenced (so is the NOTE field, in addition to its imparting
+information).
+
+@ARTICLE{article-crossref,
+ crossref = {WHOLE-JOURNAL},
+ key = "",
+ author = {L[eslie] A. Aamport},
+ title = {The Gnats and Gnus Document Preparation System},
+ pages = "73+",
+ note = "This is a cross-referencing ARTICLE entry",
+}
+
+@ARTICLE{whole-journal,
+ key = "GAJ",
+ journal = {\mbox{G-Animal's} Journal},
+ year = 1986,
+ volume = 41,
+ number = 7,
+ month = jul,
+ note = {The entire issue is devoted to gnats and gnus
+ (this entry is a cross-referenced ARTICLE (journal))},
+}
+
+@INBOOK{inbook-minimal,
+ author = "Donald E. Knuth",
+ title = "Fundamental Algorithms",
+ publisher = "Addison-Wesley",
+ year = "{\noopsort{1973b}}1973",
+ chapter = "1.2",
+}
+
+@INBOOK{inbook-full,
+ author = "Donald E. Knuth",
+ title = "Fundamental Algorithms",
+ volume = 1,
+ series = "The Art of Computer Programming",
+ publisher = "Addison-Wesley",
+ address = "Reading, Massachusetts",
+ edition = "Second",
+ month = "10~" # jan,
+ year = "{\noopsort{1973b}}1973",
+ type = "Section",
+ chapter = "1.2",
+ pages = "10--119",
+ note = "This is a full INBOOK entry",
+}
+
+@INBOOK{inbook-crossref,
+ crossref = "whole-set",
+ title = "Fundamental Algorithms",
+ volume = 1,
+ series = "The Art of Computer Programming",
+ edition = "Second",
+ year = "{\noopsort{1973b}}1973",
+ type = "Section",
+ chapter = "1.2",
+ note = "This is a cross-referencing INBOOK entry",
+}
+
+@BOOK{book-minimal,
+ author = "Donald E. Knuth",
+ title = "Seminumerical Algorithms",
+ publisher = "Addison-Wesley",
+ year = "{\noopsort{1973c}}1981",
+}
+
+@BOOK{book-full,
+ author = "Donald E. Knuth",
+ title = "Seminumerical Algorithms",
+ volume = 2,
+ series = "The Art of Computer Programming",
+ publisher = "Addison-Wesley",
+ address = "Reading, Massachusetts",
+ edition = "Second",
+ month = "10~" # jan,
+ year = "{\noopsort{1973c}}1981",
+ note = "This is a full BOOK entry",
+}
+
+@BOOK{book-crossref,
+ crossref = "whole-set",
+ title = "Seminumerical Algorithms",
+ volume = 2,
+ series = "The Art of Computer Programming",
+ edition = "Second",
+ year = "{\noopsort{1973c}}1981",
+ note = "This is a cross-referencing BOOK entry",
+}
+
+@BOOK{whole-set,
+ author = "Donald E. Knuth",
+ publisher = "Addison-Wesley",
+ title = "The Art of Computer Programming",
+ series = "Four volumes",
+ year = "{\noopsort{1973a}}{\switchargs{--90}{1968}}",
+ note = "Seven volumes planned (this is a cross-referenced set of BOOKs)",
+}
+
+@BOOKLET{booklet-minimal,
+ key = "Kn{\printfirst{v}{1987}}",
+ title = "The Programming of Computer Art",
+}
+
+@BOOKLET{booklet-full,
+ author = "Jill C. Knvth",
+ title = "The Programming of Computer Art",
+ howpublished = "Vernier Art Center",
+ address = "Stanford, California",
+ month = feb,
+ year = 1988,
+ note = "This is a full BOOKLET entry",
+}
+
+@INCOLLECTION{incollection-minimal,
+ author = "Daniel D. Lincoll",
+ title = "Semigroups of Recurrences",
+ booktitle = "High Speed Computer and Algorithm Organization",
+ publisher = "Academic Press",
+ year = 1977,
+}
+
+@INCOLLECTION{incollection-full,
+ author = "Daniel D. Lincoll",
+ title = "Semigroups of Recurrences",
+ editor = "David J. Lipcoll and D. H. Lawrie and A. H. Sameh",
+ booktitle = "High Speed Computer and Algorithm Organization",
+ number = 23,
+ series = "Fast Computers",
+ chapter = 3,
+ type = "Part",
+ pages = "179--183",
+ publisher = "Academic Press",
+ address = "New York",
+ edition = "Third",
+ month = sep,
+ year = 1977,
+ note = "This is a full INCOLLECTION entry",
+}
+
+@INCOLLECTION{incollection-crossref,
+ crossref = "whole-collection",
+ author = "Daniel D. Lincoll",
+ title = "Semigroups of Recurrences",
+ pages = "179--183",
+ note = "This is a cross-referencing INCOLLECTION entry",
+}
+
+@BOOK{whole-collection,
+ editor = "David J. Lipcoll and D. H. Lawrie and A. H. Sameh",
+ title = "High Speed Computer and Algorithm Organization",
+ booktitle = "High Speed Computer and Algorithm Organization",
+ number = 23,
+ series = "Fast Computers",
+ publisher = "Academic Press",
+ address = "New York",
+ edition = "Third",
+ month = sep,
+ year = 1977,
+ note = "This is a cross-referenced BOOK (collection) entry",
+}
+
+@MANUAL{manual-minimal,
+ key = "Manmaker",
+ title = "The Definitive Computer Manual",
+}
+
+@MANUAL{manual-full,
+ author = "Larry Manmaker",
+ title = "The Definitive Computer Manual",
+ organization = "Chips-R-Us",
+ address = "Silicon Valley",
+ edition = "Silver",
+ month = apr # "-" # may,
+ year = 1986,
+ note = "This is a full MANUAL entry",
+}
+
+@MASTERSTHESIS{mastersthesis-minimal,
+ author = "{\'{E}}douard Masterly",
+ title = "Mastering Thesis Writing",
+ school = "Stanford University",
+ year = 1988,
+}
+
+@MASTERSTHESIS{mastersthesis-full,
+ author = "{\'{E}}douard Masterly",
+ title = "Mastering Thesis Writing",
+ school = "Stanford University",
+ type = "Master's project",
+ address = "English Department",
+ month = jun # "-" # aug,
+ year = 1988,
+ note = "This is a full MASTERSTHESIS entry",
+}
+
+@MISC{misc-minimal,
+ key = "Missilany",
+ note = "This is a minimal MISC entry",
+}
+
+@MISC{misc-full,
+ author = "Joe-Bob Missilany",
+ title = "Handing out random pamphlets in airports",
+ howpublished = "Handed out at O'Hare",
+ month = oct,
+ year = 1984,
+ note = "This is a full MISC entry",
+}
+
+@STRING{STOC-key = "OX{\singleletter{stoc}}"}
+
+@STRING{ACM = "The OX Association for Computing Machinery"}
+
+@STRING{STOC = " Symposium on the Theory of Computing"}
+
+@INPROCEEDINGS{inproceedings-minimal,
+ author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis",
+ title = "On Notions of Information Transfer in {VLSI} Circuits",
+ booktitle = "Proc. Fifteenth Annual ACM" # STOC,
+ year = 1983,
+}
+
+@INPROCEEDINGS{inproceedings-full,
+ author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis",
+ title = "On Notions of Information Transfer in {VLSI} Circuits",
+ editor = "Wizard V. Oz and Mihalis Yannakakis",
+ booktitle = "Proc. Fifteenth Annual ACM" # STOC,
+ number = 17,
+ series = "All ACM Conferences",
+ pages = "133--139",
+ month = mar,
+ year = 1983,
+ address = "Boston",
+ organization = ACM,
+ publisher = "Academic Press",
+ note = "This is a full INPROCEDINGS entry",
+}
+
+@INPROCEEDINGS{inproceedings-crossref,
+ crossref = "whole-proceedings",
+ author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis",
+ title = "On Notions of Information Transfer in {VLSI} Circuits",
+ organization = "",
+ pages = "133--139",
+ note = "This is a cross-referencing INPROCEEDINGS entry",
+}
+
+@PROCEEDINGS{proceedings-minimal,
+ key = STOC-key,
+ title = "Proc. Fifteenth Annual" # STOC,
+ year = 1983,
+}
+
+@PROCEEDINGS{proceedings-full,
+ editor = "Wizard V. Oz and Mihalis Yannakakis",
+ title = "Proc. Fifteenth Annual" # STOC,
+ number = 17,
+ series = "All ACM Conferences",
+ month = mar,
+ year = 1983,
+ address = "Boston",
+ organization = ACM,
+ publisher = "Academic Press",
+ note = "This is a full PROCEEDINGS entry",
+}
+
+@PROCEEDINGS{whole-proceedings,
+ key = STOC-key,
+ organization = ACM,
+ title = "Proc. Fifteenth Annual" # STOC,
+ address = "Boston",
+ year = 1983,
+ booktitle = "Proc. Fifteenth Annual ACM" # STOC,
+ note = "This is a cross-referenced PROCEEDINGS",
+}
+
+@PHDTHESIS{phdthesis-minimal,
+ author = "F. Phidias Phony-Baloney",
+ title = "Fighting Fire with Fire: Festooning {F}rench Phrases",
+ school = "Fanstord University",
+ year = 1988,
+}
+
+@PHDTHESIS{phdthesis-full,
+ author = "F. Phidias Phony-Baloney",
+ title = "Fighting Fire with Fire: Festooning {F}rench Phrases",
+ school = "Fanstord University",
+ type = "{PhD} Dissertation",
+ address = "Department of French",
+ month = jun # "-" # aug,
+ year = 1988,
+ note = "This is a full PHDTHESIS entry",
+}
+
+@TECHREPORT{techreport-minimal,
+ author = "Tom Terrific",
+ title = "An {$O(n \log n / \! \log\log n)$} Sorting Algorithm",
+ institution = "Fanstord University",
+ year = 1988,
+}
+
+@TECHREPORT{techreport-full,
+ author = "Tom T{\'{e}}rrific",
+ title = "An {$O(n \log n / \! \log\log n)$} Sorting Algorithm",
+ institution = "Fanstord University",
+ type = "Wishful Research Result",
+ number = "7",
+ address = "Computer Science Department, Fanstord, California",
+ month = oct,
+ year = 1988,
+ note = "This is a full TECHREPORT entry",
+}
+
+@UNPUBLISHED{unpublished-minimal,
+ author = "Ulrich {\"{U}}nderwood and Ned {\~N}et and Paul {\={P}}ot",
+ title = "Lower Bounds for Wishful Research Results",
+ note = "Talk at Fanstord University (this is a minimal UNPUBLISHED entry)",
+}
+
+@UNPUBLISHED{unpublished-full,
+ author = "Ulrich {\"{U}}nderwood and Ned {\~N}et and Paul {\={P}}ot",
+ title = "Lower Bounds for Wishful Research Results",
+ month = nov # ", " # dec,
+ year = 1988,
+ note = "Talk at Fanstord University (this is a full UNPUBLISHED entry)",
+}
+
+@MISC{random-note-crossref,
+ key = {Volume-2},
+ note = "Volume~2 is listed under Knuth \cite{book-full}"
+}
+
+$B0J2<$OF|K\8l$N%9%?%$%k$N%F%9%HMQ$N%G!<%?72!%(B
+
+@INBOOK{inbook-full-j,
+ author = "$B%I%J%k%I!&%@%C%/(B",
+ yomi = "Donald Duck",
+ title = "$B4pK\;;K!(B",
+ volume = 1,
+ series = "$B<j2s$77W;;5!$NN"5;=8(B",
+ publisher = "$BNSFn=PHG(B",
+ address = "$BEl5~(B, $BD4I[;T(B",
+ edition = "$BBh(B2$BHG(B",
+ month = "4$B7n(B1$BF|(B",
+ year = 1963,
+ chapter = "$BBh(B1.2$B@a(B",
+ pages = "10--119",
+ note = "$B$$$s$A$-(B"
+}
+
+@INCOLLECTION{incol-full-j-1,
+ author = "$B%I%J%k%I!&%O%C%/(B",
+ yomi = "Donald Hack",
+ booktitle = "{$B5f6K$N(BJBibTeXing}",
+ number = 1,
+ series = "$B$3$l$G$o$+$k$+$J!)9V:B(B",
+ publisher = "$BK-Eg1`=PHG(B",
+ address = "$BEl5~(B, $BN}GO6h(B",
+ edition = "$BBh(B1$BHG(B",
+ month = "11$B7n(B7$BF|(B",
+ year = 1991,
+ chapter = "$BBh(B6.2$B@a(B",
+ pages = 321,
+ note = "$B%F%9%HMQ(B"
+}
+
+@ARTICLE{article-crossref-j,
+ crossref = {WHOLE-JOURNAL-J},
+ key = "",
+ author = "$BF?L>!!4uK>(B",
+ yomi ="Kibou Tokumei",
+ title = {$BO@J8MpB$$NN"5;65$($^$9(B},
+ pages = "73+",
+ note = "$B$3$l$OJ88%%j%9%HFb;2>H$7$F$$$k(BARTICLE$B$NNc(B"
+}
+
+@ARTICLE{article-crossref-jj,
+ crossref = {WHOLE-JOURNAL-J},
+ key = "",
+ author = "$BF?L>(B $B4uK>(B",
+ yomi ="Kibou Tokumei",
+ title = {$BO@J8MpB$$NN"5;65$($^$9!$$=$N#2(B},
+ pages = "83+",
+ note = "$B$3$l$OJ88%%j%9%HFb;2>H$7$F$$$k(BARTICLE$B$NNc(B"
+}
+
+@ARTICLE{whole-journal-j,
+ key = "Big",
+ journal = {Big Tomorrow$B$G$J$/(BSmall Yesterday},
+ year = 1986,
+ volume = 41,
+ number = 7,
+ month = jul,
+ note = {$B$$$+$K$7$F<jH4$-$7$F=P@$$9$k$+!$%$%s%A%-$GLY$1$k$+$NFC=89f!*(B}
+}
+
+@INBOOK{inbook-crossref-j,
+ crossref = "whole-set-j",
+ title = "{$B5f6K$N(BJBibTeXing}",
+ volume = "$BBh(B1$B4,(B",
+ series = "$B$3$l$G$o$+$k$+$J!)9V:B(B",
+ edition = "$BBh(B1$BHG(B",
+ year = 1991,
+ chapter = "$BBh(B3.5$B@a(B",
+ note = "$BJ88%%j%9%HFb;2>H$r$7$F$$$k(BINBOOK$B$NNc!#(B"
+}
+
+@BOOK{whole-set-j,
+ author = "$B%I%J%k%I!&%O%C%/(B",
+ yomi = "Donald Hack",
+ title = "$B$3$l$G$o$+$k$+$J!)9V:B(B",
+ volume = "$BA4(B13$B4,(B",
+ publisher = "$BK-Eg1`=PHG(B",
+ address = "$BEl5~(B, $BN}GO6h(B",
+ year = 1991,
+ note = "13$B4,$rM=Dj$O$7$F$$$k$,!$Dy@Z$r<i$i$J$$Cx<T$N$3$H$@$+$i!)$3$l$O%7%j!<%:A4BN$,;2>H$5$l$F$$$kNc!%(B"
+}
+
+@INBOOK{inbook-crossref-j-1,
+ crossref = "whole-set-j",
+ title = "{$B$O$8$a$F$N(BJBibTeXing}",
+ series = "$B$3$l$G$o$+$k$+$J!)9V:B(B",
+ edition = 1,
+ year = "{\noopsort{1973b}}1973",
+ chapter = "3.5",
+ type = "$B@a(B",
+ note = "$BJ88%%j%9%HFb;2>H$r$7$F$$$k(BINBOOK$B$NNc!*(B"
+}
+
+@string(ieeeassp={IEEE Trans. Acoust., Speech \& Signal Process.})
+
+@booklet{cvs,
+ title="{CVS$B5;=Q%l%]!<%H(B}",
+ author="$B5!3#?66=6(2q(B",
+ yomi="KikaiSinkouKyoukai",
+ year="$B><(B52"}
+
+@article{ha,
+ title="$B8DJL50F;M"Aw%7%9%F%`==;zO)IU6a$N%b%G%k2=$H$=$N2r@O(B",
+ author="$BIM>>(B $BK'IW(B and $BCfED(B $B>!<#(B and $B2CCO(B $B0jIW(B",
+ yomi="Yoshio Hamamatsu and Katsuji Nakata and Ikuo Kaji",
+ journal= tieice # "(A)", volume="J64-A", number=10, pages="835-842",
+ year=1982}
+@article{costa,
+ author="J. M. Costa and A. N. Venetsanopoulos",
+ title="Design of circularly symmetric two-demensional recursive filters",
+ journal=ieeeassp,
+ volume="ASSP-22",number=6,pages="432-443",year=1974}
+@inproceedings{mcclella,
+ author="J. H. McClellan",
+ title="The design of two-dimensional digital filters by transformation",
+ booktitle="Proc. 7th Annu. Princeton Conf. Inform. Sci. \& Systm.",
+ pages="247-251", year=1973}
+@book{dug,
+ author="D. E. Dudgen and R. M. Mersereau",
+ title="Multideimensional digital signal processing",
+ publisher="Prentice-Hall",year=1984}
+@inproceedings{sakawa,
+ author="M. Sakawa and H. Yano",
+ title="Interactive decision making for multiobjective linear
+ programming problems with fuzzy parameters",
+ booktitle="Large-Scale Modeling and Interactive Decision Analysis,
+ Proceedings, Eisenach, GDR",
+ editor="G. Fandel and M. Grauer and A. Kurzhanski and A. P. Wierzbiki",
+ publisher="Springer-Verlag", pages="88-96",year=1986}
+@manual{ssl,
+ title="SSL~II$B;HMQ<j0z=q(B",year=1980,
+ organization="$BIY;NDL(B",
+ yomi="Fujitsu"}
+@book{newman,
+ author="J. R. Norman",
+ title="The World of Mathematics, 4 vols.",
+ publisher="Simon and Schuster",
+ year=1956,
+ note="($BK]Lu(B~: $BNS(B $BM:0lO/LuJT(B~: ``$B?t3X$HO@M}$H(B'', $BEl5~?^=q(B(1970))"
+ }
+@book{Rich,
+ author="Elaine A. Rich",
+ title="Artificial Intelligence",
+ series="McGraw-Hill Series in Artificial Intelligence",
+ publisher="McGraw-Hill Book Company", year=1983,
+ note="($BK]Lu(B~: $BW"ED(B, $B5\B<(B $BLu(B~: ``$B?M9)CNG=(B I, II'',$B%^%0%m%&%R%k(B(1984))"}
+
+@STRING(GIH={$B8eF#(B $B1Q0l!"0l>>(B $B?.!"9-ED(B $BNI8c(B})
+@STRING($B>pJs=hM}3X2q(B={$B>pJs=hM}3X2q(B})
+
+@INCOLLECTION{goto,
+ author="$B8eF#!!1Q0l(B",
+ title="$B7W;;5!$K$h$k?t<0=hM}$H$O(B",
+ pages="4--6",
+ editor=GIH,
+ booktitle="$B7W;;5!$K$h$k?t<0=hM}$N$9$9$a(B",
+ series="$B%3%s%T%e!<%?!&%5%$%(%s%9(B\ {\bf bit}\ $BJL:}(B",
+ publisher="$B6&N)=PHG(B",
+ yomi="Eiichi Goto",
+ year="$B><(B61-4" }
+@UNPUBLISHED{$B0k:j(B,
+ author="$B0k:j(B $B=(<y(B",
+ title="How To Use {\JLaTeX}",
+ note="memo for {\JLaTeX}",
+ yomi="Hideki Isozaki",
+ year=1987}
+@MANUAL{$B@FF#(B,
+ author="$B@FF#(B $B9/8J(B",
+ title="$BF|K\8l(B{\TeX}:~{\JTeX}",
+ yomi="Yasuki Saitoh",
+ organization="DECUS$BBh(B7$B2s%7%s%]%8%&%`G[IU;qNA(B", year=1987}
+@BOOK{sym,
+ editor="Janusz S. Kowalik",
+ title="Coupling Symbolic and Numerical Computing in Expert Systems",
+ publisher="North-Holland",year=1986}
+@INCOLLECTION{eda,
+ author="F. N. Springsteel",
+ title="A Multilevel Expert System for Explaratory Data Analysis",
+ pages="295--306",
+ editor="Janusz S. Kowalik",
+ booktitle="Coupling Symbolic and Numerical
+ Computing in Expert Systems",
+ publisher="North-Holland",year=1986}
+ }
+@BOOK{dss,
+ editor="Clyde W. Holsapple and Andrew B. Whinston",
+ title="Decision Support Systems: Theory and Application",
+ publisher="North-Holland",year=1987}
+@INCOLLECTION{cm,
+ author="Amilcar Sernads and Cristina Sernads",
+ title="Conceptual Modeling for Knowledge-Based DSS Development",
+ editor="Clyde W. Holsapple and Andrew B. Whinston",
+ booktitle="Decision Support Systems: Theory and Application",
+ pages="91--135",year=1987,
+ publisher="North-Holland"}
+@BOOK{reduce,
+ editor=GIH,
+ yomi="E. Goto and S. Hitotsumatsu and R. Hirota",
+ title="$B7W;;5!$K$h$k?t<0=hM}$N$9$9$a(B",
+ series="$B%3%s%T%e!<%?!&%5%$%(%s%9(B\ {\bf bit}\ $BJL:}(B",
+ publisher="$B6&N)=PHG(B",
+ year="1986"}
+@ARTICLE{fp,
+ author="Shouichi Matsui and Masao Iri",
+ title="An Overflow/Underflow-Free Floating-Point Representation of Numbers",
+ journal="Journal of Information Processing",
+ volume=4,number=3,pages="123--133",
+ month=nov,year=1981}
+@ARTICLE{la,
+ author="Masao Iri and Kazuo Murota and Shouichi Matsui",
+ title="Linear-time approximation algorithms for finding the
+ minimum-weight perfect matching on a plane",
+ journal=ipl,volume=12,pages="206-209",year=1981
+}
+@ARTICLE{$B$"$U$lL5$7(B,
+ author="$B>>0f(B $B@50l(B and $B0KM}(B $B@5IW(B",
+ title="$B$"$U$l$N$J$$IbF0>.?tE@I=<(J}<0(B",
+ journal="$B>pJs=hM}3X2qO@J8;o(B", volume=21, number=4, pages="306--313",
+ yomi="Shouichi Matsui and Masao Iri",
+ year=1980}
+@ARTICLE{$B%@%`(B,
+ title="$BCN<19)3XE*<jK!$K4p$E$/?eNO9]9=B$J*$N<wL?M=B,(B",
+ author="$BCfB<(B $B=(<#!"(B $B>>1:(B $B??0l!"(B $B>>0f(B $B@50l(B and $B;{Ln(B $BN4M:(B",
+ journal="$BEZLZ3X2qO@J8=8(B",number="368/I-5",
+ pages="301--310",
+ yomi="Hideharu Nakamura and Shinichi Matsuura and Shouichi Matsui and
+ Takao Terano",
+ year=1986,month=apr}
+@BOOK{$B?ML>I=5-(B,
+ author="$B%^!<%/!&%T!<%?!<%;%s(B",
+ title="$BF|K\?M$N1Q8l(B",
+ publisher="$B4dGH=qE9(B",
+ year=1988, month=apr,
+ pages=196,
+ yomi="Mark Petersen",
+ series="$B4dGH?7=q(B($B?7@VHG(B) 18",
+ note="pp. 187--189
+ $B1Q8l$G$NF|K\?M$NL>A0$N=q$-J}(B,
+ $BF|K\$N9q:]2=$N$?$a$K$OL@<#;~Be$+$i$N9M$(J}$r$3$N$"$?$j$G$d$a$?$i$I$&$+(B
+ Shouichi Matsui $B$G$J$/(B Matsui Shouichi"
+}
+
+@MISC{EUC$BF|K\8l(BTeX,
+ author="$B>>0f!!@50l(B",yomi="Matsui, Shouichi",
+ title="{NTT}$BHGF|K\8l(B{\TeX}: {\JTeX}$B$N;H$$J}(B",
+ year=1988, month=may,
+ note="$BEENOCf1{8&5f=j(B $B>pJs%7%9%F%`It(B $BFbIt%a%b(B"
+}
+
+@INPROCEEDINGS{multi,
+ author="$B>>0f!!@50l!$<D86!!Lw;V!$Bg20!!N4@8!"9b66(B $B@?(B",
+ yomi="Shouichi Matsui and Yasusi Sinohara and Takao Ohya and
+ Makoto Takahashi",
+ title="$B%^%k%A%a%G%#%"$r3hMQ$7$?0U;W7hDj;Y1g%7%9%F%`$N3+H/(B",
+ booktitle="$B!VMxMQ<T;V8~$N>pJs%7%9%F%`!W%7%s%]%8%&%`M=9F=8(B",
+ publisher=$B>pJs=hM}3X2q(B,pages="39--48",year=1986,month=jul
+}
+
+@BOOK{marumoji,
+ author="$B;3:,!!0l??(B", yomi="K. Yamane",
+ title="$BJQBN>/=wJ8;z$N8&5f(B",publisher="$B9VCL<R(B",
+ year=1986,pages=230
+}
+
+@ARTICLE{maru,
+ author="$BL#2,!!?-B@O:(B", yomi="Taro Ajioka",
+ title="$B2#=q$-$GJ8;z$r=q$1$P<+A3$H%^%k;z$K$J$k(B",
+ journal="$B$H$h$O$7I4A*!c2F9f!d(B",number="$BDL4,(B37$B9f(B",
+ pages=25,publisher="$BEl0&CN?7J9<R(B",year=1986
+}
+
+yomi $B$KJ?2>L>$r;H$&Nc(B
+
+@INCOLLECTION{goto-h,
+ author="$B8eF#(B $B1Q0l(B",
+ title="$B7W;;5!$K$h$k?t<0=hM}$H$O(B",
+ pages="4--6",
+ crossref="reduce",
+ yomi="{\noop{$B$4$H$&(B}$B8e(B}$BF#(B",
+ year=1986 }
+@UNPUBLISHED{$B0k:j(B-h,
+ author="$B0k:j(B $B=(<y(B",
+ title="How To Use {\JLaTeX}",
+ note="memo for {\JLaTeX}",
+ yomi="{\noop{$B$$$=$6$-(B}$B0k(B}$B:j(B",
+ year=1987}
+@MANUAL{$B@FF#(B-h,
+ author="$B@FF#(B $B9/8J(B",
+ title="$BF|K\8l(B{\TeX}:~{\JTeX}",
+ yomi="{\noop{$B$5$$$H$&(B}$B@F(B}$BF#(B",
+ organization="DECUS$BBh(B7$B2s%7%s%]%8%&%`G[IU;qNA(B", year=1987}
+@INPROCEEDINGS{multi-h,
+ author="$B>>0f(B $B@50l!"<D86(B $BLw;V!"Bg20(B $BN4@8!"9b66(B $B@?(B",
+ yomi="{\noop{$B$^$D$$(B}$B>>(B}$B0f(B",
+ title="$B%^%k%A%a%G%#%"$r3hMQ$7$?0U;W7hDj;Y1g%7%9%F%`$N3+H/(B",
+ booktitle="$B!VMxMQ<T;V8~$N>pJs%7%9%F%`!W%7%s%]%8%&%`M=9F=8(B",
+ publisher=$B>pJs=hM}3X2q(B,pages="39--48",year=1986,month=jul
+ }
+
+$B%=%U%H%&%'%"2J3X2qMQ$N%F%9%H%G!<%?(B
+
+@INPROCEEDINGS{ama,
+ author="M. Amamiya and R. Hasegawa and H. Mikami",
+ title="List Processing with Data Flow Machine",
+ booktitle="RIMS Symposium on Software Science and Engineering",
+ editor="E. Goto and Oozei Sonota and others",
+ publisher="Springer-Verlag",
+ year=1982,
+ pages="165--190"
+}
+
+@TECHREPORT{Arv,
+ author="Kathall V. Arvind and K. Pingali",
+ title="A Data Flow Architecture with Tagged Tokens",
+ type="MIT LCS Momo",
+ number="TM174",
+ year=1980
+}
+
+@BOOK{cha,
+ author="V. Chachra and P. M. Chare and J. M. Moore",
+ title="Applications of Graph Theory Algorithms",
+ publisher="Elsevier North Holland",
+ year=1979
+}
+
+@ARTICLE{dav,
+ author="D. Davidson and D. Landskov and B. D. Shriver and
+ P. W. Maliett",
+ title="Some experiments in Local Microcodes Compaction for
+ Horizontal Machines",
+ journal=ieeetc,
+ volume="C-30", number=7, month=jul, year=1981,
+ pages="460-477"
+}
+
+@inproceedings{den,
+ author="J. B. Dennis and D. P. Misunas",
+ title ="A Preliminary Architecture for a Basic Data Flow Processor",
+ booktitle="Proc. of the 2nd Int'l Symp. on Computer Architecture",
+ month=jan,year=1975,pages="126-132"
+}
+
+@article{fis,
+ author="J. A. Fisher",
+ title="Trace Scheduling: A Techinique for Global Microcode Compaction",
+ journal=ieeetc, volume="C-30",number=7,year=1981,pages="478-490"
+}
+
+@article{gajski,
+ author="D. D. Gajski and D. A. Padua and D. J. Kuck and Kuhn, R. H.",
+ title="A Second Optinion on Data Flow Machines and Languages",
+ journal="Computer",
+ volume=15, number=2, month=feb, year=1982, pages="58-69"
+}
+
+@inproceedings{suna1,
+ author="$B:=86!!=(<y!$=j!!??M}M:(B",
+ yomi="Hideki Sunahara and Mario Tokoro",
+ title="$B%G!<%?6nF07?7W;;5!$N<B9T@)8f$K4X$9$k9M;!(B",
+ booktitle="$B%G!<%?%U%m!<%o!<%/%7%g%C%W(B'86",
+ month=may, year=1986,
+ pages="83--89"
+}
+
+@inproceedings{suna2,
+ author="Hideki Sunahara and Mario Tokoro",
+ title="Half-Dynamic Scheduling with Data-flow Control",
+ booktitle="Presented at Int'l Conf. on SuperComputing",
+ address="Athens, Greece",
+ month="June 8--12",year=1987
+}
+
+@article{toko1,
+ author="M. Tokoro and E. Tamura and T. Takizuka",
+ title="Optimization of Microprograms",
+ journal=ieeetc,
+ month=jul,year=1981,
+ volume="C-30",number=7,pages="491--504"
+}
+
+@inproceedings{toko2,
+ author="M. Tokoro and J. R. Jagannathan and H. Sunahara",
+ title="On the Working Set Concepts for Data-flow Machines",
+ booktitle="Proc. of the 10th Int'l Symp. on Computer Architecture",
+ month=jun,year=1983,
+ pages="90-97"
+}
+
+@incollection{suna86,
+ author="Sunahara, H. and Tokoro, M.",
+ title="On the Working Set Concept for Data-flow Machines: Policies
+ and Their Evaluation",
+ booktitle="Fifth Generation Computer Architectures",
+ editor="Woods, J. V.",
+ publisher="North-Holland", year=1986, pages="147-160"
+}
+
+$B?M9)CNG=3X2q;oMQ%F%9%H%G!<%?(B
+
+@inproceedings{onda,
+ author="Onda, H. and Hasegawa, T. and Matsui, T.",
+ title="Collision Avoidance for a 6-DOF Manipulator Based on Empty
+ Space Analysis of 3-D Real World",
+ booktitle="IEEE Int. Workshop on Intelligent Robots and Systems",
+ address="Ibaraki",
+ year=1990
+}
+
+@article{$B6aF#(B,
+ author="$B6aF#!$LZB<(B",
+ yomi="Kondoh and Kimura",
+ title="$BLBO)K!$K4p$E$/<+M36u4V;;=PK!$rMQ$$$?>c32J*2sHrF0:n7W2h(B",
+ journal="$BF|K\%m%\%C%H3X2q;o(B",
+ volume=5,number=4,pages="263--272",
+ year=1987
+}
+
+@article{JSAI-1,
+ journal="$B?M9)CNG=3X2q;o(B",
+ key="JinkouTinouGakkai",
+ volume=5, number=4,
+ year=1990, month=jul,
+ note="$BFC=8!VJ,;6?M9)CNG=!W(B"
+}
+
+@incollection{grosz,
+ author="Grosz, B.",
+ title="The Representation and Use of Focus in a System For
+ Understanding Dialog",
+ booktitle="Natural Language Processing",
+ editor="B. Grosz and K. S. Jones and B. L. Webber",
+ publisher="Morgan Kaufram Publisher",
+ year="1979, in part 1986",
+ pages="353--362"
+}
+
diff --git a/biblio/pbibtex/base/tieice.bst b/biblio/pbibtex/base/tieice.bst
new file mode 100644
index 0000000000..b6731d3c46
--- /dev/null
+++ b/biblio/pbibtex/base/tieice.bst
@@ -0,0 +1,1299 @@
+ % version 0.30 for JBibTeX versions 0.30 or later, LaTeX version 2.09.
+ % Copyright (C) 1990, all rights reserved.
+ %
+ % This file is derived from btxbst.doc of BibTeX 0.99c
+ %
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % jbtxbst.doc, jplain.bst, junsrt.bst, jalpha.bst, jabbrv.bst,
+ % tipsj.bst, jipsj.bst, tieice.bst, jname.bst, jorsj.bst
+ %
+ % This restriction helps ensure that all standard styles are identical.
+ % The file jbtxbst.doc has the documentation for this style.
+ %
+ % Please notify Shouichi MATSUI(matsui@denken.or.jp) of any bugs in
+ % these standard styles or in this documentation file.
+ % $B>>0f(B $B@50l(B ($B:b(B) $BEENOCf1{8&5f=j!!>pJs%7%9%F%`It(B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ yomi
+ }
+ {is.kanji.entry}
+
+ { label }
+
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block
+ after.author}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+
+ #4 'after.author :=
+
+}
+STRINGS { s t }
+
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+
+ { ", " * write$ }
+
+ { output.state after.block =
+ {
+
+ add.period$ write$
+
+ newline$
+ "\newblock " write$
+ }
+
+ { output.state after.author =
+
+ { author empty$ editor empty$ and organization empty$ and
+ {write$}
+
+ { author field.or.null is.kanji.str$
+ editor field.or.null is.kanji.str$ or
+ organization field.or.null is.kanji.str$ or
+ {"$B!'(B" * write$}
+ {": " * write$}
+ if$
+ }
+
+ if$
+
+ mid.sentence 'output.state :=
+ }
+ 'write$
+ if$
+ }
+
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.bibitem}
+{ newline$
+
+ "\bibitem{" write$
+
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+FUNCTION {fin.entry}
+{
+
+ add.period$
+
+ write$
+ newline$
+}
+FUNCTION {new.block}
+{ output.state before.all =
+
+ { after.author 'output.state := }
+ 'skip$
+
+ if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+
+ { s nameptr "{ff}{ll}" format.name$ is.kanji.str$
+
+ {s nameptr "{ff}" format.name$ 't :=
+ t empty$
+ { s nameptr "{ll}" format.name$ 't :=
+ t " $B$K$O!$@+$HL>$N4V$K6uGr$,$J$$$h!)(B in " * cite$ * warning$
+ }
+ 'skip$
+ if$
+ }
+
+
+
+ {s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=}
+
+
+ if$
+
+ nameptr #1 >
+ { namesleft #1 >
+
+ {", " * t * }
+
+
+ { t "others" =
+
+ { s is.kanji.str$
+
+ {"$BB>(B" * }
+
+
+ {", et~al." * }
+
+ if$
+ }
+ { s is.kanji.str$
+
+ {", " * t * }
+
+
+
+ {" and " * t * }
+
+
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+
+ { author format.names }
+
+ if$
+}
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+
+ { editor format.names
+
+ editor num.names$ #1 >
+ { editor is.kanji.str$
+
+
+ {"$B!JJT!K(B" * } {" Eds." * } if$
+
+
+ }
+ { editor is.kanji.str$
+
+
+ {"$B!JJT!K(B" *} {" Ed." * } if$
+
+
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.editors}
+{ editor empty$
+ { "" }
+ { editor format.names
+ editor num.names$ #1 >
+ { editor is.kanji.str$
+
+ {"$B!JJT!K(B" *} {"Eds.\ by " swap$ * } if$
+
+ }
+ { editor is.kanji.str$
+
+ {"$B!JJT!K(B" *} {"Ed.\ by " swap$ *} if$
+
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+
+{ after.author 'output.state :=
+ title empty$
+
+ { "" }
+
+
+ { "``" title "t" change.case$ * "''" * }
+
+
+ if$
+}
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+FUNCTION {format.date}
+
+{ before.all 'output.state :=
+ year empty$
+ { "there's no year in " cite$ * warning$
+ ""
+ }
+
+
+ { " (" year * ")" * }
+
+
+ if$
+}
+
+FUNCTION {format.btitle}
+
+{after.author 'output.state :=
+
+"``" title * "''" *
+
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect}
+ if$
+ }
+ if$
+ series empty$
+ 'skip$
+ { series is.kanji.str$
+ { volume empty$
+ {series swap$ * }
+
+ {series ", " * swap$ * }
+
+ if$
+ }
+ { " of " * series emphasize * }
+ if$
+ }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { number is.kanji.str$
+ { number }
+ {"No." number tie.or.space.connect}
+ if$
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { edition is.kanji.str$
+ { edition }
+ { is.kanji.entry
+ {"$BBh(B" edition * "$BHG(B" *}
+ { output.state mid.sentence =
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+
+ { "pp." pages n.dashify tie.or.space.connect }
+ { "p." pages tie.or.space.connect }
+
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.vol.num.pages}
+{ volume empty$
+ {""}
+
+ {"{\bf " volume * "}, " * }
+
+ if$
+ number empty$
+ 'skip$
+
+ { number *
+
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { number empty$
+
+ { format.pages * }
+ { ", " * format.pages * }
+
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { chapter is.kanji.str$
+ { "" }
+ { is.kanji.entry
+ {"$B>O(B"}
+ {"chapter"}
+ if$
+ }
+ if$
+ }
+ { type "l" change.case$ }
+ if$
+ chapter is.kanji.str$ not is.kanji.entry and
+ {"$BBh(B" chapter * swap$ *}
+ { chapter is.kanji.str$
+ {chapter *}
+ {chapter tie.or.space.connect}
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+
+ { ", " * format.pages * }
+
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { booktitle }
+ { booktitle " (" * format.in.ed.editors * ")" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+
+
+
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Technical Report" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { title is.kanji.str$
+ { " " journal * }
+
+
+ { " " journal * }
+
+
+ if$
+ }
+ if$
+ }
+ { title is.kanji.str$
+ { " " key * }
+
+ { "in " key * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.crossref.editor}
+{ editor is.kanji.str$
+
+ {editor #1 "{ff}{ll}" format.name$ duplicate$
+
+ empty$
+ {pop$ editor #1 "{ll}" format.name$}
+ 'skip$
+ if$
+ }
+
+ {editor #1 "{f. }{vv~}{ll}{ , jj}" format.name$}
+
+ if$
+ editor num.names$ duplicate$
+ #2 >
+ { editor is.kanji.str$
+
+ {pop$ "$BB>(B" *} {pop$ ", et~al." * } if$
+
+ }
+ { #2 <
+ 'skip$
+
+ { editor #2 "{f. }{vv }{ll}{, jj}" format.name$ "others" =
+
+ { editor is.kanji.str$
+
+ {"$BB>(B" *} {", et~al." * } if$
+
+ }
+ { editor is.kanji.str$
+ {
+
+ ", " *
+
+ editor #2 "{ff}" format.name$ duplicate$
+ empty$
+ {pop$ editor #2 "{ll}" format.name$}
+ 'skip$
+ if$
+ *
+ }
+ {" and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ title is.kanji.str$
+
+ {" "} {"in "} if$
+
+ }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect " of " * }
+ if$
+ }
+ if$
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { series * }
+ if$
+ }
+
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { booktitle is.kanji.str$
+ { booktitle }
+
+
+
+ { booktitle }
+
+
+
+ if$
+ }
+ if$
+ }
+
+ { "in " key * }
+
+ if$
+ }
+ { title is.kanji.str$
+ {" " format.crossref.editor * }
+
+ {"in " format.crossref.editor * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+
+ format.vol.num.pages output
+ format.date "year" output.check
+
+}
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ after.block 'output.state :=
+
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+
+ new.block
+
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+
+ format.date "year" output.check
+
+ after.block 'output.state :=
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+
+ after.block 'output.state :=
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+
+ format.chapter.pages "chapter and pages" output.check
+
+ new.block
+ format.number.series output
+
+ new.block
+
+ publisher "publisher" output.check
+ address output
+ }
+
+ { format.chapter.pages "chapter and pages" output.check
+
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+
+
+ after.block 'output.state :=
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+
+
+
+ new.block
+
+ publisher "publisher" output.check
+ address output
+ format.edition output
+
+ format.chapter.pages output
+
+ format.date "year" output.check
+
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+
+ after.block 'output.state :=
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+
+
+
+ new.block
+
+ address empty$
+ { organization publisher new.sentence.checkb
+
+ new.block
+
+ organization output
+
+
+ mid.sentence 'output.state :=
+ new.block
+
+
+ publisher output
+
+ format.pages output
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+
+
+ new.block
+
+ organization output
+
+ mid.sentence 'output.state :=
+ new.block
+
+ publisher output
+
+ format.pages output
+ format.date "year" output.check
+
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ after.block 'output.state :=
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+
+ after.block 'output.state :=
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "Master's thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ after.block 'output.state :=
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+
+ after.block 'output.state :=
+
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "PhD thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ after.block 'output.state :=
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+
+ after.block 'output.state :=
+
+ }
+ { address output.nonnull
+ format.date "year" output.check
+
+ after.block 'output.state :=
+
+
+ new.block
+
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+
+ after.block 'output.state :=
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"Jan."}
+MACRO {feb} {"Feb."}
+MACRO {mar} {"Mar."}
+MACRO {apr} {"Apr."}
+MACRO {may} {"May"}
+MACRO {jun} {"June"}
+MACRO {jul} {"July"}
+MACRO {aug} {"Aug."}
+MACRO {sep} {"Sept."}
+MACRO {oct} {"Oct."}
+MACRO {nov} {"Nov."}
+MACRO {dec} {"Dec."}
+
+
+MACRO {acmcs} {"ACM Comput. Surv."}
+MACRO {acta} {"Acta Inf."}
+MACRO {cacm} {"Commun. ACM"}
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+MACRO {ibmsj} {"IBM Syst.~J."}
+MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
+MACRO {ipl} {"Inf. Process. Lett."}
+MACRO {jacm} {"J.~ACM"}
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+MACRO {scp} {"Sci. Comput. Programming"}
+MACRO {sicomp} {"SIAM J. Comput."}
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+MACRO {tods} {"ACM Trans. Database Syst."}
+MACRO {tog} {"ACM Trans. Gr."}
+MACRO {toms} {"ACM Trans. Math. Softw."}
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
+MACRO {tcs} {"Theoretical Comput. Sci."}
+MACRO {tieice} {"$B?.3XO@(B"}
+MACRO {tipsj} {"$B>pJs=hM}3X2qO@J8;o(B"}
+MACRO {jipsj} {"J.~Info. Proc. Soc. of Japan"}
+MACRO {jorsj} {"Journal of the O. R. Society of Japan"}
+
+READ
+FUNCTION {set.is.kanji.entry}
+{
+ author field.or.null is.kanji.str$
+ title field.or.null is.kanji.str$ or
+ editor field.or.null is.kanji.str$ or
+ journal field.or.null is.kanji.str$ or
+ booktitle field.or.null is.kanji.str$ or
+ series field.or.null is.kanji.str$ or
+ 'is.kanji.entry :=
+}
+ITERATE {set.is.kanji.entry}
+
+
+
+
+
+
+STRINGS { longest.label }
+INTEGERS { number.label longest.label.width }
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+EXECUTE {initialize.longest.label}
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+
+{ preamble$ empty$
+
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
diff --git a/biblio/pbibtex/base/tipsj.bst b/biblio/pbibtex/base/tipsj.bst
new file mode 100644
index 0000000000..84d69a7cf6
--- /dev/null
+++ b/biblio/pbibtex/base/tipsj.bst
@@ -0,0 +1,1274 @@
+ % version 0.30 for JBibTeX versions 0.30 or later, LaTeX version 2.09.
+ % Copyright (C) 1990, all rights reserved.
+ %
+ % This file is derived from btxbst.doc of BibTeX 0.99c
+ %
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % jbtxbst.doc, jplain.bst, junsrt.bst, jalpha.bst, jabbrv.bst,
+ % tipsj.bst, jipsj.bst, tieice.bst, jname.bst, jorsj.bst
+ %
+ % This restriction helps ensure that all standard styles are identical.
+ % The file jbtxbst.doc has the documentation for this style.
+ %
+ % Please notify Shouichi MATSUI(matsui@denken.or.jp) of any bugs in
+ % these standard styles or in this documentation file.
+ % $B>>0f(B $B@50l(B ($B:b(B) $BEENOCf1{8&5f=j!!>pJs%7%9%F%`It(B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ yomi
+ }
+ {is.kanji.entry}
+
+ { label }
+
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block
+ after.author}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+
+ #4 'after.author :=
+
+}
+STRINGS { s t }
+
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+
+ { ", " * write$ }
+
+ { output.state after.block =
+ {
+
+ add.period$ write$
+
+ newline$
+ "\newblock " write$
+ }
+
+ { output.state after.author =
+
+ { author empty$ editor empty$ and organization empty$ and
+ {write$}
+
+ { author field.or.null is.kanji.str$
+ editor field.or.null is.kanji.str$ or
+ organization field.or.null is.kanji.str$ or
+ {"$B!'(B" * write$}
+ {": " * write$}
+ if$
+ }
+
+ if$
+
+ mid.sentence 'output.state :=
+ }
+ 'write$
+ if$
+ }
+
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.bibitem}
+{ newline$
+
+ "\bibitem{" write$
+
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+FUNCTION {fin.entry}
+{
+
+ add.period$
+
+ write$
+ newline$
+}
+FUNCTION {new.block}
+{ output.state before.all =
+
+ { after.author 'output.state := }
+ 'skip$
+
+ if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { duplicate$ is.kanji.str$
+ 'skip$
+ { "{\em " swap$ * "}" * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+
+ { s nameptr "{ff}{ll}" format.name$ is.kanji.str$
+
+ {s nameptr "{ff}{ll}" format.name$ 't :=}
+
+
+ {s nameptr "{ll,~~}{vv~}{f.}{, jj}" format.name$ 't :=}
+
+ if$
+
+ nameptr #1 >
+ { namesleft #1 >
+
+ {", " * t * }
+
+
+ { t "others" = t "others,~" = or
+
+ { s is.kanji.str$
+
+ {"$BB>(B" * }
+
+
+ {", et~al." * }
+
+ if$
+ }
+ { s is.kanji.str$
+
+ {", " * t * }
+
+
+
+ {" and " * t * }
+
+
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+
+ { author format.names }
+
+ if$
+}
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+
+ { editor format.names
+
+ editor num.names$ #1 >
+ { editor is.kanji.str$
+
+
+ {"$B!JJT!K(B" * } {" eds." * } if$
+
+
+ }
+ { editor is.kanji.str$
+
+
+ {"$B!JJT!K(B" *} {" ed." * } if$
+
+
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+
+{ after.author 'output.state :=
+ title empty$
+
+ { "" }
+
+ 'title
+
+ if$
+}
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+FUNCTION {format.date}
+
+{ before.all 'output.state :=
+ year empty$
+ { "there's no year in " cite$ * warning$
+ ""
+ }
+
+
+ { " (" year * ")" * }
+
+
+ if$
+}
+
+FUNCTION {format.btitle}
+
+{after.author 'output.state :=
+
+title emphasize
+
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect}
+ if$
+ }
+ if$
+ series empty$
+ 'skip$
+ { series is.kanji.str$
+ { volume empty$
+ {series swap$ * }
+
+ {series ", " * swap$ * }
+
+ if$
+ }
+ { " of " * series emphasize * }
+ if$
+ }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { number is.kanji.str$
+ { number }
+ {"No." number tie.or.space.connect}
+ if$
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { edition is.kanji.str$
+ { edition }
+ { is.kanji.entry
+ {"$BBh(B" edition * "$BHG(B" *}
+ { output.state mid.sentence =
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+
+ { "pp." pages n.dashify tie.or.space.connect }
+ { "p." pages tie.or.space.connect }
+
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.vol.num.pages}
+{ volume empty$
+ {""}
+
+
+ { volume is.kanji.str$
+ {volume ", " * }
+ {"Vol." volume tie.or.space.connect ", " * }
+ if$
+ }
+
+
+ if$
+ number empty$
+ 'skip$
+
+ { number is.kanji.str$
+ {number *}
+ {"No." number tie.or.space.connect *}
+ if$
+
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { number empty$
+
+ { format.pages * }
+ { ", " * format.pages * }
+
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { chapter is.kanji.str$
+ { "" }
+ { is.kanji.entry
+ {"$B>O(B"}
+ {"chapter"}
+ if$
+ }
+ if$
+ }
+ { type "l" change.case$ }
+ if$
+ chapter is.kanji.str$ not is.kanji.entry and
+ {"$BBh(B" chapter * swap$ *}
+ { chapter is.kanji.str$
+ {chapter *}
+ {chapter tie.or.space.connect}
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+
+ { ", " * format.pages * }
+
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { booktitle is.kanji.str$
+ { " " booktitle emphasize * }
+
+ { "in " booktitle emphasize * }
+
+ if$
+ }
+ { booktitle is.kanji.str$
+
+ { " " format.editors * ", " * booktitle * }
+
+
+ { "in " format.editors * ", " * booktitle emphasize * }
+
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+
+
+
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Technical Report" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { title is.kanji.str$
+ { " " journal * }
+
+
+ { "in {\em " journal * "\/}" * }
+
+
+ if$
+ }
+ if$
+ }
+ { title is.kanji.str$
+ { " " key * }
+
+ { "in " key * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.crossref.editor}
+{ editor is.kanji.str$
+
+ {editor #1 "{ff}" format.name$ duplicate$
+
+ empty$
+ {pop$ editor #1 "{ll}" format.name$}
+ 'skip$
+ if$
+ }
+
+ {editor #1 "{vv~}{ll}" format.name$}
+
+ if$
+ editor num.names$ duplicate$
+ #2 >
+ { editor is.kanji.str$
+
+ {pop$ "$BB>(B" *} {pop$ ", et~al." * } if$
+
+ }
+ { #2 <
+ 'skip$
+
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+
+ { editor is.kanji.str$
+
+ {"$BB>(B" *} {", et~al." * } if$
+
+ }
+ { editor is.kanji.str$
+ {
+
+ ", " *
+
+ editor #2 "{ff}" format.name$ duplicate$
+ empty$
+ {pop$ editor #2 "{ll}" format.name$}
+ 'skip$
+ if$
+ *
+ }
+ {" and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ title is.kanji.str$
+
+ {" "} {"in "} if$
+
+ }
+ { volume is.kanji.str$
+ { volume }
+ { is.kanji.entry
+ {"$BBh(B" volume * "$B4,(B" *}
+ {"Vol." volume tie.or.space.connect " of " * }
+ if$
+ }
+ if$
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+
+ { series is.kanji.str$
+
+ { series ", " * swap$ * }
+
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { booktitle is.kanji.str$
+ { booktitle }
+
+
+
+ {"in {\em " booktitle * "\/}" * }
+
+
+
+ if$
+ }
+ if$
+ }
+
+ { "in " key * }
+
+ if$
+ }
+ { title is.kanji.str$
+ {" " format.crossref.editor * }
+
+ {"in " format.crossref.editor * }
+
+ if$
+ }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+
+ format.vol.num.pages output
+ format.date "year" output.check
+
+}
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {format.book.pages}
+{ pages empty$
+ { "" }
+ { pages " pp." *}
+ if$
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+
+ new.block
+
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+
+ format.book.pages output
+
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+
+ format.chapter.pages "chapter and pages" output.check
+
+ new.block
+ format.number.series output
+
+ new.block
+
+ publisher "publisher" output.check
+ address output
+ }
+
+ { format.chapter.pages "chapter and pages" output.check
+
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+
+ format.chapter.pages output
+
+
+
+ new.block
+
+ publisher "publisher" output.check
+ address output
+ format.edition output
+
+ format.date "year" output.check
+
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+
+
+ format.pages output
+
+
+
+ new.block
+
+ address empty$
+ { organization publisher new.sentence.checkb
+
+ new.block
+
+ organization output
+
+
+ mid.sentence 'output.state :=
+ new.block
+
+
+ publisher output
+
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+
+ format.date "year" output.check
+
+
+ new.block
+
+ organization output
+
+ mid.sentence 'output.state :=
+ new.block
+
+ publisher output
+
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "Master's thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "PhD thesis" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+
+ }
+ { address output.nonnull
+ format.date "year" output.check
+
+
+ new.block
+
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+
+ new.block
+ note output
+ fin.entry
+}
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"Jan."}
+MACRO {feb} {"Feb."}
+MACRO {mar} {"Mar."}
+MACRO {apr} {"Apr."}
+MACRO {may} {"May"}
+MACRO {jun} {"June"}
+MACRO {jul} {"July"}
+MACRO {aug} {"Aug."}
+MACRO {sep} {"Sept."}
+MACRO {oct} {"Oct."}
+MACRO {nov} {"Nov."}
+MACRO {dec} {"Dec."}
+
+
+MACRO {acmcs} {"ACM Comput. Surv."}
+MACRO {acta} {"Acta Inf."}
+MACRO {cacm} {"Commun. ACM"}
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+MACRO {ibmsj} {"IBM Syst.~J."}
+MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
+MACRO {ipl} {"Inf. Process. Lett."}
+MACRO {jacm} {"J.~ACM"}
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+MACRO {scp} {"Sci. Comput. Programming"}
+MACRO {sicomp} {"SIAM J. Comput."}
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+MACRO {tods} {"ACM Trans. Database Syst."}
+MACRO {tog} {"ACM Trans. Gr."}
+MACRO {toms} {"ACM Trans. Math. Softw."}
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
+MACRO {tcs} {"Theoretical Comput. Sci."}
+MACRO {tieice} {"$B?.3XO@(B"}
+MACRO {tipsj} {"$B>pJs=hM}3X2qO@J8;o(B"}
+MACRO {jipsj} {"J.~Info. Proc. Soc. of Japan"}
+MACRO {jorsj} {"Journal of the O. R. Society of Japan"}
+
+READ
+FUNCTION {set.is.kanji.entry}
+{
+ author field.or.null is.kanji.str$
+ title field.or.null is.kanji.str$ or
+ editor field.or.null is.kanji.str$ or
+ journal field.or.null is.kanji.str$ or
+ booktitle field.or.null is.kanji.str$ or
+ series field.or.null is.kanji.str$ or
+ 'is.kanji.entry :=
+}
+ITERATE {set.is.kanji.entry}
+
+
+
+
+
+
+STRINGS { longest.label }
+INTEGERS { number.label longest.label.width }
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+EXECUTE {initialize.longest.label}
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+
+{ preamble$ empty$
+
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}