diff options
Diffstat (limited to 'biblio/bibtex/contrib/dk-bib')
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/88591-dk.csf | 106 | ||||
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/COPYRIGHT | 362 | ||||
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/Makefile | 71 | ||||
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/README | 9 | ||||
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/cp850-dk.csf | 106 | ||||
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/dk-abbrv.bst | 1301 | ||||
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/dk-alpha.bst | 1455 | ||||
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/dk-apali.bst | 1295 | ||||
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/dk-apali.sty | 37 | ||||
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/dk-bib.ltx | 352 | ||||
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/dk-bib.pdf | bin | 0 -> 426879 bytes | |||
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/dk-bib.sty | 202 | ||||
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/dk-plain.bst | 1301 | ||||
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/dk-unsrt.bst | 1155 | ||||
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/litteratur.bib | 10 | ||||
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/mac-dk.csf | 99 | ||||
-rw-r--r-- | biblio/bibtex/contrib/dk-bib/utf8-dk.csf | 127 |
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 Binary files differnew file mode 100644 index 0000000000..8e0aa5bf17 --- /dev/null +++ b/biblio/bibtex/contrib/dk-bib/dk-bib.pdf 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 |