Compare commits

...

12 Commits

Author SHA1 Message Date
Robert Alessi bafea457f7 removed -s from pandoc rule 2023-10-29 15:21:06 +01:00
Robert Alessi 58bdee4b16 updated etoc settings 2023-06-26 17:14:12 +02:00
Robert Alessi 9e6fb0eba8 COPYING -> LICENSE 2023-01-30 10:53:30 +01:00
Robert Alessi adc5f5015d makefile: use typeoutfileinfo instead of ltxfileinfo 2023-01-28 20:58:54 +01:00
Robert Alessi f204896c74 a couple of errors in the dates 2023-01-24 19:35:19 +01:00
Robert Alessi 95fd135a7c v1.4 to come will be licensed under the terms of OpenBSD license 2023-01-24 17:55:26 +01:00
Robert Alessi 9565b02dca set to v1.4-dev. icite can now process list of references 2023-01-24 14:23:01 +01:00
Robert Alessi 4dada9513e use fontsetup until selecting NewCM by font name is possible again 2021-05-22 18:23:39 +02:00
Robert Alessi 3c3dd447ec better put the patch outside this repository 2020-11-08 15:26:12 +01:00
Robert Alessi c342d7d82e minted needs a temporary patch because of a bug in the current luatex hyphenation mechanism 2020-11-08 11:23:55 +01:00
Robert Alessi ce473df703 a typo 2020-10-08 11:46:56 +02:00
Robert Alessi 9d56f08e6f pass keeppdfinfo to hypersetup 2020-03-27 12:10:19 +01:00
7 changed files with 475 additions and 315 deletions

8
AUTHORS.md Normal file
View File

