diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /language/korean/HLaTeX/contrib |
Initial commit
Diffstat (limited to 'language/korean/HLaTeX/contrib')
-rw-r--r-- | language/korean/HLaTeX/contrib/halpha.bst | 1486 | ||||
-rw-r--r-- | language/korean/HLaTeX/contrib/hangulfn.sty | 76 | ||||
-rw-r--r-- | language/korean/HLaTeX/contrib/hbibtex.c | 90 | ||||
-rw-r--r-- | language/korean/HLaTeX/contrib/hbname-k.tex | 19 | ||||
-rw-r--r-- | language/korean/HLaTeX/contrib/hbname-u.tex | 19 | ||||
-rw-r--r-- | language/korean/HLaTeX/contrib/hfn-k.tex | 125 | ||||
-rw-r--r-- | language/korean/HLaTeX/contrib/hfn-u.tex | 125 | ||||
-rw-r--r-- | language/korean/HLaTeX/contrib/hglo.ist | 7 | ||||
-rw-r--r-- | language/korean/HLaTeX/contrib/hind.ist | 4 | ||||
-rw-r--r-- | language/korean/HLaTeX/contrib/hmakeindex.c | 281 | ||||
-rw-r--r-- | language/korean/HLaTeX/contrib/khyper.sty | 310 | ||||
-rw-r--r-- | language/korean/HLaTeX/contrib/showhkeys.sty | 91 | ||||
-rw-r--r-- | language/korean/HLaTeX/contrib/showhtags.sty | 14 |
13 files changed, 2647 insertions, 0 deletions
diff --git a/language/korean/HLaTeX/contrib/halpha.bst b/language/korean/HLaTeX/contrib/halpha.bst new file mode 100644 index 0000000000..cd2bb97c07 --- /dev/null +++ b/language/korean/HLaTeX/contrib/halpha.bst @@ -0,0 +1,1486 @@ +%% Hangul BibTeX bibliography style `halpha' +% This style is from alpha.bst below. +% ѱ å \em ǥ() 2005/04/14 koaunghi@kornet.net + +% BibTeX standard bibliography style `alpha' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % 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 + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + korean.enc string.enc curr.pos last.chr curr.chr } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t ks } + +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 {char.encoding} +{ + 'ks := + #0 'string.enc := % US-ASCII + #0 'last.chr := + #1 'curr.pos := + + { ks text.length$ curr.pos > } + { ks curr.pos #1 substring$ chr.to.int$ 'curr.chr := + curr.chr #128 < + { } + { last.chr #128 < + { } + { last.chr curr.chr + #322 > + { #1 'string.enc := } % EUC-KR & look for UTF-8 afterward + { #2 'string.enc := + ks text.length$ 'curr.pos := } % UTF-8 & exit + if$ + } + if$ + } + curr.chr 'last.chr := + #1 curr.pos + 'curr.pos := + if$ + } + while$ + string.enc +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := + + title char.encoding #0 = + { "\renewcommand{\baselinestretch}{1.0}\selectfont" write$ newline$ } + { "\renewcommand{\baselinestretch}{1.2}\selectfont" write$ newline$ } + if$ +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + 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$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {hemphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\natopen{}" swap$ * "\natclose{}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + s char.encoding 'korean.enc := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + % ° ̸ + { namesleft #1 > + % ̸ ̻ + { ", " * t * } + % ̸ + { numnames #2 > % ̸ ̸̻ и + { ", " * } + 'skip$ + if$ + t "others" = + % ̸ "others" + { korean.enc #0 > + { " \hbibnameothers{} " * } + { " et-al. " * } + if$ + } + % ̸ "others" ƴ + { korean.enc #0 > + { " \hbibnameand{} " * 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 char.encoding 'korean.enc := + editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { korean.enc #0 > + { " (\hbibnameeditors)" * } + { ", editors" * } + if$ + } + { korean.enc #0 > + { " (hbibnameeditor)" * } + { ", 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 char.encoding 'korean.enc := + korean.enc #0 = + { title emphasize } + { title hemphasize } + if$ +} + +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} +{ title char.encoding 'korean.enc := + volume empty$ + { "" } + { korean.enc #0 = + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + { series empty$ + 'skip$ + { series hemphasize * " \hbibnameseries{} " * } + if$ +% volume tie.or.space.connect "\hbibnamevolume{}" + "\hbibnamevolume{}" volume swap$ * + "volume and number" number either.or.check + } + if$ + } + if$ +} + +FUNCTION {format.number.series} +{ title char.encoding 'korean.enc := + volume empty$ + { number empty$ + { series field.or.null } + { korean.enc #0 = + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + { series empty$ + { "there's a number but no series in " cite$ * warning$ } + { series * " \hbibnameinseries{} " } + if$ + number tie.or.space.connect "\hbibnamenumber{}" + } + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ title char.encoding 'korean.enc := + edition empty$ + { "" } + { korean.enc #0 = + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + { edition "\hbibnameedition{}" * } + 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} +{ title char.encoding 'korean.enc := + pages empty$ + { "" } + { korean.enc #0 = + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + { pages multi.page.check + { pages n.dashify tie.or.space.connect "\hbibnamepages" } + { pages tie.or.space.connect "\hbibnamepage" } + if$ + } + 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} +{ title char.encoding 'korean.enc := + chapter empty$ + 'format.pages + { type empty$ + { korean.enc #0 = + { "chapter" } + { "\hbibnamechapter{}" } + if$ + } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ title char.encoding 'korean.enc := + booktitle empty$ + { "" } + { editor empty$ + { korean.enc #0 = + { "In " booktitle emphasize * } +% { booktitle "\hbibnamein{}" emphasize * } + { booktitle hemphasize * "\hbibnamein{}" * } + if$ + } + { korean.enc #0 = + { "In " format.editors * ", " * booktitle emphasize * } +% { format.editors * "\hbibnamepossesive{} " * booktitle +% "\hbibnamein{}" emphasize * } + { format.editors * "\hbibnamepossesive{} " * booktitle + hemphasize * "\hbibnamein{}" * } + 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} +{ title char.encoding 'korean.enc := + type empty$ + { korean.enc #0 = + { "Technical Report" } + { "\hbibnametechreport{}" } + if$ + } + '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$ + "" + } + { "{\em " journal * "\/}\hbibnamefrom{}" * } + if$ + } + { korean.enc #0 = + { "In " key * } + { key " \hbibnamein{}" * } + if$ + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ title char.encoding 'korean.enc := + editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { korean.enc #0 = + { " et~al." * } + { " \hbibnameothers{}" * } + if$ + } + { korean.enc #0 = + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + { " \hbibnameand " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ title char.encoding 'korean.enc := + korean.enc #0 = + { volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + 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$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * + } + { 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$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * + volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + " \hbibnamein{} " + } + { " \hbibnameof{} " * + volume tie.or.space.connect "\hbibnamevolume{}" * + } + if$ + } + if$ +} + +FUNCTION {format.incoll.inproc.crossref} +{ title char.encoding 'korean.enc := + 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$ + "" + } + { korean.enc #0 = + { "In {\em " booktitle * "\/}" * } + { "{\em " booktitle * " \/}" * } + if$ + } + if$ + } + { korean.enc #0 = + { "In " key * } + { key * } + if$ + } + if$ + } + { korean.enc #0 = + { "In " format.crossref.editor * } + { format.crossref.editor * } + if$ + } + if$ + " \cite{" * crossref * "}" * + korean.enc #0 = + 'skip$ + { " \hbibnamein{}" * } + if$ +} + +FUNCTION {article} +{ title char.encoding 'korean.enc := + output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { korean.enc #0 = + { journal emphasize "journal" output.check } + { journal hemphasize "journal" output.check } + if$ + 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"} + +READ + +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 := + s num.names$ 'numnames := + s char.encoding 'korean.enc := + 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 "{vv}{ll}" format.name$ 'ks := + ks #1 #1 substring$ chr.to.int$ #127 > + { ks * } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + if$ + } + % ̸ ƴ + { s nameptr "{vv}{ll}" format.name$ 'ks := + ks #1 #1 substring$ chr.to.int$ #127 > + { korean.enc #2 = + { ks #1 #3 substring$ * } + { ks #1 #2 substring$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + 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$ duplicate$ 'ks := + ks #1 #1 substring$ chr.to.int$ #127 > + 'skip$ + { ks #2 #1 substring$ chr.to.int$ #127 > + 'skip$ + { ks #3 #1 substring$ chr.to.int$ #127 > + 'skip$ + { #3 text.prefix$ } + if$ + } + if$ + } + if$ + } + 'skip$ + 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 := + #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 + { "et al" * } + { 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 + { "\DeclareRobustCommand\etalchar[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\ifx\nullocplist\undefined\input{hbname-k}\else\input{hbname-u}\fi" + write$ newline$ + "\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/language/korean/HLaTeX/contrib/hangulfn.sty b/language/korean/HLaTeX/contrib/hangulfn.sty new file mode 100644 index 0000000000..012b437235 --- /dev/null +++ b/language/korean/HLaTeX/contrib/hangulfn.sty @@ -0,0 +1,76 @@ +%% hangulfn.sty +%% - initial release <2005/04/20> by koaunghi@kornet.net +%% +%% 제공되는 선택 사항은 각주 번호 형식의 선택과 각주 판짜기 방식의 +%% 선택으로 나뉜다. +%% +%% 각주 번호 형식 +%% -------------- +%% - 첨자: 라텍의 기본 방식이다. 각주 번호가 각주면에 첨자로 짜진다. +%% - 괄호: 한글 문서에서 자주 접할 수 있는 방식이다. 각주 번호가 +%% 각주면 글자체의 크기로 짜지며 각주 번호 다음에 닫는 +%% 소괄호가 뒤따른다. 소괄호와 각주문의 사이에는 전각 넓이의 +%% 간격이 각주 번호와 각주문을 구별하는데 효과적이다. +%% +%% ``첨자''의 경우, 각주 번호와 각주문의 간격은 0pt이고 +%% ``괄호''의 경우, 각주 번호와 각주문의 간격은 공간 문자의 넓이이다. +%% 이 간격을 달리 하고자 할 때는 다음과 같이 \footnumbersep의 길이를 +%% 다시 준다. +%% \setlength{\footnumbersep}{길이} +%% +%% 각주 판짜기 방식 +%% ---------------- +%% - 내어쓰기: 각주 번호가 본문의 왼쪽맞춤으로 짜지고 각주문은 첫 +%% 글자의 위치로 왼쪽맞춤 된다. +%% - 다항이어쓰기: 각주가 새 행에서 시작하지 않고 앞의 각주에 +%% 이어진다. 짧은 각줄고만 구성될 때 유용하다. 줄바꿈으로 새 행이 +%% 시작하면 항상 새로운 각주가 시작되도록 짜여진다. +%% - 단순이어쓰기: 다항이어쓰기와 같으나 새로운 각주가 행을 시작하도록 +%% 하지 않는다. 앞의 각주가 끝나면 연이어 다음 각주가 시작한다. +%% - 왼쪽맞춤: 들여쓰기나 내어쓰기에 의해 각주 번호가 구별되도록 하지 +%% 않는다. 각주면 전체가 왼쪽맞춤으로 짜진다. +%% - 들여쓰기: 각주 번호가 있는 행이 왼쪽에서 2배각 들여 써진다. +%% 각주면의 각주 번호들은 오른쪽으로 정렬된다. +%% - 들여왼쪽맞춤: 왼쪽맞춤과 같으나 각주면 전체가 2배각 들어간다. +%% - 들여내어쓰기: 내어쓰기와 같으나 각주면 전체가 2배각 들어간다. +%% - 들여괄호맞춤: 들여내어쓰기와 같으나 줄바꿈으로 새로 시작하는 행의 +%% 왼쪽 맞춤이 각주문의 첫 글자의 위치에서 왼쪽맞춤이 되지 않고 +%% 각주 번호의 괄호가 끝나는 위치에서 왼쪽맞춤된다. 각주 번호 +%% 형식은 ``괄호''가 애초값이다. +%% +%% 기본 선택 사항 +%% -------------- +%% 선택 사항을 지정하지 않으면 ``첨자''와 ``내어쓰기''가 애초값이다. +%% + +\def\filedate{2005/04/20} +\def\fileversion{1.0} + +\ProvidesPackage{hangulfn}[\filedate\space Korean footnote style] +\typeout{Korean footnote style `hangulfn' <\filedate>.} + +%% 주석 판짜기 설정 + +\setlength{\footnotesep}{3pt} + +\def\footnoterule{\vfill\kern-3\p@ + \hrule \@width 2in \kern 2.6\p@\vspace{2pt}} % the \hrule is .4pt high + +\newdimen\foot@parindent +\newdimen\footnumbersep + +%% 라텍과 Λ를 구분하여 선택 사항 이름 규정 + +\ifx\nullocplist\undefined +\input hfn-k.tex +\else +\input hfn-u.tex +\fi + +%% 선택된 각주 판짜기 형식 실행 + +\ProcessOptions + +\endinput + +%% end of hangulfn.sty diff --git a/language/korean/HLaTeX/contrib/hbibtex.c b/language/korean/HLaTeX/contrib/hbibtex.c new file mode 100644 index 0000000000..0124461c56 --- /dev/null +++ b/language/korean/HLaTeX/contrib/hbibtex.c @@ -0,0 +1,90 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#define HEXA_STRING "0123456789abcdef" + +#ifdef WIN32
+#include <io.h>
+#include <ctype.h> +#define MKSTEMP mktemp +#else +#define MKSTEMP mkstemp +#endif + +int to_8bit(char *); + +main(int argc, char *argv[]) +{ + int i; + char args[128], cmd[128]; + +#ifdef WIN32 + strcpy(args, ""); +#else + bzero(args, 128); +#endif + + for(i=1; i<argc; i++) { + strcat(args, " "); + strcat(args, argv[i]); + } + + to_8bit(argv[argc-1]); + sprintf(cmd, "bibtex %s", args); + system(cmd); + + exit(0); +} + +int to_8bit(char *bib) { + FILE *in, *out; + int x; + char line[1024], *l, *h1, *h2, tempfile[10]; + + l=strrchr(bib, '.'); + if(l==NULL || strcmp(l, ".aux")!=0) { + strcat(bib, ".aux"); + } + + in = fopen(bib, "r"); + if(!in) { + printf("\tError opening auxiliary file \"%s\"!!!\n", bib); + exit(1); + } + + strcpy(tempfile, "BIBXXXXXX"); + MKSTEMP(tempfile); + out = fopen(tempfile, "w"); + if(!out) { + printf("\tError opening temporary file \"%s\"!!!\n", tempfile); + exit(1); + } + + while(fgets(line, 1024, in)) { + l=line; + while(*l) { + if(*l=='^'&&*(l+1)=='^' + &&(h1=strchr(HEXA_STRING, *(l+2))) + &&(h2=strchr(HEXA_STRING, *(l+3)))) { + if(*h1>'9') x=*h1-87; + else x=*h1-48; + x*=16; + if(*h2>'9') x+=*h2-87; + else x+=*h2-48; + fputc(x, out); + l+=4; + } + else { + fputc(*l++, out); + } + } + } + fflush(NULL); + fclose(in); + fclose(out); + + rename(tempfile, bib); + + return(1); +} diff --git a/language/korean/HLaTeX/contrib/hbname-k.tex b/language/korean/HLaTeX/contrib/hbname-k.tex new file mode 100644 index 0000000000..257208b5b2 --- /dev/null +++ b/language/korean/HLaTeX/contrib/hbname-k.tex @@ -0,0 +1,19 @@ +\def\hbibnamefrom{} +\def\hbibnameand{} +\def\hbibnameothers{} +\def\hbibnameeditors{ε} +\def\hbibnameeditor{} +\def\hbibnamevolume{} +\def\hbibnameseries{ø} +\def\hbibnameinseries{ø } +\def\hbibnamenumber{ȣ} +\def\hbibnameedition{} +\def\hbibnamepage{} +\def\hbibnamepages{} +\def\hbibnamechapter{} +\def\hbibnamein{߿} +\def\hbibnamepossesive{} +\def\hbibnametechreport{ } +\def\hbibnamein{} +\def\natopen{} +\def\natclose{} diff --git a/language/korean/HLaTeX/contrib/hbname-u.tex b/language/korean/HLaTeX/contrib/hbname-u.tex new file mode 100644 index 0000000000..3878a56be0 --- /dev/null +++ b/language/korean/HLaTeX/contrib/hbname-u.tex @@ -0,0 +1,19 @@ +\def\hbibnamefrom{에서} +\def\hbibnameand{및} +\def\hbibnameothers{외} +\def\hbibnameeditors{편집인들} +\def\hbibnameeditor{편집인} +\def\hbibnamevolume{권} +\def\hbibnameseries{시리즈} +\def\hbibnameinseries{시리즈 중} +\def\hbibnamenumber{호} +\def\hbibnameedition{판} +\def\hbibnamepage{쪽} +\def\hbibnamepages{쪽} +\def\hbibnamechapter{장} +\def\hbibnamein{중에서} +\def\hbibnamepossesive{의} +\def\hbibnametechreport{기술 문서} +\def\hbibnamein{에서} +\def\natopen{「} +\def\natclose{」} diff --git a/language/korean/HLaTeX/contrib/hfn-k.tex b/language/korean/HLaTeX/contrib/hfn-k.tex new file mode 100644 index 0000000000..e4ec2a7fb7 --- /dev/null +++ b/language/korean/HLaTeX/contrib/hfn-k.tex @@ -0,0 +1,125 @@ +%%% hfn-k.tex for hangul latex + +\DeclareOption{÷}{ + \def\fn@markstyle{\@makefnmark} + \footnumbersep0pt +} +\DeclareOption{ȣ}{ + \def\fn@markstyle{\@thefnmark)} + \settowidth{\footnumbersep}{~} +} + +%% +%% --------------------- +%% 1) ù° +%% ι° +\DeclareOption{}{% + \long\def\@makefntext#1{ + \settowidth{\foot@parindent}{\fn@markstyle} + \@setpar{\@@par\@tempdima \hsize + \advance\@tempdima-\foot@parindent + \parshape\@ne\foot@parindent \@tempdima}\par + \parindent8\p@\noindent + \hb@xt@\z@{\hss\hss\fn@markstyle\hskip\footnumbersep}#1} +} + +%% ̾ +%% --------------------- +%% 1) ù° 2) ι° +%% 3) ° +\DeclareOption{̾}{ + \input{fnpara.sty} + \long\def\@makefntext#1{% + \hbox{\fn@markstyle\hskip\footnumbersep #1} + }% +} + +%% ܼ̾ +%% --------------------- +%% 1) ù° 2) ι° 3) +%% ° +\DeclareOption{ܼ̾}{ + \input{fnpara.sty} + \long\def\@makefntext#1{% + \fn@markstyle\ifdim\footnumbersep=\z@\else~\fi #1 + }% +} + +%% ʸ +%% --------------------- +%% 1) ù° +%% ι° +%% \parindent: indent +\DeclareOption{ʸ}{ + \renewcommand\@makefntext[1]{% + \settowidth{\foot@parindent}{\reset@font } + \parindent\foot@parindent\noindent% + \fn@markstyle\hskip\footnumbersep #1}% +} + +%% 鿩 +%% --------------------- +%% 1) ù° +%% ι° +%% \parindent: indent +%% ȣ +\DeclareOption{鿩}{ + \renewcommand\@makefntext[1]{% + \settowidth{\foot@parindent}{\reset@font } + \parindent\foot@parindent\noindent + \hb@xt@1.5\foot@parindent{\hss\fn@markstyle}\hskip\footnumbersep #1} +} + +%% 鿩ʸ +%% --------------------- +%% 1) ù° +%% ι° +\DeclareOption{鿩ʸ}{ + \renewcommand\@makefntext[1]{% + \settowidth{\foot@parindent}{\reset@font } + \leftskip\foot@parindent + \parindent\z@\noindent + \fn@markstyle\hskip\footnumbersep #1 + } +} + +%% 鿩 +%% --------------------- +%% 1) ù° +%% ι° +\DeclareOption{鿩}{ + \long\def\@makefntext#1{ + \settowidth{\foot@parindent}{\reset@font } + \settowidth{\footnumbersep}{\reset@font } + \divide\footnumbersep by2 + \leftskip\foot@parindent + \@setpar{\@@par\@tempdima \hsize + \advance\@tempdima-\foot@parindent + \parshape\@ne\foot@parindent \@tempdima}\par + \parindent\z@\noindent + \hb@xt@\z@{\hss\hss\fn@markstyle\hskip\footnumbersep}#1} +} + +%% 鿩ȣ +%% --------------------- +%% 1) ù° +%% ι° +\DeclareOption{鿩ȣ}{ + \def\fn@markstyle{\@thefnmark)} + \settowidth{\footnumbersep}{~} + \long\def\@makefntext#1{ + \settowidth{\leftskip}{\reset@font } + \settowidth{\foot@parindent}{\fn@markstyle} + \settowidth{\footnumbersep}{\reset@font } + \@setpar{\@@par\@tempdima \hsize + \advance\@tempdima-\foot@parindent + \parshape\@ne\foot@parindent \@tempdima}\par + \parindent=\footnumbersep\noindent + \hb@xt@\z@{\hss\hss\fn@markstyle}\hskip\footnumbersep #1} +} + +\ExecuteOptions{÷, } + +\endinput + +%% end of hfn-k.tex diff --git a/language/korean/HLaTeX/contrib/hfn-u.tex b/language/korean/HLaTeX/contrib/hfn-u.tex new file mode 100644 index 0000000000..c2743df158 --- /dev/null +++ b/language/korean/HLaTeX/contrib/hfn-u.tex @@ -0,0 +1,125 @@ +%%% hfn-u.tex for hangul lambda + +\DeclareOption{첨자}{ + \def\fn@markstyle{\@makefnmark} + \footnumbersep0pt +} +\DeclareOption{괄호}{ + \def\fn@markstyle{\@thefnmark)} + \settowidth{\footnumbersep}{~} +} + +%% 각주 내어쓰기 +%% --------------------- +%% 1) 첫번째 줄 +%% 두번째 줄 +\DeclareOption{내어쓰기}{% + \long\def\@makefntext#1{ + \settowidth{\foot@parindent}{\fn@markstyle} + \@setpar{\@@par\@tempdima \hsize + \advance\@tempdima-\foot@parindent + \parshape\@ne\foot@parindent \@tempdima}\par + \parindent8\p@\noindent + \hb@xt@\z@{\hss\hss\fn@markstyle\hskip\footnumbersep}#1} +} + +%% 각주 다항이어쓰기 +%% --------------------- +%% 1) 첫번째 각주 2) 두번째 각주 +%% 3) 세번째 각주 +\DeclareOption{다항이어쓰기}{ + \input{fnpara.sty} + \long\def\@makefntext#1{% + \hbox{\fn@markstyle\hskip\footnumbersep #1} + }% +} + +%% 각주 단순이어쓰기 +%% --------------------- +%% 1) 첫번째 각주 2) 두번째 각주 3) 세 +%% 번째 각주 +\DeclareOption{단순이어쓰기}{ + \input{fnpara.sty} + \long\def\@makefntext#1{% + \fn@markstyle\ifdim\footnumbersep=\z@\else~\fi #1 + }% +} + +%% 각주 왼쪽맞춤 +%% --------------------- +%% 1) 첫번째 줄 +%% 두번째 줄 +%% \parindent: 본문의 별행 indent +\DeclareOption{왼쪽맞춤}{ + \renewcommand\@makefntext[1]{% + \settowidth{\foot@parindent}{\reset@font 각주} + \parindent\foot@parindent\noindent% + \fn@markstyle\hskip\footnumbersep #1}% +} + +%% 각주 들여쓰기 +%% --------------------- +%% 1) 첫번째 줄 +%% 두번째 줄 +%% \parindent: 본문 별행 indent의 일정 배수 +%% 각주 번호 오른쪽 정렬 +\DeclareOption{들여쓰기}{ + \renewcommand\@makefntext[1]{% + \settowidth{\foot@parindent}{\reset@font 각주} + \parindent\foot@parindent\noindent + \hb@xt@1.5\foot@parindent{\hss\fn@markstyle}\hskip\footnumbersep #1} +} + +%% 각주 들여왼쪽맞춤 +%% --------------------- +%% 1) 첫번째 줄 +%% 두번째 줄 +\DeclareOption{들여왼쪽맞춤}{ + \renewcommand\@makefntext[1]{% + \settowidth{\foot@parindent}{\reset@font 각주} + \leftskip\foot@parindent + \parindent\z@\noindent + \fn@markstyle\hskip\footnumbersep #1 + } +} + +%% 각주 들여내어쓰기 +%% --------------------- +%% 1) 첫번째 줄 +%% 두번째 줄 +\DeclareOption{들여내어쓰기}{ + \long\def\@makefntext#1{ + \settowidth{\foot@parindent}{\reset@font 각주} + \settowidth{\footnumbersep}{\reset@font 주} + \divide\footnumbersep by2 + \leftskip\foot@parindent + \@setpar{\@@par\@tempdima \hsize + \advance\@tempdima-\foot@parindent + \parshape\@ne\foot@parindent \@tempdima}\par + \parindent\z@\noindent + \hb@xt@\z@{\hss\hss\fn@markstyle\hskip\footnumbersep}#1} +} + +%% 각주 들여괄호맞춤 +%% --------------------- +%% 1) 첫번째 줄 +%% 두번째 줄 +\DeclareOption{들여괄호맞춤}{ + \def\fn@markstyle{\@thefnmark)} + \settowidth{\footnumbersep}{~} + \long\def\@makefntext#1{ + \settowidth{\leftskip}{\reset@font 각주} + \settowidth{\foot@parindent}{\fn@markstyle} + \settowidth{\footnumbersep}{\reset@font 주} + \@setpar{\@@par\@tempdima \hsize + \advance\@tempdima-\foot@parindent + \parshape\@ne\foot@parindent \@tempdima}\par + \parindent=\footnumbersep\noindent + \hb@xt@\z@{\hss\hss\fn@markstyle}\hskip\footnumbersep #1} +} + +\ExecuteOptions{첨자, 내어쓰기} + +\endinput + +%% end of hfn-u.tex diff --git a/language/korean/HLaTeX/contrib/hglo.ist b/language/korean/HLaTeX/contrib/hglo.ist new file mode 100644 index 0000000000..8820747c6a --- /dev/null +++ b/language/korean/HLaTeX/contrib/hglo.ist @@ -0,0 +1,7 @@ +headings_flag 0 +delim_0 "\\dotfill " +delim_1 "\\dotfill " +delim_2 "\\dotfill " +preamble "\n \\begin{theglossary}\n" +postamble "\n\n \\end{theglossary}\n" +keyword "\\glossaryentry" diff --git a/language/korean/HLaTeX/contrib/hind.ist b/language/korean/HLaTeX/contrib/hind.ist new file mode 100644 index 0000000000..61e55df5ea --- /dev/null +++ b/language/korean/HLaTeX/contrib/hind.ist @@ -0,0 +1,4 @@ +headings_flag 0 +delim_0 "\\dotfill " +delim_1 "\\dotfill " +delim_2 "\\dotfill " diff --git a/language/korean/HLaTeX/contrib/hmakeindex.c b/language/korean/HLaTeX/contrib/hmakeindex.c new file mode 100644 index 0000000000..955f60c6de --- /dev/null +++ b/language/korean/HLaTeX/contrib/hmakeindex.c @@ -0,0 +1,281 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#define HEXA_STRING "0123456789abcdef" + +#ifdef WIN32 +#include <io.h> +#include <ctype.h> +#define MKSTEMP mktemp +#else +#define MKSTEMP mkstemp +#endif + +#define BIT(x) (1<<x) + +char idx[1024], ind[1024]; +int cho=-1, style_used=0; +int to_8bit(void); +int hangul_head(int); +int doublebyte(int, int); +int triplebyte(unsigned int, unsigned int, unsigned int); +int ucs(int); +void fputs_item(char *, FILE *); + +main(int argc, char *argv[]) +{ + int i, outfile_used=0; + char prog[1024], args[1024], cmd[128], idx0[1024]; + char *t, *l; + + strcpy(prog, argv[0]); +#ifdef WIN32 + strcpy(args, ""); + strcpy(ind, ""); +#else + bzero(args, 1024); + bzero(ind, 1024); +#endif + + printf("This is hmakeindex, version 1.0 (makeindex wrapper for Korean support).\n"); + + for(i=1; i<argc; i++) { + strcat(args, " "); + t=argv[i]; + strcat(args, t); + switch(*t) { + case '-': + t++; + switch(*t) { + case 'o': + outfile_used=1; + strcat(args, " "); + strcat(args, argv[++i]); + strcpy(ind, argv[i]); + if((l=strrchr(ind, '.'))&&*(l+1)=='i'&&*(l+2)=='n'&&*(l+3)=='d') + *l=0; + break; + case 'p': + strcat(args, " "); + strcat(args, argv[++i]); + break; + case 's': + strcat(args, " "); + strcat(args, argv[++i]); + style_used=1; + break; + case 't': + strcat(args, " "); + strcat(args, argv[++i]); + break; + default: + break; + } + break; + default: + if((l=strrchr(argv[i], '.'))&&*(l+1)=='i'&&*(l+2)=='d'&&*(l+3)=='x') + *l=0; + strcpy(idx, argv[i]); + strcpy(idx0, argv[i]); + strcat(idx, ".idx"); + break; + } + } + + i=to_8bit(); + sprintf(cmd, "makeindex %s", args); + system(cmd); + + if(outfile_used==0) { + strcpy(ind, idx0); + strcat(ind, ".ind"); + } + hangul_head(i); + + exit(0); +} + +int to_8bit() { + FILE *in, *out; + char line[1024], *h1, *h2, tempfile[9]; + unsigned char *l; + int x, w=0, utf_seen=0, hangul_enc=0; + + in = fopen(idx, "r"); + if(!in) { + printf("\tError opening index file \"%s\"!!!\n", idx); + exit(1); + } + + strcpy(tempfile, "IDXXXXXXX"); + MKSTEMP(tempfile); + out = fopen(tempfile, "w"); + if(!out) { + printf("\tError opening temporary file \"%s\"!!!\n", tempfile); + exit(1); + } + + while(fgets(line, 1024, in)) { + l=line; + while(*l) { + if(*l=='^'&&*(l+1)=='^' + &&(h1=strchr(HEXA_STRING, *(l+2))) + &&(h2=strchr(HEXA_STRING, *(l+3)))) { + if(*h1>'9') x=*h1-87; + else x=*h1-48; + x*=16; + if(*h2>'9') x+=*h2-87; + else x+=*h2-48; + fputc(x, out); + l+=4; + hangul_enc=1; + if(w<161 || x<161) utf_seen=1; + w=x; + } + else { + if(w>127 && *l>127) { + /* 이미 변환된 .idx 파일의 경우 */ + hangul_enc=1; + if(w<161 || *l<161) utf_seen=1; + } + w=*l; + /* 위치 표시 문자 '@'는 '\a'으로 변환하여 makeindex로 처리한 후 + 나중에 제거한다. \hindexhead{#}의 "#" 처리에서 오류가 발생 */ + if(*(l-1)!='"' && *l=='@') fputc('\a', out); + else fputc(*l, out); + l++; + } + } + } + fflush(NULL); + fclose(in); + fclose(out); + + rename(tempfile, idx); + + return(hangul_enc+utf_seen); +} + +int hangul_head(encoding) { + FILE *in, *out; + char tempfile[9]; + unsigned char line[1024], *l; + unsigned int cho=20, x; + + strcpy(tempfile, "INDXXXXXX"); + MKSTEMP(tempfile); + in=fopen(ind, "r"); + out=fopen(tempfile, "w"); + + while(fgets(line, 1024, in)) { + l=line; + while(isspace(*l)) l++; + if(strncmp(l, "\\item", 5)==0) { + l+=5; + while(isspace(*l)) l++; + if(*l<128) { + fputs_item(line, out); + continue; + } + switch(encoding) { + case 1: /* EUC-KR */ + x=doublebyte(*l, *(l+1)); + break; + case 2: /* UTF-8 */ + x=triplebyte(*l, *(l+1), *(l+2)); + break; + default: + fprintf(stderr, "Encoding error in the ind file\n"); + fputs(line, out); + break; + } + if(x!=cho && x<20) { + cho=x; + fprintf(out, "\n\\hindexhead{%d}\n", cho); + } + fputs_item(line, out); + } + else if(strncmp(l, "\\indexspace", 11)==0) { + if(cho<0 || cho>19) fputs(line, out); + } + else if(!(strncmp(l, "\\indexhead{", 11)==0&&*(l+11)>128)) { + fputs(line, out); + } + } + + fflush(NULL); + fclose(in); + fclose(out); + + rename(tempfile, ind); + + return(1); +} + +void fputs_item(char *item, FILE *fp) { + char *s; + + if((s=strchr(item, '\a'))) fprintf(fp, " \\item %s", ++s); + else fputs(item, fp); +} + +int doublebyte(int first, int second) { + unsigned int ksc; + + if(first<0xa1) return(21); + else if(first<0xb1) return(0); + else if(first>0xc8) return(20); + ksc=(first<<8)+second; + if(ksc<0xb1ee) return(1); + else if(ksc<0xb3aa) return(2); + else if(ksc<0xb4d9) return(3); + else if(ksc<0xb5fb) return(4); + else if(ksc<0xb6f3) return(5); + else if(ksc<0xb8b6) return(6); + else if(ksc<0xb9d9) return(7); + else if(ksc<0xbafc) return(8); + else if(ksc<0xbbe7) return(9); + else if(ksc<0xbdce) return(10); + else if(ksc<0xbec6) return(11); + else if(ksc<0xc0da) return(12); + else if(ksc<0xc2a5) return(13); + else if(ksc<0xc2f7) return(14); + else if(ksc<0xc4ab) return(15); + else if(ksc<0xc5b8) return(16); + else if(ksc<0xc6c4) return(17); + else if(ksc<0xc7cf) return(18); + else if(ksc<0xc8ff) return(19); + else return(-1); +} + +int triplebyte(unsigned int first, unsigned int second, unsigned int third) { + unsigned int utf; + int i; + + if(first<=0x7f) utf=first; + else { + i=0; + while(first & BIT((6-i))) i++; + switch(i) { + case 1: + utf=((first - BIT(7) - BIT(6))<<6); + utf+=(second - BIT(7)); + break; + case 2: + utf=((first - BIT(7) - BIT(6) - BIT(5))<<12); + utf+=((second - BIT(7))<<6); + utf+=(third - BIT(7)); + break; + default: + break; + } + } + + if(0xac00<=utf && utf<=0xd7a3) + return((utf-0xac00)/(21*28)+1); + else if((0x4e00<=utf && utf>=0x9fff) || + (0xf900<=utf && utf>=0xfaff)) return(20); + else if(utf==first) return(21); + else return(0); +} diff --git a/language/korean/HLaTeX/contrib/khyper.sty b/language/korean/HLaTeX/contrib/khyper.sty new file mode 100644 index 0000000000..fc386bbe5a --- /dev/null +++ b/language/korean/HLaTeX/contrib/khyper.sty @@ -0,0 +1,310 @@ +\input hyperref.sty + +\ifx\nullocplist\undefined +\hypersetup{unicode=true} +\expandafter\def\expandafter\pdfstringdefPreHook\expandafter{% + \pdfstringdefPreHook + \let\KSC@\string% + \makekscletter% + \let\hangul@skip\relax + \let\pre@sectioncnt\relax + \let\post@sectioncnt\relax + \let\make@josa\@gobble + \let\@Hyphen\relax + \let\noHyphen\relax + \let\hemph@size\relax + \let\set@hangulskip\relax + \let\protect\noexpand + \def^^a1{\string ^^a1} + \def^^a2{\string ^^a2} + \def^^a3{\string ^^a3} + \def^^a4{\string ^^a4} + \def^^a5{\string ^^a5} + \def^^a6{\string ^^a6} + \def^^a7{\string ^^a7} + \def^^a8{\string ^^a8} + \def^^a9{\string ^^a9} + \def^^aa{\string ^^aa} + \def^^ab{\string ^^ab} + \def^^ac{\string ^^ac} + \def^^ad{\string ^^ad} + \def^^ae{\string ^^ae} + \def^^af{\string ^^af} + \def^^b0{\string ^^b0} + \def^^b1{\string ^^b1} + \def^^b2{\string ^^b2} + \def^^b3{\string ^^b3} + \def^^b4{\string ^^b4} + \def^^b5{\string ^^b5} + \def^^b6{\string ^^b6} + \def^^b7{\string ^^b7} + \def^^b8{\string ^^b8} + \def^^b9{\string ^^b9} + \def^^ba{\string ^^ba} + \def^^bb{\string ^^bb} + \def^^bc{\string ^^bc} + \def^^bd{\string ^^bd} + \def^^be{\string ^^be} + \def^^bf{\string ^^bf} + \def^^c0{\string ^^c0} + \def^^c1{\string ^^c1} + \def^^c2{\string ^^c2} + \def^^c3{\string ^^c3} + \def^^c4{\string ^^c4} + \def^^c5{\string ^^c5} + \def^^c6{\string ^^c6} + \def^^c7{\string ^^c7} + \def^^c8{\string ^^c8} + \def^^c9{\string ^^c9} + \def^^ca{\string ^^ca} + \def^^cb{\string ^^cb} + \def^^cc{\string ^^cc} + \def^^cd{\string ^^cd} + \def^^ce{\string ^^ce} + \def^^cf{\string ^^cf} + \def^^d0{\string ^^d0} + \def^^d1{\string ^^d1} + \def^^d2{\string ^^d2} + \def^^d3{\string ^^d3} + \def^^d4{\string ^^d4} + \def^^d5{\string ^^d5} + \def^^d6{\string ^^d6} + \def^^d7{\string ^^d7} + \def^^d8{\string ^^d8} + \def^^d9{\string ^^d9} + \def^^da{\string ^^da} + \def^^db{\string ^^db} + \def^^dc{\string ^^dc} + \def^^dd{\string ^^dd} + \def^^de{\string ^^de} + \def^^df{\string ^^df} + \def^^e0{\string ^^e0} + \def^^e1{\string ^^e1} + \def^^e2{\string ^^e2} + \def^^e3{\string ^^e3} + \def^^e4{\string ^^e4} + \def^^e5{\string ^^e5} + \def^^e6{\string ^^e6} + \def^^e7{\string ^^e7} + \def^^e8{\string ^^e8} + \def^^e9{\string ^^e9} + \def^^ea{\string ^^ea} + \def^^eb{\string ^^eb} + \def^^ec{\string ^^ec} + \def^^ed{\string ^^ed} + \def^^ee{\string ^^ee} + \def^^ef{\string ^^ef} + \def^^f0{\string ^^f0} + \def^^f1{\string ^^f1} + \def^^f2{\string ^^f2} + \def^^f3{\string ^^f3} + \def^^f4{\string ^^f4} + \def^^f5{\string ^^f5} + \def^^f6{\string ^^f6} + \def^^f7{\string ^^f7} + \def^^f8{\string ^^f8} + \def^^f9{\string ^^f9} + \def^^fa{\string ^^fa} + \def^^fb{\string ^^fb} + \def^^fc{\string ^^fc} + \def^^fd{\string ^^fd} + \def^^fe{\string ^^fe} +} + +\renewcommand\theHsection{\number\c@section} +\renewcommand\theHequation{\theHsection.\number\c@equation} +\@ifundefined{theHpart}{}{\renewcommand\theHpart{\number\c@part}} +\@ifundefined{theHchapter}{% + \renewcommand\theHsection {\number\c@section} + \renewcommand\theHfigure {\number\c@figure} + \renewcommand\theHtable {\number\c@table} +}{% + \renewcommand\theHchapter {\number\c@chapter} + \renewcommand\theHfigure {\theHchapter.\number\c@figure} + \renewcommand\theHtable {\theHchapter.\number\c@table} + \renewcommand\theHsection {\theHchapter.\number\c@section} +} +\renewcommand\theHsubsection {\theHsection.\number\c@subsection} +\renewcommand\theHsubsubsection{\theHsubsection.\number\c@subsubsection} +\renewcommand\theHparagraph {\theHsubsubsection.\number\c@paragraph} +\renewcommand\theHsubparagraph {\theHparagraph.\number\c@subparagraph} +\renewcommand\theHtheorem {\theHsection.\number\c@theorem} +\renewcommand\theHthm {\theHsection.\number\c@thm} +\def\theHItem{\number\c@Item} +\renewcommand\theHHfootnote {\number\c@Hfootnote} +\renewcommand\theHmpfootnote{\number\c@mpfootnote} + +\AtBeginDocument{ + \ifHy@texht + \long\def\@firstoffive#1#2#3#4#5{#1}% + \long\def\@secondoffive#1#2#3#4#5{#2}% + \long\def\@thirdoffive#1#2#3#4#5{#3}% + \long\def\@fourthoffive#1#2#3#4#5{#4}% + \long\def\@fifthoffive#1#2#3#4#5{#5}% + \providecommand*\@safe@activestrue{}% + \providecommand*\@safe@activesfalse{}% + \def\T@ref#1{% + \@safe@activestrue\let\protect\string + \expandafter\@setref\csname r@#1\endcsname\@firstoffive{#1}% + \@safe@activesfalse + }% + \def\T@pageref#1{% + \@safe@activestrue\let\protect\string + \expandafter\@setref\csname r@#1\endcsname\@secondoffive{#1}% + \@safe@activesfalse + }% + \else + \ifHy@typexml\else\RequirePackage{nameref}\fi + \def\T@ref#1{% + \@safe@activestrue\let\protect\string + \expandafter\@setref\csname r@#1\endcsname\@firstoffive{#1}% + \@safe@activesfalse + }% + \def\T@pageref#1{% + \@safe@activestrue\let\protect\string + \expandafter\@setref\csname r@#1\endcsname\@secondoffive{#1}% + \@safe@activesfalse + }% + \fi +} + +\def\@setref#1#2#3{% csname, extract group, refname + \let\protect\relax + \ifx#1\relax + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{% + Reference `#3' on page \thepage \space undefined% + }% + \else + \hyper@@link + {\expandafter\@fifthoffive#1}% + {\expandafter\@fourthoffive#1\@empty\@empty}% + {\expandafter#2#1\@empty\@empty\null}% + \fi +} +\def\@pagesetref#1#2#3{% csname, extract macro, ref + \let\protect\relax + \ifx#1\relax + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{% + Reference `#3' on page \thepage \space undefined% + }% + \else + \protect\hyper@@link + {\expandafter\@fifthoffive#1}% + {page.\expandafter\@secondoffive#1}% + {\expandafter\@secondoffive#1}% + \fi +} + +\def\auto@setref#1#2#3{% csname, extract group, refname + \let\protect\relax + \ifx#1\relax + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{% + Reference `#3' on page \thepage \space undefined% + }% + \else + \edef\@thisref{\expandafter\@fourthoffive#1\@empty\@empty}% + \expandafter\test@reftype\@thisref\\% + \hyper@@link + {\expandafter\@fifthoffive#1}% + {\expandafter\@fourthoffive#1\@empty\@empty}% + {\@currentHtag\expandafter#2#1\@empty\@empty\null}% + \fi +} + +%% 조사 처리 추가 <2005/04/21> koaunghi@kornet.net +\@ifundefined{NAT@parse}{% + \def\bibcite#1#2{\let\protect\string% + \@newl@bel{b}{#1\@extra@binfo}{\hyper@@link[cite]{}{cite.#1}{#2}}% + }% + \gdef\@extra@binfo{}% + \let\Hy@bibcite\bibcite + \begingroup + \@ifundefined{bbl@cite@choice}{}{% + \g@addto@macro\bbl@cite@choice{% + \let\bibcite\Hy@bibcite + }% + }% + \endgroup + \providecommand*{\@BIBLABEL}{\@biblabel}% + \def\@lbibitem[#1]#2{% + \@skiphyperreftrue + \H@item[% + \ifx\Hy@raisedlink\@empty + \hyper@anchorstart{cite.#2}\@BIBLABEL{#1}\hyper@anchorend + \else + \Hy@raisedlink{\hyper@anchorstart{cite.#2}\hyper@anchorend}% + \@BIBLABEL{#1}% + \fi + \hfill + ]% + \@skiphyperreffalse + \if@filesw + \begingroup + \let\protect\noexpand + \immediate\write\@auxout{% + \string\bibcite{#2}{#1\string\make@josa{#1}}% + }% + \endgroup + \fi + \ignorespaces + }% + \def\@bibitem#1{% + \@skiphyperreftrue\H@item\@skiphyperreffalse + \Hy@raisedlink{\hyper@anchorstart{cite.#1}\relax\hyper@anchorend}% + \if@filesw + \begingroup + \let\protect\noexpand + \immediate\write\@auxout{% + \string\bibcite{#1}{\the\value{\@listctr}% + \string\ks@num{\the\value{\@listctr}}}% + }% + \endgroup + \fi + \ignorespaces + }% +}{} + +\def\hyper@makecurrent#1{% + \begingroup + \edef\Hy@param{#1}% + \ifx\Hy@param\Hy@chapterstring + \let\Hy@param\Hy@chapapp + \fi + \ifHy@hypertexnames + \let\protect\string + \let\@number\@firstofone + \ifHy@naturalnames + \let\textlatin\@firstofone + \xdef\@currentHlabel{\csname the#1\endcsname}% + \else + \xdef\@currentHlabel{\csname theH#1\endcsname}% + \fi + \xdef\@currentHref{% + \Hy@param.\expandafter\strip@prefix\meaning\@currentHlabel + }% + \else + \Hy@GlobalStepCount\Hy@linkcounter + \xdef\@currentHref{\Hy@param.\the\Hy@linkcounter}% + \fi + \endgroup +} + +%% Where (in \cite) is this used? +\expandafter\def\csname OT1/cmr/m/n/A/10\endcsname{\relax} +\expandafter\def\csname OT1/cmr/m/n/B/10\endcsname{\relax} +\expandafter\def\csname OT1/cmr/m/n/C/10\endcsname{\relax} +\expandafter\def\csname OT1/cmr/m/n/D/10\endcsname{\relax} +\expandafter\def\csname OT1/cmr/m/n/E/10\endcsname{\relax} +\expandafter\def\csname OT1/cmr/m/n/F/10\endcsname{\relax} +\expandafter\def\csname OT1/cmr/m/n/F/10\endcsname{\relax} +\expandafter\def\csname OT1/cmr/m/n/G/10\endcsname{\relax} +\expandafter\def\csname OT1/cmr/m/n/H/10\endcsname{\relax} +\expandafter\def\csname OT1/cmr/m/n/I/10\endcsname{\relax} +\expandafter\def\csname OT1/cmr/m/n/J/10\endcsname{\relax} +\fi diff --git a/language/korean/HLaTeX/contrib/showhkeys.sty b/language/korean/HLaTeX/contrib/showhkeys.sty new file mode 100644 index 0000000000..7129ba15b9 --- /dev/null +++ b/language/korean/HLaTeX/contrib/showhkeys.sty @@ -0,0 +1,91 @@ +\input showkeys.sty + +\ifx\nullocplist\undefined +\RequirePackage{verbatim} +\def\@verb@year{\jobname.tmp} +\newwrite\verbatim@out + +%% label swapping +\def\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]\if@filesw + {\let\protect\noexpand + \immediate + \write\@auxout{\string\bibcite{#2}% + {#1\string\make@josa{#1}}}}\fi% + \llap{\smash{\SK@labelcolor\fbox{% + \normalfont\small\ttfamily#2}\quad}}\ignorespaces} + +\def\SK@@label#1>#2\SK@{% + \toks@{#2}\edef\reserved@a{\the\toks@}% + \edef\reserved@a{\expandafter\strip@prefix\meaning\reserved@a}% + \immediate\openout\verbatim@out\@verb@year% + \immediate\write\verbatim@out{\reserved@a}% + \immediate\closeout\verbatim@out% + \def\verbatim@processline{% + {\setbox\@tempboxa=\hbox{\the\verbatim@line}% + \hsize=\wd\@tempboxa + \the\verbatim@line\par}}% + \setbox\@tempboxa=\vbox{\parskip=0pt\topsep=0pt\partopsep=0pt + \footnotesize\verbatiminput{\@verb@year}}% + \gdef\SK@lab{\smash{\SK@labelcolor\fbox{% + \normalfont\small\box\@tempboxa}}}% + \ifvmode + \if@inlabel + \global\setbox\@labels\hbox{% + \llap{\SK@lab\SK@lab@relax + \kern\@totalleftmargin\kern\marginparsep}% + \box\@labels}% + \else + \dimen@\prevdepth + \nointerlineskip + \ifinner + \skip@\lastskip\unskip + \advance\skip@\lastskip\unskip + \setbox\z@\lastbox + \ifvoid\z@ + \llap{\SK@lab\SK@lab@relax\kern\marginparsep}% + \else + \hbox{\box\z@\kern\marginparsep\SK@labx}% + \fi + \vskip\skip@ + \else + \llap{\SK@lab\SK@lab@relax\kern\marginparsep}% + \fi + \prevdepth\dimen@ + \fi + \else + \csname SK@\@currenvir\endcsname + \ifSK@equation\else + \ifmmode + \SK@labx + \else + \ifinner + \rlap\SK@lab + \else + \vadjust{\llap{\SK@lab\kern\marginparsep}}% + \fi + \SK@lab@relax + \fi + \fi + \fi} + +\def\SK@@ref#1>#2\SK@{% + \toks@{#2}\edef\reserved@a{\the\toks@}% + \edef\reserved@a{\expandafter\strip@prefix\meaning\reserved@a}% + \immediate\openout\verbatim@out \@verb@year + \immediate\write\verbatim@out{\reserved@a}% + \immediate\closeout\verbatim@out + \def\verbatim@processline{% + {\setbox\@tempboxa=\hbox{\the\verbatim@line}% + \hsize=\wd\@tempboxa + \the\verbatim@line\par}}% + \setbox\@tempboxa=\vbox{\parskip=0pt\topsep=0pt\partopsep=0pt + \footnotesize\verbatiminput{\@verb@year}\hrule}% + \leavevmode\vbox to\z@{% + \vss + \SK@refcolor + \rlap{\vrule\raise .75em\hbox{\box\@tempboxa}}}} +\fi + +\endinput + +%% End of file `showhkeys.sty'. diff --git a/language/korean/HLaTeX/contrib/showhtags.sty b/language/korean/HLaTeX/contrib/showhtags.sty new file mode 100644 index 0000000000..0bc046f72a --- /dev/null +++ b/language/korean/HLaTeX/contrib/showhtags.sty @@ -0,0 +1,14 @@ +\input showtags.sty + +\ifx\nullocplist\undefined +\def\@bibitem#1{\item\if@filesw {\let\protect\noexpand\immediate\write\@auxout + {\string\bibcite{#1}{\the\value{\@listctr}\string\make@josa{\the\value{\@listctr}}}}\fi\ignorespaces} + \@showtag{#1}} +% +\def\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]\if@filesw + {\let\protect\noexpand + \immediate + \write\@auxout{\string\bibcite{#2}{#1\string\make@josa{#1}}}}\fi\ignorespaces + \@showtag{#2}} +\fi +\endinput |