aboutsummaryrefslogtreecommitdiff
path: root/icite.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'icite.dtx')
-rw-r--r--icite.dtx533
1 files changed, 327 insertions, 206 deletions
diff --git a/icite.dtx b/icite.dtx
index f19675d..6cb9fe0 100644
--- a/icite.dtx
+++ b/icite.dtx
@@ -1,23 +1,21 @@
1% \iffalse meta-comment 1% \iffalse meta-comment
2% icite -- Indices locorum citatorum 2% icite -- Indices locorum citatorum
3% Copyright (C) 2019--2020 Robert Alesssi 3% Copyright (C) 2019, 2020, 2021, 2023 Robert Alesssi
4%
5% Permission to use, copy, modify, and distribute this software for any
6% purpose with or without fee is hereby granted, provided that the above
7% copyright notice and this permission notice appear in all copies.
8%
9% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
4% 16%
5% Please send error reports and suggestions for improvements to Robert 17% Please send error reports and suggestions for improvements to Robert
6% Alessi <alessi@robertalessi.net> 18% Alessi <alessi@robertalessi.net>
7%
8% This program is free software: you can redistribute it and/or modify
9% it under the terms of the GNU General Public License as published by
10% the Free Software Foundation, either version 3 of the License, or
11% (at your option) any later version.
12%
13% This program is distributed in the hope that it will be useful, but
14% WITHOUT ANY WARRANTY; without even the implied warranty of
15% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16% General Public License for more details.
17%
18% You should have received a copy of the GNU General Public License
19% along with this program. If not, see
20% <http://www.gnu.org/licenses/>.
21% \fi 19% \fi
22% 20%
23% \iffalse 21% \iffalse
@@ -27,7 +25,7 @@
27%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01] 25%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
28%<package>\ProvidesPackage{icite} 26%<package>\ProvidesPackage{icite}
29%<*package> 27%<*package>
30 [2020/03/05 v1.3a Make Indices locorum citatorum] 28 [2023/01/24 v1.4-dev Make Indices locorum citatorum]
31%</package> 29%</package>
32%<*driver> 30%<*driver>
33\documentclass{ltxdoc} 31\documentclass{ltxdoc}
@@ -180,34 +178,86 @@
180} 178}
181\end{filecontents*} 179\end{filecontents*}
182\usepackage{fontspec} 180\usepackage{fontspec}
183\usepackage[english]{babel} 181\usepackage[american]{babel}
184\usepackage[letterpaper,margin=25mm,left=50mm,nohead]{geometry} 182\usepackage[letterpaper,margin=25mm,left=50mm,nohead]{geometry}
185\babelfont{rm}{Old Standard} 183\babelfont{rm}[RawFeature=onum]{Old Standard}
186\babelfont{sf}{NewComputerModern Sans} 184\babelfont{sf}{NewComputerModernSans10}
187\babelfont{tt}{NewComputerModern Mono} 185\babelfont{tt}{NewComputerModernMono10}
188\usepackage{arabluatex} 186\usepackage{arabluatex}
189\SetTranslitConvention{loc} 187\SetTranslitConvention{loc}
190\usepackage{xurl} 188\usepackage[obeyspaces]{url}
191\usepackage{uri} 189\usepackage[nospace,american]{varioref}
192\usepackage{hyperxmp} 190\labelformat{section}{sect.~#1}
193\usepackage{varioref} 191\labelformat{subsection}{sect.~#1}
192\labelformat{subsubsection}{sect.~#1}
193\labelformat{figure}{fig.~#1}
194\newcommand\phts{\phantomsection}
194\usepackage{latexcolors} 195\usepackage{latexcolors}
195\usepackage[numbered]{hypdoc} 196\usepackage[numbered]{hypdoc}
196\hypersetup{unicode=true, colorlinks, allcolors=cinnamon, keeppdfinfo, 197\usepackage[loadlang=en]{metastr}
197 linktocpage=true, pdfauthor={Robert Alessi}, pdftitle={The icite 198\hypersetup{
198 package}, pdfcontactemail={alessi@robertalessi.net}, 199 colorlinks,
199 pdfcontacturl={http://www.robertalessi.net/icite}, 200 allcolors=cinnamon,
200 pdfcopyright={Copyright (C) 2019--2020 Robert Alessi 201 linktocpage=true,
201 <alessi@robertalessi.net>. This document is licensed under the 202 pdftype={Text}
202 Creative Commons Attribution-ShareAlike 4.0 International 203}
203 License. To view a copy of this license, visit 204\metaset{titletext}{%
204 http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to 205 \metapick[#1]{title}%
205 Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.}, 206 \metacompose[#1]{subtitle}{\metaget[sep]{subtitle}}{}{}}
206 pdflicenseurl={https://creativecommons.org/licenses/by-sa/4.0/legalcode}, 207\metaset[print]{titletext}{%
207 pdfmetalang={en-US}, pdftype={Text}, pdfkeywords={bibtex, biblatex, 208 \metatitleline[print]{title}%
208 indexing}} 209 \metatitleline[print]{subtitle}%
209\usepackage{amsmath} 210 \metatitleline[print]{author}%
210\usepackage{cleveref} 211 \metatitleline[print]{contactemail}%
212 \metatitlelinetwo[print]{date}[print]{draft}}
213\metaset[skip]{subtitle}{\vspace{1ex}}
214\metaset[skip]{author}{\vspace{2ex}}
215\metaset[skip]{date}{\vspace{1ex}}
216\metaset[style]{title}{\LARGE}
217\metaset[style]{author}{\large}
218\metaset[sep]{draft}{ -- }
219\metasetlang{en-US}
220\metaset{title}{icite}
221\metaset[print]{title}{\textsf{icite}}
222\metaset{date}{\filedate}
223\metaset{draft}{\fileversion}
224\metaset{subject}{Indices locorum citatorum}
225\metaset{subtitle}{Indices locorum citatorum}
226\metaset[print]{subtitle}{\emph{Indices locorum citatorum}}
227\metaset{author}{Robert Alessi}
228\metaset{keywords}{LaTeX, Lua, bibliography, index}
229\metaset{contactemail}{alessi@roberalessi.net}
230\metaset[print]{contactemail}{\mailto[icite]{alessi@robertalessi.net}}
231\metaset{contacturl}{http://www.roberalessi.net}
232\metaset{partof}{The icite Package}
233\metaset[print]{partof}{The \textsf{icite} Package}
234\metaset{copyrightowner}{\metapick[#1]{author}}
235\metaset{copyrightdate}{2019, 2020, 2021, 2023}
236\metaset{licensemessage}{Permission to use, copy, modify, and
237 distribute this software for any purpose with or without fee is
238 hereby granted, provided that the above copyright notice and this
239 permission notice appear in all copies.
240 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
241 WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
242 WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
243 AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
244 DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA
245 OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
246 TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
247 PERFORMANCE OF THIS SOFTWARE.}
248\metaset{licenseurl}{%
249 https://cvsweb.openbsd.org/src/share/misc/license.template?rev=HEAD}
250\metaset[print]{licenseurl}{%
251 \url{https://cvsweb.openbsd.org/src/share/misc/license.template?rev=HEAD}}
252\metaset[cmd]{licenselogo}{\includegraphics[scale=0.75]{#1}}
253\metawritepdfinfo
254\metawritepdfaux
255\metawritepdfpreamble
256\metawritepdfcontact
257\metawritepdfrights
258
259\usepackage{uri}
260
211\CodelineIndex 261\CodelineIndex
212\usepackage[citecmd=autocite,defaultindex]{\jobname} 262\usepackage[citecmd=autocite,defaultindex]{\jobname}
213\IndexSubtypeAs{classical}{primary} 263\IndexSubtypeAs{classical}{primary}
@@ -226,13 +276,19 @@
226\newclassic{nadim}{\classicsRoman{#1}|.#1|, #1} 276\newclassic{nadim}{\classicsRoman{#1}|.#1|, #1}
227\newclassic{aristotle}{#1|\textit{#1}|#1} 277\newclassic{aristotle}{#1|\textit{#1}|#1}
228\usepackage[scale=1.5]{ccicons} 278\usepackage[scale=1.5]{ccicons}
229\usepackage{dox} 279%^^A dox does not work with the latest latex-dev:
230\doxitem{Option}{option}{options} 280\ifdefined\SpecialMacroIndex
281 \NewDocElement{Option}{option}
282\else
283 \usepackage{dox}
284 \doxitem{Option}{option}{options}
285\fi
231\usepackage{enumitem} 286\usepackage{enumitem}
232\setlist{nosep} 287\setlist{nosep}
233\setlist[itemize]{label=\textendash} 288\setlist[itemize]{label=\textendash}
234\setlist[enumerate,1]{label=(\alph*)} 289\setlist[enumerate,1]{label=(\alph*)}
235\setlist[enumerate,2]{label=\roman*.} 290\setlist[enumerate,2]{label=\roman*.}
291\usepackage[shortcuts, nospacearound]{extdash}
236\usepackage[lot]{multitoc} 292\usepackage[lot]{multitoc}
237\usepackage{nameref} 293\usepackage{nameref}
238\usepackage{csquotes} 294\usepackage{csquotes}
@@ -244,34 +300,45 @@
244\usepackage{units} 300\usepackage{units}
245\usepackage{minted} 301\usepackage{minted}
246\usepackage[contents]{colordoc} 302\usepackage[contents]{colordoc}
247\newcommand{\package}[1]{\textsf{#1}\index{#1=#1 (package)}} 303\newcommand{\pkg}[1]{\textsf{#1}\index{#1=#1 (package)}}
248\usepackage{tikz} 304\usepackage{tikz}
249\usepackage[breakable, skins, xparse, minted]{tcolorbox} 305\usepackage[breakable, skins, xparse, minted]{tcolorbox}
250\tcbset{colback=white, boxrule=.15mm, colframe=cinnamon, 306\tcbset{colback=white, boxrule=.15mm, colframe=cinnamon,
251 breakable} 307 breakable}
252\newtcblisting{example}{minted options={linenos, numbersep=0mm}} 308\newtcblisting{example}{minted options={linenos, numbersep=0mm}}
253\newtcblisting{code}{minted options={linenos, numbersep=0mm}, listing 309\newtcblisting{pkgcode}{minted options={linenos, numbersep=0mm}, listing
254 only} 310 only}
311\NewDocumentCommand{\newfeature}{o}{%
312 \leavevmode
313 \IfNoValueTF{#1}
314 {\marginpar{\hfill\emph{New feature}}}
315 {\marginpar{\hfill\emph{New feature} #1}}%
316 \ignorespaces
317}
318
255\usepackage{etoc} 319\usepackage{etoc}
256\etocsettocdepth{paragraph} 320\etocsettocdepth{paragraph}
321\makeatletter
257\newcommand{\icitetableofcontents}{% 322\newcommand{\icitetableofcontents}{%
258 \begingroup 323 \begingroup
259 \etocsetstyle{section}{}{} 324 \etocsetstyle{section}{}{}
260 {\etocsavedsectiontocline{% 325 {\l@section{%
261 \numberline{\etocnumber}\etocname}{\etocpage}}{} 326 \numberline{\etocnumber}\etocname}{\etocpage}}{}
262 \etocsetstyle{subsection}{}{} 327 \etocsetstyle{subsection}{}{}
263 {\etocsavedsubsectiontocline{% 328 {\l@subsection{%
264 \numberline{\etocnumber}\etocname}{\etocpage}}{}% 329 \numberline{\etocnumber}\etocname}{\etocpage}}{}%
265 \etocsetstyle{subsubsection}{}{} 330 \etocsetstyle{subsubsection}{}{}
266 {\etocsavedsubsubsectiontocline{% 331 {\l@subsubsection{%
267 \numberline{\etocnumber}\etocname}{\etocpage}}{}% 332 \numberline{\etocnumber}\etocname}{\etocpage}}{}%
268 \etocsetstyle{paragraph}{}{\leftskip2cm\rightskip 2.2em \parfillskip 333 \etocsetstyle{paragraph}{}{\leftskip2cm\rightskip 2.2em \parfillskip
269 0pt plus 1fil\relax \nobreak} 334 0pt plus 1fil\relax \nobreak}
270 {\noindent\etocname{} \etocpage{} }{\par}% 335 {\noindent\etocname{} \etocpage{} }{\par}%
271 \etocmulticolstyle[2]{\section*{Contents}} 336 \etocmulticolstyle[2]{\section*{Contents}}
272 \pdfbookmark[1]{Contents}{toc} 337 \pdfbookmark[1]{Contents}{toc}
273 \tableofcontents 338 \etoctoclines
339 \localtableofcontents
274 \endgroup} 340 \endgroup}
341\makeatother
275\EnableCrossrefs 342\EnableCrossrefs
276 %\CodelineIndex 343 %\CodelineIndex
277\RecordChanges 344\RecordChanges
@@ -290,7 +357,7 @@
290%</driver> 357%</driver>
291% \fi 358% \fi
292% 359%
293% \CheckSum{360} 360% \CheckSum{0}
294% 361%
295% \CharacterTable 362% \CharacterTable
296% {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 363% {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
@@ -328,23 +395,19 @@
328% \GetFileInfo{\jobname.dtx} 395% \GetFileInfo{\jobname.dtx}
329% \DoNotIndex{\newcommand,\newenvironment} 396% \DoNotIndex{\newcommand,\newenvironment}
330% 397%
331% \newcommand*{\NEWfeature}[1]{% 398% \pdfbookmark[1]{\metaterm{title}}{title}
332% \hskip 1sp \marginpar{\small\sffamily\raggedright 399% \begin{tcolorbox}[
333% New feature\\#1}} 400% colframe=black,
401% enhanced,
402% drop lifted shadow,
403% colback=white,
404% boxrule=.25mm,
405% halign=center,
406% center
407% ]
408% \metapick[print]{titletext}
409% \end{tcolorbox}
334% 410%
335% \title{\tcbox[colframe=black, enhanced, tikznode, drop lifted
336% shadow, colback=white, boxrule=.25mm]{%
337% The \textsf{icite} package\\
338% \emph{Indices locorum citatorum}\\
339% \fileversion\ --- \filedate}}
340%
341% \author{Robert Alessi \\
342% \href{mailto:alessi@robertalessi.net?Subject=icite package}%
343% {\texttt{alessi@robertalessi.net}}}
344%
345% \date{}
346%
347% \maketitle
348% \footnotesize 411% \footnotesize
349% \icitetableofcontents 412% \icitetableofcontents
350% \normalsize 413% \normalsize
@@ -352,47 +415,65 @@
352% \changes{v1.00}{2019/03/07}{First public release} 415% \changes{v1.00}{2019/03/07}{First public release}
353% 416%
354% \begin{abstract} 417% \begin{abstract}
355% \package{icite} is designed to produce from \hologo{BibTeX} or 418% \pkg{icite} is designed to produce from \hologo{BibTeX} or
356% Bib\LaTeX\ bibliographical databases the different indices of 419% Bib\LaTeX\ bibliographical databases the different indices of
357% authors and works cited which are called \emph{indices locorum 420% authors and works cited which are called \emph{indices locorum
358% citatorum}. It relies on a specific \cs{icite} command and can 421% citatorum}. It relies on a specific \cs{icite} command and can
359% operate with either \hologo{BibTeX} or Bib\LaTeX. 422% operate with either \hologo{BibTeX} or Bib\LaTeX.
360% \end{abstract} 423% \end{abstract}
361% 424%
362% \section*{License and disclamer} 425% \section*{License and Disclaimer}
363% \addcontentsline{toc}{section}{License and disclamer} 426% \addcontentsline{toc}{section}{License and disclamer}
364% \subsection*{License applicable to the software}
365% \label{sec:license-software} 427% \label{sec:license-software}
366% 428%
367% \package{icite} --- \emph{Indices locorum citatorum}\\ 429% \pkg{icite} --- \metapick[print]{subtitle}
368% Copyright \textcopyright\ 2019--2020 Robert Alessi 430% \metapick[print]{copyrightstatement}
431%
432% \leavevmode\marginpar{\hfill\texttt{OpenBSD}} \pkg{icite} is
433% licensed under the terms of the so-called OpenBSD license, as it is
434% modelled after the ISC copyright, which is functionally equivalent
435% to a two-term BSD copyright with language removed that is made
436% unnecessary by the Berne convention.\footnote{More information about
437% the OpenBSD policy to which \pkg{icite} adheres:
438% \url{https://www.openbsd.org/policy.html}.}
439%
440% \iffalse
441%<*example>
442% \fi
443\begin{minted}[linenos=false]{text}
444icite -- Index locorum citatorum
445--------------------------------
446
447Copyright (c) 2019, 2020, 2021, 2023 Robert Alessi
448<alessi@robertalessi.net>
449
450Permission to use, copy, modify, and distribute this software for any
451purpose with or without fee is hereby granted, provided that the above
452copyright notice and this permission notice appear in all copies.
453
454THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
455WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
456MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
457ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
458WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
459ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
460OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
461\end{minted}
462% \iffalse
463%</example>
464% \fi
369% 465%
370% Please send error reports and suggestions for improvements to Robert 466% Please send error reports and suggestions for improvements to Robert
371% Alessi: 467% Alessi:
372% \begin{itemize} 468% \begin{itemize}
373% \item email: \mailto[icite package]{alessi@roberalessi.net} 469% \item email: \mailto[icite package]{Robert Alessi <alessi@roberalessi.net>}
374% \item website: \url{http://www.robertalessi.net/icite} 470% \item website: \url{https://sr.ht/~ralessi/icite/}
375% \item development: \url{http://git.robertalessi.net/icite} 471% \item development: \url{http://git.robertalessi.net/icite}
376% \item comments, feature requests, bug reports: 472% \item comments, feature requests, bug reports:
377% \url{https://gitlab.com/ralessi/icite/issues} 473% \url{https://todo.sr.ht/~ralessi/icite}
378% \end{itemize} 474% \end{itemize}
379% 475%
380% \marginpar{\texttt{gpl3+}} 476% This release of \pkg{icite} consists of the following
381% This program is free software: you can redistribute it and/or modify
382% it under the terms of the GNU General Public License as published by
383% the Free Software Foundation, either version 3 of the License, or
384% (at your option) any later version.
385%
386% This program is distributed in the hope that it will be useful, but
387% WITHOUT ANY WARRANTY; without even the implied warranty of
388% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
389% General Public License for more details.
390%
391% You should have received a copy of the GNU General Public License
392% along with this program. If not, see
393% <http://www.gnu.org/licenses/>.
394%
395% This release of \package{icite} consists of the following
396% source files: 477% source files:
397% \begin{itemize} 478% \begin{itemize}
398% \item |icite.dtx| 479% \item |icite.dtx|
@@ -400,18 +481,6 @@
400% \item |Makefile| 481% \item |Makefile|
401% \end{itemize} 482% \end{itemize}
402% 483%
403% \subsection*{License applicable to this document}
404% \label{sec:documentation-license}
405% Copyright \textcopyright\ 2019--2020 Robert Alessi
406%
407% \ccbysa\marginpar{\texttt{CC BY-SA 4.0}}
408% This document is licensed under the Creative Commons
409% Attribution-ShareAlike 4.0 International License. To view a copy of
410% this license, visit
411% \url{http://creativecommons.org/licenses/by-sa/4.0/} or send a
412% letter to Creative Commons, PO Box 1866, Mountain View, CA 94042,
413% USA.
414%
415% \section{Introduction} 484% \section{Introduction}
416% \label{sec:introduction} 485% \label{sec:introduction}
417% Bib\LaTeX\ features a very powerful internal mechanism which 486% Bib\LaTeX\ features a very powerful internal mechanism which
@@ -428,27 +497,27 @@
428% intricate business and requires knowing how to redefine and/or patch 497% intricate business and requires knowing how to redefine and/or patch
429% standard and internal Bib\LaTeX\ commands. 498% standard and internal Bib\LaTeX\ commands.
430% 499%
431% The \package{icite} package is but a modest piece of software which 500% The \pkg{icite} package is but a modest piece of software which
432% addresses this situation. It relies on citation commands, but does 501% addresses this situation. It relies on citation commands, but does
433% not require Bib\LaTeX. Instead, \hologo{BibTeX} can be used as 502% not require Bib\LaTeX. Instead, \hologo{BibTeX}, or even no
434% \package{icite} uses the \package{usebib} 503% bibliographic engine, can be used as \pkg{icite} uses the
435% package\footnote{\cite{usebib}} to build the indices by drawing 504% \pkg{usebib} package\footnote{\cite{usebib}} to build the indices by
436% directly from the bibliographical database. 505% drawing directly from the bibliographical database.
437% 506%
438% 507%
439% \section[The \package{icite} package]{The \textsf{icite} package} 508% \section[The \pkg{icite} package]{The \textsf{icite} Package}
440% The \package{icite} package is loaded as usual like so:--- 509% The \pkg{icite} package is loaded as usual like so:---
441% \iffalse 510% \iffalse
442%<*example> 511%<*example>
443% \fi 512% \fi
444\begin{code} 513\begin{pkgcode}
445 \usepackage[<options>]{icite} 514 \usepackage[<options>]{icite}
446\end{code} 515\end{pkgcode}
447% \iffalse 516% \iffalse
448%</example> 517%</example>
449% \fi 518% \fi
450% 519%
451% \package{icite} may be loaded with three optional \enquote*{named 520% \pkg{icite} may be loaded with three optional \enquote*{named
452% arguments} either of which is set using the syntax 521% arguments} either of which is set using the syntax
453% \meta{key}$=$\meta{value}. The description of the optional arguments 522% \meta{key}$=$\meta{value}. The description of the optional arguments
454% follows:--- 523% follows:---
@@ -469,17 +538,17 @@
469% passages in the default general index, unless |defaultindex| is set 538% passages in the default general index, unless |defaultindex| is set
470% to the value |none|, in which case indexing is disabled. It must be 539% to the value |none|, in which case indexing is disabled. It must be
471% noted that this named argument does not need a value as it defaults 540% noted that this named argument does not need a value as it defaults
472% to |loccit| if it is used alone. This is an easy way to have all 541% to |loccit| if used alone. This is an easy way to have all passages
473% passages cited indexed in a separate index named |loccit|. 542% cited indexed in a separate index named |loccit|.
474% 543%
475% \DescribeOption{nobibengine}\NEWfeature{v1.1} 544% \DescribeOption{nobibengine}\newfeature[v1.1]
476% \changes{v1.1}{2019/03/12}{New global option \texttt{nobibengine}}% 545% \changes{v1.1}{2019/03/12}{New global option \texttt{nobibengine}}%
477% |nobibengine|$=$|true|\verb+|+|false|\hfill% 546% |nobibengine|$=$|true|\verb+|+|false|\hfill%
478% \tcboxverb{Default: not set}\\ 547% \tcboxverb{Default: not set}\\
479% This named argument does not need a value as it defaults to |true| 548% This named argument does not need a value as it defaults to |true|
480% if it is used. When this option is activated, \package{icite} does 549% if used. When this option is activated, \pkg{icite} does not use
481% not use \hologo{BibTeX} or Bib\LaTeX\ to insert the citations in the 550% \hologo{BibTeX} or Bib\LaTeX\ to insert the citations in the body
482% body text---even if either is loaded in the preamble---and pulls the 551% text\---even if either be loaded in the preamble\---and pulls the
483% necessary information directly from the bibliographical 552% necessary information directly from the bibliographical
484% database. For this reason, \cs{bibinput} described below is of 553% database. For this reason, \cs{bibinput} described below is of
485% course still required. The citations inserted consist of the 554% course still required. The citations inserted consist of the
@@ -489,31 +558,31 @@
489% it takes precedence over the fields used to define author names and 558% it takes precedence over the fields used to define author names and
490% titles. 559% titles.
491% 560%
492% \paragraph{Bibliographical database} 561% \paragraph{Bibliographical Database}
493% \DescribeMacro{\bibinput} Once \package{icite} is loaded, it must be 562% \DescribeMacro{\bibinput} Once \pkg{icite} is loaded, it must be
494% connected to at least one bibliographic |.bib| file. To that end, 563% connected to at least one bibliographic |.bib| file. To that end,
495% \package{icite} uses the same \cs{bibinput} command as 564% \pkg{icite} uses the same \cs{bibinput} command as
496% \package{usebib}.\footnote{Please refer to \cite[1]{usebib} for 565% \pkg{usebib}.\footnote{Please refer to \cite[1]{usebib} for
497% more detailed information on how to use this command.} An example 566% more detailed information on how to use this command.} An example
498% follows:--- % 567% follows:--- %
499% \iffalse 568% \iffalse
500%<*example> 569%<*example>
501% \fi 570% \fi
502\begin{code} 571\begin{pkgcode}
503 % load icite, have \icite use \autocite by default, and insert cited 572 % load icite, have \icite use \autocite by default, and insert cited
504 % passages in a separate index named 'loccit': 573 % passages in a separate index named 'loccit':
505 \usepackage[citecmd=autocite, defaultindex]{icite} 574 \usepackage[citecmd=autocite, defaultindex]{icite}
506 % note that the .bib file must be stripped of its extension: 575 % note that the .bib file must be stripped of its extension:
507 \bibinput{bibliography} % that is: load bibliography.bib 576 \bibinput{bibliography} % that is: load bibliography.bib
508\end{code} 577\end{pkgcode}
509% \iffalse 578% \iffalse
510%</example> 579%</example>
511% \fi 580% \fi
512% 581%
513% \subsection{Preamble-only commands} 582% \subsection{Preamble-only Commands}
514% The following commands may be found in the preamble only. 583% The following commands may be found in the preamble only.
515% \paragraph{Styling the titles} 584% \paragraph{Styling the Titles}
516% \DescribeMacro{\SetTitleStyle} By default, \package{icite} prints 585% \DescribeMacro{\SetTitleStyle} By default, \pkg{icite} prints
517% the titles of the works cited in italics.\\ 586% the titles of the works cited in italics.\\
518% \cs{SetTitleStyle}\marg{formatting directives} can be used in the 587% \cs{SetTitleStyle}\marg{formatting directives} can be used in the
519% preamble only to customize the way titles are displayed in the 588% preamble only to customize the way titles are displayed in the
@@ -521,9 +590,9 @@
521% \iffalse 590% \iffalse
522%<*example> 591%<*example>
523% \fi 592% \fi
524\begin{code} 593\begin{pkgcode}
525 \SetTitleStyle{\textbf{#1}} 594 \SetTitleStyle{\textbf{#1}}
526\end{code} 595\end{pkgcode}
527% \iffalse 596% \iffalse
528%</example> 597%</example>
529% \fi 598% \fi
@@ -532,7 +601,7 @@
532% command. 601% command.
533% 602%
534% \paragraph{Delimiters} 603% \paragraph{Delimiters}
535% \NEWfeature{v1.2}\DescribeMacro{\AuthorTitleDelim} 604% \DescribeMacro{\AuthorTitleDelim}\newfeature[v1.2]
536% \cs{AuthorTitleDelim}\marg{delimiter} sets the delimiter between 605% \cs{AuthorTitleDelim}\marg{delimiter} sets the delimiter between
537% authors and titles in the body text when the |nobibengine| option is 606% authors and titles in the body text when the |nobibengine| option is
538% set to |true|. The default delimiter is a comma and a space. 607% set to |true|. The default delimiter is a comma and a space.
@@ -543,13 +612,13 @@
543% set to |true|. The default delimiter is a comma and a space. 612% set to |true|. The default delimiter is a comma and a space.
544% 613%
545% \subsection[\textsf{icite} for the Impatient]% 614% \subsection[\textsf{icite} for the Impatient]%
546% {\package{icite} for the Impatient} 615% {\pkg{icite} for the Impatient}
547% Read \href{samples/icite-minimal.pdf}{\texttt{icite-minimal.pdf}}. 616% Read \href{samples/icite-minimal.pdf}{\texttt{icite-minimal.pdf}}.
548% 617%
549% \subsection{Entry fields} 618% \subsection{Entry Fields}
550% \label{sec:entry-fields} 619% \label{sec:entry-fields}
551% \subsubsection{Author names} 620% \subsubsection{Author Names}
552% To process author names, \package{icite} uses the following entry 621% To process author names, \pkg{icite} uses the following entry
553% fields: 622% fields:
554% \begin{description} 623% \begin{description}
555% \item[author] As for example in |author = {Ullmann, Manfred}|, which 624% \item[author] As for example in |author = {Ullmann, Manfred}|, which
@@ -576,10 +645,10 @@
576% |sortname = {{|Hunayn ibn Ishaq|}}| 645% |sortname = {{|Hunayn ibn Ishaq|}}|
577% 646%
578% \subsection{Titles} 647% \subsection{Titles}
579% To process titles, \package{icite} uses the following entry fields: 648% To process titles, \pkg{icite} uses the following entry fields:
580% \begin{description} 649% \begin{description}
581% \item[title] The full title of the work. 650% \item[title] The full title of the work.
582% \item[shorttitle] The title in an abriged form. If this entry is 651% \item[shorttitle] The title in an abriged form. If this entry be
583% set, it takes precedence over the |title| field in the printed index. 652% set, it takes precedence over the |title| field in the printed index.
584% \item[indextitle] This field may be used to have a title such as 653% \item[indextitle] This field may be used to have a title such as
585% \emph{The {\TeX}Book} printed in the index as \emph{{\TeX}Book, The}. 654% \emph{The {\TeX}Book} printed in the index as \emph{{\TeX}Book, The}.
@@ -589,8 +658,8 @@
589% |indexsorttitle = {TEXBook}| 658% |indexsorttitle = {TEXBook}|
590% \end{description} 659% \end{description}
591% 660%
592% \section{Basic use} 661% \section{Basic Use}
593% \DescribeMacro{\icite} \package{icite} provides the \cs{icite} 662% \DescribeMacro{\icite} \pkg{icite} provides the \cs{icite}
594% command which both inserts a formatted citation in the body text and 663% command which both inserts a formatted citation in the body text and
595% an entry corresponding to the passage cited in the index. This 664% an entry corresponding to the passage cited in the index. This
596% command is to be used in place of any \hologo{BibTeX} or Bib\LaTeX\ 665% command is to be used in place of any \hologo{BibTeX} or Bib\LaTeX\
@@ -603,9 +672,9 @@
603% \iffalse 672% \iffalse
604%<*example> 673%<*example>
605% \fi 674% \fi
606\begin{code} 675\begin{pkgcode}
607 \icite[<pre>][<post>]{<key>}[<command>] 676 \icite[<pre>][<post>]{<key>}[<command>]
608\end{code} 677\end{pkgcode}
609% \iffalse 678% \iffalse
610%</example> 679%</example>
611% \fi 680% \fi
@@ -615,15 +684,24 @@
615% default in the preamble by means of the |citecmd| global 684% default in the preamble by means of the |citecmd| global
616% option.\footnote{See above, \vref{ref:citecmd}.} 685% option.\footnote{See above, \vref{ref:citecmd}.}
617% 686%
687% \paragraph{List of References} \newfeature[v1.4]
688% \changes{v1.4}{2023/01/24}{\textsf{icite} now indexes separately
689% lists of references} The references inserted in the \meta{post}
690% argument of \cs{icite} may consist of single numbers\---as in |25|,
691% |vii| or |XIV|\---ranges of numbers\---as in |34--38| or
692% |iv--x|\---or lists of numbers. In the latter case, references must
693% be separated from one another by semicolons (|;|), like so: |12;|
694% |21;| |34--38|.
695%
618% \paragraph{Example} The following example illustrates how 696% \paragraph{Example} The following example illustrates how
619% \package{icite} can be used in combination with Bib\LaTeX\ and the 697% \pkg{icite} can be used in combination with Bib\LaTeX\ and the
620% \package{imakeidx} package to have the passages cited sorted and 698% \pkg{imakeidx} package to have the passages cited sorted and
621% printed in a separate, specific \enquote*{Index of Passages 699% printed in a separate, specific \enquote*{Index of Passages
622% Cited}:--- % 700% Cited}:--- %
623% \iffalse 701% \iffalse
624%<*example> 702%<*example>
625% \fi 703% \fi
626\begin{code} 704\begin{pkgcode}
627 % preamble 705 % preamble
628 % load icite, have \icite use \autocite by default, and insert cited 706 % load icite, have \icite use \autocite by default, and insert cited
629 % passages in a separate index named 'loccit': 707 % passages in a separate index named 'loccit':
@@ -638,7 +716,7 @@
638 % load imakeidx and use xindy to have the numbers sorted properly 716 % load imakeidx and use xindy to have the numbers sorted properly
639 \usepackage[xindy]{imakeidx} 717 \usepackage[xindy]{imakeidx}
640 \makeindex[name=loccit, title=Index of Passages Cited (modern authors)] 718 \makeindex[name=loccit, title=Index of Passages Cited (modern authors)]
641\end{code} 719\end{pkgcode}
642% \iffalse 720% \iffalse
643%</example> 721%</example>
644% \fi 722% \fi
@@ -647,11 +725,11 @@
647% \iffalse 725% \iffalse
648%<*example> 726%<*example>
649% \fi 727% \fi
650\begin{code} 728\begin{pkgcode}
651 \section*{\cs{icite} in action} 729 \section*{\cs{icite} in Action}
652 Let us start with four citations of the same reference, to make sure 730 Let us start with four citations of the same reference, to make sure
653 that they are all indexed and sorted properly: 731 that they are all indexed and sorted properly: one\icite[123;
654 one\icite[123]{Ullmann1970}, two\icite[231]{Ullmann1970}, 732 141--148; 245]{Ullmann1970}, two\icite[231]{Ullmann1970},
655 three\icite[81]{Ullmann1970} and four\icite[18]{Ullmann1970}. 733 three\icite[81]{Ullmann1970} and four\icite[18]{Ullmann1970}.
656 734
657 Let us continue with four other citations out of two other 735 Let us continue with four other citations out of two other
@@ -661,16 +739,16 @@
661 Finally, let us have \cs{icite} use \cs{textcite} to cite 739 Finally, let us have \cs{icite} use \cs{textcite} to cite
662 \icite[123]{Endress1992}[textcite], and again, this time in a 740 \icite[123]{Endress1992}[textcite], and again, this time in a
663 footnote\icite[86]{Endress1992}. 741 footnote\icite[86]{Endress1992}.
664\end{code} 742\end{pkgcode}
665% \iffalse 743% \iffalse
666%</example> 744%</example>
667% \fi 745% \fi
668% 746%
669% \begin{tcblisting}{text only} 747% \begin{tcblisting}{text only}
670% \section*{\cs{icite} in action} 748% \section*{\cs{icite} in Action}
671% Let us start with four citations of the same reference, to make 749% Let us start with four citations of the same reference, to make
672% sure that they are all indexed and sorted properly: 750% sure that they are all indexed and sorted properly: one\icite[123;
673% one\icite[123]{Ullmann1970}, two\icite[231]{Ullmann1970}, 751% 141--148; 245]{Ullmann1970}, two\icite[231]{Ullmann1970},
674% three\icite[81]{Ullmann1970} and four\icite[18]{Ullmann1970}. 752% three\icite[81]{Ullmann1970} and four\icite[18]{Ullmann1970}.
675% 753%
676% Let us continue with four other citations out of two other 754% Let us continue with four other citations out of two other
@@ -686,23 +764,23 @@
686% been used can be found below in the appendix 764% been used can be found below in the appendix
687% (\vrefrange{ref:indices}{ref:icite-bib} respectively). As can be 765% (\vrefrange{ref:indices}{ref:icite-bib} respectively). As can be
688% seen by comparing the bibliography generated in the footnotes with 766% seen by comparing the bibliography generated in the footnotes with
689% the text printed in the index, \package{icite} prints as expected 767% the text printed in the index, \pkg{icite} prints as expected
690% the abridged forms of the titles when they are 768% the abridged forms of the titles when they are
691% available. Furthermore, as a default citation command set in the 769% available. Furthermore, as a default citation command set in the
692% preamble, the \enquote*{oxnotes} Bib\LaTeX\ option of 770% preamble, the \enquote*{oxnotes} Bib\LaTeX\ option of
693% \package{biblatex-oxref} style package makes \cs{autocite} behave 771% \pkg{biblatex-oxref} style package makes \cs{autocite} behave
694% like \cs{footcite}. Finally, the page numbers in the index are 772% like \cs{footcite}. Finally, the page numbers in the index are
695% sorted properly: for example, two-digit numbers, like 81, are listed 773% sorted properly: for example, two-digit numbers, like 81, are listed
696% before 123. 774% before 123.
697% 775%
698% \section{Refined use} 776% \section{Refined Use}
699% When references are made not only to modern authors but also to 777% When references are made not only to modern authors but also to
700% authors and works from classical antiquity or from the Middle Ages, 778% authors and works from classical antiquity or from the Middle Ages,
701% it is commonly agreed that at least two separate indices of passages 779% it is commonly agreed that at least two separate indices of passages
702% cited should be made. Another option is not to index passages cited 780% cited should be made. Another option is not to index passages cited
703% from modern authors at all. 781% from modern authors at all.
704% 782%
705% \DescribeMacro{\IndexSubtypeAs} \package{icite} is able to 783% \DescribeMacro{\IndexSubtypeAs} \pkg{icite} is able to
706% differentiate between sources by drawing from the bibliographical 784% differentiate between sources by drawing from the bibliographical
707% database the exact string that may be found in the |entrysubtype| 785% database the exact string that may be found in the |entrysubtype|
708% entry field. To that end, the \cs{IndexSubtypeAs} command is 786% entry field. To that end, the \cs{IndexSubtypeAs} command is
@@ -710,9 +788,9 @@
710% \iffalse 788% \iffalse
711%<*example> 789%<*example>
712% \fi 790% \fi
713\begin{code} 791\begin{pkgcode}
714 \IndexSubtypeAs{<subtype>}{<index_name>} 792 \IndexSubtypeAs{<subtype>}{<index_name>}
715\end{code} 793\end{pkgcode}
716% \iffalse 794% \iffalse
717%</example> 795%</example>
718% \fi 796% \fi
@@ -729,7 +807,7 @@
729% \iffalse 807% \iffalse
730%<*example> 808%<*example>
731% \fi 809% \fi
732\begin{code} 810\begin{pkgcode}
733 % load icite, and have cited authors indexed in an index named 811 % load icite, and have cited authors indexed in an index named
734 % 'secondary': 812 % 'secondary':
735 \usepackage[defaultindex=secondary]{icite} 813 \usepackage[defaultindex=secondary]{icite}
@@ -739,7 +817,7 @@
739 % authors whose 'entrysubtype' field matches the string 'medieval' 817 % authors whose 'entrysubtype' field matches the string 'medieval'
740 % should go into the same index: 818 % should go into the same index:
741 \IndexSubtypeAs{medieval}{primary} 819 \IndexSubtypeAs{medieval}{primary}
742\end{code} 820\end{pkgcode}
743% \iffalse 821% \iffalse
744%</example> 822%</example>
745% \fi 823% \fi
@@ -747,7 +825,7 @@
747% \iffalse 825% \iffalse
748%<*example> 826%<*example>
749% \fi 827% \fi
750\begin{code} 828\begin{pkgcode}
751 % load icite, but do not index passages cited with \icite: 829 % load icite, but do not index passages cited with \icite:
752 \usepackage[defaultindex=none]{icite} 830 \usepackage[defaultindex=none]{icite}
753 % except for authors whose 'entrysubtype' field matches the string 831 % except for authors whose 'entrysubtype' field matches the string
@@ -756,7 +834,7 @@
756 % authors whose 'entrysubtype' field matches the string 'medieval' 834 % authors whose 'entrysubtype' field matches the string 'medieval'
757 % should go into the same index: 835 % should go into the same index:
758 \IndexSubtypeAs{medieval}{primary} 836 \IndexSubtypeAs{medieval}{primary}
759\end{code} 837\end{pkgcode}
760% \iffalse 838% \iffalse
761%</example> 839%</example>
762% \fi 840% \fi
@@ -766,14 +844,14 @@
766% |classical| should go into the default |loccit| index. As for those 844% |classical| should go into the default |loccit| index. As for those
767% whose |entrysubtype| matches |classical|, they should to into an 845% whose |entrysubtype| matches |classical|, they should to into an
768% index named |primary|. \label{ref:classics-pkg}Furthermore, the 846% index named |primary|. \label{ref:classics-pkg}Furthermore, the
769% \package{classics} package is used to format references in which a 847% \pkg{classics} package is used to format references in which a
770% volume number is used.\footnote{For more information, see below 848% volume number is used.\footnote{For more information, see below
771% \vref{sec:classics-usage}.} In this way, \package{xindy} only has 849% \vref{sec:classics-usage}.} In this way, \pkg{xindy} only has
772% numbers to handle:--- % 850% numbers to handle:--- %
773% \iffalse 851% \iffalse
774%<*example> 852%<*example>
775% \fi 853% \fi
776\begin{code} 854\begin{pkgcode}
777 % preamble 855 % preamble
778 \usepackage[style=oxnotes]{biblatex} 856 \usepackage[style=oxnotes]{biblatex}
779 \addbibresource{bibliography.bib} 857 \addbibresource{bibliography.bib}
@@ -789,7 +867,7 @@
789 867
790 \usepackage[citecmd=autocite,defaultindex]{icite} 868 \usepackage[citecmd=autocite,defaultindex]{icite}
791 \IndexSubtypeAs{classical}{primary} 869 \IndexSubtypeAs{classical}{primary}
792\end{code} 870\end{pkgcode}
793% \iffalse 871% \iffalse
794%</example> 872%</example>
795% \fi 873% \fi
@@ -798,11 +876,11 @@
798% \iffalse 876% \iffalse
799%<*example> 877%<*example>
800% \fi 878% \fi
801\begin{code} 879\begin{pkgcode}
802 \section*{\cs{icite} in action} 880 \section*{\cs{icite} in Action}
803 Let us start with four citations of the same reference, to make sure 881 Let us start with four citations of the same reference, to make sure
804 that they are all indexed and sorted properly: 882 that they are all indexed and sorted properly: one\icite[123;
805 one\icite[123]{Ullmann1970}, two\icite[231]{Ullmann1970}, 883 141--148; 245]{Ullmann1970}, two\icite[231]{Ullmann1970},
806 three\icite[81]{Ullmann1970} and four\icite[18]{Ullmann1970}. 884 three\icite[81]{Ullmann1970} and four\icite[18]{Ullmann1970}.
807 885
808 Let us continue with four other citations out of two other 886 Let us continue with four other citations out of two other
@@ -821,16 +899,16 @@
821 Finally, let us have \cs{icite} use \cs{textcite} to cite 899 Finally, let us have \cs{icite} use \cs{textcite} to cite
822 \icite[123]{Endress1992}[textcite], and again, this time in a 900 \icite[123]{Endress1992}[textcite], and again, this time in a
823 footnote\icite[86]{Endress1992}. 901 footnote\icite[86]{Endress1992}.
824\end{code} 902\end{pkgcode}
825% \iffalse 903% \iffalse
826%</example> 904%</example>
827% \fi 905% \fi
828% 906%
829% \begin{tcblisting}{text only} 907% \begin{tcblisting}{text only}
830% \section*{\cs{icite} in action} 908% \section*{\cs{icite} in Action}
831% Let us start with four citations of the same reference, to make 909% Let us start with four citations of the same reference, to make
832% sure that they are all indexed and sorted properly: 910% sure that they are all indexed and sorted properly: one\icite[123;
833% one\icite[123]{Ullmann1970}, two\icite[231]{Ullmann1970}, 911% 141--148; 245]{Ullmann1970}, two\icite[231]{Ullmann1970},
834% three\icite[81]{Ullmann1970} and four\icite[18]{Ullmann1970}. 912% three\icite[81]{Ullmann1970} and four\icite[18]{Ullmann1970}.
835% 913%
836% Let us continue with four other citations out of two other 914% Let us continue with four other citations out of two other
@@ -860,23 +938,23 @@
860% 938%
861% 939%
862% \subsection[The \textsf{classics} package]% 940% \subsection[The \textsf{classics} package]%
863% {The \package{classics} package} % 941% {The \pkg{classics} Package} %
864% \label{sec:classics-usage} 942% \label{sec:classics-usage}
865% As said above \vpageref{ref:classics-pkg}, it is advisable to use 943% As said above \vpageref{ref:classics-pkg}, it is advisable to use
866% the \package{classics} package to format volume, page, column, line 944% the \pkg{classics} package to format volume, page, column, line
867% numbers and the like which are inserted in the \meta{post} optional 945% numbers and the like which are inserted in the \meta{post} optional
868% argument of the \cs{icite} command\autocite{classics}. An example of 946% argument of the \cs{icite} command\autocite{classics}. An example of
869% using \package{classics} to format references to Aristotle according 947% using \pkg{classics} to format references to Aristotle according
870% to Bekker pagination follows:\footnote{See \cite[2]{classics} for 948% to Bekker pagination follows:\footnote{See \cite[2]{classics} for
871% more information.}--- % 949% more information.}--- %
872% \iffalse 950% \iffalse
873%<*example> 951%<*example>
874% \fi 952% \fi
875\begin{code} 953\begin{pkgcode}
876 % preamble: 954 % preamble:
877 \usepackage{classics} 955 \usepackage{classics}
878 \newclassic{aristotle}{#1|\textit{#1}|#1} 956 \newclassic{aristotle}{#1|\textit{#1}|#1}
879\end{code} 957\end{pkgcode}
880% \iffalse 958% \iffalse
881%</example> 959%</example>
882% \fi 960% \fi
@@ -894,7 +972,7 @@
894% \iffalse 972% \iffalse
895%</example> 973%</example>
896% \fi 974% \fi
897% The following prints the same body text while using \package{icite} 975% The following prints the same body text while using \pkg{icite}
898% to have the passages cited inserted in the \emph{Index locorum 976% to have the passages cited inserted in the \emph{Index locorum
899% citatorum} (see below \vref{sec:index-loc-cit}):--- % 977% citatorum} (see below \vref{sec:index-loc-cit}):--- %
900% \iffalse 978% \iffalse
@@ -917,21 +995,21 @@
917% As can be seen, the \cs{notecite} and \cs{pnotecite} commands have 995% As can be seen, the \cs{notecite} and \cs{pnotecite} commands have
918% been used to insert only the references in the body text. 996% been used to insert only the references in the body text.
919% 997%
920% It is also advisable to use \package{xindy} to compile indices of 998% It is also advisable to use \pkg{xindy} to compile indices of
921% passages cited because \package{xindy}, unlike \package{makeindex} 999% passages cited because \pkg{xindy}, unlike \pkg{makeindex}
922% or \package{xindex}, is able to sort numbers properly: for example, 1000% or \pkg{xindex}, is able to sort numbers properly: for example,
923% with \package{xindy}, such a number as 81 will come before 100, but 1001% with \pkg{xindy}, such a number as 81 will come before 100, but
924% will be sorted after 100 with the other two engines. 1002% will be sorted after 100 with the other two engines.
925% \begin{tcblisting}{text only, title=Caveat} 1003% \begin{tcblisting}{text only, title=Caveat}
926% \package{xindy} (actually |texindy|) is also designed to ignore 1004% \pkg{xindy} (actually |texindy|) is also designed to ignore
927% \TeX\ commands by default. However, due to a missing line in 1005% \TeX\ commands by default. However, due to a missing line in
928% |xindy/modules/base/tex.xdy|,\footnote{As the time of writing, in 1006% |xindy/modules/base/tex.xdy|,\footnote{As the time of writing, in
929% \package{xindy} v2.5.1.} this does not apply to so-called 1007% \pkg{xindy} v2.5.1.} this does not apply to so-called
930% \enquote*{starred} \TeX\ commands, such as \cs{aristotle*} from 1008% \enquote*{starred} \TeX\ commands, such as \cs{aristotle*} from
931% the example above. 1009% the example above.
932% \end{tcblisting} 1010% \end{tcblisting}
933% One easy way to get around this issue is to create a style file with 1011% One easy way to get around this issue is to create a style file with
934% a single line that instructs \package{xindy} to ignore the asterisk 1012% a single line that instructs \pkg{xindy} to ignore the asterisk
935% when processing the index, like so:--- % 1013% when processing the index, like so:--- %
936% \iffalse 1014% \iffalse
937%<*example> 1015%<*example>
@@ -948,13 +1026,13 @@
948% \iffalse 1026% \iffalse
949%<*example> 1027%<*example>
950% \fi 1028% \fi
951\begin{code} 1029\begin{pkgcode}
952 % preamble: 1030 % preamble:
953 \usepackage[xindy]{imakeidx} 1031 \usepackage[xindy]{imakeidx}
954 \makeindex[name=loccit, options=-M icite.xdy] 1032 \makeindex[name=loccit, options=-M icite.xdy]
955 % document: 1033 % document:
956 \printindex[loccit] 1034 \printindex[loccit]
957\end{code} 1035\end{pkgcode}
958% \iffalse 1036% \iffalse
959%</example> 1037%</example>
960% \fi 1038% \fi
@@ -963,7 +1041,7 @@
963% 1041%
964% \section{Appendix} 1042% \section{Appendix}
965% Designing the layout of indices is out of the scope of this 1043% Designing the layout of indices is out of the scope of this
966% documentation. For information, the \package{tabto} package has been 1044% documentation. For information, the \pkg{tabto} package has been
967% used in the preamble in combination with the following |xindy| style 1045% used in the preamble in combination with the following |xindy| style
968% file:--- % 1046% file:--- %
969% \iffalse 1047% \iffalse
@@ -979,7 +1057,7 @@
979% 1057%
980% \subsection{Indices} 1058% \subsection{Indices}
981% \label{ref:indices} 1059% \label{ref:indices}
982% \subsubsection{Index of Passages Cited (modern authors)} 1060% \subsubsection{Index of Passages Cited (Modern Authors)}
983% \printindex[loccit] 1061% \printindex[loccit]
984% \needspace{8\baselineskip} 1062% \needspace{8\baselineskip}
985% \subsubsection{\emph{Index locorum citatorum}} 1063% \subsubsection{\emph{Index locorum citatorum}}
@@ -987,7 +1065,7 @@
987% \printindex[primary] 1065% \printindex[primary]
988% 1066%
989% \subsection{\texorpdfstring{\hologo{BibTeX} 1067% \subsection{\texorpdfstring{\hologo{BibTeX}
990% file used in this document}{BibTeX file used in this document}} 1068% File Used in this Document}{BibTeX File Used in this Document}}
991% \label{ref:icite-bib} 1069% \label{ref:icite-bib}
992% \tcbinputlisting{minted options={linenos, numbersep=1.5mm}, minted 1070% \tcbinputlisting{minted options={linenos, numbersep=1.5mm}, minted
993% language=bibtex, listing file=icite.bib, listing only} 1071% language=bibtex, listing file=icite.bib, listing only}
@@ -1021,7 +1099,7 @@
1021\ExecuteOptionsX{citecmd} 1099\ExecuteOptionsX{citecmd}
1022\ProcessOptionsX\relax 1100\ProcessOptionsX\relax
1023% \end{macrocode} 1101% \end{macrocode}
1024% The following packages are required by \package{icite}: 1102% The following packages are required by \pkg{icite}:
1025% \begin{macrocode} 1103% \begin{macrocode}
1026\RequirePackage{xparse} 1104\RequirePackage{xparse}
1027\RequirePackage{datatool} 1105\RequirePackage{datatool}
@@ -1032,7 +1110,7 @@
1032% \begin{macrocode} 1110% \begin{macrocode}
1033\NewDocumentCommand{\ic@nullcmd}{O{}O{}m}{} 1111\NewDocumentCommand{\ic@nullcmd}{O{}O{}m}{}
1034% \end{macrocode} 1112% \end{macrocode}
1035% Define fields to be used by \package{icite}: 1113% Define fields to be used by \pkg{icite}:
1036% \begin{macrocode} 1114% \begin{macrocode}
1037\define@reuse@key{author} 1115\define@reuse@key{author}
1038\define@reuse@key{indexauthor} 1116\define@reuse@key{indexauthor}
@@ -1044,13 +1122,13 @@
1044\define@reuse@key{entrysubtype} 1122\define@reuse@key{entrysubtype}
1045\define@reuse@key{shorthand} 1123\define@reuse@key{shorthand}
1046% \end{macrocode} 1124% \end{macrocode}
1047% This is the same as \cs{usebibentry} from \package{ebib}, but it 1125% This is the same as \cs{usebibentry} from \pkg{ebib}, but it
1048% does not return an error if the entry field is not found: 1126% does not return an error if the entry field is not found:
1049% \begin{macrocode} 1127% \begin{macrocode}
1050\def\get@bibentry#1#2{\@ifundefined{reuse@#1@#2}{} 1128\def\get@bibentry#1#2{\@ifundefined{reuse@#1@#2}{}
1051 {\@nameuse{reuse@#1@#2}}} 1129 {\@nameuse{reuse@#1@#2}}}
1052% \end{macrocode} 1130% \end{macrocode}
1053% Create a new database which \package{icite} will use to connect 1131% Create a new database which \pkg{icite} will use to connect
1054% Bib\LaTeX\ \enquote*{subtypes} to indices. 1132% Bib\LaTeX\ \enquote*{subtypes} to indices.
1055% \begin{macrocode} 1133% \begin{macrocode}
1056\DTLnewdb{icite@indices} 1134\DTLnewdb{icite@indices}
@@ -1112,7 +1190,40 @@
1112% citation command to be used, like so:\\ 1190% citation command to be used, like so:\\
1113% \cs{icite}\oarg{pre}\oarg{post}\marg{key}\oarg{command}\\ 1191% \cs{icite}\oarg{pre}\oarg{post}\marg{key}\oarg{command}\\
1114% Only standard citation commands are accepted, with the exception of 1192% Only standard citation commands are accepted, with the exception of
1115% qualified citation lists or so-called \enquote*{multicite} commands. 1193% qualified citation lists or so-called \enquote*{multicite}
1194% commands. As of v1.4, \pkg{icite} can process separate index entries
1195% from lists of numbers inserted in the \meta{postnote} argument of
1196% \cs{icite}. For this mechanism to work, the indexing commands used
1197% by \cs{icite} must be defined beforehand:---
1198% \begin{macrocode}
1199\NewDocumentCommand{\icite@dflt@index}{m}{%
1200 \index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#1}}
1201\NewDocumentCommand{\icite@std@index}{m}{%
1202 \index[\icite@index]{\@sortedauthor!\@sortedtitle!#1}}
1203\NewDocumentCommand{\icite@nodflt@index}{m}{%
1204 \index{\@sortedauthor!\@sortedtitle!#1}}
1205% \end{macrocode}
1206% Then \cs{process@index@list} is used to split the argument of
1207% |<postnote>| at each occurrence of the |;| punctuation mark:---
1208% \begin{macrocode}
1209\NewDocumentCommand{\process@index@list}
1210 {m > { \SplitList { ; } } m}{%
1211 \def\@tempa{#1}%
1212 \def\@dflt{dflt}%
1213 \def\@std{std}%
1214 \def\@nodflt{nodflt}%
1215 \ifx\@tempa\@dflt
1216 \ProcessList {#2} { \icite@dflt@index }%
1217 \else
1218 \ifx\@tempa\@std
1219 \ProcessList {#2} { \icite@std@index }%
1220 \else
1221 \ifx\@tempa\@nodflt
1222 \ProcessList {#2} { \icite@nodflt@index }%
1223 \fi\fi\fi
1224}
1225% \end{macrocode}
1226% The definition of \cs{icite} follows:---
1116% \begin{macrocode} 1227% \begin{macrocode}
1117\NewDocumentCommand{\icite}{o o m O{\ic@dfltcit}}{% 1228\NewDocumentCommand{\icite}{o o m O{\ic@dfltcit}}{%
1118 \edef\ic@argiv{#4}% 1229 \edef\ic@argiv{#4}%
@@ -1189,23 +1300,28 @@
1189 {\DTLifdbempty{icite@indices}{% 1300 {\DTLifdbempty{icite@indices}{%
1190 \ifno@index\else 1301 \ifno@index\else
1191 \ifdefault@index% 1302 \ifdefault@index%
1192 \index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#1}% 1303 \process@index@list{dflt}{#1}%
1304 %\index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#1}%
1193 \else% 1305 \else%
1194 \index{\@sortedauthor!\@sortedtitle!#1}% 1306 \process@index@list{nodflt}{#1}%
1307 %\index{\@sortedauthor!\@sortedtitle!#1}%
1195 \fi\fi% 1308 \fi\fi%
1196 }{% 1309 }{%
1197 \bgroup% 1310 \bgroup%
1198 \DTLforeach*{icite@indices}{% 1311 \DTLforeach*{icite@indices}{%
1199 \icite@subtype=subtype,\icite@index=index}{% 1312 \icite@subtype=subtype,\icite@index=index}{%
1200 \ifx\@subtype\icite@subtype% 1313 \ifx\@subtype\icite@subtype%
1201 \index[\icite@index]{\@sortedauthor!\@sortedtitle!#1}% 1314 \process@index@list{std}{#1}%
1315 %\index[\icite@index]{\@sortedauthor!\@sortedtitle!#1}%
1202 \dtlbreak% 1316 \dtlbreak%
1203 \else% 1317 \else%
1204 \ifno@index\else 1318 \ifno@index\else
1205 \ifdefault@index% 1319 \ifdefault@index%
1206 \index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#1}% 1320 \process@index@list{dflt}{#1}%
1321 %\index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#1}%
1207 \else% 1322 \else%
1208 \index{\@sortedauthor!\@sortedtitle!#1}% 1323 \process@index@list{nodflt}{#1}%
1324 %\index{\@sortedauthor!\@sortedtitle!#1}%
1209 \fi\fi% 1325 \fi\fi%
1210 \fi}% 1326 \fi}%
1211 \egroup}% 1327 \egroup}%
@@ -1223,23 +1339,28 @@
1223 {\DTLifdbempty{icite@indices}{% 1339 {\DTLifdbempty{icite@indices}{%
1224 \ifno@index\else 1340 \ifno@index\else
1225 \ifdefault@index% 1341 \ifdefault@index%
1226 \index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#2}% 1342 \process@index@list{dflt}{#2}%
1343 %\index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#2}%
1227 \else% 1344 \else%
1228 \index{\@sortedauthor!\@sortedtitle!#2}% 1345 \process@index@list{nodflt}{#2}%
1346 %\index{\@sortedauthor!\@sortedtitle!#2}%
1229 \fi\fi% 1347 \fi\fi%
1230 }{% 1348 }{%
1231 \bgroup% 1349 \bgroup%
1232 \DTLforeach*{icite@indices}{% 1350 \DTLforeach*{icite@indices}{%
1233 \icite@subtype=subtype,\icite@index=index}{% 1351 \icite@subtype=subtype,\icite@index=index}{%
1234 \ifx\@subtype\icite@subtype% 1352 \ifx\@subtype\icite@subtype%
1235 \index[\icite@index]{\@sortedauthor!\@sortedtitle!#2}% 1353 \process@index@list{std}{#2}%
1354 %\index[\icite@index]{\@sortedauthor!\@sortedtitle!#2}%
1236 \dtlbreak% 1355 \dtlbreak%
1237 \else% 1356 \else%
1238 \ifno@index\else 1357 \ifno@index\else
1239 \ifdefault@index% 1358 \ifdefault@index%
1240 \index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#2}% 1359 \process@index@list{dflt}{#2}%
1360 %\index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#2}%
1241 \else% 1361 \else%
1242 \index{\@sortedauthor!\@sortedtitle!#2}% 1362 \process@index@list{nodflt}{#2}%
1363 %\index{\@sortedauthor!\@sortedtitle!#2}%
1243 \fi\fi% 1364 \fi\fi%
1244 \fi}% 1365 \fi}%
1245 \egroup}% 1366 \egroup}%