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.