% \iffalse meta-comment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % adfbullets.dtx % Additions and changes Copyright (C) 2019-2025 Clea F. Rees. % Code from skeleton.dtx Copyright (C) 2015-2024 Scott Pakin (see below). % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c % of this license or (at your option) any later version. % The latest version of this license is in % https://www.latex-project.org/lppl.txt % 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 Clea F. Rees. % % This work consists of all files listed in manifest.txt. % % The file adfbullets.dtx is a derived work under the terms of the % LPPL. It is based on version 2.4 of skeleton.dtx which is part of % dtxtut by Scott Pakin. A copy of dtxtut, including the % unmodified version of skeleton.dtx is available from % https://www.ctan.org/pkg/dtxtut and released under the LPPL. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \fi % % \iffalse %<*driver> \RequirePackage{svn-prov} % ref. ateb Max Chernoff: https://tex.stackexchange.com/a/723294/ \def\MakePrivateLetters{\makeatletter\ExplSyntaxOn\endlinechar13} \ProvidesFileSVN{$Id: adfbullets.dtx 10985 2025-03-31 05:35:43Z cfrees $}[v1.4 \revinfo][\filebase DTX: FONT for 8-bit engines] \DefineFileInfoSVN[adfbullets] \documentclass[11pt,british]{ltxdoc} % l3doc loads fancyvrb % fancyvrb overwrites svn-prov's macros without warning % restore \fileversion \filerev in case we're using l3doc \GetFileInfoSVN{adfbullets} \EnableCrossrefs \CodelineIndex \RecordChanges % \OnlyDescription \DoNotIndex{\verb,\ProvidesPackageSVN,\NeedsTeXFormat,\ProcessKeyOptions,\revinfo,\filebase,\filename,\filedate,\RequirePackage,\usepackage,\DefineFileInfoSVN,\GetFileInfoSVN,\ProvidesPackageSVN,\documentclass,\MakeAutoQuote,\parindent,\par,\smallskip,\setlength,\bigskip,\maketitle,\title,\author,\date,\ExplSyntaxOn,\ExplSyntaxOff} \usepackage{babel} \pdfmapfile{-adfbullets.map} \pdfmapfile{+adfbullets.map} \usepackage[tt={monowidth,tabular,lining}]{cfr-lm} \usepackage{adfbullets} \input{adfsymbols-uni} \usepackage{fancyhdr} \usepackage{fixfoot} \usepackage{array,verbatim,tabularx} \usepackage{enumitem} \usepackage[referable]{threeparttablex} \makeatletter \def\TPT@measurement{% ateb David Carlisle: https://tex.stackexchange.com/a/370691/ \ifdim\wd\@tempboxb<\TPTminimum \hsize \TPTminimum \else \hsize\wd\@tempboxb \fi \xdef\TPT@hsize{\hsize\the\hsize \noexpand\@parboxrestore}\TPT@hsize \ifx\TPT@docapt\@undefined\else \TPT@docapt \vskip.2\baselineskip \fi \par \dimen@\dp\@tempboxb % new \box\@tempboxb \ifvmode \prevdepth\dimen@ \fi% was \z@ not \dimen@ } \renewlist{tablenotes}{enumerate}{1} \setlist[tablenotes]{label=\tnote{\alph*},ref=\alph*,itemsep=\z@,topsep=\z@skip,partopsep=\z@skip,parsep=\z@,itemindent=\z@,labelindent=\tabcolsep,labelsep=.2em,leftmargin=*,align=left,before={\unskip\medskip\footnotesize}} \makeatother \usepackage{booktabs} \usepackage{multirow} \usepackage{xcolor} \usepackage{xurl} \urlstyle{tt} \usepackage{multicol} \usepackage{longtable} \usepackage{microtype} \usepackage[a4paper,headheight=14pt]{geometry} % use 14pt for 11pt text, 15pt for 12pt text \usepackage{csquotes} \MakeAutoQuote{‘}{’} \MakeAutoQuote*{“}{”} \usepackage{caption} \DeclareCaptionFont{lf}{\sffamily\lstyle} \captionsetup[table]{labelfont=lf} % sicrhau hyperindex=false: llwytho CYN bookmark \usepackage{hypdoc}% ateb Ulrike Fischer: https://tex.stackexchange.com/a/695555/ \usepackage{bookmark} \hypersetup{% colorlinks=true, citecolor={moss}, extension=pdf, linkcolor={strawberry}, linktocpage=true, pdfcreator={TeX}, pdfproducer={pdfeTeX}, urlcolor={blueberry}% } \NewDocElement[% idxtype=opt., idxgroup=options, printtype=\textit{opt.}, ]{Opt}{option} \NewDocElement[% idxtype=pkg., idxgroup=packages, printtype=\textit{pkg.}, ]{Pkg}{package} \NewDocElement[% printtype=\textdagger, idxtype=, macrolike, ]{DMacro}{dmacro} \NewDocElement[% idxtype=enc., idxgroup=font encodings, printtype=\textit{enc.}, ]{Fenc}{fntenc} \NewDocElement[% idxtype=fd., idxgroup=font definitions, printtype=\textit{fd.}, ]{Fdefn}{fntdefn} \NewDocElement[% idxtype=map, idxgroup=map file fragments, printtype=\textit{map}, ]{Fmap}{fmapping} \NewDocumentCommand \val { m } {% {\ttfamily =\,\meta{#1}}% } \ExplSyntaxOn \NewDocumentCommand \vals { m } { { \ttfamily = \, \clist_use:nn { #1 } { \textbar } } } \cs_new_eq:NN \pkgname \filebase \ExplSyntaxOff \usepackage{cleveref} \title{\filebase} \author{Clea F. Rees\thanks{% Bug tracker: \href{https://codeberg.org/cfr/nfssext/issues}{\url{codeberg.org/cfr/nfssext/issues}} \textbar{} Code: \href{https://codeberg.org/cfr/nfssext}{\url{codeberg.org/cfr/nfssext}} \textbar{} Mirror: \href{https://github.com/cfr42/nfssext}{\url{github.com/cfr42/nfssext}}% }} % \date{\fileversion~\filetoday} \date{\fileversion~\filedate} \pagestyle{fancy} \fancyhf{} \fancyhf[ch]{} \fancyhf[lf]{} \fancyhf[rf]{} \fancyhf[ch]{\itshape \filebase\hspace*{1.5em}\adfbullets{37}\hspace*{1.5em}\fileversion} \fancyhf[cf]{\itshape \adfbullets{18} \thepage~of~\lastpage{} \adfbullets{46}} \renewcommand{\headrulewidth}{0pt} \ExplSyntaxOn \hook_gput_code:nnn {shipout/lastpage} {.} { \property_record:nn {t:lastpage}{abspage,page,pagenum} } \cs_new_protected_nopar:Npn \lastpage { \property_ref:nn {t:lastpage}{page} } \ExplSyntaxOff \definecolor{strawberry}{rgb}{1.000,0.000,0.502} \definecolor{blueberry}{rgb}{0.000,0.000,1.000} \definecolor{moss}{rgb}{0.000,0.502,0.251} \makeatletter \def\@seccntformat#1{\adfbullets{74}\csname the#1\endcsname\quad} \newcommand{\adfbulletsset}{% 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75} \newcommand{\adfbulletsshow}{% \def\tempa{75}% \@for \xx:=\adfbulletsset \do {% \ifx\xx\tempa \xx: \adfbullets{\xx}% \else \xx: \adfbullets{\xx}\\% \fi}} \makeatother \newcommand*{\adf}{ADF} \newcommand*{\lpack}[1]{\textsf{#1}} \newcommand*{\fgroup}[1]{\textsf{#1}} \newcommand*{\fname}[1]{\textsf{#1}} \newcommand*{\file}[1]{\texttt{#1}} \begin{document} \DocInput{\filename} \end{document} % % \fi % % \title{\pkgname: adfbullets} % \author{Clea F. Rees\thanks{% % Bug tracker: % \href{https://codeberg.org/cfr/nfssext/issues}{\url{codeberg.org/cfr/nfssext/issues}} % \textbar{} Code: % \href{https://codeberg.org/cfr/nfssext}{\url{codeberg.org/cfr/nfssext}} % \textbar{} Mirror: % \href{https://github.com/cfr42/nfssext}{\url{github.com/cfr42/nfssext}}% % }} % \date{\fileversion~\filedate} % \maketitle\thispagestyle{empty} % \setlength{\parindent}{0pt} % \setlength{\parskip}{0.5em} % % \iffalse %<*sty> % \fi % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \RequirePackage{svn-prov} \ProvidesPackageSVN[\filebase.sty]{$Id: adfbullets.dtx 10985 2025-03-31 05:35:43Z cfrees $}[v1.4 \revinfo] \DefineFileInfoSVN[adfbullets] \newif\if@adfbullets@digonnew % \end{macrocode} % Copied verbatim, excepting format and modulo package/module name from Joseph Wright's \file{siunitx.sty} under LPPL % \begin{macrocode} \@ifundefined{ExplLoaderFileDate}{% \IfFileExists{expl3.sty}{% \RequirePackage{expl3}% }{% \@adfbullets@digonnewfalse }% }{\@adfbullets@digonnewtrue} % \end{macrocode} % \begin{option}{scale} % \changes{v1.3}{Add scaling option.} % \texttt{scale} takes a factor by which to scale the fonts. % This is empty by default, which is equivalent to \texttt{1}, but more efficient. % \begin{macrocode} \if@adfbullets@digonnew \ExplSyntaxOn \keys_define:nn { adfbullets } { scale .tl_set:N = \adfbullets@scale, scale .initial:V = \@empty, } \else \let\adfbullets@scale\@empty \fi % \end{macrocode} % \end{option} % Provide \cs{ProcessKeyOptions}, \cs{IfFormatAtLeastTF} on older kernels. % Joseph Wright: from \file{siunitx.sty} ; \url{https://chat.stackexchange.com/transcript/message/64327823#64327823} % \begin{macrocode} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \providecommand \IfFormatAtLeastTF { \@ifl@t@r \fmtversion } \IfFormatAtLeastTF { 2022-06-01 } { \ProcessKeyOptions [ adfbullets ] }{ \RequirePackage { l3keys2e } \ProcessKeysOptions { adfbullets } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ExplSyntaxOff % \end{macrocode} % \begin{macro}{\adfbullets@style} % \mbox{} % \begin{macrocode} \DeclareRobustCommand{\adfbullets@style}{%% do NOT break line below! \not@math@alphabet\adfbullets@style\relax \fontencoding{U}\fontfamily{BulletsADF}\fontseries{m}\fontshape{n}\selectfont } % \end{macrocode} % \end{macro} % \changes{v1.4}{2025-03-31}{Add \texttt{/ToUnicode} values (\lpack{adfbullets}).} % I don't know why somebody would use these fonts with a Unicode engine, but, just in case, map for that as well as pdf\TeX. % % Lua\TeX{} manual page 49. % \begin{macrocode} \ExplSyntaxOn \bool_if:nT { \sys_if_engine_luatex_p: } { \protected\def\pdfglyphtounicode {\pdfextension glyphtounicode } } \bool_if:nT { \sys_if_engine_luatex_p: || \sys_if_engine_pdftex_p: } { % \end{macrocode} % \begin{macro}{\l__adfbullets_glyphtounicode_seq} % This seems \dots{} insane? % % It would be more efficient to just set everything directly, but this is easier to set up and only read once. % First, a sequence to hold glyph names. % \begin{macrocode} \seq_new:N \l__adfbullets_glyphtounicode_seq \seq_set_from_clist:Nn \l__adfbullets_glyphtounicode_seq { A, %% A B, %% B C, %% C D, %% D E, %% E F, %% F G, %% G ✤ 2724 H, %% H I, %% I ✠ 2720 filled J, %% J ✠ 2720 open K, %% K L, %% L M, %% M N, %% N O, %% O P, %% P Q, %% Q R, %% R S, %% S T, %% T U, %% U V, %% V W, %% W X, %% X Y, %% Y ✷ 2737 Z, %% Z a, %% a ◌ 25CC b, %% b ◌ 25CC c, %% c ⬛ 2B1B d, %% d ⯁ 2BC1 e, %% e ⯇ 2BC7 f, %% f ⯈ 2BC8 g, %% g ⯅ 2BC5 h, %% h ⯆ 2BC6 i, %% i ⮘ 2B98 j, %% j ⮚ 2B9A k, %% k l, %% l m, %% m ⮘ 2B98 larger/darker n, %% n ⮚ 2B9A larger/darker o, %% o p, %% p ⬬ 2B2C q, %% q ◎ 25CE r, %% r · 00B7 s, %% s ⦿ 29BF circled bullet t, %% t u, %% u ⯀ 2BC0 v, %% v ⯌ 2BCC small w, %% w ⯌ 2BCC med x, %% x ⯌ 2BCC large y, %% y ⯎ 2BCE z, %% z ○ 25CB } % \end{macrocode} % \end{macro} % \begin{macro}{\l__adfbullets_tounicode_seq} % A sequence to hold Unicode targets. % These are not incredibly detailed, but hopefully more useful than none. % \begin{macrocode} \seq_new:N \l__adfbullets_tounicode_seq \seq_set_from_clist:Nn \l__adfbullets_tounicode_seq { 0 , %% A 0 , %% B 0 , %% C 0 , %% D 0 , %% E 0 , %% F 2724 , %% G 0 , %% H 2720 , %% I 2720 , %% J 0 , %% K 0 , %% L 0 , %% M 0 , %% N 0 , %% O 0 , %% P 0 , %% Q 0 , %% R 0 , %% S 0 , %% T 0 , %% U 0 , %% V 0 , %% W 0 , %% X 2737 , %% Y 0 , %% Z 25CC , %% a 25CC , %% b 2B1B , %% c 2BC1 , %% d 2BC7 , %% e or 25C0 etc.? 2BC8 , %% f 2BC5 , %% g 2BC6 , %% h 2B98 , %% i 2B9A , %% j 0 , %% k 0 , %% l 2B98 , %% m 2B9A , %% n 0 , %% o 2B2C , %% p 25CE , %% q 00B7 , %% r 29BF , %% s 25B0 , %% t 2BC0 , %% u 2BCC , %% v 2BCC , %% w 2BCC , %% x 2BCE , %% y 25CB , %% z } % \end{macrocode} % \end{macro} % \begin{macro}{\__adfbullets_tounicode:nn} % TFM-specific mapping. % % pdf\TeX{} manual page 33. % \begin{macrocode} \cs_new_nopar:Npn \__adfbullets_tounicode:nn #1#2 { \str_compare:nNnTF { #2 } = { 0 } { % \end{macrocode} % Map to bullet if nothing better. % \begin{macrocode} \pdfglyphtounicode { tfm:BulletsADF/#1 } { 2022 } } { \pdfglyphtounicode { tfm:BulletsADF/#1 } { #2 } } } % \end{macrocode} % \end{macro} % Generate the actual mappings. % \begin{macrocode} \seq_map_pairwise_function:NNN \l__adfbullets_glyphtounicode_seq \l__adfbullets_tounicode_seq \__adfbullets_tounicode:nn } \ExplSyntaxOff % \end{macrocode} % \begin{macro}{\adfbullet} % \changes{v1.3}{2024-10-03}{Remove \lpack{pifont} dependency.} % \mbox{} % \begin{macrocode} \newcommand*\adfbullet[1]{{\adfbullets@style\char#1}} % \end{macrocode} % \end{macro} %^^A paid â chynnwys \endinput - docstrip yn chwilio amddo fe yn arbennigol %^^A & bydd doctrip yn ei ychwanegu fe beth bynnag %^^A (Martin Scharrer: https://tex.stackexchange.com/a/28997/) % \begin{macrocode} %% end adfbullets.sty % \end{macrocode} % \iffalse % % \fi % % % % \subsection{Font Definitions}\label{subsec:fds-bul} % % \iffalse %<*fd> % \fi % \begin{fntdefn}{ubulletsadf.fd} % Font declarations for BulletsADF font % \begin{macrocode} \ProvidesFile{ubulletsadf.fd}[v1.3 2024/10/01 font definitions for U/BulletsADF.] % \end{macrocode} % \changes{v1.3}{2024-10-03}{Support for scaling.} % addaswyd o t1phv.fd (dyddiad y ffeil fd: 2020-03-25) % \begin{macrocode} \expandafter\ifx\csname adfbullets@scale\endcsname\relax \let\adfbullets@@scale\@empty \else \edef\adfbullets@@scale{s*[\csname adfbullets@scale\endcsname]}% \fi \DeclareFontFamily{U}{BulletsADF}{} \DeclareFontShape{U}{BulletsADF}{m}{n}{ <-> \adfbullets@@scale BulletsADF }{} \DeclareFontShape{U}{BulletsADF}{m}{sc}{<->ssub * BulletsADF/m/n}{} \DeclareFontShape{U}{BulletsADF}{m}{it}{<->ssub * BulletsADF/m/sc}{} \DeclareFontShape{U}{BulletsADF}{m}{sl}{<->ssub * BulletsADF/m/it}{} \DeclareFontShape{U}{BulletsADF}{m}{si}{<->ssub * BulletsADF/m/sl}{} \DeclareFontShape{U}{BulletsADF}{m}{scit}{<->ssub * BulletsADF/m/si}{} \DeclareFontShape{U}{BulletsADF}{m}{scsl}{<->ssub * BulletsADF/m/scit}{} \DeclareFontShape{U}{BulletsADF}{b}{n}{<->ssub * BulletsADF/m/scsl}{} \DeclareFontShape{U}{BulletsADF}{b}{sc}{<->ssub * BulletsADF/b/n}{} \DeclareFontShape{U}{BulletsADF}{b}{it}{<->ssub * BulletsADF/b/sc}{} \DeclareFontShape{U}{BulletsADF}{b}{sl}{<->ssub * BulletsADF/b/it}{} \DeclareFontShape{U}{BulletsADF}{b}{si}{<->ssub * BulletsADF/b/sl}{} \DeclareFontShape{U}{BulletsADF}{b}{scit}{<->ssub * BulletsADF/b/si}{} \DeclareFontShape{U}{BulletsADF}{b}{scsl}{<->ssub * BulletsADF/b/scit}{} \DeclareFontShape{U}{BulletsADF}{bx}{n}{<->ssub * BulletsADF/b/scsl}{} \DeclareFontShape{U}{BulletsADF}{bx}{sc}{<->ssub * BulletsADF/bx/n}{} \DeclareFontShape{U}{BulletsADF}{bx}{it}{<->ssub * BulletsADF/bx/sc}{} \DeclareFontShape{U}{BulletsADF}{bx}{sl}{<->ssub * BulletsADF/bx/it}{} \DeclareFontShape{U}{BulletsADF}{bx}{si}{<->ssub * BulletsADF/bx/sl}{} \DeclareFontShape{U}{BulletsADF}{bx}{scit}{<->ssub * BulletsADF/bx/si}{} \DeclareFontShape{U}{BulletsADF}{bx}{scsl}{<->ssub * BulletsADF/bx/scit}{} % \end{macrocode} % \end{fntdefn} % \iffalse % % \fi % % \iffalse %<*uni> % \fi %^^A ateb wipet: https://tex.stackexchange.com/a/406420/ % \begin{macrocode} \DeclareUnicodeCharacter{2022}{\textbullet} %^^A \DeclareUnicodeCharacter{}{} %% A, %% A %^^A \DeclareUnicodeCharacter{}{} %% B, %% B %^^A \DeclareUnicodeCharacter{}{} %% C, %% C %^^A \DeclareUnicodeCharacter{}{} %% D, %% D %^^A \DeclareUnicodeCharacter{}{} %% E, %% E %^^A \DeclareUnicodeCharacter{}{} %% F, %% F \DeclareUnicodeCharacter{2724}{balloon 4-pointed asterisk} %^^A \DeclareUnicodeCharacter{}{} %% H, %% H \DeclareUnicodeCharacter{2720}{$\maltese$} %^^A \DeclareUnicodeCharacter{}{} %% K, %% K %^^A \DeclareUnicodeCharacter{}{} %% L, %% L %^^A \DeclareUnicodeCharacter{}{} %% M, %% M %^^A \DeclareUnicodeCharacter{}{} %% N, %% N %^^A \DeclareUnicodeCharacter{}{} %% O, %% O %^^A \DeclareUnicodeCharacter{}{} %% P, %% P %^^A \DeclareUnicodeCharacter{}{} %% Q, %% Q %^^A \DeclareUnicodeCharacter{}{} %% R, %% R %^^A \DeclareUnicodeCharacter{}{} %% S, %% S %^^A \DeclareUnicodeCharacter{}{} %% T, %% T %^^A \DeclareUnicodeCharacter{}{} %% U, %% U %^^A \DeclareUnicodeCharacter{}{} %% V, %% V %^^A \DeclareUnicodeCharacter{}{} %% W, %% W %^^A \DeclareUnicodeCharacter{}{} %% X, %% X \DeclareUnicodeCharacter{2737}{8-pointed rectilinear star} %^^A \DeclareUnicodeCharacter{}{} %% Z, %% Z \DeclareUnicodeCharacter{25CC}{\circle{} filled} \DeclareUnicodeCharacter{2B1B}{$\blacksquare$} \DeclareUnicodeCharacter{2BC1}{$\diamond$} \DeclareUnicodeCharacter{2BC7}{$\triangleleft$} \DeclareUnicodeCharacter{2BC8}{$\triangleright$} \DeclareUnicodeCharacter{2BC5}{triangle up} \DeclareUnicodeCharacter{2BC6}{triangle down} \DeclareUnicodeCharacter{2B98}{arrowhead left top highlighted} \DeclareUnicodeCharacter{2B9A}{arrowhead right top highlighted} %^^A \DeclareUnicodeCharacter{}{} %% k, %% k %^^A \DeclareUnicodeCharacter{}{} %% l, %% l %^^A \DeclareUnicodeCharacter{}{} %% o, %% o \DeclareUnicodeCharacter{2B2C}{ellipse} \DeclareUnicodeCharacter{25CE}{dot large} \DeclareUnicodeCharacter{00B7}{dot} \DeclareUnicodeCharacter{29BF}{circled bullet} %^^A \DeclareUnicodeCharacter{}{} %% t, %% t \DeclareUnicodeCharacter{2BC0}{$\blacksquare$} \DeclareUnicodeCharacter{2BCC}{cusp} \DeclareUnicodeCharacter{2BCE}{cusp open} \DeclareUnicodeCharacter{25CB}{\circle{} open} % \end{macrocode} % \iffalse % % \fi % %\Finale %^^A vim: sw=2:et:tw=0: