summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/edichokey/edichokey.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-09-01 03:03:37 +0000
committerNorbert Preining <norbert@preining.info>2020-09-01 03:03:37 +0000
commita9726d029d99c128a7abb22e73074ba0a1ce838e (patch)
treea31816862a76ed100de957dc93c04447f254132c /macros/latex/contrib/edichokey/edichokey.sty
parent568fe838cef40f671837d9348dd73c93d9ea962b (diff)
CTAN sync 202009010303
Diffstat (limited to 'macros/latex/contrib/edichokey/edichokey.sty')
-rw-r--r--macros/latex/contrib/edichokey/edichokey.sty26
1 files changed, 22 insertions, 4 deletions
diff --git a/macros/latex/contrib/edichokey/edichokey.sty b/macros/latex/contrib/edichokey/edichokey.sty
index 1b927eadaf..c4dee913c4 100644
--- a/macros/latex/contrib/edichokey/edichokey.sty
+++ b/macros/latex/contrib/edichokey/edichokey.sty
@@ -19,15 +19,20 @@
% - the example files: [edichokey-ex.tex, edichokey-ex.pdf].
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{edichokey}[2020/07/14 v2.00 package edichokey]
+\ProvidesPackage{edichokey}[2020/08/31 v2.01y package edichokey]
\makeatletter
\def\edk@get@array#1{\csname edk@array@#1\endcsname}
\def\edk@set@array#1#2{\expandafter\xdef\csname edk@array@#1\endcsname{#2}}
\newif\if@edk@named@
+\newif\if@edk@hyperref@\@edk@hyperref@false
+\DeclareOption{hyperref}{\@edk@hyperref@true}
+\ProcessOptions
+\RequirePackage{hyperref}
\newdimen\alterindent\alterindent1.2em
\newdimen\taxonrightskip\taxonrightskip2em
\newdimen\edk@leftskip
\newbox\edk@header
+\newcount\edk@key
\newcount\edk@depth
\newcount\edk@couplet
\def\edknamestyle{\bfseries\itshape}
@@ -50,8 +55,12 @@
\def\dot@line{%
\unskip\dot@fill{0pt plus 1fil}\penalty150%
\null\nobreak\dot@fill{12pt plus 1fill}}
-\newenvironment{Key}
- {\edk@depth\z@
+\newenvironment{Key}{%
+ \global\advance\edk@key\@ne
+ \if@edk@hyperref@
+ \hypersetup{hidelinks=true}%
+ \fi
+ \edk@depth\z@
\edk@couplet\z@
\parindent\z@
\advance\rightskip\taxonrightskip
@@ -82,8 +91,17 @@
\xdef\edk@number{\the\edk@couplet}%
\edk@set@array{\the\edk@depth}{\the\edk@couplet}%
\fi
+ \if@edk@hyperref@
+ \def\edk@hyp@prefix{edichokey:\the\edk@key:\edk@number:}
+ \edef\edk@hyp@this{\edk@hyp@prefix\if@edk@named@ b\else a\fi}%
+ \edef\edk@hyp@that{\edk@hyp@prefix\if@edk@named@ a\else b\fi}%
+ \def\edk@hyp@make##1{%
+ \phantomsection\label{\edk@hyp@this}\hyperref[\edk@hyp@that]{##1}}%
+ \else
+ \def\edk@hyp@make##1{##1}%
+ \fi
\@edk@named@false
\sbox\edk@header{\edk@number.~}%
\leftskip\dimexpr\edk@leftskip+\edk@depth\alterindent+\wd\edk@header\relax
- \indent\llap{\box\edk@header}}
+ \indent\edk@hyp@make{\llap{\box\edk@header}}}
\makeatother