texlive[71919] Master: doibanner (28jul24)
commits+karl at tug.org
commits+karl at tug.org
Sun Jul 28 21:57:25 CEST 2024
Revision: 71919
https://tug.org/svn/texlive?view=revision&revision=71919
Author: karl
Date: 2024-07-28 21:57:25 +0200 (Sun, 28 Jul 2024)
Log Message:
-----------
doibanner (28jul24)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/doibanner/README.md
trunk/Master/texmf-dist/doc/latex/doibanner/doibanner.pdf
trunk/Master/texmf-dist/source/latex/doibanner/doibanner.dtx
trunk/Master/texmf-dist/source/latex/doibanner/doibanner.ins
trunk/Master/texmf-dist/tex/latex/doibanner/doibanner.sty
trunk/Master/tlpkg/libexec/ctan2tds
Removed Paths:
-------------
trunk/Master/texmf-dist/doc/latex/doibanner/CHANGELOG.md
Deleted: trunk/Master/texmf-dist/doc/latex/doibanner/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/doibanner/CHANGELOG.md 2024-07-27 23:46:55 UTC (rev 71918)
+++ trunk/Master/texmf-dist/doc/latex/doibanner/CHANGELOG.md 2024-07-28 19:57:25 UTC (rev 71919)
@@ -1,51 +0,0 @@
-# Changelog
-
-All notable changes to the project `doibanner` are documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
-and this project does __not__ adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-
-<!-- ## [Unreleased] -->
-
-
-## [0.2] - \[2024-07-23\]
-
-Initial release of [this package on the Comprehensive TeX Archive Network (CTAN)](https://www.ctan.org/pkg/doibanner)
-
-The package contains a revised version of the `doi.sty` and `tutorial/doi.tex`
-files. Since the previous material was not publicly available, the changes
-listed below are mainly to ensure that I myself do not forget how the structure
-of the package has changed.
-
-### Added
-
-- `CHANGELOG.md` file to document all notable changes to this project.
-- `example/doibanner_example.tex` and resulting standalone as `png` to act as teaser.
-- `build.lua` script to install and manage this package via `i3build`.
-- `doibanner.dtx` and `doibanner.ins`, which contains a revised melange of the
- files `src/doi.sty` and `tutorial/doi.tex`
-
-### Fixed
-
-- trailing whitespace from banner and link generated by doibanner and doiurl, respectively
-- definition of `urlbase` as package option
-
-### Removed
-
-- `\doi` macro, `\doiurl` and `\doibanner` have a mandatory argument beginning
- with this version (breaking change)
-- `src/doi.sty` and `tutorial/doi.tex` files, the package was converted into
- `doibanner.dtx`, which allows unpacking the `doibanner.sty` file from it,
- and can be compiled in order to obtain a package documentation.
-
-
-## [0.1] - \[2021/05/09\]
-
-Initial version of this package.
-
-
-<!-- [unreleased]: https://codeberg.org/Cs137/doibanner/compare/v0.2...HEAD -->
-[0.2]: https://codeberg.org/Cs137/doibanner/releases/tag/v0.2
-[0.1]: https://codeberg.org/Cs137/doibanner/releases/tag/v0.1
-
Modified: trunk/Master/texmf-dist/doc/latex/doibanner/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/doibanner/README.md 2024-07-27 23:46:55 UTC (rev 71918)
+++ trunk/Master/texmf-dist/doc/latex/doibanner/README.md 2024-07-28 19:57:25 UTC (rev 71919)
@@ -2,17 +2,81 @@
A LaTeX package to generate DOI banners and links.
-![_Screenshot of example output generated with `\doibanner`_](./example/doibanner_example.png "Example output generated with doibanner")
+The `doibanner` package allows to generate a banner for a declared [digital
+object identifier](https://www.doi.org/the-identifier/what-is-a-doi/) (DOI).
+It provides the `\doibanner` macro, which draws the banner using
+[`TikZ`](https://www.ctan.org/pkg/tikz) and adds a link via
+[`hyperref`](https://www.ctan.org/pkg/hyperref), if desired. Its output can
+be scaled by [`adjustbox`](https://www.ctan.org/pkg/adjustbox) and it might
+look as follows:
+![_DOI banner generated with `\doibanner`_](./example/doibanner_example.png "Example generated with doibanner")
-This package includes an updated version of `doi.sty`, initially created for
-personal use to enhance scientific documents with DOI banners and links. I've
-converted it into `doibanner.dtx` and added documentation, allowing you to
-benefit from the package as well.
+Latest release: 2024-07-28 v0.3
-Latest release: 2024-07-23 v0.2
+## Installation
+Skip this section, if `doibanner` is already provided in your TeX distribution.
+You should be able to install it [from the CTAN](https://www.ctan.org/pkg/doibanner)
+via your distribution's utility (e.g. the TeX Live Utility).
+
+### Manual installation
+
+You can get the package's source code from the
+[project repository on Codeberg](https://codeberg.org/Cs137/doibanner).
+The repository contains a build script, which allows you to build the required
+files for the `doibanner` package and copy them into your _TeX Directory Structure_
+(TDS) using `l3build`. Ensure that `l3build` is installed on your system and run
+it from the repository's root directory as follows:
+
+```bash
+l3build install --full
+```
+
+The `--full` option ensures that all necessary files are built and installed.
+
+If you do not want to install the package into your TDS, but use it in a
+particular LaTeX project, follow the steps listed below.
+
+1. unpack `doibanner.sty` from the `doibanner.dtx` file
+ - using `l3build` and the `build.lua` script: `l3build unpack`, __or__
+ - directly via the installer file: `pdflatex doibanner.ins`
+2. copy the extracted `doibanner.sty` file into the same directory as your LaTeX sources.
+
+
+## Usage
+
+Please consult the [package documentation](http://mirrors.ctan.org/macros/latex/contrib/doibanner/doibanner.pdf)
+for detailed usage information.
+
+If you have any questions or need assistance, feel free to
+[open an issue on the repository](https://codeberg.org/Cs137/doibanner/issues).
+
+
+## Contributing
+
+Contributions to the `doibanner` package are very welcomed. Feel free to submit
+a [pull request (PR)](https://codeberg.org/Cs137/doibanner/pulls), if you would
+like to contribute to the project. In case you are unfamiliar with the process,
+consult the [forgejo documentation](https://forgejo.org/docs/latest/user/pull-requests-and-git-flow/)
+and follow the steps using this repository instead of the `example` repository.
+
+Create your [pull request (PR)](https://codeberg.org/Cs137/doibanner/pulls) to
+inform that you started working on a contribution. Provide a clear description
+of your envisaged changes and the motivation behind them, prefix the PR's title
+with ``WIP: `` until your changes are finalised.
+
+All kind of contributions are appreciated, whether they are
+bug fixes, new features, or improvements to the documentation.
+
+
+### Contributors
+
+- [Christian Schreinemachers](https://codeberg.org/Cs137)
+- [Marei Peischl](https://chaos.social/@TeXhackse)
+
+
## Changes
All notable changes to this project are documented in the file
@@ -23,4 +87,5 @@
This package was created and is maintained by Christian Schreinemachers, (C) 2024.
The source code is hosted on [Codeberg](https://codeberg.org/Cs137/doibanner).
-This material is subject to the [LaTeX Project Public License 1.3c](https://www.ctan.org/license/lppl1.3).
+It is subject to the [LaTeX Project Public License 1.3c](https://www.ctan.org/license/lppl1.3).
+
Modified: trunk/Master/texmf-dist/doc/latex/doibanner/doibanner.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/source/latex/doibanner/doibanner.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/doibanner/doibanner.dtx 2024-07-27 23:46:55 UTC (rev 71918)
+++ trunk/Master/texmf-dist/source/latex/doibanner/doibanner.dtx 2024-07-28 19:57:25 UTC (rev 71919)
@@ -14,12 +14,12 @@
%
% This work has the LPPL maintenance status `maintained'.
%
-% The current maintainer of this work is
-% Christian Schreinemachers.
+% The current maintainer of this work is Christian Schreinemachers.
%
% This work consists of the files
% doibanner.dtx
% doibanner.ins
+% README.md
% and the derived files
% doibanner.sty
% doibanner.pdf
@@ -30,11 +30,16 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{doibanner}
-%<package> [2024-07-23 v0.2 Generate DOI banners and links]
+%<package> [2024-07-28 v0.3 Generate DOI banners and links]
%
%<*driver>
\documentclass[a4paper]{ltxdoc}
-\usepackage[T1]{fontenc}
+\usepackage[%
+ pdfusetitle,%
+ hyperindex=false,%
+ pdfsubject={LaTeX package documentation},%
+ pdfkeywords={doibanner, latex, documentation}%
+]{hyperref}
\usepackage{doibanner}
\usepackage[toc]{multitoc}
\usepackage{geometry}
@@ -42,10 +47,11 @@
\EnableCrossrefs
\CodelineIndex
\RecordChanges
-\DoNotIndex{\def,\definecolor,\adjustbox,\begin,\bfseries,\DeclareStringOption,
- \end,\endinput,\fill,\fontfamily,\href,\hspace,\IfBooleanTF,\Large,
- \NewDocumentCommand,\node,\ProcessKeyvalOptions,\RequirePackage,
- \SetupKeyvalOptions,\selectfont,\sfdefault,\vspace}
+\DoNotIndex{\adjustbox,\begin,\bfseries,\DeclareKeys,\definecolor,\end,\fill,
+ \fontfamily,\href,\IfBooleanTF,\Large,\NewDocumentCommand,\node,
+ \ProcessKeyOptions,\RequirePackage,\relax,\selectfont,\SetKeys,
+ \sfdefault,\tikzstyle}
+\setcounter{IndexColumns}{2}
\setlength{\IndexMin}{40ex}
\setlength{\columnseprule}{.4pt}
\addtolength{\oddsidemargin}{2cm}
@@ -55,37 +61,29 @@
\end{document}
%</driver>
% \fi
-% \CheckSum{60}
-% \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 \~}
%
-% \changes{v0.2}{2024-07-23}{Add documentation}
-% \changes{v0.2}{2024-07-23}{Convert into dtx}
-% \changes{v0.1}{2021/05/09}{Initial version}
+% \pagestyle{headings}
%
-% \GetFileInfo{doibanner.sty}
+% \newcommand*{\package}[1]{\textsf{#1}}
+% \newcommand*{\opt}[1]{\texttt{#1}}
+% \newcommand*{\default}[1]{(default: \opt{#1})}
%
%
% ^^A -----------------------------
%
-% \pagestyle{headings}
+% \changes{v0.3}{2024-07-28}{%
+% Add package options \opt{width} and \opt{label},
+% fix mistakes,
+% improve documentation,
+% remove unnecessary dependencies}
+% \changes{v0.2}{2024-07-23}{%
+% Initial release,
+% convert into dtx,
+% add documentation,
+% add \opt{urlbase} package option}
+% \changes{v0.1}{2021/05/09}{Initial version}
%
-% \newcommand*{\package}[1]{\textsf{#1}}
-% \newcommand*{\opt}[1]{\texttt{#1}}
-% \newcommand*{\default}[1]{(default: \opt{#1})}
+% \GetFileInfo{doibanner.sty}
%
%
% ^^A -----------------------------
@@ -97,12 +95,6 @@
% \package{doibanner}~\fileversion
% ~(\href{https://codeberg.org/Cs137/doibanner/releases/tag/\fileversion}{source code})}%
% }
-% \hypersetup{%
-% pdfauthor={Christian Schreinemachers},%
-% pdftitle={The doibanner package},%
-% pdfsubject={LaTeX package documentation},%
-% pdfkeywords={doibanner, latex, documentation}%
-% }
% \maketitle
%
%
@@ -109,11 +101,12 @@
% ^^A -----------------------------
%
% \begin{abstract}
-% The \package{doibanner} package allows to generate a banner for a
-% declared DOI. It provides the \cs{doibanner} macro, which draws the
-% banner using \package{TikZ} and adds a link via \package{hyperref},
-% if desired. Its output might look as follows:
-% \par\medskip\centering{\doibanner*{xx.xxxx/yyyyyy.zzzzzzzz}}
+% The \package{doibanner} package allows to generate a banner for a declared
+% \href{https://www.doi.org/the-identifier/what-is-a-doi/}{digital object identifier}
+% (DOI). It provides the \cs{doibanner} macro, which draws the banner using
+% \package{TikZ} and adds a link via \package{hyperref}, if desired. Its
+% output can be scaled by \package{adjustbox} and it might look as follows:
+% \par\medskip\centering{\doibanner*[width=5cm]{xx.xxxx/yyyyyy.zzzzzzzz}}
% \end{abstract}
%
%
@@ -126,23 +119,29 @@
%
% \section{Introduction}
% ^^A
-% I published several documents on \href{https://zenodo.org/}{\textit{Zenodo}},
-% a general-purpose open repository. They offer to register a DOI for an
-% entry and download a banner of it. The latter can be added to contents
-% foreseen for the entry, or when referring to it.
+% I published several documents on \href{https://zenodo.org/}{\emph{Zenodo}},
+% a general-purpose open repository. They offer to register a
+% \href{https://www.doi.org/the-identifier/what-is-a-doi/}{digital object identifier}
+% (DOI) for an entry and download a banner of it. The latter can be added to
+% contents foreseen for the entry, or e.g. when referring to the entry in a
+% slide deck.
%
-% In order to avoid the manual step of downloading a banner to add to
-% my material, I decided to create a \LaTeX{} package that draws a comparable
-% banner and includes a link to the corresponding URL. Due to the motivation,
-% the resulting banner is heavily inspired by the design applied in the
-% banner offered by \textit{Zenodo}. It is drawn using the \package{tikz}
-% package the link is included with \package{hyperref}.
+% Since I frequently use such banners in \LaTeX{} documents, I decided to
+% create a package that generates a similar banner and includes a link to the
+% corresponding URL. Additionally, this package eliminates the need to
+% manually download the banner and manage a file that might be used across
+% multiple documents.
%
-% The application of this package is not limited to \textit{Zenodo}
-% depositions, it can be used to create a banner from a DOI string that
-% can be included in any \LaTeX{} document.
+% Due to the motivation, the resulting banner is heavily inspired by the
+% design applied in the banner offered by \emph{Zenodo}. It is drawn using
+% the \package{tikz} package, a link to its URL can be included with
+% \package{hyperref}, and it can be scaled using \package{adjustbox}.
%
+% The application of this package is not limited to \emph{Zenodo}
+% depositions, it can be used to create a banner for a DOI that can
+% be included in any \LaTeX{} document.
%
+%
% ^^A -----------------------------
%
% \section{Usage}
@@ -159,33 +158,53 @@
%
% \subsection{Options}
% ^^A
+% In order to change the default behaviour of this package, declare one
+% or more of the options described in this subsection with your desired
+% value.
+%
+% \DescribeMacro{label=\meta{string}}
+% \default{DOI} specifies the label (left part) of the DOI banner generated
+% by \cs{doibanner}. The widths of the left and right part of the banner
+% are fixed and do currently not take the length of the text displayed on
+% top into account. Consequently, only a short expression should be declared
+% as value for the option \opt{label}.
+%
% \DescribeMacro{urlbase=\meta{string}}
-% \default{https://doi.org/} specifies the prefix to convert a DOI string
-% into an URL, for normal usecases this does not require any adjustment.
+% \default{https://doi.org/} specifies the base URL to convert a DOI string
+% into its URL, for normal use cases this does not require any adjustment.
%
+% \DescribeMacro{width=\meta{dimen}}
+% \default{3.6cm} specifies the total width of the DOI banner generated by
+% \cs{doibanner}. The widths of the individual parts of the banner are
+% fixed and can currently not be changed.
%
+%
% ^^A -----------------------------
%
% \subsection{Macros}
% ^^A
-% The following subsections list the content that can be generated with this package.
+% \subsubsection*{\cs{doibanner}\oarg{dimen}\marg{string}}
%
-% \subsubsection*{doibanner}
-% ^^A
-% \DescribeMacro{\doibanner\marg{string}}
-% A DOI banner can be created using the command \cs{doibanner}, which
-% requires a DOI string as argument.
-% An execiton of \cs{doibanner\{xx.xxxx/yyyyyy.zzzzzzzz\}}, generates the
-% following banner: \doibanner{xx.xxxx/yyyyyy.zzzzzzzz}
+% A DOI banner can be created using the command \cs{doibanner}, which requires
+% a DOI string as argument. Moreover, a \oarg{dimen} option can be defined.
+% The latter specifies the banner's width. If it is not declared, the value
+% of the \opt{width} package option is taken into account \default{3.6cm}.
%
-% \DescribeMacro{\doibanner*\marg{string}}
+% \DescribeMacro{\doibanner}
+% An execution of \cs{doibanner\{xx.xxxx/yyyyyy.zzzzzzzz\}} results in this
+% banner: \doibanner{xx.xxxx/yyyyyy.zzzzzzzz} If a banner with a width of
+% let's say 3\,cm is desired, it can be achieved by specifying the macro option
+% \opt{width} accordingly (\cs{doibanner}\opt{[width=3cm]\{xx.xxxx/yyyyyy.zzzzzzzz\}}):
+% \doibanner[width=3cm]{xx.xxxx/yyyyyy.zzzzzzzz}
+%
+% \DescribeMacro{\doibanner*}
% The starred version of the command leads to the same banner, but it does
% not contain a link to the DOI's URL:
% \doibanner*{xx.xxxx/yyyyyy.zzzzzzzz}
%
-% \subsubsection*{doiurl}
+% \subsubsection*{\cs{doiurl}\marg{string}}
% ^^A
-% \DescribeMacro{\doiurl\marg{string}}
+% \DescribeMacro{\doiurl}
% An URL is generated by appending the provided \emph{string} to the string
% defined as the package option \opt{urlbase}. The resulting link is labelled
% with the DOI string.
@@ -192,10 +211,10 @@
% A call of \cs{doiurl\{xx.xxxx/yyyyyy.zzzzzzzz\}} results in
% \doiurl{xx.xxxx/yyyyyy.zzzzzzzz}.
%
-% \DescribeMacro{\doiurl*\marg{string}}
+% \DescribeMacro{\doiurl*}
% The command is also available as starred version, which prints the full
% URL instead of the DOI string and does not include a link. Its output for
-% the aforementioned example will be as follows:
+% the aforementioned example is as follows:
% \doiurl*{xx.xxxx/yyyyyy.zzzzzzzz}.
%
%
@@ -212,14 +231,25 @@
%
% \MaybeStop{
%
+% \IndexPrologue{%
+% \section{Index}
+% Numbers written in italic refer to the page where the corresponding entry
+% is described; numbers underlined refer to the code line of the definition;
+% numbers in roman refer to the code lines where the entry is used.
+% }
% \PrintIndex
%
+% \GlossaryPrologue{%
+% \section{Change History}
+% The changes listed in this section aim to provide a brief overview of the
+% changes introduced into the package \package{doibanner}. The
+% \href{https://codeberg.org/Cs137/doibanner/}{package repository on Codeberg}
+% contains a
+% \href{https://codeberg.org/Cs137/doibanner/src/branch/main/CHANGELOG.md}{changelog file},
+% consult it to read a detailed description of the changes introduced into
+% this package.
+% }
% \PrintChanges
-% \par\noindent
-% The
-% \href{https://codeberg.org/Cs137/doibanner/}{package repository on Codeberg}
-% contains a detailed
-% \href{https://codeberg.org/Cs137/doibanner/src/branch/main/CHANGELOG.md}{changelog file}.
%
% }
%
@@ -232,11 +262,9 @@
% ^^A
% In order to use \package{doibanner}, the packages
% \href{https://www.ctan.org/pkg/adjustbox}{\package{adjustbox}},
-% \href{https://www.ctan.org/pkg/hyperref}{\package{hyperref}},
-% \href{https://www.ctan.org/pkg/kvoptions}{\package{kvoptions}},
-% \href{https://www.ctan.org/pkg/tikz}{\package{tkiz}}, and
-% \href{https://www.ctan.org/pkg/xparse}{\package{xparse}}
-% are required as dependencies.
+% \href{https://www.ctan.org/pkg/hyperref}{\package{hyperref}}, and
+% \href{https://www.ctan.org/pkg/tikz}{\package{tkiz}}
+% are required as package dependencies.
%
% \iffalse
%<*package>
@@ -244,27 +272,64 @@
% \begin{macrocode}
\RequirePackage{adjustbox}
\RequirePackage{hyperref}
-\RequirePackage{kvoptions}
\RequirePackage{tikz}
-\RequirePackage{xparse}
% \end{macrocode}
%
%
% ^^A -----------------------------
%
+% \subsection{Constants}
+% ^^A
+% Definition of colours for the banner areas and labels, custom colour
+% definitions are currently not supported.
+% \begin{macrocode}
+\definecolor{leftcolor}{RGB}{82,82,82}
+\definecolor{rightcolor}{RGB}{6,119,183}
+%
+\definecolor{toptextcolor}{RGB}{235,235,235}
+\definecolor{bottomtextcolor}{RGB}{59,59,59}
+% \end{macrocode}
+% ^^A
+% Definition of font and colour for the banner's top and bottom text layers.
+% \begin{macrocode}
+\tikzstyle{toptextstyle} = [
+ font=\fontfamily{\sfdefault}\selectfont\bfseries\Large,toptextcolor]
+\tikzstyle{bottomtextstyle} = [
+ font=\fontfamily{\sfdefault}\selectfont\bfseries\Large,bottomtextcolor]
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
% \subsection{Options}
% ^^A
-% \begin{macro}{\doibanner at urlbase}
-% \changes{v0.2}{2024-07-23}{Add \opt{urlbase} option}
-% The package options and are internally available as \cs{doibanner@}\meta{option}.
+% The package options are internally available as \cs{@doibanner@}\meta{option}.
% \begin{macrocode}
-\SetupKeyvalOptions{family=doibanner,prefix=doibanner@}
-\DeclareStringOption[https://doi.org/]{urlbase}
-\ProcessKeyvalOptions{doibanner}
+\DeclareKeys[@doibanner]{
+ label.store = \@doibanner at label,
+ label.usage = load,
+ urlbase.store = \@doibanner at urlbase,
+ urlbase.usage = load,
+ width.store = \@doibanner at width,
+ width.usage = load,
+}
% \end{macrocode}
-% \end{macro}
%
+% \subsubsection*{Assignement of default values}
+% \begin{macrocode}
+\SetKeys[@doibanner]{
+ label=DOI,
+ urlbase=https://doi.org/,
+ width=3.6cm,
+}
+% \end{macrocode}
%
+% \subsubsection*{Processing of package options}
+% \begin{macrocode}
+\ProcessKeyOptions[@doibanner]\relax
+% \end{macrocode}
+%
+%
% ^^A -----------------------------
%
% \subsection{Macros}
@@ -272,28 +337,29 @@
% \changes{v0.2}{2024-07-23}{Remove \cs{doi} macro}
%
% \begin{macro}{\doiurl}
-% \changes{v0.2}{2024-07-23}{Remove trailing whitespace}
-% The \meta{string} is appended to the option \opt{urlbase} to
-% generate an URL.
+% \changes{v0.2}{2024-07-23}{Remove trailing space}
+% \oarg{dimen}\\
+% The \meta{string} is appended to the package option \opt{urlbase} to
+% generate the URL.
% \begin{macrocode}
\NewDocumentCommand\doiurl{s m}{%
\IfBooleanTF#1
- {\doibanner at urlbase#2}%
- {\href{\doibanner at urlbase#2}{#2}}%
+ {\@doibanner at urlbase#2}%
+ {\href{\@doibanner at urlbase#2}{#2}}%
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\doibanner at draw}
-% Draw the DOI banner including its \meta{string}.
+% \begin{macro}{\@doibanner at draw}
+% \changes{v0.3}{2024-07-28}{Rename macro, remove top part}
+% \oarg{dimen}\marg{string}\\
+% Draw the DOI banner including its \opt{label} and \meta{string}, provide
+% \opt{width=\meta{dimen}} to define the banners width as well.
% \begin{macrocode}
-\definecolor{leftcolor}{RGB}{85,85,85}
-\definecolor{rightcolor}{RGB}{0,126,198}
-\definecolor{topcolor}{RGB}{59,59,59}
-\definecolor{bottomtextcolor}{RGB}{60,60,60}
-\NewDocumentCommand\doibanner at draw{ O{width=3.6cm} m}{%
+\NewDocumentCommand\@doibanner at draw{o m}{%
\adjustbox{#1}{%
\begin{tikzpicture}
+% left part
\fill [leftcolor,draw]
(1.5,0) --
++(0,.8) {[rounded corners=5] --
@@ -301,8 +367,9 @@
++(0,-.8)} --
cycle
{};
- \node[bottomtextcolor] at (.75,.35) {{\fontfamily{\sfdefault}\selectfont\bfseries \Large DOI}};
- \node[white] at (.75,.4) {{\fontfamily{\sfdefault}\selectfont\bfseries \Large DOI}};
+ \node[bottomtextstyle] at (.75,.35) {\@doibanner at label};
+ \node[toptextstyle] at (.75,.4) {\@doibanner at label};
+% right part
\fill [rightcolor,draw]
(1.5,0) {[rounded corners=5] --
++(6.5,0) --
@@ -310,38 +377,30 @@
++(-6.5,0) --
cycle
{};
- \node[bottomtextcolor] at (4.75,.35) {{\fontfamily{\sfdefault}\selectfont\bfseries \Large #2}};
- \node[white] at (4.75,.4) {{\fontfamily{\sfdefault}\selectfont\bfseries \Large #2}};
- \fill [topcolor,draw,opacity=0.1]
- (0,0) [rounded corners=5] --
- ++(8,0) --
- ++(0,.8) --
- ++(-8,0) --
- cycle
- {};
- \end{tikzpicture}
- \hspace{-4mm}
- \vspace{-4mm}
- }
+ \node[bottomtextstyle] at (4.75,.35) {#2};
+ \node[toptextstyle] at (4.75,.4) {#2};
+ \end{tikzpicture}%
+ }%
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\doibanner at draw}
-% \changes{v0.2}{2024-07-23}{Remove trailing whitespace}
-% Display the DOI banner with or without (*) a link to its URL.
+% \begin{macro}{\doibanner}
+% \changes{v0.3}{2024-07-28}{Add \opt{width} option}
+% \changes{v0.2}{2024-07-23}{Remove trailing space}
+% \oarg{dimen}\marg{string}\\
+% Display the DOI banner with or without (*) a link to its URL. Specify a
+% \oarg{dimen}, if you want a banner width deviating from the one defined
+% as \opt{width} package option.
% \begin{macrocode}
-\NewDocumentCommand\doibanner{s m}{%
+\NewDocumentCommand\doibanner{s O{width=\@doibanner at width} m}{%
\IfBooleanTF#1
- {\doibanner at draw{#2}}%
- {\href{\doibanner at urlbase#2}{\doibanner at draw{#2}}}%
+ {\@doibanner at draw[#2]{#3}}%
+ {\href{\@doibanner at urlbase#3}{\@doibanner at draw[#2]{#3}}}%
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macrocode}
-\endinput
-% \end{macrocode}
% \iffalse
%</package>
% \fi
Modified: trunk/Master/texmf-dist/source/latex/doibanner/doibanner.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/doibanner/doibanner.ins 2024-07-27 23:46:55 UTC (rev 71918)
+++ trunk/Master/texmf-dist/source/latex/doibanner/doibanner.ins 2024-07-28 19:57:25 UTC (rev 71919)
@@ -11,6 +11,29 @@
%% and version 1.3c or later is part of all distributions of
%% LaTeX version 2008-05-04 or later.
%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The current maintainer of this work is Christian Schreinemachers.
+%%
+%% This work consists of the files
+%% doibanner.dtx
+%% doibanner.ins
+%% README.md
+%% and the derived files
+%% doibanner.sty
+%% doibanner.pdf
+%%
+This work has the LPPL maintenance status `maintained'.
+
+The current maintainer of this work is Christian Schreinemachers.
+
+This work consists of the files
+ doibanner.dtx
+ doibanner.ins
+ README.md
+and the derived files
+ doibanner.sty
+ doibanner.pdf
\input docstrip.tex
\keepsilent
Modified: trunk/Master/texmf-dist/tex/latex/doibanner/doibanner.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/doibanner/doibanner.sty 2024-07-27 23:46:55 UTC (rev 71918)
+++ trunk/Master/texmf-dist/tex/latex/doibanner/doibanner.sty 2024-07-28 19:57:25 UTC (rev 71919)
@@ -33,25 +33,38 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{doibanner}
- [2024-07-23 v0.2 Generate DOI banners and links]
+ [2024-07-28 v0.3 Generate DOI banners and links]
\RequirePackage{adjustbox}
\RequirePackage{hyperref}
-\RequirePackage{kvoptions}
\RequirePackage{tikz}
-\RequirePackage{xparse}
-\SetupKeyvalOptions{family=doibanner,prefix=doibanner@}
-\DeclareStringOption[https://doi.org/]{urlbase}
-\ProcessKeyvalOptions{doibanner}
+\definecolor{leftcolor}{RGB}{82,82,82}
+\definecolor{rightcolor}{RGB}{6,119,183}
+\definecolor{toptextcolor}{RGB}{235,235,235}
+\definecolor{bottomtextcolor}{RGB}{59,59,59}
+\tikzstyle{toptextstyle} = [
+ font=\fontfamily{\sfdefault}\selectfont\bfseries\Large,toptextcolor]
+\tikzstyle{bottomtextstyle} = [
+ font=\fontfamily{\sfdefault}\selectfont\bfseries\Large,bottomtextcolor]
+\DeclareKeys[@doibanner]{
+ label.store = \@doibanner at label,
+ label.usage = load,
+ urlbase.store = \@doibanner at urlbase,
+ urlbase.usage = load,
+ width.store = \@doibanner at width,
+ width.usage = load,
+}
+\SetKeys[@doibanner]{
+ label=DOI,
+ urlbase=https://doi.org/,
+ width=3.6cm,
+}
+\ProcessKeyOptions[@doibanner]\relax
\NewDocumentCommand\doiurl{s m}{%
\IfBooleanTF#1
- {\doibanner at urlbase#2}%
- {\href{\doibanner at urlbase#2}{#2}}%
+ {\@doibanner at urlbase#2}%
+ {\href{\@doibanner at urlbase#2}{#2}}%
}
-\definecolor{leftcolor}{RGB}{85,85,85}
-\definecolor{rightcolor}{RGB}{0,126,198}
-\definecolor{topcolor}{RGB}{59,59,59}
-\definecolor{bottomtextcolor}{RGB}{60,60,60}
-\NewDocumentCommand\doibanner at draw{ O{width=3.6cm} m}{%
+\NewDocumentCommand\@doibanner at draw{o m}{%
\adjustbox{#1}{%
\begin{tikzpicture}
\fill [leftcolor,draw]
@@ -61,8 +74,8 @@
++(0,-.8)} --
cycle
{};
- \node[bottomtextcolor] at (.75,.35) {{\fontfamily{\sfdefault}\selectfont\bfseries \Large DOI}};
- \node[white] at (.75,.4) {{\fontfamily{\sfdefault}\selectfont\bfseries \Large DOI}};
+ \node[bottomtextstyle] at (.75,.35) {\@doibanner at label};
+ \node[toptextstyle] at (.75,.4) {\@doibanner at label};
\fill [rightcolor,draw]
(1.5,0) {[rounded corners=5] --
++(6.5,0) --
@@ -70,24 +83,15 @@
++(-6.5,0) --
cycle
{};
- \node[bottomtextcolor] at (4.75,.35) {{\fontfamily{\sfdefault}\selectfont\bfseries \Large #2}};
- \node[white] at (4.75,.4) {{\fontfamily{\sfdefault}\selectfont\bfseries \Large #2}};
- \fill [topcolor,draw,opacity=0.1]
- (0,0) [rounded corners=5] --
- ++(8,0) --
- ++(0,.8) --
- ++(-8,0) --
- cycle
- {};
- \end{tikzpicture}
- \hspace{-4mm}
- \vspace{-4mm}
- }
+ \node[bottomtextstyle] at (4.75,.35) {#2};
+ \node[toptextstyle] at (4.75,.4) {#2};
+ \end{tikzpicture}%
+ }%
}
-\NewDocumentCommand\doibanner{s m}{%
+\NewDocumentCommand\doibanner{s O{width=\@doibanner at width} m}{%
\IfBooleanTF#1
- {\doibanner at draw{#2}}%
- {\href{\doibanner at urlbase#2}{\doibanner at draw{#2}}}%
+ {\@doibanner at draw[#2]{#3}}%
+ {\href{\@doibanner at urlbase#3}{\@doibanner at draw[#2]{#3}}}%
}
\endinput
%%
Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds 2024-07-27 23:46:55 UTC (rev 71918)
+++ trunk/Master/tlpkg/libexec/ctan2tds 2024-07-28 19:57:25 UTC (rev 71919)
@@ -3276,6 +3276,7 @@
'denisbdoc' => 'tex -8bit',
'dotseqn' => 'latex', # requires interaction
'delimtxt' => 'latex -translate-file=empty.tcx', # no 8-bit
+ 'doibanner' => 'etex',
'dramatist' => 'latex', # requires interaction
'drm' => 'latex', # requires interaction
'duckuments' => 'tex',
More information about the tex-live-commits
mailing list.