summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/doi
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-04-22 17:15:13 +0000
committerKarl Berry <karl@freefriends.org>2007-04-22 17:15:13 +0000
commit520623ea11cabc166b0d623ece2e85129da61cbd (patch)
tree7ecbb0310f7c938e3f6e95113538924da326fb4f /Master/texmf-dist/tex/latex/doi
parent826ba3c6273e76edd321436990e03e12c7affdd1 (diff)
doi update (17apr07)
git-svn-id: svn://tug.org/texlive/trunk@4172 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/doi')
-rw-r--r--Master/texmf-dist/tex/latex/doi/doi.sty57
1 files changed, 46 insertions, 11 deletions
diff --git a/Master/texmf-dist/tex/latex/doi/doi.sty b/Master/texmf-dist/tex/latex/doi/doi.sty
index 5e686c47e64..1bbc14e0f0d 100644
--- a/Master/texmf-dist/tex/latex/doi/doi.sty
+++ b/Master/texmf-dist/tex/latex/doi/doi.sty
@@ -1,31 +1,63 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{doi}[2005/03/24 handle doi numbers]
-%% original code written by Heiko Oberdiek and published on comp.text.tex
-%% Packaged as a style file by Maarten Sneep, with some minor
-%% changes suggested by Bruno Voisin to accomodate the Apple
-%% pdf framework
+\ProvidesPackage{doi}[2007/04/17 handle doi numbers]
+
+%% This style file is based original code written by Heiko Oberdiek
+%% and published on comp.text.tex. It was packaged with permission
+%% as a style file by Maarten Sneep, with some minor changes suggested
+%% by Bruno Voisin to accomodate the Apple pdf framework
+%%
+%% This code is placed under the LPPL.
+%%
+%% Original discussion on Google under:
+%% http://groups.google.com/group/comp.text.tex/msg/922919daa207d613
+%%
+%% You can hyperlink DOI numbers to dx.doi.org. Some publishers have elected to
+%% use some nasty characters in their doi numbering scheme (<, >, ; have all
+%% been spotted). This will either upset (La)TeX, or your pdf reader. This style
+%% file contains a user-level command \doi{}, which takes a doi number,
+%% and creates a hyperlink from it. The format of the doi can be controlled by
+%% redefining the \doitext command, which does not take an argument (unlike the
+%% command with the same name in the doipubmed package).
%%
-%% This code is placed under the LPPL
+%% Note: the \doi{} command connot be used within other macros.
+
+%% Change history:
+%% December 15, 2003: original code posted on Usenet (see link above)
+%% Somewhere in 2005: Bruno Voisin suggests some changes to accomodate the
+%% Apple pdf framework on the Tex on Mac OS X mailing list.
+%% April 2007: Maarten packages the lot, and Karl Ove Hufthammer fixes a
+%% few bugs introduced by Maarten (oops).
+%% A \doitext command is added, following the example from doipubmed.
+%% Some comments are added to make the code a little more readable.
%% We need hyperref, but you probably want to load hyperref
%% beforehand, or set some options later on.
\RequirePackage{hyperref}
+%% to change the default prefix, redefine this command within your own code.
+%% It takes no argument, which is different from the doipubmed package.
+\newcommand{\doitext}{doi:}
+
+%% the meat of the code
+%% the first command opens a group, and changes a few catcodes.
\newcommand*{\doi}{%
\begingroup
\lccode`\~=`\#\relax
- \lowercase{\def~{\#}}
+ \lowercase{\def~{\#}}%
\lccode`\~=`\<\relax
- \lowercase{\def~{\textless}}
+ \lowercase{\def~{\textless}}%
\lccode`\~=`\>\relax
- \lowercase{\def~{\textgreater}}
+ \lowercase{\def~{\textgreater}}%
\lccode`\~=0\relax
\catcode`\#=\active
\catcode`\<=\active
\catcode`\>=\active
\@doi
-}%
+}
+%% this is the actual command which processes the argument, with the catcodes
+%% set in the previous command
+%% it closes the group, and spits out the url.
\def\@doi#1{%
\let\#\relax
\let\textless\relax
@@ -37,6 +69,9 @@
\edef\textgreater{\@percentchar3E}% instead of {\sting>} for Apple
\edef\x{\toks1={\noexpand\href{http://dx.doi.org/#1}}}%
\x
- \edef\x{\endgroup\the\toks1 \the\toks0}
+ \edef\x{\endgroup\doitext\the\toks1 \the\toks0}%
\x
}
+
+%% that's all folks.
+\endinput