summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/doipubmed/doipubmed.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/doipubmed/doipubmed.dtx
Initial commit
Diffstat (limited to 'macros/latex/contrib/doipubmed/doipubmed.dtx')
-rw-r--r--macros/latex/contrib/doipubmed/doipubmed.dtx394
1 files changed, 394 insertions, 0 deletions
diff --git a/macros/latex/contrib/doipubmed/doipubmed.dtx b/macros/latex/contrib/doipubmed/doipubmed.dtx
new file mode 100644
index 0000000000..5544adac64
--- /dev/null
+++ b/macros/latex/contrib/doipubmed/doipubmed.dtx
@@ -0,0 +1,394 @@
+%\iffalse
+% doipubmed.dtx generated using makedtx version 0.94b (c) Nicola Talbot
+% Command line args:
+% -macrocode "doipubmed.perl"
+% -setambles "doipubmed.perl=>\nopreamble\nopostamble"
+% -comment "doipubmed.perl"
+% -src "doipubmed.sty=>doipubmed.sty"
+% -src "doipubmed.perl=>doipubmed.perl"
+% -doc "manual.tex"
+% -author "Nicola Talbot"
+% -dir "source"
+% doipubmed
+% Created on 2007/8/20 16:15
+%\fi
+%\iffalse
+%<*package>
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%</package>
+%\fi
+% \iffalse
+% Doc-Source file to use with LaTeX2e
+% Copyright (C) 2007 Nicola Talbot, all rights reserved.
+% \fi
+% \iffalse
+%<*driver>
+\documentclass{ltxdoc}
+
+\usepackage{color}
+\usepackage[colorlinks,
+ bookmarks,
+ bookmarksopen,
+ pdfauthor={Nicola L. C. Talbot},
+ pdftitle={Documentation for doipubmed.sty},
+ pdfkeywords={date,time,LaTeX}]{hyperref}
+\usepackage{doipubmed}
+
+
+\renewcommand{\usage}[1]{\textit{\hyperpage{#1}}}
+\renewcommand{\main}[1]{\hyperpage{#1}}
+\newcommand{\see}[2]{\emph{see} #1}
+\makeatletter
+\RecordChanges
+\PageIndex
+\definecolor{defbackground}{rgb}{1,1,0.75}
+\newsavebox\defsbox
+\newlength\defwidth
+
+\newenvironment{definition}{%
+\setlength{\fboxsep}{4pt}\setlength{\fboxrule}{1.25pt}%
+\begin{lrbox}{\defsbox}%
+\setlength\defwidth\linewidth
+\addtolength\defwidth{-2\fboxrule}%
+\addtolength\defwidth{-2\fboxsep}%
+\begin{minipage}{\defwidth}\flushleft
+}{%
+\end{minipage}
+\end{lrbox}%
+\vskip10pt
+\noindent
+\fcolorbox{black}{defbackground}{\usebox\defsbox}%
+\vskip10pt
+}
+\newcommand*{\sty}[1]{\textsf{#1}}
+
+
+\CheckSum{148}
+
+\begin{document}
+\DocInput{doipubmed.dtx}
+\end{document}
+%</driver>
+%\fi
+%
+%\title{Documentation for doipubmed.sty}
+%\author{Nicola L. C. Talbot\\[10pt]
+%School of Computing Sciences\\
+%University of East Anglia\\
+%Norwich. Norfolk\\
+%NR4 7TJ. United Kingdom\\
+%\url{http://theoval.cmp.uea.ac.uk/~nlct/}}
+%\date{20th August 2007}
+%\maketitle
+%
+% \section{Introduction}
+% The commands defined in this package were primarily designed
+% for use in bibliographies to make it easier to cite
+% documents with digital object identifiers (DOI) or PubMed
+% entries. If the command \cs{url} has been defined, the
+% definition will remain, otherwise the \texttt{url} package
+% will be loaded.
+%
+%\DescribeMacro{\doi}
+%\begin{definition}
+%\cs{doi}\marg{ref number}
+%\end{definition}
+%This displays doi: \meta{ref number} with a hyperlink to the
+%corresponding web entry. For example:
+%\begin{verbatim}
+%\doi{10.1016/j.neunet.2004.07.002}
+%\end{verbatim}
+%produces:
+%\doi{10.1016/j.neunet.2004.07.002}.
+%
+%As from version 1.01, this
+%command also works with awkward characters, for example:
+%\begin{verbatim}
+%\doi{10.1002/1521-3951(200103)224:1<271::AID-PSSB271>3.0.CO;2-\#}
+%\end{verbatim}
+%produces:
+%\doi{10.1002/1521-3951(200103)224:1<271::AID-PSSB271>3.0.CO;2-\#}.
+%
+%Alternatively, you can do:
+%\begin{verbatim}
+%\doi{10.1002/1521-3951(200103)224:1<271::AID-PSSB271>3.0.CO;2-\%23}
+%\end{verbatim}
+%which produces:
+%\doi{10.1002/1521-3951(200103)224:1<271::AID-PSSB271>3.0.CO;2-\%23}.
+%
+%\DescribeMacro{\pubmed}
+%\begin{definition}
+%\cs{pubmed}\marg{ref number}
+%\end{definition}
+%This displays PubMed: \meta{ref number} with a hyperlink to the
+%corresponding PubMed entry. For example:
+%\begin{verbatim}
+%\pubmed{15541948}
+%\end{verbatim}
+%produces:
+%\pubmed{15541948}.
+%
+%\DescribeMacro{\citeurl}
+%\begin{definition}
+%\cs{citeurl}\marg{url}
+%\end{definition}
+%Displays the URL inside angle brackets. For example:
+%\begin{verbatim}
+%\citeurl{http://theoval.cmp.uea.ac.uk/~gcc/publications/}
+%\end{verbatim}
+%produces:
+%\citeurl{http://theoval.cmp.uea.ac.uk/~gcc/publications/}.
+%
+%
+%
+%\StopEventually{}
+%\section{The Code}
+%\iffalse
+% \begin{macrocode}
+%<*doipubmed.sty>
+% \end{macrocode}
+%\fi
+% Package initialisation and identification
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{doipubmed}[2007/08/20 1.01 (NLCT)]
+% \end{macrocode}
+% If \cs{url} has not been defined, load the \sty{url}
+% package.
+% \begin{macrocode}
+\@ifundefined{url}{\RequirePackage{url}}{}
+% \end{macrocode}
+% If \cs{href} has been defined (e.g.\ if the \sty{hyperref}
+% package has been loaded), then do nothing, otherwise if
+% \cs{htmladdnormallink} has been defined (e.g.\ if the
+% \sty{html} package has been loaded) then define
+% \cs{href} in terms of \cs{htmladdnormallink}, otherwise define
+% \cs{href} to simply print the second argument and the first
+% is ignored (so there will be no hyperlink).
+%\changes{1.01}{2007/8/19}{put \cs{href} check in \cs{AtBeginDocument}}
+% \begin{macrocode}
+\AtBeginDocument{%
+\@ifundefined{href}{
+\@ifundefined{htmladdnormallink}{%
+\newcommand*{\href}[2]{#2}
+}{%
+\newcommand*{\href}[2]{\htmladdnormallink{#2}{#1}}%
+}
+}{}}
+% \end{macrocode}
+% Define some commands to allow the user to change the format
+% of the text provided with the hyperlink.
+%\begin{macro}{\doitext}
+%\begin{definition}
+%\cs{doitext}\marg{doi ref}
+%\end{definition}
+%This controls how to format the doi link text.
+% \begin{macrocode}
+\newcommand*{\doitext}[1]{doi: #1}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\pubmedtext}
+%\begin{definition}
+%\cs{pubmedtext}\marg{pub med code}
+%\end{definition}
+% This controls how to format the PubMed link text.
+% \begin{macrocode}
+\newcommand*{\pubmedtext}[1]{PubMed: #1}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\doi}
+%\changes{1.01}{2007/8/19}{no works with awkward characters}
+% \begin{macrocode}
+\providecommand*{\doi}[1]{%
+\def\@doi@code{}%
+\@doi@linksubs#1\#\@@\@doi@code
+\@onelevel@sanitize{\@doi@code}%
+\def\@doi@text{}%
+\@doi@textsubs#1\@nil\@@\@doi@text
+\href{http://dx.doi.org/\@doi@code}{\doitext{\@doi@text}}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@doi@linksubs}
+% \begin{macrocode}
+\newtoks\@doi@toks
+\def\@doi@linksubs#1\##2\@@#3{%
+\def\@doi@tmp{#2}%
+\expandafter\@doi@toks\expandafter{#3}%
+\toks@{#1}%
+\edef#3{\the\@doi@toks\the\toks@}%
+\ifx\@doi@tmp\@empty
+ \let\@doi@next=\@doi@noop
+\else
+ \expandafter\@doi@toks\expandafter{#3}%
+ \edef#3{\the\@doi@toks\%23}%
+ \let\@doi@next=\@doi@linksubs
+\fi
+\@doi@next#2\@@#3\relax
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@doi@noop}
+% \begin{macrocode}
+\def\@doi@noop#1\@@#2{}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@doi@textsubs}
+% \begin{macrocode}
+\def\@doi@textsubs#1#2\@@#3{%
+\def\@doi@argi{#1}%
+\def\@doi@argii{#2}%
+\ifx\@doi@argi\@nnil
+ \let\@doi@next=\@doi@noop
+\else
+ \ifx#1<\relax
+ \expandafter\@doi@toks\expandafter{#3}%
+ \edef#3{\the\@doi@toks\noexpand\textless}%
+ \else
+ \ifx#1>\relax
+ \expandafter\@doi@toks\expandafter{#3}%
+ \edef#3{\the\@doi@toks\noexpand\textgreater}%
+ \else
+ \expandafter\@doi@toks\expandafter{#3}%
+ \toks@{#1}%
+ \edef#3{\the\@doi@toks\the\toks@}%
+ \fi
+ \fi
+ \ifx\@doi@argii\@nnil
+ \let\@doi@next=\@doi@noop
+ \else
+ \let\@doi@next=\@doi@textsubs
+ \fi
+\fi
+\@doi@next#2\@@#3\relax
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\pubmed}
+% \begin{macrocode}
+\newcommand*{\pubmed}[1]{%
+\href{http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids=#1&dopt=Abstract}{%
+\pubmedtext{#1}}}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\citeurl}
+% \begin{macrocode}
+\newcommand*{\citeurl}[1]{\textless\url{#1}\textgreater}
+% \end{macrocode}
+%\end{macro}
+%\iffalse
+% \begin{macrocode}
+%</doipubmed.sty>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+%<*doipubmed.perl>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+#!/usr/bin/perl
+
+# File : doipub.perl
+# Author : Nicola Talbot
+# Date : 9th September 2005
+# Last Modified : 20 Aug 2007
+# Version : 1.01
+#
+# This is a LaTeX2HTML style implementing the doipubmed package, and
+# is distributed as part of that package.
+# Copyright 2007 Nicola L.C. Talbot
+# This work may be distributed and/or modified under the
+# conditions of the LaTeX Project Public License, either version 1.3
+# of this license of (at your option) any later version.
+# The latest version of this license is in
+# http://www.latex-project.org/lppl.txt
+# and version 1.3 or later is part of all distributions of LaTeX
+# version 2005/12/01 or later.
+#
+# This work has the LPPL maintenance status `maintained'.
+#
+# The Current Maintainer of this work is Nicola Talbot.
+
+sub do_cmd_doitext{
+ local($_) = @_;
+ local($doi);
+
+ s/$next_pair_pr_rx/$doi=$2;''/eo;
+ join('', "doi", $_);
+}
+
+sub do_cmd_pubmedtext{
+ local($_) = @_;
+ local($pubmed);
+
+ s/$next_pair_pr_rx/$pubmed=$2;''/eo;
+ join('', "PubMed", $_);
+}
+
+sub do_cmd_doi{
+ local($_) = @_;
+ local($doi,$doitext,$br_id);
+
+ s/$next_pair_pr_rx/$br_id=$1;$doi=$2;''/eo;
+
+ $doitext = &translate_commands("\\doitext$OP$br_id$CP$doi$OP$br_id$CP");
+
+ $doi=~s/#/${percent_mark}23/g;
+ join('',
+ &make_href("http://dx.doi.org/$doi", $doitext),
+ $_);
+}
+
+sub do_cmd_pubmed{
+ local($_) = @_;
+ local($pubmed,$pubmedtext,$br_id);
+
+ s/$next_pair_pr_rx/$br_id=$1;$pubmed=$2;''/eo;
+
+ $pubmedtext = &translate_commands("\\pubmedtext$OP$br_id$CP$pubmed$OP$br_id$CP");
+
+ join('',
+ &make_href("http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids=$pubmed&dopt=Abstract",
+ $pubmedtext),
+ $_);
+}
+
+sub do_cmd_citeurl{
+ local($_) = @_;
+ local($url);
+
+ s/$next_pair_pr_rx/$url=$2;''/eo;
+
+ join('', '&lt;',
+ &make_href($url, $url), '&gt;',
+ $_);
+}
+
+1;
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+%</doipubmed.perl>
+% \end{macrocode}
+%\fi
+%\Finale
+\endinput