summaryrefslogtreecommitdiff
path: root/biblio/bibtex/contrib/dk-bib
diff options
context:
space:
mode:
Diffstat (limited to 'biblio/bibtex/contrib/dk-bib')
-rw-r--r--biblio/bibtex/contrib/dk-bib/88591-dk.csf106
-rw-r--r--biblio/bibtex/contrib/dk-bib/COPYRIGHT362
-rw-r--r--biblio/bibtex/contrib/dk-bib/Makefile71
-rw-r--r--biblio/bibtex/contrib/dk-bib/README9
-rw-r--r--biblio/bibtex/contrib/dk-bib/cp850-dk.csf106
-rw-r--r--biblio/bibtex/contrib/dk-bib/dk-abbrv.bst1301
-rw-r--r--biblio/bibtex/contrib/dk-bib/dk-alpha.bst1455
-rw-r--r--biblio/bibtex/contrib/dk-bib/dk-apali.bst1295
-rw-r--r--biblio/bibtex/contrib/dk-bib/dk-apali.sty37
-rw-r--r--biblio/bibtex/contrib/dk-bib/dk-bib.ltx352
-rw-r--r--biblio/bibtex/contrib/dk-bib/dk-bib.pdfbin0 -> 426879 bytes
-rw-r--r--biblio/bibtex/contrib/dk-bib/dk-bib.sty202
-rw-r--r--biblio/bibtex/contrib/dk-bib/dk-plain.bst1301
-rw-r--r--biblio/bibtex/contrib/dk-bib/dk-unsrt.bst1155
-rw-r--r--biblio/bibtex/contrib/dk-bib/litteratur.bib10
-rw-r--r--biblio/bibtex/contrib/dk-bib/mac-dk.csf99
-rw-r--r--biblio/bibtex/contrib/dk-bib/utf8-dk.csf127
17 files changed, 7988 insertions, 0 deletions
diff --git a/biblio/bibtex/contrib/dk-bib/88591-dk.csf b/biblio/bibtex/contrib/dk-bib/88591-dk.csf
new file mode 100644
index 0000000000..6355c5421e
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/88591-dk.csf
@@ -0,0 +1,106 @@
+%%% 88591-dk.csf --- Danish latin-1 sorting order file for bibtex8
+
+%% Copyright (C) 2005 Arne Jorgensen
+
+%% Author: Arne Jorgensen <arne.jorgensen@tug.dk>
+%% Version: $Id: 88591-dk.csf 71 2005-08-05 22:44:05Z arne $
+
+%% This file is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published
+%% by the Free Software Foundation; either version 2 of the License,
+%% or (at your option) any later version.
+
+%% This file is distributed in the hope that it will be useful, but
+%% WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+%% General Public License for more details.
+
+%% You should have received a copy of the GNU General Public License
+%% along with this file; if not, write to the Free Software
+%% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+%% 02110-1301, USA.
+
+%%% Commentary:
+
+%%% Code:
+
+%%% Character Set:
+
+\lowupcase{
+ % \`{a} \`{A}
+ % \'{a} \'{A}
+ % \^{a} \^{A}
+ % \~{a} \~{A}
+ % \"{a} \"{A}
+ % \ring{a} \ring{A}
+ % \ae \AE
+ % \c{c} \c{C}
+ % \`{e} \`{E}
+ % \'{e} \'{E}
+ % \^{e} \^{E}
+ % \"{e} \"{E}
+ % \`{\i} \`{I}
+ % \'{\i} \'{I}
+ % \^{\i} \^{I}
+ % \"{\i} \"{I}
+ % eth ETH
+ % \~{n} \~{N}
+ % \`{o} \`{O}
+ % \'{o} \'{O}
+ % \^{o} \^{O}
+ % \~{o} \~{O}
+ % \"{o} \"{O}
+ % \o \O
+ % \`{u} \`{U}
+ % \'{u} \'{U}
+ % \^{u} \^{U}
+ % \"{u} \"{U}
+ % \'{y} \'{Y}
+ % thorn THORN
+}
+
+%%% Sorting Order:
+
+%% Notice that / (THORN / thorn) will be sorted as T / t and not
+%% as Th / th as it should be. You are probably better off be putting
+%% \TH / \th into your .bib file.
+
+\order{
+ 0-9 % 0-9
+ A a % A \'{A} \`{A} \^{A} \~{A} a \'{a} \`{a} \^{a} \~{a}
+ B b % B b
+ C c % C \c{C} c \c{c}
+ D d % D ETH d eth
+ E e % E \'{E} \`{E} \"{E} \^{E} e \'{e} \`{e} \"{e} \^{e}
+ F f % F f
+ G g % G g
+ H h % H h
+ I i % I \'{I} \'{I} \"{I} \^{I} i \'{\i} \`{\i} \"{\i} \^{\i}
+ J j % J j
+ K k % K k
+ L l % L l
+ M m % M m
+ N n % N \~{N} n \~{n}
+ O o % O \'{O} \`{O} \^{O} \~{O} o \'{o} \`{o} \^{o} \~{o}
+ P p % P p
+ Q q % Q q
+ R r % R r
+ S s % S s
+ T t % T THORN t thorn
+ U u % U \'{U} \`{U} \^{U} u \'{u} \`{u} \^{u}
+ V v % V v
+ W w % W w
+ X x % X x
+ Y y % Y \"{U} \'{Y} y \"{u} \'{y} \"{y}
+ Z z % Z z
+ % \AE \"{A} \ae \"{a}
+ % \O \"{O} \o \"{o}
+ % \ring{A} \ring{a}
+}
+
+%% Local Variables:
+%% coding: iso-8859-1
+%% comment-start: "%% "
+%% End:
+
+%%% 88591-dk.csf ends here
diff --git a/biblio/bibtex/contrib/dk-bib/COPYRIGHT b/biblio/bibtex/contrib/dk-bib/COPYRIGHT
new file mode 100644
index 0000000000..8be8530c9a
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/COPYRIGHT
@@ -0,0 +1,362 @@
+The files
+
+ dk-abbrv.bst
+ dk-alpha.bst
+ dk-apali.bst
+ dk-plain.bst
+ dk-unsrt.bst
+ dk-apali.sty
+
+are licensed under the normal licensing of bst-files which says
+
+ % 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.
+
+
+All other files in dk-bib is released under the GNU General Public License.
+
+
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/biblio/bibtex/contrib/dk-bib/Makefile b/biblio/bibtex/contrib/dk-bib/Makefile
new file mode 100644
index 0000000000..0489f75f6f
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/Makefile
@@ -0,0 +1,71 @@
+### Makefile --- for building dk-bib
+
+# Copyright (C) 2004, 2005, 2006 Arne Jorgensen
+
+# Version: $Id: Makefile 89 2006-05-16 19:50:56Z arne $
+
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or (at
+# your option) any later version.
+
+# This file is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this file; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+.PHONY: all doc install-texmfhome install-texmflocal install texlive clean
+
+all: dk-bib.pdf
+
+doc: dk-bib.ltx litteratur.bib dk-plain.bst dk-bib.sty
+ test ${LATEX} # checking wheter LATEX is set
+ ${LATEX} dk-bib.ltx
+ bibtex dk-bib
+ ${LATEX} dk-bib.ltx
+ ${LATEX} dk-bib.ltx
+
+dk-bib.pdf: dk-bib.ltx litteratur.bib dk-plain.bst dk-bib.sty
+ LATEX=pdflatex make doc
+
+dk-bib.dvi: dk-bib.ltx litteratur.bib dk-plain.bst dk-bib.sty
+ LATEX=latex make doc
+
+dk-bib.zip: README COPYRIGHT Makefile dk-bib.ltx dk-bib.pdf\
+ *.sty litteratur.bib *.bst *.csf
+ zip -z $@ $^ < README
+
+install: dk-bib.pdf
+ test ${INSTALLDIR} # checking whether INSTALLDIR is set
+ install -m 0755 -d ${INSTALLDIR}/tex/latex/dk-bib/
+ install -m 0755 -d ${INSTALLDIR}/doc/latex/dk-bib/
+ install -m 0755 -d ${INSTALLDIR}/bibtex/bst/dk-bib/
+ install -m 0755 -d ${INSTALLDIR}/bibtex/csf/dk-bib/
+ install -m 0644 dk-bib.sty ${INSTALLDIR}/tex/latex/dk-bib/
+ install -m 0644 dk-apali.sty ${INSTALLDIR}/tex/latex/dk-bib/
+ install -m 0644 dk-bib.pdf ${INSTALLDIR}/doc/latex/dk-bib/
+ install -m 0644 *.bst ${INSTALLDIR}/bibtex/bst/dk-bib/
+ install -m 0644 *.csf ${INSTALLDIR}/bibtex/csf/dk-bib/
+ (test -f ${INSTALLDIR}/ls-R && mktexlsr ${INSTALLDIR}) || true
+
+texlive:
+ INSTALLDIR=texlive/texmf-dist make install
+
+install-texmfhome:
+ test `kpsexpand '$$TEXMFHOME'` # checking whether TEXMFHOME is defined
+ INSTALLDIR=`kpsexpand '$$TEXMFHOME'` make install
+
+install-texmflocal:
+ test `kpsexpand '$$TEXMFLOCAL'` # checking whether TEXMFLOCAL is defined
+ INSTALLDIR=`kpsexpand '$$TEXMFLOCAL'` make install
+
+clean:
+ ${RM} dk-bib.aux dk-bib.log dk-bib.blg dk-bib.bbl dk-bib.out dk-bib.dvi\
+ dk-bib.pdf dk-bib.zip
+ ${RM} *~
+
+### Makefile ends here
diff --git a/biblio/bibtex/contrib/dk-bib/README b/biblio/bibtex/contrib/dk-bib/README
new file mode 100644
index 0000000000..049b5a80ed
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/README
@@ -0,0 +1,9 @@
+Dk-bib is a translation of the four standard BibTeX style files
+(abbrv, alpha, plain and unsrt) and the apalike style file into
+Danish.
+
+The files have been extended with URL, ISBN, ISSN, annote and printing
+fields which can be enabled through a LaTeX style file.
+
+Dk-bib also comes with a couple of Danish sorting order files for
+BibTeX8.
diff --git a/biblio/bibtex/contrib/dk-bib/cp850-dk.csf b/biblio/bibtex/contrib/dk-bib/cp850-dk.csf
new file mode 100644
index 0000000000..263786360b
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/cp850-dk.csf
@@ -0,0 +1,106 @@
+%%% cp850-dk.csf --- Danish CP 850 sorting order file for bibtex8
+
+%% Copyright (C) 2005 Arne Jorgensen
+
+%% Author: Arne Jorgensen <arne.jorgensen@tug.dk>
+%% Version: $Id: cp850-dk.csf 71 2005-08-05 22:44:05Z arne $
+
+%% This file is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published
+%% by the Free Software Foundation; either version 2 of the License,
+%% or (at your option) any later version.
+
+%% This file is distributed in the hope that it will be useful, but
+%% WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+%% General Public License for more details.
+
+%% You should have received a copy of the GNU General Public License
+%% along with this file; if not, write to the Free Software
+%% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+%% 02110-1301, USA.
+
+%%% Commentary:
+
+%%% Code:
+
+%%% Character Set:
+
+\lowupcase{
+ % \`{a} \`{A}
+ % \'{a} \'{A}
+ % \^{a} \^{A}
+ % \~{a} \~{A}
+ % \"{a} \"{A}
+ % \ring{a} \ring{A}
+ % \ae \AE
+ % \c{c} \c{C}
+ % \`{e} \`{E}
+ % \'{e} \'{E}
+ % \^{e} \^{E}
+ % \"{e} \"{E}
+ % \`{\i} \`{I}
+ % \'{\i} \'{I}
+ % \^{\i} \^{I}
+ % \"{\i} \"{I}
+ % eth ETH
+ % \~{n} \~{N}
+ % \`{o} \`{O}
+ % \'{o} \'{O}
+ % \^{o} \^{O}
+ % \~{o} \~{O}
+ % \"{o} \"{O}
+ % \o \O
+ % \`{u} \`{U}
+ % \'{u} \'{U}
+ % \^{u} \^{U}
+ % \"{u} \"{U}
+ % \'{y} \'{Y}
+ % thorn THORN
+}
+
+%%% Sorting Order:
+
+%% Notice that / (THORN / thorn) will be sorted as T / t and not
+%% as Th / th as it should be. You are probably better off be putting
+%% \TH / \th into your .bib file.
+
+\order{
+ 0-9 % 0-9
+ A a % A \'{A} \`{A} \^{A} \~{A} a \'{a} \`{a} \^{a} \~{a}
+ B b % B b
+ C c % C \c{C} c \c{c}
+ D d % D ETH d eth
+ E e % E \'{E} \`{E} \"{E} \^{E} e \'{e} \`{e} \"{e} \^{e}
+ F f % F f
+ G g % G g
+ H h % H h
+ I i % I \'{I} \'{I} \"{I} \^{I} i \'{\i} \`{\i} \"{\i} \^{\i}
+ J j % J j
+ K k % K k
+ L l % L l
+ M m % M m
+ N n % N \~{N} n \~{n}
+ O o % O \'{O} \`{O} \^{O} \~{O} o \'{o} \`{o} \^{o} \~{o}
+ P p % P p
+ Q q % Q q
+ R r % R r
+ S s % S s
+ T t % T THORN t thorn
+ U u % U \'{U} \`{U} \^{U} u \'{u} \`{u} \^{u}
+ V v % V v
+ W w % W w
+ X x % X x
+ Y y % Y \"{U} \'{Y} y \"{u} \'{y} \"{y}
+ Z z % Z z
+ % \AE \"{A} \ae \"{a}
+ % \O \"{O} \o \"{o}
+ % \ring{A} \ring{a}
+}
+
+%% Local Variables:
+%% coding: cp850
+%% comment-start: "%% "
+%% End:
+
+%%% cp850-dk.csf ends here
diff --git a/biblio/bibtex/contrib/dk-bib/dk-abbrv.bst b/biblio/bibtex/contrib/dk-bib/dk-abbrv.bst
new file mode 100644
index 0000000000..17a5c410fd
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/dk-abbrv.bst
@@ -0,0 +1,1301 @@
+% BibTeX standard bibliography style `abbrv'
+ % 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.
+
+% "Translated" into Norwegian by dag@ifi.uio.no, July 1997.
+% Now called `norabbrv'.
+% Added field "isbn" and "issn". dag@ifi.uio.no, April 2001.
+% Translated into Danish by arne.jorgensen@tug.dk, June 2001.
+% Now called `dk-abbrv'.
+% This is dk-bib, Version 0.6 ($Id: dk-abbrv.bst 92 2006-05-21 21:18:10Z arne $)
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ printing
+ editor
+ howpublished
+ institution
+ isbn
+ issn
+ url
+ annote
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ }
+ {}
+ { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+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 {output.annote}
+{ annote empty$
+ 'skip$
+ { "\dkbibannote{" cite$ * "}{" * annote add.period$ * "}" *
+ write$ newline$ }
+ if$
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+ output.annote
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {output.isbn.issn}
+{ isbn empty$
+ 'skip$
+ { new.block "\dkbibisbn{" isbn * "}" * output }
+ if$
+ issn empty$
+ 'skip$
+ { new.block "\dkbibissn{" issn * "}" * output }
+ if$
+}
+
+FUNCTION {output.url}
+{ url empty$
+ 'skip$
+ { new.block "\dkbiburl{" url * "}" * output }
+ 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$ "" }
+ { "\emph{" swap$ * "}" * }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{f.~}{vv }{ll}{~jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { t "others" =
+ { " et~al." * }
+ { " og " * t * }
+ 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 >
+ { ", redakt\o rer" * }
+ { ", redakt\o r" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { title "t" change.case$ }
+ if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { "\dkbibdash" *
+ t #2 global.max$ substring$ 't :=
+ { t #1 #1 substring$ "-" = }
+ { t #2 global.max$ substring$ 't := }
+ while$
+ t #1 #1 substring$ " " =
+ { "{}" * }
+ { " " * }
+ 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$
+ { "" }
+ { "bind" volume tie.or.space.connect
+ series empty$
+ 'skip$
+ { " af " * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "nr." }
+ { "Nr." }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " i " * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {ordinal.translate.i}
+{ duplicate$ "l" change.case$ "first" =
+ {pop$ "1"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "second" =
+ {pop$ "2"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "third" =
+ {pop$ "3"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fourth" =
+ {pop$ "4"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fifth" =
+ {pop$ "5"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate.ii}
+{ duplicate$ "l" change.case$ "sixth" =
+ {pop$ "6"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "seventh" =
+ {pop$ "7"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "eighth" =
+ {pop$ "8"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "ninth" =
+ {pop$ "9"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "tenth" =
+ {pop$ "10"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate.iii}
+{ duplicate$ "l" change.case$ "eleventh" =
+ {pop$ "11"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "twelfth" =
+ {pop$ "12"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "thirteenth" =
+ {pop$ "13"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fourteenth" =
+ {pop$ "14"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fifteenth" =
+ {pop$ "15"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate.iv}
+{ duplicate$ "l" change.case$ "sixteenth" =
+ {pop$ "16"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "seventeenth" =
+ {pop$ "17"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "eighteenth" =
+ {pop$ "18"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "nineteenth" =
+ {pop$ "19"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "twentieth" =
+ {pop$ "20"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate}
+{ ordinal.translate.i
+ ordinal.translate.ii
+ ordinal.translate.iii
+ ordinal.translate.iv
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ printing empty$
+ +
+ #2
+ =
+ { "" }
+ { output.state mid.sentence =
+ { "\dkbibedition{" }
+ { "\dkbibEdition{" }
+ if$
+ edition empty$
+ { "" }
+ { edition ordinal.translate
+ duplicate$ "l" change.case$
+ duplicate$ "u" change.case$
+ =
+ { purify$ }
+ { output.state mid.sentence =
+ { skip$ }
+ { "u" change.case$
+ "t" change.case$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ * "}{" *
+ printing empty$
+ { "" }
+ { printing ordinal.translate
+ duplicate$ "l" change.case$
+ duplicate$ "u" change.case$
+ =
+ { purify$ }
+ { skip$ }
+ 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
+ { "side" pages n.dashify tie.or.space.connect }
+ { "side" 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$
+ { "kapitel" }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { "I " booktitle emphasize * }
+ { "I " format.editors * ", " * booktitle emphasize * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$ isbn empty$ issn empty$
+ and and 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$
+ { "Rapport" }
+ '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$
+ ""
+ }
+ { "I \emph{" journal * "}" * }
+ if$
+ }
+ { "I " key * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ 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" =
+ { " et~al." * }
+ { " og " * editor #2 "{vv }{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ "In "
+ }
+ { "Bind" volume tie.or.space.connect
+ " af " *
+ }
+ 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$
+ "" *
+ }
+ { "\emph{" * series * "}" * }
+ 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$
+ ""
+ }
+ { "I \emph{" booktitle * "}" * }
+ if$
+ }
+ { "I " key * }
+ if$
+ }
+ { "I " format.crossref.editor * }
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "Specialeafhandling" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "Ph.d.-afhandling" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"jan."}
+
+MACRO {feb} {"feb."}
+
+MACRO {mar} {"mar."}
+
+MACRO {apr} {"apr."}
+
+MACRO {may} {"maj"}
+
+MACRO {jun} {"jun."}
+
+MACRO {jul} {"jul."}
+
+MACRO {aug} {"aug."}
+
+MACRO {sep} {"sep."}
+
+MACRO {oct} {"okt."}
+
+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."}
+
+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$
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$
+ s nameptr "{ll{ }}{ f{ }}{ vv{ }}{ 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$
+ }
+ { organization 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$
+ "\makeatletter" write$ newline$
+ "\@tfor\dkbib@reserved@a:=0123456789\do{%" write$ newline$
+ " \expandafter\sfcode\expandafter`\dkbib@reserved@a=1007}" write$ newline$
+ "\providecommand{\dkbib@addperiod}{\ifnum\spacefactor=1007.\fi}" write$ newline$
+ "\providecommand{\dkbibedition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$
+ "\providecommand{\dkbibEdition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$
+ "\providecommand{\dkbibisbn}[1]{\unskip\@gobble}" write$ newline$
+ "\providecommand{\dkbibissn}[1]{\unskip\@gobble}" write$ newline$
+ "\providecommand{\dkbiburl}[1]{\unskip\@gobble}" write$ newline$
+ "\providecommand{\dkbibannote}[2]{\unskip}" write$ newline$
+ "\providecommand{\dkbibdash}{\hbox{-}\penalty\@m}" write$ newline$
+ "\makeatother" 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/bibtex/contrib/dk-bib/dk-alpha.bst b/biblio/bibtex/contrib/dk-bib/dk-alpha.bst
new file mode 100644
index 0000000000..20ccee3b2a
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/dk-alpha.bst
@@ -0,0 +1,1455 @@
+% 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.
+
+% "Translated" into Norwegian by dag@ifi.uio.no, January 1997.
+% Now called `noralpha'.
+% Added field "isbn" and "issn". dag@ifi.uio.no, April 2001.
+% Translated into Danish by arne.jorgensen@tug.dk, June 2001.
+% Now called `dk-alpha'.
+% This is dk-bib, Version 0.6 ($Id: dk-alpha.bst 92 2006-05-21 21:18:10Z arne $)
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ printing
+ editor
+ howpublished
+ institution
+ isbn
+ issn
+ url
+ annote
+ 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 }
+
+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 {output.annote}
+{ annote empty$
+ 'skip$
+ { "\dkbibannote{" cite$ * "}{" * annote add.period$ * "}" *
+ write$ newline$ }
+ if$
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+ output.annote
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {output.isbn.issn}
+{ isbn empty$
+ 'skip$
+ { new.block "\dkbibisbn{" isbn * "}" * output }
+ if$
+ issn empty$
+ 'skip$
+ { new.block "\dkbibissn{" issn * "}" * output }
+ if$
+}
+
+FUNCTION {output.url}
+{ url empty$
+ 'skip$
+ { new.block "\dkbiburl{" url * "}" * output }
+ 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$ "" }
+ { "\emph{" swap$ * "}" * }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{ff~}{vv }{ll}{~jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { t "others" =
+ { " et~al." * }
+ { " og " * t * }
+ 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 >
+ { ", redakt\o rer" * }
+ { ", redakt\o r" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { title "t" change.case$ }
+ if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { "\dkbibdash" *
+ t #2 global.max$ substring$ 't :=
+ { t #1 #1 substring$ "-" = }
+ { t #2 global.max$ substring$ 't := }
+ while$
+ t #1 #1 substring$ " " =
+ { "{}" * }
+ { " " * }
+ 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$
+ { "" }
+ { "bind" volume tie.or.space.connect
+ series empty$
+ 'skip$
+ { " af " * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "nr." }
+ { "Nr." }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " i " * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {ordinal.translate.i}
+{ duplicate$ "l" change.case$ "first" =
+ {pop$ "1"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "second" =
+ {pop$ "2"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "third" =
+ {pop$ "3"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fourth" =
+ {pop$ "4"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fifth" =
+ {pop$ "5"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate.ii}
+{ duplicate$ "l" change.case$ "sixth" =
+ {pop$ "6"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "seventh" =
+ {pop$ "7"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "eighth" =
+ {pop$ "8"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "ninth" =
+ {pop$ "9"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "tenth" =
+ {pop$ "10"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate.iii}
+{ duplicate$ "l" change.case$ "eleventh" =
+ {pop$ "11"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "twelfth" =
+ {pop$ "12"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "thirteenth" =
+ {pop$ "13"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fourteenth" =
+ {pop$ "14"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fifteenth" =
+ {pop$ "15"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate.iv}
+{ duplicate$ "l" change.case$ "sixteenth" =
+ {pop$ "16"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "seventeenth" =
+ {pop$ "17"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "eighteenth" =
+ {pop$ "18"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "nineteenth" =
+ {pop$ "19"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "twentieth" =
+ {pop$ "20"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate}
+{ ordinal.translate.i
+ ordinal.translate.ii
+ ordinal.translate.iii
+ ordinal.translate.iv
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ printing empty$
+ +
+ #2
+ =
+ { "" }
+ { output.state mid.sentence =
+ { "\dkbibedition{" }
+ { "\dkbibEdition{" }
+ if$
+ edition empty$
+ { "" }
+ { edition ordinal.translate
+ duplicate$ "l" change.case$
+ duplicate$ "u" change.case$
+ =
+ { purify$ }
+ { output.state mid.sentence =
+ { skip$ }
+ { "u" change.case$
+ "t" change.case$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ * "}{" *
+ printing empty$
+ { "" }
+ { printing ordinal.translate
+ duplicate$ "l" change.case$
+ duplicate$ "u" change.case$
+ =
+ { purify$ }
+ { skip$ }
+ 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
+ { "side" pages n.dashify tie.or.space.connect }
+ { "side" 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$
+ { "kapitel" }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { "I " booktitle emphasize * }
+ { "I " format.editors * ", " * booktitle emphasize * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$ isbn empty$ issn empty$
+ and and 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$
+ { "Rapport" }
+ '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$
+ ""
+ }
+ { "I \emph{" journal * "}" * }
+ if$
+ }
+ { "I " key * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ 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" =
+ { " et~al." * }
+ { " og " * editor #2 "{vv }{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ "I "
+ }
+ { "Bind" volume tie.or.space.connect
+ " af " *
+ }
+ 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$
+ "" *
+ }
+ { "\emph{" * series * "}" * }
+ 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$
+ ""
+ }
+ { "I \emph{" booktitle * "}" * }
+ if$
+ }
+ { "I " key * }
+ if$
+ }
+ { "I " format.crossref.editor * }
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "Specialeafhandling" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "Ph.d.-afhandling" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"januar"}
+
+MACRO {feb} {"februar"}
+
+MACRO {mar} {"marts"}
+
+MACRO {apr} {"april"}
+
+MACRO {may} {"maj"}
+
+MACRO {jun} {"juni"}
+
+MACRO {jul} {"juli"}
+
+MACRO {aug} {"august"}
+
+MACRO {sep} {"september"}
+
+MACRO {oct} {"oktober"}
+
+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 :=
+ 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$
+}
+
+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$ }
+ { organization #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 "{ll{ }}{ ff{ }}{ vv{ }}{ 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}
+{ 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$
+ "\makeatletter" write$ newline$
+ "\@tfor\dkbib@reserved@a:=0123456789\do{%" write$ newline$
+ " \expandafter\sfcode\expandafter`\dkbib@reserved@a=1007}" write$ newline$
+ "\providecommand{\dkbib@addperiod}{\ifnum\spacefactor=1007.\fi}" write$ newline$
+ "\providecommand{\dkbibedition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$
+ "\providecommand{\dkbibEdition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$
+ "\providecommand{\dkbibisbn}[1]{\unskip\@gobble}" write$ newline$
+ "\providecommand{\dkbibissn}[1]{\unskip\@gobble}" write$ newline$
+ "\providecommand{\dkbiburl}[1]{\unskip\@gobble}" write$ newline$
+ "\providecommand{\dkbibannote}[2]{\unskip}" write$ newline$
+ "\providecommand{\dkbibdash}{\hbox{-}\penalty\@m}" write$ newline$
+ "\makeatother" 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/bibtex/contrib/dk-bib/dk-apali.bst b/biblio/bibtex/contrib/dk-bib/dk-apali.bst
new file mode 100644
index 0000000000..c33983a99d
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/dk-apali.bst
@@ -0,0 +1,1295 @@
+% BibTeX `apalike' bibliography style (24-Jan-88 version)
+% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a.
+% Copyright (C) 1988, all rights reserved.
+% Copying of this file is allowed, provided that if you make any changes at all
+% you name it something other than `apalike.bst'.
+% This restriction helps ensure that all copies are identical.
+% Differences between this style and `alpha' are generally heralded by a `%'.
+% The file btxbst.doc has the documentation for alpha.bst.
+%
+% This style should be used with the `apalike' LaTeX style (apalike.sty).
+% \cite's come out like "(Jones, 1986)" in the text but there are no labels
+% in the bibliography, and something like "(1986)" comes out immediately
+% after the author. Author (and editor) names appear as last name, comma,
+% initials. A `year' field is required for every entry, and so is either
+% an author (or in some cases, an editor) field or a key field.
+%
+% Editorial note:
+% Many journals require a style like `apalike', but I strongly, strongly,
+% strongly recommend that you not use it if you have a choice---use something
+% like `plain' instead. Mary-Claire van Leunen (A Handbook for Scholars,
+% Knopf, 1979) argues convincingly that a style like `plain' encourages better
+% writing than one like `apalike'. Furthermore the strongest arguments for
+% using an author-date style like `apalike'---that it's "the most practical"
+% (The Chicago Manual of Style, University of Chicago Press, thirteenth
+% edition, 1982, pages 400--401)---fall flat on their face with the new
+% computer-typesetting technology. For instance page 401 anachronistically
+% states "The chief disadvantage of [a style like `plain'] is that additions
+% or deletions cannot be made after the manuscript is typed without changing
+% numbers in both text references and list." LaTeX sidesteps the disadvantage.
+%
+% History:
+% 15-sep-86 (SK,OP) Original version, by Susan King and Oren Patashnik.
+% 10-nov-86 (OP) Truncated the sort.key$ string to the correct length
+% in bib.sort.order to eliminate error message.
+% 24-jan-88 (OP) Updated for BibTeX version 0.99a, from alpha.bst 0.99a;
+% apalike now sorts by author, then year, then title;
+% THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i.
+% 20-jan-2005 (arne) Translated into Danish by arne.jorgensen@tug.dk.
+% Now called `dk-apali'.
+% This is dk-bib, Version 0.6 ($Id: dk-apali.bst 92 2006-05-21 21:18:10Z arne $)
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ printing
+ editor
+ howpublished
+ institution
+ isbn
+ issn
+ url
+ annote
+ journal
+ key
+% month not used in apalike
+ 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 }
+
+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$
+}
+
+% apalike needs this function because
+% the year has special punctuation;
+% apalike ignores the month
+FUNCTION {output.year.check}
+{ year empty$
+ { "empty year in " cite$ * warning$ }
+ { write$
+ " (" year * extra.label * ")" *
+ mid.sentence 'output.state :=
+ }
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\bibitem[" write$
+ label write$
+ "]{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {output.annote}
+{ annote empty$
+ 'skip$
+ { "\dkbibannote{" cite$ * "}{" * annote add.period$ * "}" *
+ write$ newline$ }
+ if$
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+ output.annote
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {output.isbn.issn}
+{ isbn empty$
+ 'skip$
+ { new.block "\dkbibisbn{" isbn * "}" * output }
+ if$
+ issn empty$
+ 'skip$
+ { new.block "\dkbibissn{" issn * "}" * output }
+ if$
+}
+
+FUNCTION {output.url}
+{ url empty$
+ 'skip$
+ { new.block "\dkbiburl{" url * "}" * output }
+ 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.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "\emph{" swap$ * "}" * }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { t "others" =
+ { " et~al." * }
+ { " og " * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { author format.names }
+ if$
+}
+
+FUNCTION {format.key} % this function is just for apalike
+{ empty$
+ { key field.or.null }
+ { "" }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { editor format.names
+ editor num.names$ #1 >
+ { ", redakt\o rer" * }
+ { ", redakt\o r" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { title "t" change.case$ }
+ if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { "\dkbibdash" *
+ t #2 global.max$ substring$ 't :=
+ { t #1 #1 substring$ "-" = }
+ { t #2 global.max$ substring$ 't := }
+ while$
+ t #1 #1 substring$ " " =
+ { "{}" * }
+ { " " * }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+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$
+ { "" }
+ { "bind" volume tie.or.space.connect
+ series empty$
+ 'skip$
+ { " af " * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "nr." }
+ { "Nr." }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " i " * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {ordinal.translate.i}
+{ duplicate$ "l" change.case$ "first" =
+ {pop$ "1"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "second" =
+ {pop$ "2"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "third" =
+ {pop$ "3"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fourth" =
+ {pop$ "4"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fifth" =
+ {pop$ "5"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate.ii}
+{ duplicate$ "l" change.case$ "sixth" =
+ {pop$ "6"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "seventh" =
+ {pop$ "7"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "eighth" =
+ {pop$ "8"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "ninth" =
+ {pop$ "9"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "tenth" =
+ {pop$ "10"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate.iii}
+{ duplicate$ "l" change.case$ "eleventh" =
+ {pop$ "11"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "twelfth" =
+ {pop$ "12"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "thirteenth" =
+ {pop$ "13"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fourteenth" =
+ {pop$ "14"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fifteenth" =
+ {pop$ "15"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate.iv}
+{ duplicate$ "l" change.case$ "sixteenth" =
+ {pop$ "16"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "seventeenth" =
+ {pop$ "17"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "eighteenth" =
+ {pop$ "18"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "nineteenth" =
+ {pop$ "19"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "twentieth" =
+ {pop$ "20"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate}
+{ ordinal.translate.i
+ ordinal.translate.ii
+ ordinal.translate.iii
+ ordinal.translate.iv
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ printing empty$
+ +
+ #2
+ =
+ { "" }
+ { output.state mid.sentence =
+ { "\dkbibedition{" }
+ { "\dkbibEdition{" }
+ if$
+ edition empty$
+ { "" }
+ { edition ordinal.translate
+ duplicate$ "l" change.case$
+ duplicate$ "u" change.case$
+ =
+ { purify$ }
+ { output.state mid.sentence =
+ { skip$ }
+ { "u" change.case$
+ "t" change.case$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ * "}{" *
+ printing empty$
+ { "" }
+ { printing ordinal.translate
+ duplicate$ "l" change.case$
+ duplicate$ "u" change.case$
+ =
+ { purify$ }
+ { skip$ }
+ 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
+ { "side" pages n.dashify tie.or.space.connect }
+ { "side" 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$
+ { "kapitel" }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { "I " booktitle emphasize * }
+ { "I " format.editors * ", " * booktitle emphasize * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Rapport" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{ "I" % this is for apalike
+ "~\cite{" * crossref * "}" *
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ "I "
+ }
+ { "Bind" volume tie.or.space.connect
+ " af " *
+ }
+ if$
+ "\cite{" * crossref * "}" * % this is for apalike
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ "I" % this is for apalike
+ "~\cite{" * crossref * "}" *
+}
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output % special for
+ output.year.check % apalike
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+ format.vol.num.pages output
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ editor format.key output
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ output.year.check % special for apalike
+ 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
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ author format.key output % special for
+ output.year.check % apalike
+ new.block
+ format.title "title" output.check
+ new.block
+ howpublished output
+ address output
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ editor format.key output
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ output.year.check % special for apalike
+ 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
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output % special for
+ output.year.check % apalike
+ 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.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output % special for
+ output.year.check % apalike
+ 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 output % for apalike
+ new.sentence % there's no year
+ organization output % here so things
+ publisher output % are simpler
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+ format.authors output
+ author format.key output % special for
+ output.year.check % apalike
+ new.block
+ format.btitle "title" output.check
+ organization address new.block.checkb
+ organization output
+ address output
+ format.edition output
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output % special for
+ output.year.check % apalike
+ new.block
+ format.title "title" output.check
+ new.block
+ "Specialeafhandling" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ author format.key output % special for
+ output.year.check % apalike
+ new.block
+ format.title output
+ new.block
+ howpublished output
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output % special for
+ output.year.check % apalike
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "Ph.d.-afhandling" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ format.editors output
+ editor format.key output % special for
+ output.year.check % apalike
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address output % for apalike
+ new.sentence % we always output
+ organization output % a nonempty organization
+ publisher output % here
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output % special for
+ output.year.check % apalike
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output % special for
+ output.year.check % apalike
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"januar"}
+
+MACRO {feb} {"februar"}
+
+MACRO {mar} {"marts"}
+
+MACRO {apr} {"april"}
+
+MACRO {may} {"maj"}
+
+MACRO {jun} {"juni"}
+
+MACRO {jul} {"juli"}
+
+MACRO {aug} {"august"}
+
+MACRO {sep} {"september"}
+
+MACRO {oct} {"oktober"}
+
+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$
+}
+
+% There are three apalike cases: one person (Jones),
+% two (Jones and de~Bruijn), and more (Jones et~al.).
+% This function is much like format.crossref.editors.
+%
+FUNCTION {format.lab.names}
+{ 's :=
+ s #1 "{vv~}{ll}" format.name$
+ s num.names$ duplicate$
+ #2 >
+ { pop$ " et~al." * }
+ { #2 <
+ 'skip$
+ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al." * }
+ { " og " * s #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {author.key.label}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key % apalike uses the whole key
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key % apalike uses the whole key
+ if$
+ }
+ { editor format.lab.names }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {editor.key.label}
+{ editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key % apalike uses the whole key, no organization
+ if$
+ }
+ { editor format.lab.names }
+ if$
+}
+
+FUNCTION {calc.label}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label
+ { type$ "proceedings" =
+ 'editor.key.label % apalike ignores organization
+ 'author.key.label % for labeling and sorting
+ if$
+ }
+ if$
+ ", " % these three lines are
+ * % for apalike, which
+ year field.or.null purify$ #-1 #4 substring$ % uses all four digits
+ *
+ 'label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$ % apalike uses initials
+ s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here
+ nameptr numnames = t "others" = and
+ { "et al" * }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 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 {editor.sort}
+{ editor empty$
+ { key empty$
+ { "to sort, need editor or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+% apalike uses two sorting passes; the first one sets the
+% labels so that the `a's, `b's, etc. can be computed;
+% the second pass puts the references in "correct" order.
+% The presort function is for the first pass. It computes
+% label, sort.label, and title, and then concatenates.
+FUNCTION {presort}
+{ calc.label
+ label sortify
+ " "
+ *
+ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.sort
+ 'author.sort
+ if$
+ }
+ if$
+ #1 entry.max$ substring$ % for
+ 'sort.label := % apalike
+ sort.label % style
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT % by label, sort.label, title---for final label calculation
+
+STRINGS { last.label next.extra } % apalike labels are only for the text;
+
+INTEGERS { last.extra.num } % there are none in the bibliography
+
+FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label'
+{ #0 int.to.chr$ 'last.label :=
+ "" 'next.extra :=
+ #0 'last.extra.num :=
+}
+
+FUNCTION {forward.pass}
+{ last.label 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 :=
+ label 'last.label :=
+ }
+ if$
+}
+
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+ { "a" 'extra.label := }
+ 'skip$
+ if$
+ label extra.label * 'label :=
+ extra.label 'next.extra :=
+}
+
+EXECUTE {initialize.extra.label.stuff}
+
+ITERATE {forward.pass}
+
+REVERSE {reverse.pass}
+
+% Now that the label is right we sort for real,
+% on sort.label then year then title. This is
+% for the second sorting pass.
+FUNCTION {bib.sort.order}
+{ sort.label
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {bib.sort.order}
+
+SORT % by sort.label, year, title---giving final bibliography order
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{}" write$ newline$ % no labels in apalike
+ "\makeatletter" write$ newline$
+ "\@tfor\dkbib@reserved@a:=0123456789\do{%" write$ newline$
+ " \expandafter\sfcode\expandafter`\dkbib@reserved@a=1007}" write$ newline$
+ "\providecommand{\dkbib@addperiod}{\ifnum\spacefactor=1007.\fi}" write$ newline$
+ "\providecommand{\dkbibedition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$
+ "\providecommand{\dkbibEdition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$
+ "\providecommand{\dkbibisbn}[1]{\unskip\@gobble}" write$ newline$
+ "\providecommand{\dkbibissn}[1]{\unskip\@gobble}" write$ newline$
+ "\providecommand{\dkbiburl}[1]{\unskip\@gobble}" write$ newline$
+ "\providecommand{\dkbibannote}[2]{\unskip}" write$ newline$
+ "\providecommand{\dkbibdash}{\hbox{-}\penalty\@m}" write$ newline$
+ "\makeatother" 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/bibtex/contrib/dk-bib/dk-apali.sty b/biblio/bibtex/contrib/dk-bib/dk-apali.sty
new file mode 100644
index 0000000000..dfd4b5549c
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/dk-apali.sty
@@ -0,0 +1,37 @@
+% This file is based on BibTeX's original apalike.sty
+
+% This is dk-bib, Version 0.6 ($Id: dk-apali.sty 92 2006-05-21 21:18:10Z arne $)
+
+\def\@cite#1#2{(#1\if@tempswa , #2\fi)}
+\def\@biblabel#1{}
+
+\newlength{\bibhang}
+\setlength{\bibhang}{2em}
+
+% In case babel is not used we provide \refname and \bibname here
+\providecommand{\refname}{References}
+\providecommand{\bibname}{Bibliography}
+
+\@ifundefined{chapter}{\def\thebibliography#1{\section*{\refname\@mkboth
+ {\refname}{\refname}}\list
+ {\relax}{\setlength{\labelsep}{0em}
+ \setlength{\itemindent}{-\bibhang}
+ \setlength{\leftmargin}{\bibhang}}
+ \def\newblock{\hskip .11em plus .33em minus .07em}
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=1000\relax}}%
+{\def\thebibliography#1{\chapter*{\bibname\@mkboth
+ {\MakeUppercase\bibname}{\MakeUppercase\bibname}}\list
+ {\relax}{\setlength{\labelsep}{0em}
+ \setlength{\itemindent}{-\bibhang}
+ \setlength{\leftmargin}{\bibhang}}
+ \def\newblock{\hskip .11em plus .33em minus .07em}
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=1000\relax}}
+
+\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
+ \def\@citea{}\@cite{\@for\@citeb:=#2\do
+ {\@citea\def\@citea{; }\@ifundefined
+ {b@\@citeb}{{\bf ?}\@warning
+ {Citation `\@citeb' on page \thepage \space undefined}}%
+{\csname b@\@citeb\endcsname}}}{#1}}
diff --git a/biblio/bibtex/contrib/dk-bib/dk-bib.ltx b/biblio/bibtex/contrib/dk-bib/dk-bib.ltx
new file mode 100644
index 0000000000..4782345b22
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/dk-bib.ltx
@@ -0,0 +1,352 @@
+% Copyright (C) 2004, 2005, 2006 Arne Jørgensen
+
+% This file is free software; you can redistribute it and/or modify it
+% under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) any later version.
+
+% This file is distributed in the hope that it will be useful, but
+% WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+% General Public License for more details.
+
+% You should have received a copy of the GNU General Public License
+% along with this file; if not, write to the Free Software Foundation,
+% Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+\documentclass[a4paper,pointednumbers,abstracton,bibtotoc]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[english,danish]{babel}
+\usepackage{lmodern}
+\usepackage[osf,sc]{mathpazo}
+\usepackage{booktabs}
+\usepackage[danish]{varioref}
+\usepackage[protrusion=true,expansion=true]{microtype}
+\usepackage{hyperref}
+
+% subversion date and revision
+\def\dkbib@svn $#1 #2 #3 #4-#5-#6 #7 #8 ${%
+ \def\dkbibrevision{#3}
+ \year =#4
+ \month =#5
+ \day =#6
+}
+\dkbib@svn $Id: dk-bib.ltx 90 2006-05-17 20:51:31Z arne $
+
+% this is how the LaTeX package can be called
+\usepackage[isbn=true,ordinals2word=true]{dk-bib}
+
+% if you want your own way of typesetting URL's, ISBN's, and ISSN's do
+\newcommand{\dkbiburl}[1]{\textsc{url} \url{#1}}
+\newcommand{\dkbibisbn}[1]{%
+ \textsc{isbn} \href{http://isbn.nu/#1}{#1}}
+
+\newcommand{\BibTeX}{\textsc{Bib}\TeX}
+\bibliographystyle{dk-plain}
+
+\setkomafont{title}{\rmfamily}
+\setkomafont{sectioning}{\rmfamily\bfseries}
+
+\title{Dk-bib -- danske varianter af \BibTeX s standardstilarter}
+\author{Arne Jørgensen\thanks{\href{mailto:arne.jorgensen@tug.dk}%
+ {\texttt{arne.jorgensen@tug.dk}}}}
+\makeatletter
+\hypersetup{pdfauthor={Arne J\o rgensen},
+ pdftitle={Dk-bib Manual, version \dkbib@version\ (r\dkbibrevision)},
+ pdfsubject={Danish variants of the standard BibTeX styles, version \dkbib@version},
+ pdfkeywords={dk-abbrv.bst dk-alpha.bst dk-apali.bst dk-plain.bst
+ dk-unsrt.bst dk-bib.sty 88591-dk.csf cp850-dk.csf mac-dk.csf
+ utf8-dk.csf BibTeX BibTeX8 LaTeX},
+ pdfstartview={FitH},
+}
+\makeatother
+
+\begin{document}
+\maketitle
+
+{\selectlanguage{english}{%
+\renewcommand{\abstractname}{Abstract in English}
+\begin{abstract}
+ Dk-bib is a translation of the four standard \BibTeX\ style files
+ (abbrv, alpha, plain and unsrt) and the apalike style file into
+ Danish. The files have been extended with \textsc{url},
+ \textsc{isbn}, \textsc{issn}, \texttt{annote} and \texttt{printing}
+ fields which can be enabled through a \LaTeX\ style file.
+
+ Dk-bib also comes with a couple of Danish sorting order files for
+ \BibTeX8.
+
+ This manual is in Danish.
+\end{abstract}
+}}
+\section{Introduktion}
+Dk-bib er en oversættelse til dansk af de fire
+\BibTeX-standardstilarter (abbrv, alpha, plain, unsrt), samt
+apalike-stilarten.
+
+Stilarterne er udvidet med \textsc{url}-, \textsc{isbn}-,
+\textsc{issn}-, \texttt{printing}- (oplag) og \texttt{annote}-felter
+der kan slås til ved hjælp af den medfølgende \LaTeX-pakke.
+
+Sammen med dk-bib leveres også en række danske sorteringsdefinitioner
+til \BibTeX8.
+
+Har du brug for en generel introduktion til \BibTeX\ kan kapitel~12
+og~13 i~\cite{Mittelbach:2004} anbefales.
+
+\section{Simpel brug}
+I sin simpleste form anvendes de ved blot at skrive
+\begin{verbatim}
+ \bibliographystyle{dk-plain}
+\end{verbatim}
+i stedet for
+\begin{verbatim}
+ \bibliographystyle{plain}
+\end{verbatim}
+i \LaTeX-dokumentet.
+
+Dette bevirker at der blandt andet skrives \emph{og} mellem
+forfatternavne i stedet for det engelske \emph{and} og at der skrives
+for eksempel \emph{2.~udgave} i stedet for \emph{second edition}.
+
+\subsection{Apalike-stilarten}
+Ønsker du at bruge oversættelsen af apalike-stilarten skal du forkorte
+en smule og blot skrive
+\begin{verbatim}
+ \bibliographystyle{dk-apali}
+\end{verbatim}
+
+Apalike.bst har brug for en anden udgave af \LaTeX's
+\verb|\cite|-kommando end den der som standard er defineret. Vi er
+derfor nødt til at fortælle \LaTeX\ at vi bruger apalike.
+
+Det kan du gøre ved at tilføje følgende i præamblen:
+\begin{verbatim}
+ \usepackage[apalike]{dk-bib}
+\end{verbatim}
+
+\section{ISBN-, ISSN- og URL-felter}
+Hvis \BibTeX-databasen indeholder \textsc{isbn}-, \textsc{issn}- eller
+\textsc{url}-felter og du ønsker at have disse med i din
+litteraturliste kan du gøre bruge at \LaTeX-pakken \texttt{dk-bib}.
+
+I præamblen af dit \LaTeX-dokument tilføjer du
+\begin{verbatim}
+ \usepackage[isbn,issn,url]{dk-bib}
+\end{verbatim}
+
+Hvis du er utilfreds med måden disse felter bliver sat på er det
+muligt at definere din egen måde. Det gør du ved i præamblen at
+definere en eller flere af kommandoerne \verb|\dkbibisbn|,
+\verb|\dkbibissn| og \verb|\dkbiburl|. De skal alle tage ét argument,
+henholdsvis \textsc{isbn}"-nummeret, \textsc{issn}"-nummeret og
+\textsc{url}'en.
+
+Følgende eksempel sætter ordet \textsc{isbn} med kapitæler og gør
+\textsc{isbn}-nummeret til et link (ved hjælp af hyperref-pakken):
+\begin{verbatim}
+ \newcommand{\dkbibisbn}[1]{%
+ \textsc{isbn} \href{http://isbn.nu/#1}{#1}}
+\end{verbatim}
+
+\section{"`Printing"'-feltet til oplagsnumre}
+Ønsker du at medtage hvilket oplag af en publikation du referer eller
+henviser til kan du gøre brug af \verb|printing|-feltet. I
+\verb|.bib|-filen tilføjes for eksempel nedenstående ved en
+publikation:
+\begin{verbatim}
+ printing = {1},
+\end{verbatim}
+
+Af hensyn til bagudkompatibiliteten medtages dette dog ikke i
+litteraturlisten før det aktiveres ved at tilføje \verb|printing| som
+tilvalg til \verb|dk-bib|-pakken:
+\begin{verbatim}
+ \usepackage[printing]{dk-bib}
+\end{verbatim}
+
+Bemærk at de danske \BibTeX-stilarter er de eneste der benytter
+\verb|printing|-feltet og at der tilsyneladende ikke er andre
+\BibTeX-stilarter der medtager oplagsinformation. Deler du dine
+\verb|.bib|-filer med andre \LaTeX-brugere kan du derfor ikke
+umiddelbart forvente at de vil kunne gøre brug af oplagsnummeret i
+dine \verb|.bib|-filer eller at du har glæde af oplagsnumre i deres.
+
+\section{Ordenstal i "`edition"'- og "`printing"'-felterne}
+Hvis du udveksler \BibTeX-databasefiler (\texttt{.bib}-filer) med
+andre \LaTeX-brugere vil du måske bemærke at der er tradition for at
+skrive udgavenummeret med ord og på engelsk, for eksempel
+
+\begin{verbatim}
+ edition = {second},
+\end{verbatim}
+
+De danske \BibTeX-stilarter oversætter disse (op til
+\makeatletter
+\@nameuse{dkbib@word\the\dkbib@maxordinaldepth}
+\makeatother
+udgave) til \emph{2.~udgave}. På samme vis oversættes oplagsnummeret.
+
+Ønsker du at der i din danske litteraturliste i stedet for for
+eksempel \emph{2.~udgave} står \emph{anden udgave} kan du bruge
+\LaTeX-pakken \texttt{dk-bib} således:
+
+\begin{verbatim}
+ \usepackage[ordinals2word]{dk-bib}
+\end{verbatim}
+
+Bemærk at udgave og oplag bliver omskrevet uanset om der i
+\BibTeX-databasen står \emph{second} som ovenfor eller for eksempel
+
+\begin{verbatim}
+ edition = {2},
+\end{verbatim}
+
+Som udgangspunkt omskrives i dette tilfælde alle udgave- og
+oplagsnumre op til og med
+\makeatletter
+\emph{\@nameuse{dkbib@word\the\dkbib@maxordinaldepth}}%
+\makeatother%
+, men du kan selv sætte en \emph{lavere}
+grænse med
+\begin{verbatim}
+ \usepackage[ordinals2word,ordinaldepth=10]{dk-bib}
+\end{verbatim}
+
+\section{"`Annote"'-feltet til kommentarer}
+Blandt \BibTeX's "`standardfelter"' finder vi \texttt{annote}-feltet
+der kan bruges til at fremstille en kommenteret litteraturliste.
+
+Ønsker du at få disse kommentarer med i din litteraturliste bruges
+\texttt{annote}-tilvalget til \texttt{dk-bib}-pakken:
+
+\begin{verbatim}
+ \usepackage[annote]{dk-bib}
+\end{verbatim}
+
+Kommentarerne bliver sat i en typografi der minder om dem der anvendes
+af \BibTeX-stilarterne annotate og annotation.
+
+Du kan bestemme en anden typografi ved at definere kommandoen
+\verb|\dkbibannote| i præamblen. Kommandoen skal tage to argumenter;
+nøglen i \BibTeX-databasen og selve kommentaren, for eksempel
+
+\begin{verbatim}
+ \newcommand{\dkbibannote}[2]{\textbf{#1:} #2}
+\end{verbatim}
+
+\section{"`Specialeafhandling"' og "`Ph.d.-afhandling"'}
+De danske \BibTeX-stilarter oversætter felterne \emph{Master's
+ thesis} og \emph{PhD thesis} til henholdsvis
+\emph{Specialeafhandling} og \emph{Ph.d.-afhandling}.
+
+Nogle uddannelsesinstitutioner bruger ikke begrebet
+\emph{specialeafhandling}, men for eksempel \emph{hovedopgave} eller
+slet og ret \emph{speciale}. Andre kan få ret ophidsede diskussioner
+ud af stavemåden af ph.d.
+
+Måden man løser dette på er (helt uafhængigt af dk-bib) at indsætte
+et \texttt{type}-felt i \BibTeX-databasen ved den pågældende
+afhandling, for eksempel
+\begin{verbatim}
+ type = {Hovedopgave},
+\end{verbatim}
+eller
+\begin{verbatim}
+ type = {{PhD}-afhandling},
+\end{verbatim}
+
+Sidstnævnte er i øvrigt ikke noget forsvar af eller undskyldning for
+at anvende en anden stavemåde end den af Dansk Sprognævn anbefalede,
+nemlig \emph{ph.d.} (og husk at det ved lov er bestemt at offentlige
+myndigheder skal følge sprognævnets anvisninger).
+
+\section{Dansk sortering med \BibTeX8}
+Da \BibTeX\ ikke er i stand til at sortere de andre bogstaver end A-Z
+og a-z korrekt kan vi på dansk med fordel anvende \BibTeX8.
+
+\BibTeX8 beskrives i \cite[afsnit~13.1.1]{Mittelbach:2004} og leveres som
+udgangspunkt med en sorteringdefinition der er tilpasset skandinaviske
+sprog og \textsc{iso} 8859-1-tegnsættet. Denne sortering tager dog kun
+højde for Æ, æ, Ø, ø, Å og å og sorterer derfor ikke accentuerede
+bogstaver med mere korrekt.
+
+\begin{table}
+ \centering
+ \begin{tabular}{ll}
+\toprule
+\emph{Sorteringsdefinition} & \emph{Tilvalg til {\ttfamily inputenc}-pakken}\\
+\midrule
+88591-dk & latin1, latin9, ansinew, cp1252\\
+cp850-dk & cp850\\
+mac-dk & applemac\\
+utf8-dk (eksperimentiel!) & utf8, utf8x\\
+\bottomrule
+\end{tabular}
+\caption{Sorteringsdefinitioner til \BibTeX8 og de tilsvarende tilvalg
+ til \texttt{inputenc}-pakken.}
+\label{tab:csf-inputenc}
+\end{table}
+
+Sammen med denne pakke leveres derfor også et antal
+sorteringsdefinitioner tilpasset dansk sortering og flere tegnsæt. Se
+sammenhængen mellem sorteringsdefinitioner og tilvalg til
+\texttt{inputenc}-pakken i tabel~\vref{tab:csf-inputenc}.
+
+Hvis din \BibTeX-database skal sorteres med \texttt{bibtex8} skal den
+skrives i samme tegnsæt som \LaTeX-dokumentet anvender og de danske
+bogstaver skal skrives direkte -- det vil sige skriv
+\verb|Svend Åge Madsen| og ikke \verb|Svend \AA{}ge Madsen|.
+
+På grund af måden både \BibTeX\ og \BibTeX8 er konstrueret på er der
+dog et par problemer der kun besværligt lader sig løse.
+
+BibTeX8 kan ikke sortere dobbelt-A under Å, så har du for eksempel en
+forfatter ved navn Ole Aagesen kan du sikre at han placeres korrekt i
+bibliografien ved at indskrive følgende i starten af
+\texttt{bib}-filen:
+\begin{verbatim}
+ @preamble{ "\providecommand{\Aa}[1]{Aa}" }
+\end{verbatim}
+og herefter skrive forfatteren ind i \texttt{bib}-filen som (antallet
+af \verb|{}| er vigtigt)
+\begin{verbatim}
+ author = {Ole {\Aa{Å}}gesen}
+\end{verbatim}
+
+Ligeledes kan \BibTeX8 heller ikke sortere det islandske \TH\ korrekt
+under Th. Løsningen er her at skrive (igen er antallet af \verb|{}|
+vigtigt)
+\begin{verbatim}
+ author = {\TH{}orvaldur Bjarnarson}
+\end{verbatim}
+
+Slutteligt vil jeg \emph{advare} mod at bruge sorteringsdefinitionen
+til \textsc{utf-8}-tegnsættet uden omhyggelig korrekturlæsning.
+Sorteringsdefinitionen benytter sig af en række ikke"-dokumenterede
+effekter ved \texttt{bibtex8} og på grund af
+\textsc{utf-8}-tegnsættets og \BibTeX8's opbygning kan der forekomme
+en række sammenfald mellem sjældent og hyppigere brugte bogstaver (for
+eksempel \L{} og \'{A}).
+
+\section{Fejl, forbedringer og tak}
+Finder du fejl i oversættelserne, \BibTeX-stilarterne, \LaTeX-pakken
+eller har du blot forslag til forbedring er du hjertelig velkommen til
+at sende dem via \href{mailto:arne.jorgensen@tug.dk}{e-post} eller på
+\url{https://arnested.dk/projects/dk-bib}.
+
+De danske \BibTeX-stilarter er oprindeligt oversat fra den norske
+oversættelse af de oprindelige stilarter. En stor tak til Dag Langmyhr
+for disse. En tak skal også lyde til Thomas Esser, Morten Høgholm,
+Mads Sørensen, Rasmus Villemoes, Thomas Widmann og min kære broder,
+Palle Jørgensen, for at bidrage med kommentarer og forslag.
+
+\bibliography{litteratur}
+
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/biblio/bibtex/contrib/dk-bib/dk-bib.pdf b/biblio/bibtex/contrib/dk-bib/dk-bib.pdf
new file mode 100644
index 0000000000..8e0aa5bf17
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/dk-bib.pdf
Binary files differ
diff --git a/biblio/bibtex/contrib/dk-bib/dk-bib.sty b/biblio/bibtex/contrib/dk-bib/dk-bib.sty
new file mode 100644
index 0000000000..b5d61f468f
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/dk-bib.sty
@@ -0,0 +1,202 @@
+% Copyright (C) 2004, 2005, 2006 Arne Jorgensen
+
+% This file is free software; you can redistribute it and/or modify it
+% under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) any later version.
+
+% This file is distributed in the hope that it will be useful, but
+% WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+% General Public License for more details.
+
+% You should have received a copy of the GNU General Public License
+% along with this file; if not, write to the Free Software Foundation,
+% Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+
+% subversion date and revision
+\def\dkbib@svn $#1 #2 #3 #4-#5-#6 #7 #8 ${%
+ \def\dkbib@sty@revision{#3}
+ \def\dkbib@sty@date{#4/#5/#6}
+}
+\dkbib@svn $Id: dk-bib.sty 92 2006-05-21 21:18:10Z arne $
+\def\dkbib@version{0.6}
+
+\ProvidesPackage{dk-bib}[\dkbib@sty@date\space v\dkbib@version\space(r\dkbib@sty@revision) Danish variants of the standard BibTeX styles]
+
+\RequirePackage{xkeyval}
+
+\newif\ifdkbib@url
+\dkbib@urlfalse
+\DeclareOptionX{url}[true]{%
+ \csname dkbib@url#1\endcsname}
+
+\newif\ifdkbib@isbn
+\dkbib@isbnfalse
+\DeclareOptionX{isbn}[true]{%
+ \csname dkbib@isbn#1\endcsname}
+
+\newif\ifdkbib@issn
+\dkbib@issnfalse
+\DeclareOptionX{issn}[true]{%
+ \csname dkbib@issn#1\endcsname}
+
+\newif\ifdkbib@annote
+\dkbib@annotefalse
+\DeclareOptionX{annote}[true]{%
+ \csname dkbib@annote#1\endcsname}
+
+\newif\ifdkbib@printing
+\dkbib@printingfalse
+\DeclareOptionX{printing}[true]{%
+ \csname dkbib@printing#1\endcsname}
+
+\newif\ifdkbib@apalike
+\dkbib@apalikefalse
+\DeclareOptionX{apalike}[true]{%
+ \csname dkbib@apalike#1\endcsname}
+
+\newif\ifdkbib@fixcitedash
+\dkbib@fixcitedashtrue
+\DeclareOptionX{fixcitedash}[true]{%
+ \csname dkbib@fixcitedash#1\endcsname}
+
+\newcount\dkbib@maxordinaldepth
+\dkbib@maxordinaldepth0
+\newcommand*\dkbib@DeclareOrdinalWord[2]{
+ \ifnum#1>\dkbib@maxordinaldepth
+ \dkbib@maxordinaldepth#1
+ \fi
+ \@namedef{dkbib@word#1}{#2}%
+}
+\dkbib@DeclareOrdinalWord{1}{f\o rste}
+\dkbib@DeclareOrdinalWord{2}{anden}
+\dkbib@DeclareOrdinalWord{3}{tredje}
+\dkbib@DeclareOrdinalWord{4}{fjerde}
+\dkbib@DeclareOrdinalWord{5}{femte}
+\dkbib@DeclareOrdinalWord{6}{sjette}
+\dkbib@DeclareOrdinalWord{7}{syvende}
+\dkbib@DeclareOrdinalWord{8}{ottende}
+\dkbib@DeclareOrdinalWord{9}{niende}
+\dkbib@DeclareOrdinalWord{10}{tiende}
+\dkbib@DeclareOrdinalWord{11}{elvte}
+\dkbib@DeclareOrdinalWord{12}{tolvte}
+\dkbib@DeclareOrdinalWord{13}{trettende}
+\dkbib@DeclareOrdinalWord{14}{fjortende}
+\dkbib@DeclareOrdinalWord{15}{femtende}
+\dkbib@DeclareOrdinalWord{16}{sekstende}
+\dkbib@DeclareOrdinalWord{17}{syttende}
+\dkbib@DeclareOrdinalWord{18}{attende}
+\dkbib@DeclareOrdinalWord{19}{nittende}
+\dkbib@DeclareOrdinalWord{20}{tyvende}
+
+\newcount\dkbib@ordinaldepth
+\dkbib@ordinaldepth\dkbib@maxordinaldepth
+\DeclareOptionX{ordinaldepth}{%
+ \dkbib@ordinaldepth#1}
+
+\ifnum\dkbib@ordinaldepth>\dkbib@maxordinaldepth
+ \PackageWarningNoLine{dk-bib}{Ordinal depth set to
+ \the\dkbib@ordinaldepth, but maximum is \the\dkbib@maxordinaldepth}
+\fi
+
+\newif\ifdkbib@ordinalstoword
+\dkbib@ordinalstowordfalse
+\DeclareOptionX{ordinals2word}[true]{%
+ \csname dkbib@ordinalstoword#1\endcsname}
+
+\ProcessOptionsX
+
+% Work around a wrong implementation of \MakeUppercase (according to
+% Morten H\o gholm who also provided this implementation)
+\DeclareRobustCommand\dkbib@MakeUppercase[1]{%
+ \begingroup
+ \def\i{I}\def\j{J}%
+ \def\dkbib@reserved@a##1##2{\let##1##2\dkbib@reserved@a}%
+ \expandafter\dkbib@reserved@a\@uclclist\dkbib@reserved@b{\dkbib@reserved@b\@gobble}%
+ \protected@edef\dkbib@reserved@a{\endgroup\uppercase{#1}}%
+ \dkbib@reserved@a
+}
+\protected@edef\dkbib@MakeUppercase#1{\dkbib@MakeUppercase{#1}}
+
+\AtBeginDocument{%
+ %%% fixcitedash
+ \@ifpackageloaded{cite}%
+ {\ifdkbib@fixcitedash%
+ \providecommand{\dkbibdash}{\hbox{-}\penalty\@m}%
+ \renewcommand{\citedash}{\dkbibdash}%
+ \fi}%
+ {\relax}%
+ %%% apalike
+ \ifdkbib@apalike%
+ \RequirePackage{dk-apali}%
+ \fi%
+ %%% url
+ \ifdkbib@url%
+ \RequirePackage{url}%
+ \providecommand{\dkbiburl}[1]{URL \url{#1}}%
+ \else%
+ \def\dkbiburl#1{\unskip\@gobble}%
+ \fi%
+ %%% isbn
+ \ifdkbib@isbn%
+ \providecommand{\dkbibisbn}[1]{ISBN #1}%
+ \else%
+ \def\dkbibisbn#1{\unskip\@gobble}%
+ \fi%
+ %%% issn
+ \ifdkbib@issn%
+ \providecommand{\dkbibissn}[1]{ISSN #1}%
+ \else%
+ \def\dkbibissn#1{\unskip\@gobble}%
+ \fi%
+ %%% annote
+ \ifdkbib@annote%
+ \providecommand{\dkbibannote}[2]{%
+ \begin{quotation}\noindent
+ \dkbib@MakeUppercase #2
+ \end{quotation}
+ }%
+ \else%
+ \def\dkbibannote#1#2{\unskip}%
+ \fi%
+ %%% edition/printing
+ \DeclareRobustCommand{\dkbibedition}[2]{%
+ \ifx\@empty#1\@empty\else%
+ \ifdkbib@ordinalstoword%
+ \@ifundefined{dkbib@word#1}%
+ {#1\dkbib@addperiod~udgave}%
+ {\ifnum#1>\dkbib@ordinaldepth
+ #1\dkbib@addperiod~udgave%
+ \else
+ \@nameuse{dkbib@word#1}~udgave%
+ \fi}%
+ \else
+ #1\dkbib@addperiod~udgave%
+ \fi
+ \ifdkbib@printing
+ \ifx\@empty#2\@empty\else, \fi
+ \fi
+ \fi
+ \ifdkbib@printing
+ \ifx\@empty#2\@empty\else
+ \ifdkbib@ordinalstoword%
+ \@ifundefined{dkbib@word#2}%
+ {#2\dkbib@addperiod~oplag}%
+ {\ifnum#2>\dkbib@ordinaldepth
+ #2\dkbib@addperiod~oplag%
+ \else
+ \@nameuse{dkbib@word#2}~oplag%
+ \fi}%
+ \else
+ #2\dkbib@addperiod~oplag%
+ \fi
+ \fi
+ \fi
+ }
+ \DeclareRobustCommand\dkbibEdition[2]{%
+ \protected@edef\reserved@a{\csname dkbibedition \endcsname{#1}{#2}}%
+ \expandafter\dkbib@MakeUppercase\reserved@a}
+}
diff --git a/biblio/bibtex/contrib/dk-bib/dk-plain.bst b/biblio/bibtex/contrib/dk-bib/dk-plain.bst
new file mode 100644
index 0000000000..f61bcc6179
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/dk-plain.bst
@@ -0,0 +1,1301 @@
+% BibTeX standard bibliography style `plain'
+ % 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.
+
+% "Translated" into Norwegian by dag@ifi.uio.no, July 1997.
+% Now called `norplain'.
+% Added field "isbn" and "issn". dag@ifi.uio.no, April 2001.
+% Translated into Danish by arne.jorgensen@tug.dk, June 2001.
+% Now called `dk-plain'.
+% This is dk-bib, Version 0.6 ($Id: dk-plain.bst 92 2006-05-21 21:18:10Z arne $)
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ printing
+ editor
+ howpublished
+ institution
+ isbn
+ issn
+ url
+ annote
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ }
+ {}
+ { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+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 {output.annote}
+{ annote empty$
+ 'skip$
+ { "\dkbibannote{" cite$ * "}{" * annote add.period$ * "}" *
+ write$ newline$ }
+ if$
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+ output.annote
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {output.isbn.issn}
+{ isbn empty$
+ 'skip$
+ { new.block "\dkbibisbn{" isbn * "}" * output }
+ if$
+ issn empty$
+ 'skip$
+ { new.block "\dkbibissn{" issn * "}" * output }
+ if$
+}
+
+FUNCTION {output.url}
+{ url empty$
+ 'skip$
+ { new.block "\dkbiburl{" url * "}" * output }
+ 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$ "" }
+ { "\emph{" swap$ * "}" * }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{ff~}{vv }{ll}{~jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { t "others" =
+ { " et~al." * }
+ { " og " * t * }
+ 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 >
+ { ", redakt\o rer" * }
+ { ", redakt\o r" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { title "t" change.case$ }
+ if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { "\dkbibdash" *
+ t #2 global.max$ substring$ 't :=
+ { t #1 #1 substring$ "-" = }
+ { t #2 global.max$ substring$ 't := }
+ while$
+ t #1 #1 substring$ " " =
+ { "{}" * }
+ { " " * }
+ 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$
+ { "" }
+ { "bind" volume tie.or.space.connect
+ series empty$
+ 'skip$
+ { " af " * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "nr." }
+ { "Nr." }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " i " * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {ordinal.translate.i}
+{ duplicate$ "l" change.case$ "first" =
+ {pop$ "1"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "second" =
+ {pop$ "2"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "third" =
+ {pop$ "3"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fourth" =
+ {pop$ "4"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fifth" =
+ {pop$ "5"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate.ii}
+{ duplicate$ "l" change.case$ "sixth" =
+ {pop$ "6"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "seventh" =
+ {pop$ "7"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "eighth" =
+ {pop$ "8"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "ninth" =
+ {pop$ "9"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "tenth" =
+ {pop$ "10"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate.iii}
+{ duplicate$ "l" change.case$ "eleventh" =
+ {pop$ "11"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "twelfth" =
+ {pop$ "12"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "thirteenth" =
+ {pop$ "13"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fourteenth" =
+ {pop$ "14"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fifteenth" =
+ {pop$ "15"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate.iv}
+{ duplicate$ "l" change.case$ "sixteenth" =
+ {pop$ "16"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "seventeenth" =
+ {pop$ "17"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "eighteenth" =
+ {pop$ "18"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "nineteenth" =
+ {pop$ "19"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "twentieth" =
+ {pop$ "20"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate}
+{ ordinal.translate.i
+ ordinal.translate.ii
+ ordinal.translate.iii
+ ordinal.translate.iv
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ printing empty$
+ +
+ #2
+ =
+ { "" }
+ { output.state mid.sentence =
+ { "\dkbibedition{" }
+ { "\dkbibEdition{" }
+ if$
+ edition empty$
+ { "" }
+ { edition ordinal.translate
+ duplicate$ "l" change.case$
+ duplicate$ "u" change.case$
+ =
+ { purify$ }
+ { output.state mid.sentence =
+ { skip$ }
+ { "u" change.case$
+ "t" change.case$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ * "}{" *
+ printing empty$
+ { "" }
+ { printing ordinal.translate
+ duplicate$ "l" change.case$
+ duplicate$ "u" change.case$
+ =
+ { purify$ }
+ { skip$ }
+ 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
+ { "side" pages n.dashify tie.or.space.connect }
+ { "side" 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$
+ { "kapitel" }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { "I " booktitle emphasize * }
+ { "I " format.editors * ", " * booktitle emphasize * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$ isbn empty$ issn empty$
+ and and 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$
+ { "Rapport" }
+ '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$
+ ""
+ }
+ { "I \emph{" journal * "}" * }
+ if$
+ }
+ { "I " key * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ 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" =
+ { " et~al." * }
+ { " og " * editor #2 "{vv }{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ "I "
+ }
+ { "Bind" volume tie.or.space.connect
+ " af " *
+ }
+ 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$
+ "" *
+ }
+ { "\emph{" * series * "}" * }
+ 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$
+ ""
+ }
+ { "I \emph{" booktitle * "}" * }
+ if$
+ }
+ { "I " key * }
+ if$
+ }
+ { "I " format.crossref.editor * }
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "Specialeafhandling" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "Ph.d.-afhandling" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"januar"}
+
+MACRO {feb} {"februar"}
+
+MACRO {mar} {"marts"}
+
+MACRO {apr} {"april"}
+
+MACRO {may} {"maj"}
+
+MACRO {jun} {"juni"}
+
+MACRO {jul} {"juli"}
+
+MACRO {aug} {"august"}
+
+MACRO {sep} {"september"}
+
+MACRO {oct} {"oktober"}
+
+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$
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$
+ s nameptr "{ll{ }}{ ff{ }}{ vv{ }}{ 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}
+{ 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$
+ "\makeatletter" write$ newline$
+ "\@tfor\dkbib@reserved@a:=0123456789\do{%" write$ newline$
+ " \expandafter\sfcode\expandafter`\dkbib@reserved@a=1007}" write$ newline$
+ "\providecommand{\dkbib@addperiod}{\ifnum\spacefactor=1007.\fi}" write$ newline$
+ "\providecommand{\dkbibedition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$
+ "\providecommand{\dkbibEdition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$
+ "\providecommand{\dkbibisbn}[1]{\unskip\@gobble}" write$ newline$
+ "\providecommand{\dkbibissn}[1]{\unskip\@gobble}" write$ newline$
+ "\providecommand{\dkbiburl}[1]{\unskip\@gobble}" write$ newline$
+ "\providecommand{\dkbibannote}[2]{\unskip}" write$ newline$
+ "\providecommand{\dkbibdash}{\hbox{-}\penalty\@m}" write$ newline$
+ "\makeatother" 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/bibtex/contrib/dk-bib/dk-unsrt.bst b/biblio/bibtex/contrib/dk-bib/dk-unsrt.bst
new file mode 100644
index 0000000000..eda2126210
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/dk-unsrt.bst
@@ -0,0 +1,1155 @@
+% BibTeX standard bibliography style `unsrt'
+ % 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.
+
+% "Translated" into Norwegian by dag@ifi.uio.no, July 1997.
+% Now called `norunsrt'.
+% Added field "isbn" and "issn". dag@ifi.uio.no, April 2001.
+% Translated into Danish by arne.jorgensen@tug.dk, June 2001.
+% Now called `dk-unsrt'.
+% This is dk-bib, Version 0.6 ($Id: dk-unsrt.bst 92 2006-05-21 21:18:10Z arne $)
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ printing
+ editor
+ howpublished
+ institution
+ isbn
+ issn
+ url
+ annote
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ }
+ {}
+ { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+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 {output.annote}
+{ annote empty$
+ 'skip$
+ { "\dkbibannote{" cite$ * "}{" * annote add.period$ * "}" *
+ write$ newline$ }
+ if$
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+ output.annote
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {output.isbn.issn}
+{ isbn empty$
+ 'skip$
+ { new.block "\dkbibisbn{" isbn * "}" * output }
+ if$
+ issn empty$
+ 'skip$
+ { new.block "\dkbibissn{" issn * "}" * output }
+ if$
+}
+
+FUNCTION {output.url}
+{ url empty$
+ 'skip$
+ { new.block "\dkbiburl{" url * "}" * output }
+ 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$ "" }
+ { "\emph{" swap$ * "}" * }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{ff~}{vv }{ll}{~jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { t "others" =
+ { " et~al." * }
+ { " og " * t * }
+ 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 >
+ { ", redakt\o rer" * }
+ { ", redakt\o r" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { title "t" change.case$ }
+ if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { "\dkbibdash" *
+ t #2 global.max$ substring$ 't :=
+ { t #1 #1 substring$ "-" = }
+ { t #2 global.max$ substring$ 't := }
+ while$
+ t #1 #1 substring$ " " =
+ { "{}" * }
+ { " " * }
+ 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$
+ { "" }
+ { "bind" volume tie.or.space.connect
+ series empty$
+ 'skip$
+ { " af " * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "nr." }
+ { "Nr." }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " i " * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {ordinal.translate.i}
+{ duplicate$ "l" change.case$ "first" =
+ {pop$ "1"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "second" =
+ {pop$ "2"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "third" =
+ {pop$ "3"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fourth" =
+ {pop$ "4"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fifth" =
+ {pop$ "5"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate.ii}
+{ duplicate$ "l" change.case$ "sixth" =
+ {pop$ "6"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "seventh" =
+ {pop$ "7"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "eighth" =
+ {pop$ "8"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "ninth" =
+ {pop$ "9"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "tenth" =
+ {pop$ "10"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate.iii}
+{ duplicate$ "l" change.case$ "eleventh" =
+ {pop$ "11"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "twelfth" =
+ {pop$ "12"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "thirteenth" =
+ {pop$ "13"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fourteenth" =
+ {pop$ "14"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "fifteenth" =
+ {pop$ "15"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate.iv}
+{ duplicate$ "l" change.case$ "sixteenth" =
+ {pop$ "16"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "seventeenth" =
+ {pop$ "17"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "eighteenth" =
+ {pop$ "18"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "nineteenth" =
+ {pop$ "19"}
+ {skip$}
+ if$
+ duplicate$ "l" change.case$ "twentieth" =
+ {pop$ "20"}
+ {skip$}
+ if$
+}
+
+FUNCTION {ordinal.translate}
+{ ordinal.translate.i
+ ordinal.translate.ii
+ ordinal.translate.iii
+ ordinal.translate.iv
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ printing empty$
+ +
+ #2
+ =
+ { "" }
+ { output.state mid.sentence =
+ { "\dkbibedition{" }
+ { "\dkbibEdition{" }
+ if$
+ edition empty$
+ { "" }
+ { edition ordinal.translate
+ duplicate$ "l" change.case$
+ duplicate$ "u" change.case$
+ =
+ { purify$ }
+ { output.state mid.sentence =
+ { skip$ }
+ { "u" change.case$
+ "t" change.case$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ * "}{" *
+ printing empty$
+ { "" }
+ { printing ordinal.translate
+ duplicate$ "l" change.case$
+ duplicate$ "u" change.case$
+ =
+ { purify$ }
+ { skip$ }
+ 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
+ { "side" pages n.dashify tie.or.space.connect }
+ { "side" 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$
+ { "kapitel" }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { "I " booktitle emphasize * }
+ { "I " format.editors * ", " * booktitle emphasize * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$ isbn empty$ issn empty$
+ and and 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$
+ { "Rapport" }
+ '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$
+ ""
+ }
+ { "I \emph{" journal * "}" * }
+ if$
+ }
+ { "I " key * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ 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" =
+ { " et~al." * }
+ { " og " * editor #2 "{vv }{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ "I "
+ }
+ { "Bind" volume tie.or.space.connect
+ " af " *
+ }
+ 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$
+ "" *
+ }
+ { "\emph{" * series * "}" * }
+ 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$
+ ""
+ }
+ { "I \emph{" booktitle * "}" * }
+ if$
+ }
+ { "I " key * }
+ if$
+ }
+ { "I " format.crossref.editor * }
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "Specialeafhandling" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "Ph.d.-afhandling" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ 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
+ output.isbn.issn
+ output.url
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"januar"}
+
+MACRO {feb} {"februar"}
+
+MACRO {mar} {"marts"}
+
+MACRO {apr} {"april"}
+
+MACRO {may} {"maj"}
+
+MACRO {jun} {"juni"}
+
+MACRO {jul} {"juli"}
+
+MACRO {aug} {"august"}
+
+MACRO {sep} {"september"}
+
+MACRO {oct} {"oktober"}
+
+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
+
+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$
+ "\makeatletter" write$ newline$
+ "\@tfor\dkbib@reserved@a:=0123456789\do{%" write$ newline$
+ " \expandafter\sfcode\expandafter`\dkbib@reserved@a=1007}" write$ newline$
+ "\providecommand{\dkbib@addperiod}{\ifnum\spacefactor=1007.\fi}" write$ newline$
+ "\providecommand{\dkbibedition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$
+ "\providecommand{\dkbibEdition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$
+ "\providecommand{\dkbibisbn}[1]{\unskip\@gobble}" write$ newline$
+ "\providecommand{\dkbibissn}[1]{\unskip\@gobble}" write$ newline$
+ "\providecommand{\dkbiburl}[1]{\unskip\@gobble}" write$ newline$
+ "\providecommand{\dkbibannote}[2]{\unskip}" write$ newline$
+ "\providecommand{\dkbibdash}{\hbox{-}\penalty\@m}" write$ newline$
+ "\makeatother" 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/bibtex/contrib/dk-bib/litteratur.bib b/biblio/bibtex/contrib/dk-bib/litteratur.bib
new file mode 100644
index 0000000000..848cf3a612
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/litteratur.bib
@@ -0,0 +1,10 @@
+@Book{Mittelbach:2004,
+ author = {Frank Mittelbach and Michel Goosens},
+ title = {The {\LaTeX} Companion},
+ publisher = {Addison-Wesley},
+ year = 2004,
+ edition = {second},
+ printing = {first},
+ isbn = {0-201-36299-6},
+ url = {http://www.awprofessional.com/titles/0201362996}
+}
diff --git a/biblio/bibtex/contrib/dk-bib/mac-dk.csf b/biblio/bibtex/contrib/dk-bib/mac-dk.csf
new file mode 100644
index 0000000000..653459365b
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/mac-dk.csf
@@ -0,0 +1,99 @@
+%%% mac-dk.csf --- Danish mac-roman sorting order file for bibtex8
+
+%% Copyright (C) 2005 Arne Jorgensen
+
+%% Author: Arne Jorgensen <arne.jorgensen@tug.dk>
+%% Version: $Id: mac-dk.csf 70 2005-08-03 11:13:09Z arne $
+
+%% This file is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published
+%% by the Free Software Foundation; either version 2 of the License,
+%% or (at your option) any later version.
+
+%% This file is distributed in the hope that it will be useful, but
+%% WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+%% General Public License for more details.
+
+%% You should have received a copy of the GNU General Public License
+%% along with this file; if not, write to the Free Software
+%% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+%% 02110-1301, USA.
+
+%%% Commentary:
+
+%%% Code:
+
+%%% Character Set:
+
+\lowupcase{
+ % \`{a} \`{A}
+ % \'{a} \'{A}
+ % \^{a} \^{A}
+ % \~{a} \~{A}
+ % \"{a} \"{A}
+ % \ring{a} \ring{A}
+ % \ae \AE
+ % \c{c} \c{C}
+ % \`{e} \`{E}
+ % \'{e} \'{E}
+ % \^{e} \^{E}
+ % \"{e} \"{E}
+ % \`{\i} \`{I}
+ % \'{\i} \'{I}
+ % \^{\i} \^{I}
+ % \"{\i} \"{I}
+ % \~{n} \~{N}
+ % \`{o} \`{O}
+ % \'{o} \'{O}
+ % \^{o} \^{O}
+ % \~{o} \~{O}
+ % \"{o} \"{O}
+ % \o \O
+ % \`{u} \`{U}
+ % \'{u} \'{U}
+ % \^{u} \^{U}
+ % \"{u} \"{U}
+}
+
+%%% Sorting Order:
+
+\order{
+ 0-9 % 0-9
+ A a % A \'{A} \`{A} \^{A} \~{A} a \'{a} \`{a} \^{a} \~{a}
+ B b % B b
+ C c % C \c{C} c \c{c}
+ D d % D d
+ E e % E \'{E} \`{E} \"{E} \^{E} e \'{e} \`{e} \"{e} \^{e}
+ F f % F f
+ G g % G g
+ H h % H h
+ I i % I \'{I} \'{I} \"{I} \^{I} i \'{\i} \`{\i} \"{\i} \^{\i}
+ J j % J j
+ K k % K k
+ L l % L l
+ M m % M m
+ N n % N \~{N} n \~{n}
+ O o % O \'{O} \`{O} \^{O} \~{O} o \'{o} \`{o} \^{o} \~{o}
+ P p % P p
+ Q q % Q q
+ R r % R r
+ S s % S s
+ T t % T t
+ U u % U \'{U} \`{U} \^{U} u \'{u} \`{u} \^{u}
+ V v % V v
+ W w % W w
+ X x % X x
+ Y y % Y \"{U} y \"{u} \"{y}
+ Z z % Z z
+ % \AE \"{A} \ae \"{a}
+ % \O \"{O} \o \"{o}
+ % \ring{A} \ring{a}
+}
+
+%% Local Variables:
+%% coding: mac-roman
+%% comment-start: "%% "
+%% End:
+
+%%% mac-dk.csf ends here
diff --git a/biblio/bibtex/contrib/dk-bib/utf8-dk.csf b/biblio/bibtex/contrib/dk-bib/utf8-dk.csf
new file mode 100644
index 0000000000..590841f46f
--- /dev/null
+++ b/biblio/bibtex/contrib/dk-bib/utf8-dk.csf
@@ -0,0 +1,127 @@
+%%% utf8-dk.csf --- Danish UTF-8 sorting order file for bibtex8
+
+%% Copyright (C) 2005 Arne Jorgensen
+
+%% Author: Arne Jorgensen <arne.jorgensen@tug.dk>
+%% Version: $Id: utf8-dk.csf 71 2005-08-05 22:44:05Z arne $
+
+%% This file is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published
+%% by the Free Software Foundation; either version 2 of the License,
+%% or (at your option) any later version.
+
+%% This file is distributed in the hope that it will be useful, but
+%% WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+%% General Public License for more details.
+
+%% You should have received a copy of the GNU General Public License
+%% along with this file; if not, write to the Free Software
+%% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+%% 02110-1301, USA.
+
+%%% Commentary:
+
+%% This is a VERY EXPERIMENTAL shot at making a sorting order file for
+%% the Danish language and the UTF-8 character set.
+
+%% Generally it should not be possible to fit a sorting of the UTF-8
+%% character set into bibtex8's scheme, but we try to use some hacks
+%% and unexplained behaviour to fit it in anyway.
+
+%% As we said VERY EXPERIMENTAL.
+
+%% Please report any experiences to the author.
+
+%%% Code:
+
+%%% Character Set:
+
+%% Whether this really works for UTF-8 is a big question. Please
+%% report expriences with it.
+
+\lowupcase{
+ ^^a0 ^^80 % \`{a} \`{A}
+ ^^a1 ^^81 % \'{a} \'{A}
+ ^^a2 ^^82 % \^{a} \^{A}
+ ^^a3 ^^83 % \~{a} \~{A}
+ ^^a4 ^^84 % \"{a} \"{A}
+ ^^a5 ^^85 % \ring{a} \ring{A}
+ ^^a6 ^^86 % \ae \AE
+ ^^a7 ^^87 % \c{c} \c{C}
+ ^^a8 ^^88 % \`{e} \`{E}
+ ^^a9 ^^89 % \'{e} \'{E}
+ ^^aa ^^8a % \^{e} \^{E}
+ ^^ab ^^8b % \"{e} \"{E}
+ ^^ac ^^8c % \`{\i} \`{I}
+ ^^ad ^^8d % \'{\i} \'{I}
+ ^^ae ^^8e % \^{\i} \^{I}
+ ^^af ^^8f % \"{\i} \"{I}
+ ^^b0 ^^90 % eth ETH
+ ^^b1 ^^91 % \~{n} \~{N}
+ ^^b2 ^^92 % \`{o} \`{O}
+ ^^b3 ^^93 % \'{o} \'{O}
+ ^^b4 ^^94 % \^{o} \^{O}
+ ^^b5 ^^95 % \~{o} \~{O}
+ ^^b6 ^^96 % \"{o} \"{O}
+ ^^b8 ^^98 % \o \O
+ ^^b9 ^^99 % \`{u} \`{U}
+ ^^ba ^^9a % \'{u} \'{U}
+ ^^bb ^^9b % \^{u} \^{U}
+ ^^bc ^^9c % \"{u} \"{U}
+ ^^bd ^^9d % \'{y} \'{Y}
+ ^^be ^^9e % thorn THORN
+}
+
+%%% Sorting Order:
+
+%% For sorting we rely on the fact that the most used and relevant
+%% parts of the special characters in Danish in UTF-8 is encoded as
+%% the two-byte combination of a ^^c3 and a second byte which is
+%% placed above value ^^7f and thus does not collide with the normal
+%% character ranges.
+
+%% So we leave out ^^c3 of the sorting order and there by ignoring
+%% it's presence (it shouldn't be ignored, but sorted last, but it
+%% actually IS ignored) and let the second byte decide the order of
+%% the character.
+
+\order{
+ 0-9 % 0-9
+ A ^^81 ^^80 ^^82 ^^83 a ^^a1 ^^a0 ^^a2 ^^a3 % A \'{A} \`{A} \^{A} \~{A} a \'{a} \`{a} \^{a} \~{a}
+ B b % B b
+ C ^^87 c ^^a7 % C \c{C} c \c{c}
+ D ^^90 d ^^b0 % D ETH d eth
+ E ^^89 ^^88 ^^8b ^^8a e ^^a9 ^^a8 ^^ab ^^aa % E \'{E} \`{E} \"{E} \^{E} e \'{e} \`{e} \"{e} \^{e}
+ F f % F f
+ G g % G g
+ H h % H h
+ I ^^8d ^^8c ^^8f ^^8e i ^^ad ^^ac ^^af ^^ae % I \'{I} \`{I} \"{I} \^{I} i \'{\i} \`{\i} \"{\i} \^{\i}
+ J j % J j
+ K k % K k
+ L l % L l
+ M m % M m
+ N ^^91 n ^^b1 % N \~{N} n \~{n}
+ O ^^93 ^^92 ^^94 ^^95 o ^^b3 ^^b2 ^^b4 ^^b5 % O \'{O} \`{O} \^{O} \~{O} o \'{o} \`{o} \^{o} \~{o}
+ P p % P p
+ Q q % Q q
+ R r % R r
+ S s % S s
+ T ^^9e t ^^be % T THORN t thorn
+ U ^^9a ^^99 ^^9b u ^^ba ^^b9 ^^bb % U \'{U} \`{U} \^{U} u \'{u} \`{u} \^{u}
+ V v % V v
+ W w % W w
+ X x % X x
+ Y ^^9c ^^9d y ^^bc ^^bd ^^bf % Y \"{U} \'{Y} y \"{u} \'{y} \"{y}
+ Z z % Z z
+ ^^86 ^^84 ^^a6 ^^a4 % \AE \"{A} \ae \"{a}
+ ^^98 ^^96 ^^b8 ^^b6 % \O \"{O} \o \"{o}
+ ^^85 ^^a5 % \ring{A} \ring{a}
+}
+
+%% Local Variables:
+%% coding: raw-text
+%% comment-start: "%% "
+%% End:
+
+%%% utf8-dk.csf ends here