@ -0,0 +1,8 @@
Author of the `icite` package
=============================
Robert Alessi
: Personal email: <alessi@robertalessi.net>
: Institutional email: <robert.alessi@cnrs.fr>
: Affiliation: [UMR 8167 Orient & Méditerranée (Paris, France)](https://www.orient-mediterranee.com)
: More information: <https://ctan.org/pkg/icite> or <https://sr.ht/~ralessi/icite>

17
LICENSE Normal file
View File

@ -0,0 +1,17 @@
icite -- Index locorum citatorum
--------------------------------
Copyright (c) 2019, 2020, 2021, 2023 Robert Alessi
<alessi@robertalessi.net>
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

View File

@ -1,14 +1,15 @@
NAME = icite
SHELL = bash
PWD = $(shell pwd)
VERS = $(shell ltxfileinfo -v $(NAME).dtx|sed -e 's/^v//')
#VERS = $(shell ltxfileinfo -v $(NAME).dtx|sed -e 's/^v//')
VERS := $(shell typeoutfileinfo $(NAME).dtx | egrep -o '\+.*$$' | awk '{ print $$6 }' | sed -e 's/^v//')
LOCAL = $(shell kpsewhich --var-value TEXMFLOCAL)
UTREE = $(shell kpsewhich --var-value TEXMFHOME)
CMP = lualatex-dev
exts := md bib ins dtx html
texsamples := $(basename $(wildcard $(PWD)/samples/*.tex))
findopts := $(foreach ext,$(exts),-or -iname "*.$(ext)")
findopts := $(foreach ext,$(exts),-or -iname "LICENSE" -or -iname "*.$(ext)")
# Look into this later
@ -66,7 +67,7 @@ clean:
rm -rf *
cp -p -r .backup/* .
rm -rf .backup
pandoc -s README.md -o about.html
pandoc README.md -o about.html
distclean: clean uninst
@ -100,6 +101,9 @@ zip: all
zip -Drq $(PWD)/$(NAME)-$(VERS).zip $(NAME)/{samples,README.md,$(NAME).{pdf,dtx,ins}}
rm $(NAME)
hal: clean
zip -Drq $(PWD)/$(NAME)-$(VERS).zip *
package: distclean all
mkdir $(NAME)/
cp Makefile README.md $(NAME).{ins,dtx,pdf} $(NAME)/

View File

@ -17,30 +17,29 @@ License and disclamer
icite Indices locorum citatorum
Copyright ⓒ 2019--2020 Robert Alessi
Copyright ⓒ 2019, 2020, 2021, 2023 Robert Alessi
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Please send error reports and suggestions for improvements to Robert
Alessi:
- email: <alessi@robertalessi.net>
- website: <http://www.robertalessi.net/icite>
- website: <https://sr.ht/~ralessi/icite>
- comments, feature requests, bug reports:
<https://gitlab.com/ralessi/icite/issues>
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.
You should have received a copy of the GNU General Public License along
with this program. If not, see <http://www.gnu.org/licenses/>.
<https://todo.sr.ht/~ralessi/icite>
This release of icite consists of the following source files:
@ -50,17 +49,6 @@ This release of icite consists of the following source files:
- `Makefile`
License applicable to the documentation
---------------------------------------
Copyright ⓒ 2019--2020 Robert Alessi
The documentation file `icite.pdf` that is generated from the
`icite.dtx` source file is licensed under the Creative Commons
Attribution-ShareAlike 4.0 International License. To view a copy of this
license, visit <http://creativecommons.org/licenses/by-sa/4.0/> or send
a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
Installation
============
@ -77,7 +65,7 @@ Browse the code
---------------
You can browse icite repository on the web:
<http://git.robertalessi.net/icite>
<https://git.sr.ht/~ralessi/icite>
From this page, you can download all the releases of `icite`. For
instructions on how to install `icite`, please see above.
@ -85,18 +73,18 @@ instructions on how to install `icite`, please see above.
Comments, Feature requests, Bug Reports
---------------------------------------
<https://gitlab.com/ralessi/icite/issues>
<https://todo.sr.ht/~ralessi/icite>
Download the repository
-----------------------
`icite` development is facilitated by git, a distributed version
control system. You will need to install git (most GNU/Linux
control system. You will need to install git (most Unix/Linux
distributions package it in their repositories).
Use this command to download the repository
git clone http://git.robertalessi.net/icite
git clone https://git.sr.ht/~ralessi/icite
A new directory named icite will have been created, containing
`icite`.
@ -104,8 +92,8 @@ A new directory named icite will have been created, containing
Git hosting
-----------
Make an account on <https://gitlab.com> and navigate (while logged in)
to <https://gitlab.com/ralessi/icite>. Click *Fork* and you will
have in your account your own repository of `icite` where you will
be able to make whatever changes you like to.
Make an account on <https://sr.ht> and navigate (while logged in) to
<https://git.sr.ht/~ralessi/icite>. Click *Clone repo to your account*
and you will have in your account your own repository of `icite` where
you will be able to make whatever changes you like to.

View File

@ -1,58 +1,76 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="generator" content="pandoc" />
<meta name="author" content="Robert Alessi" />
<title>The icite package README file</title>
<style type="text/css">code{white-space: pre;}</style>
</head>
<body>
<div id="header">
<h1 class="title">The icite package README file</h1>
<h2 class="author">Robert Alessi</h2>
</div>
<h1 id="overview">Overview</h1>
<p><code>icite</code> is designed to produce from BibTeX or BibLaTeX bibliographical databases the different indices of authors and works cited which are called <em>indices locorum citatorum</em>. It relies on a specific <code>\icite</code> command and can operate with either BibTeX or BibLaTeX.</p>
<p><code>icite</code> is designed to produce from BibTeX or BibLaTeX
bibliographical databases the different indices of authors and works
cited which are called <em>indices locorum citatorum</em>. It relies on
a specific <code>\icite</code> command and can operate with either
BibTeX or BibLaTeX.</p>
<h1 id="license-and-disclamer">License and disclamer</h1>
<p>icite Indices locorum citatorum</p>
<p>Copyright ⓒ 2019--2020 Robert Alessi</p>
<p>Please send error reports and suggestions for improvements to Robert Alessi:</p>
<p>Copyright ⓒ 2019, 2020, 2021, 2023 Robert Alessi</p>
<p>Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.</p>
<p>THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.</p>
<p>Please send error reports and suggestions for improvements to Robert
Alessi:</p>
<ul>
<li><p>email: <a href="mailto:alessi@robertalessi.net">alessi@robertalessi.net</a></p></li>
<li><p>website: <a href="http://www.robertalessi.net/icite" class="uri">http://www.robertalessi.net/icite</a></p></li>
<li><p>comments, feature requests, bug reports: <a href="https://gitlab.com/ralessi/icite/issues" class="uri">https://gitlab.com/ralessi/icite/issues</a></p></li>
<li><p>email: <a href="mailto:alessi@robertalessi.net"
class="email">alessi@robertalessi.net</a></p></li>
<li><p>website: <a href="https://sr.ht/~ralessi/icite"
class="uri">https://sr.ht/~ralessi/icite</a></p></li>
<li><p>comments, feature requests, bug reports: <a
href="https://todo.sr.ht/~ralessi/icite"
class="uri">https://todo.sr.ht/~ralessi/icite</a></p></li>
</ul>
<p>This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</p>
<p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p>
<p>You should have received a copy of the GNU General Public License along with this program. If not, see <a href="http://www.gnu.org/licenses/" class="uri">http://www.gnu.org/licenses/</a>.</p>
<p>This release of icite consists of the following source files:</p>
<ul>
<li><p><code>icite.dtx</code></p></li>
<li><p><code>icite.ins</code></p></li>
<li><p><code>Makefile</code></p></li>
</ul>
<h2 id="license-applicable-to-the-documentation">License applicable to the documentation</h2>
<p>Copyright ⓒ 2019--2020 Robert Alessi</p>
<p>The documentation file <code>icite.pdf</code> that is generated from the <code>icite.dtx</code> source file is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit <a href="http://creativecommons.org/licenses/by-sa/4.0/" class="uri">http://creativecommons.org/licenses/by-sa/4.0/</a> or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.</p>
<h1 id="installation">Installation</h1>
<ol style="list-style-type: decimal">
<li><p>Run <code>'latex icite.ins'</code> to produce the <code>icite.sty</code> file.</p></li>
<li><p>To finish the installation you have to move the <code>icite.sty</code> file into a directory where LaTeX can find it. See the FAQ on <code>texfaq.org</code> at <a href="https://texfaq.org/FAQ-inst-wlcf" class="uri">https://texfaq.org/FAQ-inst-wlcf</a> for more on this.</p></li>
<ol type="1">
<li><p>Run <code>'latex icite.ins'</code> to produce the
<code>icite.sty</code> file.</p></li>
<li><p>To finish the installation you have to move the
<code>icite.sty</code> file into a directory where LaTeX can find it.
See the FAQ on <code>texfaq.org</code> at <a
href="https://texfaq.org/FAQ-inst-wlcf"
class="uri">https://texfaq.org/FAQ-inst-wlcf</a> for more on
this.</p></li>
</ol>
<h1 id="development-git-repository">Development, Git Repository</h1>
<h2 id="browse-the-code">Browse the code</h2>
<p>You can browse icite repository on the web: <a href="http://git.robertalessi.net/icite" class="uri">http://git.robertalessi.net/icite</a></p>
<p>From this page, you can download all the releases of <code>icite</code>. For instructions on how to install <code>icite</code>, please see above.</p>
<h2 id="comments-feature-requests-bug-reports">Comments, Feature requests, Bug Reports</h2>
<p><a href="https://gitlab.com/ralessi/icite/issues" class="uri">https://gitlab.com/ralessi/icite/issues</a></p>
<p>You can browse icite repository on the web: <a
href="https://git.sr.ht/~ralessi/icite"
class="uri">https://git.sr.ht/~ralessi/icite</a></p>
<p>From this page, you can download all the releases of
<code>icite</code>. For instructions on how to install
<code>icite</code>, please see above.</p>
<h2 id="comments-feature-requests-bug-reports">Comments, Feature
requests, Bug Reports</h2>
<p><a href="https://todo.sr.ht/~ralessi/icite"
class="uri">https://todo.sr.ht/~ralessi/icite</a></p>
<h2 id="download-the-repository">Download the repository</h2>
<p><code>icite</code> development is facilitated by git, a distributed version control system. You will need to install git (most GNU/Linux distributions package it in their repositories).</p>
<p><code>icite</code> development is facilitated by git, a distributed
version control system. You will need to install git (most Unix/Linux
distributions package it in their repositories).</p>
<p>Use this command to download the repository</p>
<pre><code>git clone http://git.robertalessi.net/icite</code></pre>
<p>A new directory named icite will have been created, containing <code>icite</code>.</p>
<pre><code>git clone https://git.sr.ht/~ralessi/icite</code></pre>
<p>A new directory named icite will have been created, containing
<code>icite</code>.</p>
<h2 id="git-hosting">Git hosting</h2>
<p>Make an account on <a href="https://gitlab.com" class="uri">https://gitlab.com</a> and navigate (while logged in) to <a href="https://gitlab.com/ralessi/icite" class="uri">https://gitlab.com/ralessi/icite</a>. Click <em>Fork</em> and you will have in your account your own repository of <code>icite</code> where you will be able to make whatever changes you like to.</p>
</body>
</html>
<p>Make an account on <a href="https://sr.ht"
class="uri">https://sr.ht</a> and navigate (while logged in) to <a
href="https://git.sr.ht/~ralessi/icite"
class="uri">https://git.sr.ht/~ralessi/icite</a>. Click <em>Clone repo
to your account</em> and you will have in your account your own
repository of <code>icite</code> where you will be able to make whatever
changes you like to.</p>

535
icite.dtx
View File

@ -1,23 +1,21 @@
% \iffalse meta-comment
% icite -- Indices locorum citatorum
% Copyright (C) 2019--2020 Robert Alesssi
% Copyright (C) 2019, 2020, 2021, 2023 Robert Alesssi
%
% Permission to use, copy, modify, and distribute this software for any
% purpose with or without fee is hereby granted, provided that the above
% copyright notice and this permission notice appear in all copies.
%
% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
%
% Please send error reports and suggestions for improvements to Robert
% Alessi <alessi@robertalessi.net>
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
%
% This program is distributed in the hope that it will be useful, but
% WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
% General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program. If not, see
% <http://www.gnu.org/licenses/>.
% \fi
%
% \iffalse
@ -27,7 +25,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{icite}
%<*package>
[2020/03/05 v1.3a Make Indices locorum citatorum]
[2023/01/24 v1.4-dev Make Indices locorum citatorum]
%</package>
%<*driver>
\documentclass{ltxdoc}
@ -180,34 +178,86 @@
}
\end{filecontents*}
\usepackage{fontspec}
\usepackage[english]{babel}
\usepackage[american]{babel}
\usepackage[letterpaper,margin=25mm,left=50mm,nohead]{geometry}
\babelfont{rm}{Old Standard}
\babelfont{sf}{NewComputerModern Sans}
\babelfont{tt}{NewComputerModern Mono}
\babelfont{rm}[RawFeature=onum]{Old Standard}
\babelfont{sf}{NewComputerModernSans10}
\babelfont{tt}{NewComputerModernMono10}
\usepackage{arabluatex}
\SetTranslitConvention{loc}
\usepackage{xurl}
\usepackage{uri}
\usepackage{hyperxmp}
\usepackage{varioref}
\usepackage[obeyspaces]{url}
\usepackage[nospace,american]{varioref}
\labelformat{section}{sect.~#1}
\labelformat{subsection}{sect.~#1}
\labelformat{subsubsection}{sect.~#1}
\labelformat{figure}{fig.~#1}
\newcommand\phts{\phantomsection}
\usepackage{latexcolors}
\usepackage[numbered]{hypdoc}
\hypersetup{unicode=true, colorlinks, allcolors=cinnamon,
linktocpage=true, pdfauthor={Robert Alessi}, pdftitle={The
icite package}, pdfcontactemail={alessi@robertalessi.net},
pdfcontacturl={http://www.robertalessi.net/icite},
pdfcopyright={Copyright (C) 2019--2020 Robert Alessi
<alessi@robertalessi.net>. This document is licensed under the
Creative Commons Attribution-ShareAlike 4.0 International
License. To view a copy of this license, visit
http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to
Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.},
pdflicenseurl={https://creativecommons.org/licenses/by-sa/4.0/legalcode},
pdfmetalang={en-US}, pdftype={Text}, pdfkeywords={bibtex, biblatex,
indexing}}
\usepackage{amsmath}
\usepackage{cleveref}
\usepackage[loadlang=en]{metastr}
\hypersetup{
colorlinks,
allcolors=cinnamon,
linktocpage=true,
pdftype={Text}
}
\metaset{titletext}{%
\metapick[#1]{title}%
\metacompose[#1]{subtitle}{\metaget[sep]{subtitle}}{}{}}
\metaset[print]{titletext}{%
\metatitleline[print]{title}%
\metatitleline[print]{subtitle}%
\metatitleline[print]{author}%
\metatitleline[print]{contactemail}%
\metatitlelinetwo[print]{date}[print]{draft}}
\metaset[skip]{subtitle}{\vspace{1ex}}
\metaset[skip]{author}{\vspace{2ex}}
\metaset[skip]{date}{\vspace{1ex}}
\metaset[style]{title}{\LARGE}
\metaset[style]{author}{\large}
\metaset[sep]{draft}{ -- }
\metasetlang{en-US}
\metaset{title}{icite}
\metaset[print]{title}{\textsf{icite}}
\metaset{date}{\filedate}
\metaset{draft}{\fileversion}
\metaset{subject}{Indices locorum citatorum}
\metaset{subtitle}{Indices locorum citatorum}
\metaset[print]{subtitle}{\emph{Indices locorum citatorum}}
\metaset{author}{Robert Alessi}
\metaset{keywords}{LaTeX, Lua, bibliography, index}
\metaset{contactemail}{alessi@roberalessi.net}
\metaset[print]{contactemail}{\mailto[icite]{alessi@robertalessi.net}}
\metaset{contacturl}{http://www.roberalessi.net}
\metaset{partof}{The icite Package}
\metaset[print]{partof}{The \textsf{icite} Package}
\metaset{copyrightowner}{\metapick[#1]{author}}
\metaset{copyrightdate}{2019, 2020, 2021, 2023}
\metaset{licensemessage}{Permission to use, copy, modify, and
distribute this software for any purpose with or without fee is
hereby granted, provided that the above copyright notice and this
permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA
OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.}
\metaset{licenseurl}{%
https://cvsweb.openbsd.org/src/share/misc/license.template?rev=HEAD}
\metaset[print]{licenseurl}{%
\url{https://cvsweb.openbsd.org/src/share/misc/license.template?rev=HEAD}}
\metaset[cmd]{licenselogo}{\includegraphics[scale=0.75]{#1}}
\metawritepdfinfo
\metawritepdfaux
\metawritepdfpreamble
\metawritepdfcontact
\metawritepdfrights
\usepackage{uri}
\CodelineIndex
\usepackage[citecmd=autocite,defaultindex]{\jobname}
\IndexSubtypeAs{classical}{primary}
@ -226,13 +276,19 @@
\newclassic{nadim}{\classicsRoman{#1}|.#1|, #1}
\newclassic{aristotle}{#1|\textit{#1}|#1}
\usepackage[scale=1.5]{ccicons}
\usepackage{dox}
\doxitem{Option}{option}{options}
%^^A dox does not work with the latest latex-dev:
\ifdefined\SpecialMacroIndex
\NewDocElement{Option}{option}
\else
\usepackage{dox}
\doxitem{Option}{option}{options}
\fi
\usepackage{enumitem}
\setlist{nosep}
\setlist[itemize]{label=\textendash}
\setlist[enumerate,1]{label=(\alph*)}
\setlist[enumerate,2]{label=\roman*.}
\usepackage[shortcuts, nospacearound]{extdash}
\usepackage[lot]{multitoc}
\usepackage{nameref}
\usepackage{csquotes}
@ -244,34 +300,45 @@
\usepackage{units}
\usepackage{minted}
\usepackage[contents]{colordoc}
\newcommand{\package}[1]{\textsf{#1}\index{#1=#1 (package)}}
\newcommand{\pkg}[1]{\textsf{#1}\index{#1=#1 (package)}}
\usepackage{tikz}
\usepackage[breakable, skins, xparse, minted]{tcolorbox}
\tcbset{colback=white, boxrule=.15mm, colframe=cinnamon,
breakable}
\newtcblisting{example}{minted options={linenos, numbersep=0mm}}
\newtcblisting{code}{minted options={linenos, numbersep=0mm}, listing
\newtcblisting{pkgcode}{minted options={linenos, numbersep=0mm}, listing
only}
\NewDocumentCommand{\newfeature}{o}{%
\leavevmode
\IfNoValueTF{#1}
{\marginpar{\hfill\emph{New feature}}}
{\marginpar{\hfill\emph{New feature} #1}}%
\ignorespaces
}
\usepackage{etoc}
\etocsettocdepth{paragraph}
\makeatletter
\newcommand{\icitetableofcontents}{%
\begingroup
\etocsetstyle{section}{}{}
{\etocsavedsectiontocline{%
{\l@section{%
\numberline{\etocnumber}\etocname}{\etocpage}}{}
\etocsetstyle{subsection}{}{}
{\etocsavedsubsectiontocline{%
{\l@subsection{%
\numberline{\etocnumber}\etocname}{\etocpage}}{}%
\etocsetstyle{subsubsection}{}{}
{\etocsavedsubsubsectiontocline{%
{\l@subsubsection{%
\numberline{\etocnumber}\etocname}{\etocpage}}{}%
\etocsetstyle{paragraph}{}{\leftskip2cm\rightskip 2.2em \parfillskip
0pt plus 1fil\relax \nobreak}
{\noindent\etocname{} \etocpage{} }{\par}%
\etocmulticolstyle[2]{\section*{Contents}}
\pdfbookmark[1]{Contents}{toc}
\tableofcontents
\etoctoclines
\localtableofcontents
\endgroup}
\makeatother
\EnableCrossrefs
%\CodelineIndex
\RecordChanges
@ -290,7 +357,7 @@
%</driver>
% \fi
%
% \CheckSum{360}
% \CheckSum{0}
%
% \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
@ -328,23 +395,19 @@
% \GetFileInfo{\jobname.dtx}
% \DoNotIndex{\newcommand,\newenvironment}
%
% \newcommand*{\NEWfeature}[1]{%
% \hskip 1sp \marginpar{\small\sffamily\raggedright
% New feature\\#1}}
% \pdfbookmark[1]{\metaterm{title}}{title}
% \begin{tcolorbox}[
% colframe=black,
% enhanced,
% drop lifted shadow,
% colback=white,
% boxrule=.25mm,
% halign=center,
% center
% ]
% \metapick[print]{titletext}
% \end{tcolorbox}
%
% \title{\tcbox[colframe=black, enhanced, tikznode, drop lifted
% shadow, colback=white, boxrule=.25mm]{%
% The \textsf{icite} package\\
% \emph{Indices locorum citatorum}\\
% \fileversion\ --- \filedate}}
%
% \author{Robert Alessi \\
% \href{mailto:alessi@robertalessi.net?Subject=icite package}%
% {\texttt{alessi@robertalessi.net}}}
%
% \date{}
%
% \maketitle
% \footnotesize
% \icitetableofcontents
% \normalsize
@ -352,47 +415,65 @@
% \changes{v1.00}{2019/03/07}{First public release}
%
% \begin{abstract}
% \package{icite} is designed to produce from \hologo{BibTeX} or
% \pkg{icite} is designed to produce from \hologo{BibTeX} or
% Bib\LaTeX\ bibliographical databases the different indices of
% authors and works cited which are called \emph{indices locorum
% citatorum}. It relies on a specific \cs{icite} command and can
% operate with either \hologo{BibTeX} or Bib\LaTeX.
% \end{abstract}
%
% \section*{License and disclamer}
% \section*{License and Disclaimer}
% \addcontentsline{toc}{section}{License and disclamer}
% \subsection*{License applicable to the software}
% \label{sec:license-software}
%
% \package{icite} --- \emph{Indices locorum citatorum}\\
% Copyright \textcopyright\ 2019--2020 Robert Alessi
%
% \pkg{icite} --- \metapick[print]{subtitle}
% \metapick[print]{copyrightstatement}
%
% \leavevmode\marginpar{\hfill\texttt{OpenBSD}} \pkg{icite} is
% licensed under the terms of the so-called OpenBSD license, as it is
% modelled after the ISC copyright, which is functionally equivalent
% to a two-term BSD copyright with language removed that is made
% unnecessary by the Berne convention.\footnote{More information about
% the OpenBSD policy to which \pkg{icite} adheres:
% \url{https://www.openbsd.org/policy.html}.}
%
% \iffalse
%<*example>
% \fi
\begin{minted}[linenos=false]{text}
icite -- Index locorum citatorum
--------------------------------
Copyright (c) 2019, 2020, 2021, 2023 Robert Alessi
<alessi@robertalessi.net>
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
\end{minted}
% \iffalse
%</example>
% \fi
%
% Please send error reports and suggestions for improvements to Robert
% Alessi:
% \begin{itemize}
% \item email: \mailto[icite package]{alessi@roberalessi.net}
% \item website: \url{http://www.robertalessi.net/icite}
% \item email: \mailto[icite package]{Robert Alessi <alessi@roberalessi.net>}
% \item website: \url{https://sr.ht/~ralessi/icite/}
% \item development: \url{http://git.robertalessi.net/icite}
% \item comments, feature requests, bug reports:
% \url{https://gitlab.com/ralessi/icite/issues}
% \url{https://todo.sr.ht/~ralessi/icite}
% \end{itemize}
%
% \marginpar{\texttt{gpl3+}}
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
%
% This program is distributed in the hope that it will be useful, but
% WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
% General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program. If not, see
% <http://www.gnu.org/licenses/>.
%
% This release of \package{icite} consists of the following
% This release of \pkg{icite} consists of the following
% source files:
% \begin{itemize}
% \item |icite.dtx|
@ -400,18 +481,6 @@
% \item |Makefile|
% \end{itemize}
%
% \subsection*{License applicable to this document}
% \label{sec:documentation-license}
% Copyright \textcopyright\ 2019--2020 Robert Alessi
%
% \ccbysa\marginpar{\texttt{CC BY-SA 4.0}}
% This document is licensed under the Creative Commons
% Attribution-ShareAlike 4.0 International License. To view a copy of
% this license, visit
% \url{http://creativecommons.org/licenses/by-sa/4.0/} or send a
% letter to Creative Commons, PO Box 1866, Mountain View, CA 94042,
% USA.
%
% \section{Introduction}
% \label{sec:introduction}
% Bib\LaTeX\ features a very powerful internal mechanism which
@ -428,27 +497,27 @@
% intricate business and requires knowing how to redefine and/or patch
% standard and internal Bib\LaTeX\ commands.
%
% The \package{icite} package is but a modest piece of software which
% The \pkg{icite} package is but a modest piece of software which
% addresses this situation. It relies on citation commands, but does
% not require Bib\LaTeX. Instead, \hologo{BibTeX} can be used as
% \package{icite} uses the \package{usebib}
% package\footnote{\cite{usebib}} to build the indices by drawing
% directly from the bibliographical database.
% not require Bib\LaTeX. Instead, \hologo{BibTeX}, or even no
% bibliographic engine, can be used as \pkg{icite} uses the
% \pkg{usebib} package\footnote{\cite{usebib}} to build the indices by
% drawing directly from the bibliographical database.
%
%
% \section[The \package{icite} package]{The \textsf{icite} package}
% The \package{icite} package is loaded as usual like so:---
% \section[The \pkg{icite} package]{The \textsf{icite} Package}
% The \pkg{icite} package is loaded as usual like so:---
% \iffalse
%<*example>
% \fi
\begin{code}
\begin{pkgcode}
\usepackage[<options>]{icite}
\end{code}
\end{pkgcode}
% \iffalse
%</example>
% \fi
%
% \package{icite} may be loaded with three optional \enquote*{named
% \pkg{icite} may be loaded with three optional \enquote*{named
% arguments} either of which is set using the syntax
% \meta{key}$=$\meta{value}. The description of the optional arguments
% follows:---
@ -469,17 +538,17 @@
% passages in the default general index, unless |defaultindex| is set
% to the value |none|, in which case indexing is disabled. It must be
% noted that this named argument does not need a value as it defaults
% to |loccit| if it is used alone. This is an easy way to have all
% passages cited indexed in a separate index named |loccit|.
% to |loccit| if used alone. This is an easy way to have all passages
% cited indexed in a separate index named |loccit|.
%
% \DescribeOption{nobibengine}\NEWfeature{v1.1}
% \DescribeOption{nobibengine}\newfeature[v1.1]
% \changes{v1.1}{2019/03/12}{New global option \texttt{nobibengine}}%
% |nobibengine|$=$|true|\verb+|+|false|\hfill%
% \tcboxverb{Default: not set}\\
% This named argument does not need a value as it defaults to |true|
% if it is used. When this option is activated, \package{icite} does
% not use \hologo{BibTeX} or Bib\LaTeX\ to insert the citations in the
% body text---even if either is loaded in the preamble---and pulls the
% if used. When this option is activated, \pkg{icite} does not use
% \hologo{BibTeX} or Bib\LaTeX\ to insert the citations in the body
% text\---even if either be loaded in the preamble\---and pulls the
% necessary information directly from the bibliographical
% database. For this reason, \cs{bibinput} described below is of
% course still required. The citations inserted consist of the
@ -489,31 +558,31 @@
% it takes precedence over the fields used to define author names and
% titles.
%
% \paragraph{Bibliographical database}
% \DescribeMacro{\bibinput} Once \package{icite} is loaded, it must be
% \paragraph{Bibliographical Database}
% \DescribeMacro{\bibinput} Once \pkg{icite} is loaded, it must be
% connected to at least one bibliographic |.bib| file. To that end,
% \package{icite} uses the same \cs{bibinput} command as
% \package{usebib}.\footnote{Please refer to \cite[1]{usebib} for
% \pkg{icite} uses the same \cs{bibinput} command as
% \pkg{usebib}.\footnote{Please refer to \cite[1]{usebib} for
% more detailed information on how to use this command.} An example
% follows:--- %
% \iffalse
%<*example>
% \fi
\begin{code}
\begin{pkgcode}
% load icite, have \icite use \autocite by default, and insert cited
% passages in a separate index named 'loccit':
\usepackage[citecmd=autocite, defaultindex]{icite}
% note that the .bib file must be stripped of its extension:
\bibinput{bibliography} % that is: load bibliography.bib
\end{code}
\end{pkgcode}
% \iffalse
%</example>
% \fi
%
% \subsection{Preamble-only commands}
% \subsection{Preamble-only Commands}
% The following commands may be found in the preamble only.
% \paragraph{Styling the titles}
% \DescribeMacro{\SetTitleStyle} By default, \package{icite} prints
% \paragraph{Styling the Titles}
% \DescribeMacro{\SetTitleStyle} By default, \pkg{icite} prints
% the titles of the works cited in italics.\\
% \cs{SetTitleStyle}\marg{formatting directives} can be used in the
% preamble only to customize the way titles are displayed in the
@ -521,9 +590,9 @@
% \iffalse
%<*example>
% \fi
\begin{code}
\begin{pkgcode}
\SetTitleStyle{\textbf{#1}}
\end{code}
\end{pkgcode}
% \iffalse
%</example>
% \fi
@ -532,7 +601,7 @@
% command.
%
% \paragraph{Delimiters}
% \NEWfeature{v1.2}\DescribeMacro{\AuthorTitleDelim}
% \DescribeMacro{\AuthorTitleDelim}\newfeature[v1.2]
% \cs{AuthorTitleDelim}\marg{delimiter} sets the delimiter between
% authors and titles in the body text when the |nobibengine| option is
% set to |true|. The default delimiter is a comma and a space.
@ -543,13 +612,13 @@
% set to |true|. The default delimiter is a comma and a space.
%
% \subsection[\textsf{icite} for the Impatient]%
% {\package{icite} for the Impatient}
% {\pkg{icite} for the Impatient}
% Read \href{samples/icite-minimal.pdf}{\texttt{icite-minimal.pdf}}.
%
% \subsection{Entry fields}
% \subsection{Entry Fields}
% \label{sec:entry-fields}
% \subsubsection{Author names}
% To process author names, \package{icite} uses the following entry
% \subsubsection{Author Names}
% To process author names, \pkg{icite} uses the following entry
% fields:
% \begin{description}
% \item[author] As for example in |author = {Ullmann, Manfred}|, which
@ -576,10 +645,10 @@
% |sortname = {{|Hunayn ibn Ishaq|}}|
%
% \subsection{Titles}
% To process titles, \package{icite} uses the following entry fields:
% To process titles, \pkg{icite} uses the following entry fields:
% \begin{description}
% \item[title] The full title of the work.
% \item[shorttitle] The title in an abbriged form. If this entry is
% \item[shorttitle] The title in an abriged form. If this entry be
% set, it takes precedence over the |title| field in the printed index.
% \item[indextitle] This field may be used to have a title such as
% \emph{The {\TeX}Book} printed in the index as \emph{{\TeX}Book, The}.
@ -589,8 +658,8 @@
% |indexsorttitle = {TEXBook}|
% \end{description}
%
% \section{Basic use}
% \DescribeMacro{\icite} \package{icite} provides the \cs{icite}
% \section{Basic Use}
% \DescribeMacro{\icite} \pkg{icite} provides the \cs{icite}
% command which both inserts a formatted citation in the body text and
% an entry corresponding to the passage cited in the index. This
% command is to be used in place of any \hologo{BibTeX} or Bib\LaTeX\
@ -603,9 +672,9 @@
% \iffalse
%<*example>
% \fi
\begin{code}
\begin{pkgcode}
\icite[<pre>][<post>]{<key>}[<command>]
\end{code}
\end{pkgcode}
% \iffalse
%</example>
% \fi
@ -615,15 +684,24 @@
% default in the preamble by means of the |citecmd| global
% option.\footnote{See above, \vref{ref:citecmd}.}
%
% \paragraph{List of References} \newfeature[v1.4]
% \changes{v1.4}{2023/01/24}{\textsf{icite} now indexes separately
% lists of references} The references inserted in the \meta{post}
% argument of \cs{icite} may consist of single numbers\---as in |25|,
% |vii| or |XIV|\---ranges of numbers\---as in |34--38| or
% |iv--x|\---or lists of numbers. In the latter case, references must
% be separated from one another by semicolons (|;|), like so: |12;|
% |21;| |34--38|.
%
% \paragraph{Example} The following example illustrates how
% \package{icite} can be used in combination with Bib\LaTeX\ and the
% \package{imakeidx} package to have the passages cited sorted and
% \pkg{icite} can be used in combination with Bib\LaTeX\ and the
% \pkg{imakeidx} package to have the passages cited sorted and
% printed in a separate, specific \enquote*{Index of Passages
% Cited}:--- %
% \iffalse
%<*example>
% \fi
\begin{code}
\begin{pkgcode}
% preamble
% load icite, have \icite use \autocite by default, and insert cited
% passages in a separate index named 'loccit':
@ -638,7 +716,7 @@
% load imakeidx and use xindy to have the numbers sorted properly
\usepackage[xindy]{imakeidx}
\makeindex[name=loccit, title=Index of Passages Cited (modern authors)]
\end{code}
\end{pkgcode}
% \iffalse
%</example>
% \fi
@ -647,11 +725,11 @@
% \iffalse
%<*example>
% \fi
\begin{code}
\section*{\cs{icite} in action}
\begin{pkgcode}
\section*{\cs{icite} in Action}
Let us start with four citations of the same reference, to make sure
that they are all indexed and sorted properly:
one\icite[123]{Ullmann1970}, two\icite[231]{Ullmann1970},
that they are all indexed and sorted properly: one\icite[123;
141--148; 245]{Ullmann1970}, two\icite[231]{Ullmann1970},
three\icite[81]{Ullmann1970} and four\icite[18]{Ullmann1970}.
Let us continue with four other citations out of two other
@ -661,16 +739,16 @@
Finally, let us have \cs{icite} use \cs{textcite} to cite
\icite[123]{Endress1992}[textcite], and again, this time in a
footnote\icite[86]{Endress1992}.
\end{code}
\end{pkgcode}
% \iffalse
%</example>
% \fi
%
% \begin{tcblisting}{text only}
% \section*{\cs{icite} in action}
% \section*{\cs{icite} in Action}
% Let us start with four citations of the same reference, to make
% sure that they are all indexed and sorted properly:
% one\icite[123]{Ullmann1970}, two\icite[231]{Ullmann1970},
% sure that they are all indexed and sorted properly: one\icite[123;
% 141--148; 245]{Ullmann1970}, two\icite[231]{Ullmann1970},
% three\icite[81]{Ullmann1970} and four\icite[18]{Ullmann1970}.
%
% Let us continue with four other citations out of two other
@ -686,23 +764,23 @@
% been used can be found below in the appendix
% (\vrefrange{ref:indices}{ref:icite-bib} respectively). As can be
% seen by comparing the bibliography generated in the footnotes with
% the text printed in the index, \package{icite} prints as expected
% the abbridged forms of the titles when they are
% the text printed in the index, \pkg{icite} prints as expected
% the abridged forms of the titles when they are
% available. Furthermore, as a default citation command set in the
% preamble, the \enquote*{oxnotes} Bib\LaTeX\ option of
% \package{biblatex-oxref} style package makes \cs{autocite} behave
% \pkg{biblatex-oxref} style package makes \cs{autocite} behave
% like \cs{footcite}. Finally, the page numbers in the index are
% sorted properly: for example, two-digit numbers, like 81, are listed
% before 123.
%
% \section{Refined use}
% \section{Refined Use}
% When references are made not only to modern authors but also to
% authors and works from classical antiquity or from the Middle Ages,
% it is commonly agreed that at least two separate indices of passages
% cited should be made. Another option is not to index passages cited
% from modern authors at all.
%
% \DescribeMacro{\IndexSubtypeAs} \package{icite} is able to
% \DescribeMacro{\IndexSubtypeAs} \pkg{icite} is able to
% differentiate between sources by drawing from the bibliographical
% database the exact string that may be found in the |entrysubtype|
% entry field. To that end, the \cs{IndexSubtypeAs} command is
@ -710,9 +788,9 @@
% \iffalse
%<*example>
% \fi
\begin{code}
\begin{pkgcode}
\IndexSubtypeAs{<subtype>}{<index_name>}
\end{code}
\end{pkgcode}
% \iffalse
%</example>
% \fi
@ -729,7 +807,7 @@
% \iffalse
%<*example>
% \fi
\begin{code}
\begin{pkgcode}
% load icite, and have cited authors indexed in an index named
% 'secondary':
\usepackage[defaultindex=secondary]{icite}
@ -739,7 +817,7 @@
% authors whose 'entrysubtype' field matches the string 'medieval'
% should go into the same index:
\IndexSubtypeAs{medieval}{primary}
\end{code}
\end{pkgcode}
% \iffalse
%</example>
% \fi
@ -747,7 +825,7 @@
% \iffalse
%<*example>
% \fi
\begin{code}
\begin{pkgcode}
% load icite, but do not index passages cited with \icite:
\usepackage[defaultindex=none]{icite}
% except for authors whose 'entrysubtype' field matches the string
@ -756,7 +834,7 @@
% authors whose 'entrysubtype' field matches the string 'medieval'
% should go into the same index:
\IndexSubtypeAs{medieval}{primary}
\end{code}
\end{pkgcode}
% \iffalse
%</example>
% \fi
@ -766,14 +844,14 @@
% |classical| should go into the default |loccit| index. As for those
% whose |entrysubtype| matches |classical|, they should to into an
% index named |primary|. \label{ref:classics-pkg}Furthermore, the
% \package{classics} package is used to format references in which a
% \pkg{classics} package is used to format references in which a
% volume number is used.\footnote{For more information, see below
% \vref{sec:classics-usage}.} In this way, \package{xindy} only has
% \vref{sec:classics-usage}.} In this way, \pkg{xindy} only has
% numbers to handle:--- %
% \iffalse
%<*example>
% \fi
\begin{code}
\begin{pkgcode}
% preamble
\usepackage[style=oxnotes]{biblatex}
\addbibresource{bibliography.bib}
@ -789,7 +867,7 @@
\usepackage[citecmd=autocite,defaultindex]{icite}
\IndexSubtypeAs{classical}{primary}
\end{code}
\end{pkgcode}
% \iffalse
%</example>
% \fi
@ -798,11 +876,11 @@
% \iffalse
%<*example>
% \fi
\begin{code}
\section*{\cs{icite} in action}
\begin{pkgcode}
\section*{\cs{icite} in Action}
Let us start with four citations of the same reference, to make sure
that they are all indexed and sorted properly:
one\icite[123]{Ullmann1970}, two\icite[231]{Ullmann1970},
that they are all indexed and sorted properly: one\icite[123;
141--148; 245]{Ullmann1970}, two\icite[231]{Ullmann1970},
three\icite[81]{Ullmann1970} and four\icite[18]{Ullmann1970}.
Let us continue with four other citations out of two other
@ -821,16 +899,16 @@
Finally, let us have \cs{icite} use \cs{textcite} to cite
\icite[123]{Endress1992}[textcite], and again, this time in a
footnote\icite[86]{Endress1992}.
\end{code}
\end{pkgcode}
% \iffalse
%</example>
% \fi
%
% \begin{tcblisting}{text only}
% \section*{\cs{icite} in action}
% \section*{\cs{icite} in Action}
% Let us start with four citations of the same reference, to make
% sure that they are all indexed and sorted properly:
% one\icite[123]{Ullmann1970}, two\icite[231]{Ullmann1970},
% sure that they are all indexed and sorted properly: one\icite[123;
% 141--148; 245]{Ullmann1970}, two\icite[231]{Ullmann1970},
% three\icite[81]{Ullmann1970} and four\icite[18]{Ullmann1970}.
%
% Let us continue with four other citations out of two other
@ -860,23 +938,23 @@
%
%
% \subsection[The \textsf{classics} package]%
% {The \package{classics} package} %
% {The \pkg{classics} Package} %
% \label{sec:classics-usage}
% As said above \vpageref{ref:classics-pkg}, it is advisable to use
% the \package{classics} package to format volume, page, column, line
% the \pkg{classics} package to format volume, page, column, line
% numbers and the like which are inserted in the \meta{post} optional
% argument of the \cs{icite} command\autocite{classics}. An example of
% using \package{classics} to format references to Aristotle according
% using \pkg{classics} to format references to Aristotle according
% to Bekker pagination follows:\footnote{See \cite[2]{classics} for
% more information.}--- %
% \iffalse
%<*example>
% \fi
\begin{code}
\begin{pkgcode}
% preamble:
\usepackage{classics}
\newclassic{aristotle}{#1|\textit{#1}|#1}
\end{code}
\end{pkgcode}
% \iffalse
%</example>
% \fi
@ -894,7 +972,7 @@
% \iffalse
%</example>
% \fi
% The following prints the same body text while using \package{icite}
% The following prints the same body text while using \pkg{icite}
% to have the passages cited inserted in the \emph{Index locorum
% citatorum} (see below \vref{sec:index-loc-cit}):--- %
% \iffalse
@ -917,21 +995,21 @@
% As can be seen, the \cs{notecite} and \cs{pnotecite} commands have
% been used to insert only the references in the body text.
%
% It is also advisable to use \package{xindy} to compile indices of
% passages cited because \package{xindy}, unlike \package{makeindex}
% or \package{xindex}, is able to sort numbers properly: for example,
% with \package{xindy}, such a number as 81 will come before 100, but
% It is also advisable to use \pkg{xindy} to compile indices of
% passages cited because \pkg{xindy}, unlike \pkg{makeindex}
% or \pkg{xindex}, is able to sort numbers properly: for example,
% with \pkg{xindy}, such a number as 81 will come before 100, but
% will be sorted after 100 with the other two engines.
% \begin{tcblisting}{text only, title=Caveat}
% \package{xindy} (actually |texindy|) is also designed to ignore
% \pkg{xindy} (actually |texindy|) is also designed to ignore
% \TeX\ commands by default. However, due to a missing line in
% |xindy/modules/base/tex.xdy|,\footnote{As the time of writing, in
% \package{xindy} v2.5.1.} this does not apply to so-called
% \pkg{xindy} v2.5.1.} this does not apply to so-called
% \enquote*{starred} \TeX\ commands, such as \cs{aristotle*} from
% the example above.
% \end{tcblisting}
% One easy way to get around this issue is to create a style file with
% a single line that instructs \package{xindy} to ignore the asterisk
% a single line that instructs \pkg{xindy} to ignore the asterisk
% when processing the index, like so:--- %
% \iffalse
%<*example>
@ -948,13 +1026,13 @@
% \iffalse
%<*example>
% \fi
\begin{code}
\begin{pkgcode}
% preamble:
\usepackage[xindy]{imakeidx}
\makeindex[name=loccit, options=-M icite.xdy]
% document:
\printindex[loccit]
\end{code}
\end{pkgcode}
% \iffalse
%</example>
% \fi
@ -963,7 +1041,7 @@
%
% \section{Appendix}
% Designing the layout of indices is out of the scope of this
% documentation. For information, the \package{tabto} package has been
% documentation. For information, the \pkg{tabto} package has been
% used in the preamble in combination with the following |xindy| style
% file:--- %
% \iffalse
@ -979,7 +1057,7 @@
%
% \subsection{Indices}
% \label{ref:indices}
% \subsubsection{Index of Passages Cited (modern authors)}
% \subsubsection{Index of Passages Cited (Modern Authors)}
% \printindex[loccit]
% \needspace{8\baselineskip}
% \subsubsection{\emph{Index locorum citatorum}}
@ -987,7 +1065,7 @@
% \printindex[primary]
%
% \subsection{\texorpdfstring{\hologo{BibTeX}
% file used in this document}{BibTeX file used in this document}}
% File Used in this Document}{BibTeX File Used in this Document}}
% \label{ref:icite-bib}
% \tcbinputlisting{minted options={linenos, numbersep=1.5mm}, minted
% language=bibtex, listing file=icite.bib, listing only}
@ -1021,7 +1099,7 @@
\ExecuteOptionsX{citecmd}
\ProcessOptionsX\relax
% \end{macrocode}
% The following packages are required by \package{icite}:
% The following packages are required by \pkg{icite}:
% \begin{macrocode}
\RequirePackage{xparse}
\RequirePackage{datatool}
@ -1032,7 +1110,7 @@
% \begin{macrocode}
\NewDocumentCommand{\ic@nullcmd}{O{}O{}m}{}
% \end{macrocode}
% Define fields to be used by \package{icite}:
% Define fields to be used by \pkg{icite}:
% \begin{macrocode}
\define@reuse@key{author}
\define@reuse@key{indexauthor}
@ -1044,13 +1122,13 @@
\define@reuse@key{entrysubtype}
\define@reuse@key{shorthand}
% \end{macrocode}
% This is the same as \cs{usebibentry} from \package{ebib}, but it
% This is the same as \cs{usebibentry} from \pkg{ebib}, but it
% does not return an error if the entry field is not found:
% \begin{macrocode}
\def\get@bibentry#1#2{\@ifundefined{reuse@#1@#2}{}
{\@nameuse{reuse@#1@#2}}}
% \end{macrocode}
% Create a new database which \package{icite} will use to connect
% Create a new database which \pkg{icite} will use to connect
% Bib\LaTeX\ \enquote*{subtypes} to indices.
% \begin{macrocode}
\DTLnewdb{icite@indices}
@ -1112,7 +1190,40 @@
% citation command to be used, like so:\\
% \cs{icite}\oarg{pre}\oarg{post}\marg{key}\oarg{command}\\
% Only standard citation commands are accepted, with the exception of
% qualified citation lists or so-called \enquote*{multicite} commands.
% qualified citation lists or so-called \enquote*{multicite}
% commands. As of v1.4, \pkg{icite} can process separate index entries
% from lists of numbers inserted in the \meta{postnote} argument of
% \cs{icite}. For this mechanism to work, the indexing commands used
% by \cs{icite} must be defined beforehand:---
% \begin{macrocode}
\NewDocumentCommand{\icite@dflt@index}{m}{%
\index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#1}}
\NewDocumentCommand{\icite@std@index}{m}{%
\index[\icite@index]{\@sortedauthor!\@sortedtitle!#1}}
\NewDocumentCommand{\icite@nodflt@index}{m}{%
\index{\@sortedauthor!\@sortedtitle!#1}}
% \end{macrocode}
% Then \cs{process@index@list} is used to split the argument of
% |<postnote>| at each occurrence of the |;| punctuation mark:---
% \begin{macrocode}
\NewDocumentCommand{\process@index@list}
{m > { \SplitList { ; } } m}{%
\def\@tempa{#1}%
\def\@dflt{dflt}%
\def\@std{std}%
\def\@nodflt{nodflt}%
\ifx\@tempa\@dflt
\ProcessList {#2} { \icite@dflt@index }%
\else
\ifx\@tempa\@std
\ProcessList {#2} { \icite@std@index }%
\else
\ifx\@tempa\@nodflt
\ProcessList {#2} { \icite@nodflt@index }%
\fi\fi\fi
}
% \end{macrocode}
% The definition of \cs{icite} follows:---
% \begin{macrocode}
\NewDocumentCommand{\icite}{o o m O{\ic@dfltcit}}{%
\edef\ic@argiv{#4}%
@ -1189,23 +1300,28 @@
{\DTLifdbempty{icite@indices}{%
\ifno@index\else
\ifdefault@index%
\index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#1}%
\process@index@list{dflt}{#1}%
%\index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#1}%
\else%
\index{\@sortedauthor!\@sortedtitle!#1}%
\process@index@list{nodflt}{#1}%
%\index{\@sortedauthor!\@sortedtitle!#1}%
\fi\fi%
}{%
\bgroup%
\DTLforeach*{icite@indices}{%
\icite@subtype=subtype,\icite@index=index}{%
\ifx\@subtype\icite@subtype%
\index[\icite@index]{\@sortedauthor!\@sortedtitle!#1}%
\process@index@list{std}{#1}%
%\index[\icite@index]{\@sortedauthor!\@sortedtitle!#1}%
\dtlbreak%
\else%
\ifno@index\else
\ifdefault@index%
\index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#1}%
\process@index@list{dflt}{#1}%
%\index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#1}%
\else%
\index{\@sortedauthor!\@sortedtitle!#1}%
\process@index@list{nodflt}{#1}%
%\index{\@sortedauthor!\@sortedtitle!#1}%
\fi\fi%
\fi}%
\egroup}%
@ -1223,23 +1339,28 @@
{\DTLifdbempty{icite@indices}{%
\ifno@index\else
\ifdefault@index%
\index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#2}%
\process@index@list{dflt}{#2}%
%\index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#2}%
\else%
\index{\@sortedauthor!\@sortedtitle!#2}%
\process@index@list{nodflt}{#2}%
%\index{\@sortedauthor!\@sortedtitle!#2}%
\fi\fi%
}{%
\bgroup%
\DTLforeach*{icite@indices}{%
\icite@subtype=subtype,\icite@index=index}{%
\ifx\@subtype\icite@subtype%
\index[\icite@index]{\@sortedauthor!\@sortedtitle!#2}%
\process@index@list{std}{#2}%
%\index[\icite@index]{\@sortedauthor!\@sortedtitle!#2}%
\dtlbreak%
\else%
\ifno@index\else
\ifdefault@index%
\index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#2}%
\process@index@list{dflt}{#2}%
%\index[\ic@dfltind]{\@sortedauthor!\@sortedtitle!#2}%
\else%
\index{\@sortedauthor!\@sortedtitle!#2}%
\process@index@list{nodflt}{#2}%
%\index{\@sortedauthor!\@sortedtitle!#2}%
\fi\fi%
\fi}%
\egroup}%

View File

@ -1,27 +1,28 @@
%%
%% icite -- Indices locorum citatorum
%%
%% Copyright (C) 2019--2020 by Robert Alessi <alessi@robertalessi.net>
%% Copyright (C) 2019, 2020, 2021, 2023 by Robert Alessi
%% <alessi@robertalessi.net>
%%
%% Permission to use, copy, modify, and distribute this software for any
%% purpose with or without fee is hereby granted, provided that the above
%% copyright notice and this permission notice appear in all copies.
%%
%% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
%% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
%% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
%% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
%% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
%% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
%% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
%%
%% Please send error reports and suggestions for improvements to Robert
%% Alessi <alessi@robertalessi.net>
%%
%% This program is free software: you can redistribute it and/or modify
%% it under the terms of the GNU General Public License as published by
%% the Free Software Foundation, either version 3 of the License, or
%% (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program. If not, see
%% <http://www.gnu.org/licenses/>.
%%
%% This work consists of the file icite.dtx, icite.ins and a Makefile.
%% Running "make" generates the derived files README.md, icite.pdf and icite.sty.
%% Running "make" generates the derived files README.md, icite.pdf and
%% icite.sty.
%% Running "make inst" installs the files in the user's TeX tree.
%% Running "make install" installs the files in the local TeX tree.
%%
@ -30,27 +31,30 @@
\askforoverwritefalse
\preamble
This is a generated file.
This file is part of the `icite' package
icite -- Indices locorum citatorum
Copyright (C) 2019--2020 by Robert Alessi <alessi@robertalessi.net>
Copyright (C) 2019, 2020, 2021, 2023 by Robert Alessi
<alessi@robertalessi.net>
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Please send error reports and suggestions for improvements to Robert
Alessi <alessi@robertalessi.net>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see
<http://www.gnu.org/licenses/>.
This work consists of the file icite.dtx, icite.ins and a Makefile.
Running "make" generates the derived files README.md, icite.pdf and icite.sty.
Running "make inst" installs the files in the user's TeX tree.