]> gitweb.michael.orlitzky.com - mjotex.git/commitdiff
Fix the bibliography DOI output when the hyperref package is not loaded.
authorMichael Orlitzky <michael@orlitzky.com>
Thu, 12 Jan 2017 18:49:04 +0000 (13:49 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Thu, 12 Jan 2017 18:49:04 +0000 (13:49 -0500)
The last attempt at adding hyperref support for DOIs worked, but it
broke things when the hyperref package isn't loaded. This commit fixes
it by conditionally defining a no-op \href in the absense of the
hyperref package.

Now that I understand what's going on a little bit better, I was also
able to eliminate some of the urlbst boilerplate.

mjo.bst

diff --git a/mjo.bst b/mjo.bst
index 105ec77b607b891ec7c03c90044da1a72b726971..5a09e3d0467c59b8f407273a735e24271f2201c9 100644 (file)
--- a/mjo.bst
+++ b/mjo.bst
@@ -68,12 +68,10 @@ ENTRY
   { label }
 
 STRINGS { doiprefix doiurl }
-INTEGERS { hrefform }
 FUNCTION {init.doi.variables}
 {
   "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
   "doi:" 'doiprefix :=      % text prefix printed before DOI ref
-  #2 'hrefform :=           % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs
 }
 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
 FUNCTION {init.state.consts}
@@ -491,33 +489,8 @@ FUNCTION {format.issn}
   if$
 }
 
-FUNCTION {make.href.null}
-{
-  pop$
-}
-
-FUNCTION {make.href.hypertex}
-{
-  "\special {html:<a href=" quote$ *
-  swap$ * quote$ * "> }" * swap$ *
-  "\special {html:</a>}" *
-}
-
-FUNCTION {make.href.hyperref}
-{
-  "\href {" swap$ * "} {\path{" * swap$ * "}}" *
-}
-
 FUNCTION {make.href}
-{ hrefform #2 =
-    'make.href.hyperref      % hrefform = 2
-    { hrefform #1 =
-        'make.href.hypertex  % hrefform = 1
-        'make.href.null      % hrefform = 0 (or anything else)
-      if$
-    }
-  if$
-}
+{ "\href {" swap$ * "} {\path{" * swap$ * "}}" * }
 
 FUNCTION {format.doi}
 { doi empty$
@@ -1483,6 +1456,10 @@ FUNCTION {begin.bib}
   write$ newline$
   "  \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi"
   write$ newline$
+  "\expandafter\ifx\csname href\endcsname\relax"
+  write$ newline$
+  "  \def\href#1#2{#2} \def\path#1{#1}\fi"
+  write$ newline$
 }
 EXECUTE {begin.bib}
 EXECUTE {init.doi.variables}