summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/nameauth
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-04-30 23:33:06 +0000
committerKarl Berry <karl@freefriends.org>2012-04-30 23:33:06 +0000
commitbeaaa685fbb168a83aa48252c3be8dcee461a64e (patch)
tree201cb4617f744875adfc33491136a31985d592d3 /Master/texmf-dist/source/latex/nameauth
parent7ec5d00f29a58da3fda317de7ba27b155efa8f7c (diff)
nameauth 1.26 (25apr12)
git-svn-id: svn://tug.org/texlive/trunk@26166 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/nameauth')
-rw-r--r--Master/texmf-dist/source/latex/nameauth/nameauth.dtx99
1 files changed, 77 insertions, 22 deletions
diff --git a/Master/texmf-dist/source/latex/nameauth/nameauth.dtx b/Master/texmf-dist/source/latex/nameauth/nameauth.dtx
index 15389b0f4e8..3a4063e441a 100644
--- a/Master/texmf-dist/source/latex/nameauth/nameauth.dtx
+++ b/Master/texmf-dist/source/latex/nameauth/nameauth.dtx
@@ -26,7 +26,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
%<package>\ProvidesPackage{nameauth}
%<*package>
- [2012/04/21 v1.24 name authority macros to aid consistent display and indexing of names]
+ [2012/04/24 v1.26 name authority macros to aid consistent display and indexing of names]
%</package>
%
%<*driver>
@@ -58,7 +58,7 @@
\usepackage{makeidx}
\usepackage{multicol}
\usepackage[toc]{multitoc}
-\usepackage{nameauth}[2012/03/25]
+\usepackage{nameauth}[2012/04/24]
\usepackage{hypdoc}
\makeindex
\frenchspacing
@@ -73,7 +73,7 @@
%</driver>
% \fi
%
-% \CheckSum{983}
+% \CheckSum{1180}
%
% \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
@@ -106,7 +106,8 @@
% \changes{v1.1}{2012/03/08}{Fixed errors when emitting warnings}
% \changes{v1.2}{2012/03/25}{Added tagging features; extensively edited documentation}
% \changes{v1.22}{2012/04/20}{Attempted first-use particle caps}
-% \changes{v1.24}{2012/04/21}{Reverted functionality and suggested workaround}
+% \changes{v1.24}{2012/04/21}{Reverted functionality and suggested \cmd{\CapThis} workaround}
+% \changes{v1.26}{2012/04/24}{Fixed sorting of name suffixes in index}
%
% \DoNotIndex{\@empty, \@gobble, \@period, \@token, \if@nameauth@DoComma, \if@nameauth@DoFormat, \if@nameauth@Punct, \if@nameauth@DoIndex, \if@nameauth@Comma, \if@nameauth@DoCaps, \protected@edef, \zap@space, \bfseries, \bgroup, \csgdef, \csundef, \DeclareDocumentCommand, \DeclareOption, \def, \detokenize, \edef, \egroup, \else, \endcsname, \endinput, \ExecuteOptions, \expandafter, \fi, \Forenames, \futurelet \if, \IfBooleanTF, \ifcsname,\IfValueTF, \ifx, \index, \itshape, \let, \newcommand, \newenvironment, \newif, \PackageWarning, \ProcessOptions, \relax, \renewcommand, \RequirePackage, \scshape, \space, \Shortnames, \Surnames, \Surnamesi, \Surnamesii, \Test, \TestDot, \TestEnd, \TestPunct, \TestStop, \uppercase}
%
@@ -251,7 +252,7 @@
% \subsubsection{Intermediate Naming}
% \label{sec:Intermediate}
% \begin{multicols}{2}\small
-% Always use a comma to delimit suffixes, followed by a space or thin space. \cmd{\AKA} and \cmd{\PName} will cross-reference these forms. See also Section \ref{sec:suffix}. Macros that are too wide for the column are split across lines using the comment token, but need not be so in the text.
+% \noindent Always use a comma to delimit suffixes, followed by a space or thin space. \cmd{\AKA} and \cmd{\PName} will cross-reference these forms. See also Section \ref{sec:suffix}. Macros that are too wide for the column are split across lines using the comment token, but need not be so in the text.
% \begin{enumerate}\setlength\itemsep{0pt}
% \item First: \ForgetName[George S.]{Patton, Jr.}\Name[George S.]{Patton, Jr.}\\[0.5ex]
% {\footnotesize |\Name*[George S.]{Patton, Jr.}| or\\ |\Name[George S.]{Patton, Jr.}| or\\ |\FName[George S.]{Patton, Jr.}|}
@@ -479,7 +480,10 @@
% Ś Ş ş Š š Ţ ţ Ť ť & Ů ů Ű ű & Ź ź Ż ż Ž ž & second use \\
% \end{tabular}
% \end{quote}
-% \clearpage
+% Please remember that if you use accented names, you may prefer using \textsf{xindy} (or \textsf{texindy}) on the \texttt{.idx} file. It simplifies the whole process and I recommend it.
+%
+%With \textsf{makeindex} there are a number of solutions, but some depend on the availability of the |-g| option and user-created settings in an |.ist| file whose description goes beyond the scope of this document. You also could use \cmd{\IndexActive} and \cmd{\IndexInactive} to suppress indexing, then create manual entries. For non-English documents, however, that solution is not optimal.
+%
% One may add control sequences to names, thanks to the help of \Name*[Robert]{Schlicht}. The next example adds more accented characters under \textsf{inputenc}/\textsf{fontenc}:
% \begin{quote}\small
% |\usepackage{newunicodechar}|\\
@@ -489,7 +493,6 @@
% |\newunicodechar{ā}{\=a}|\\
% |\newunicodechar{ṃ}{\d m}|
% \end{quote}
-%
% For some situations, such as ``traditional'' NFSS, you will need fonts with TS1 glyphs, e.g., |\usepackage{lmodern}|. See the informative tables on pages 455--63 in \emph{The Latex Companion}. This allows |\Name{Ghazāli}| to generate \IndexInactive\Name{Ghazāli}\IndexActive.
%
% In some cases, indexing accented names will fail unless you use \textsf{xetex} or \textsf{luatex}, both of which use \textsf{fontspec} instead of NFSS. Control sequences like |\=a| fail even in manual index entries when using \textsf{makeindex} and \texttt{gind.ist} because the equal sign is interpreted as a ``literal'' character, as mentioned by \Name[Dan]{Luecking}. I used |\IndexInactive\Name{Ghazāli}\IndexActive| to prevent the index entry ``ali'' sorted under ``Ghaz'' because even the manual entry fails in that case.
@@ -1078,10 +1081,12 @@
% \changes{v0.95}{2012/02/17}{Fixed incompatibility with \textsf{microtype}}
% \changes{v0.96}{2012/02/19}{Fixed occasional incompatibility with \textsf{memoir}.}
% \changes{v1.0}{2012/02/20}{Fixed compatibility issues.}
+% \changes{v1.26}{2012/04/24}{Fixed sorting of name suffixes in index}
% \begin{macrocode}
\DeclareDocumentCommand\Name{s o m o}%
{%
\protected@edef\Surnames{#3}%
+ \protected@edef\Suffix{\@empty}%
\if@nameauth@DoCaps%
\protected@edef\Shortnames{\@nameauth@CapRoot{#3,}}%
\else%
@@ -1091,6 +1096,7 @@
\@nameauth@CheckComma{#3}%
\if@nameauth@Comma%
\protected@edef\Surnames{\@nameauth@Root{#3}\@nameauth@Suffix{#3}}%
+ \protected@edef\Suffix{\@nameauth@Suffix{#3}}%
\fi%
\fi%
\IfValueTF{#2}%
@@ -1107,28 +1113,34 @@
\IfBooleanTF{#1}%
{\expandafter\@nameauth@FmtName\expandafter*\expandafter{%
\expandafter\Forenames\expandafter\space\Surnames}%
- \@nameauth@Index{\Surnames, #2}[\@nameauth@CleanName{#2#3}]}%
+ \ifx\Suffix\@empty \@nameauth@Index{\Surnames, #2}[\@nameauth@CleanName{#2#3}]%
+ \else \@nameauth@Index{\Shortnames, #2, \Suffix}[\@nameauth@CleanName{#2#3}]\fi}%
{\expandafter\@nameauth@FmtName\expandafter*\expandafter{\Shortnames}%
- \@nameauth@Index{\Surnames, #2}[\@nameauth@CleanName{#2#3}]}%
+ \ifx\Suffix\@empty \@nameauth@Index{\Surnames, #2}[\@nameauth@CleanName{#2#3}]%
+ \else \@nameauth@Index{\Shortnames, #2, \Suffix}[\@nameauth@CleanName{#2#3}]\fi}%
\else%
\csgdef{\@nameauth@CleanName{#2#3!MN!}}{}%
\expandafter\@nameauth@FmtName\expandafter{%
\expandafter\Forenames\expandafter\space\Surnames}%
- \@nameauth@Index{\Surnames, #2}[\@nameauth@CleanName{#2#3}]%
+ \ifx\Suffix\@empty \@nameauth@Index{\Surnames, #2}[\@nameauth@CleanName{#2#3}]%
+ \else \@nameauth@Index{\Shortnames, #2, \Suffix}[\@nameauth@CleanName{#2#3}]\fi%
\fi%
\else%
\ifcsname\@nameauth@CleanName{#2#3!NF!}\endcsname%
\IfBooleanTF{#1}%
{\expandafter\@nameauth@FmtName\expandafter*\expandafter{%
\expandafter\Forenames\expandafter\space\Surnames}%
- \@nameauth@Index{\Surnames, #2}[\@nameauth@CleanName{#2#3}]}%
+ \ifx\Suffix\@empty \@nameauth@Index{\Surnames, #2}[\@nameauth@CleanName{#2#3}]%
+ \else \@nameauth@Index{\Shortnames, #2, \Suffix}[\@nameauth@CleanName{#2#3}]\fi}%
{\expandafter\@nameauth@FmtName\expandafter*\expandafter{\Shortnames}%
- \@nameauth@Index{\Surnames, #2}[\@nameauth@CleanName{#2#3}]}%
+ \ifx\Suffix\@empty \@nameauth@Index{\Surnames, #2}[\@nameauth@CleanName{#2#3}]%
+ \else \@nameauth@Index{\Shortnames, #2, \Suffix}[\@nameauth@CleanName{#2#3}]\fi}%
\else%
\csgdef{\@nameauth@CleanName{#2#3!NF!}}{}%
\expandafter\@nameauth@FmtName\expandafter*\expandafter{%
\expandafter\Forenames\expandafter\space\Surnames}%
- \@nameauth@Index{\Surnames, #2}[\@nameauth@CleanName{#2#3}]%
+ \ifx\Suffix\@empty \@nameauth@Index{\Surnames, #2}[\@nameauth@CleanName{#2#3}]%
+ \else \@nameauth@Index{\Shortnames, #2, \Suffix}[\@nameauth@CleanName{#2#3}]\fi%
\fi%
\fi%
\fi}%
@@ -1244,14 +1256,18 @@
% \changes{v0.94}{2012/02/15}{Error checking expanded}
% \changes{v0.96}{2012/02/19}{Fixed occasional incompatibility with \textsf{memoir}.}
% \changes{v1.0}{2012/02/20}{Fixed compatibility issues.}
+% \changes{v1.26}{2012/04/24}{Fixed sorting of name suffixes in index}
% \begin{macrocode}
\DeclareDocumentCommand\FName{o m o}%
{%
\protected@edef\Surnames{#2}%
+ \protected@edef\Shortnames{\@nameauth@Root{#2,}}%
+ \protected@edef\Suffix{\@empty}%
\if@nameauth@DoComma\else%
\@nameauth@CheckComma{#2}%
\if@nameauth@Comma%
\protected@edef\Surnames{\@nameauth@Root{#2}\@nameauth@Suffix{#2}}%
+ \protected@edef\Suffix{\@nameauth@Suffix{#2}}%
\fi%
\fi%
\IfValueTF{#1}%
@@ -1266,23 +1282,27 @@
\ifcsname\@nameauth@CleanName{#1#2!MN!}\endcsname%
\expandafter\@nameauth@FmtName\expandafter*%
\expandafter{\Forenames}%
- \@nameauth@Index{\Surnames, #1}[\@nameauth@CleanName{#1#2}]%
+ \ifx\Suffix\@empty \@nameauth@Index{\Surnames, #1}[\@nameauth@CleanName{#1#2}]%
+ \else \@nameauth@Index{\Shortnames, #1, \Suffix}[\@nameauth@CleanName{#1#2}]\fi%
\else%
\csgdef{\@nameauth@CleanName{#1#2!MN!}}{}%
\expandafter\@nameauth@FmtName\expandafter{%
\expandafter\Forenames\expandafter\space\Surnames}%
- \@nameauth@Index{\Surnames, #1}[\@nameauth@CleanName{#1#2}]%
+ \ifx\Suffix\@empty \@nameauth@Index{\Surnames, #1}[\@nameauth@CleanName{#1#2}]%
+ \else \@nameauth@Index{\Shortnames, #1, \Suffix}[\@nameauth@CleanName{#1#2}]\fi%
\fi%
\else%
\ifcsname\@nameauth@CleanName{#1#2!NF!}\endcsname%
\expandafter\@nameauth@FmtName\expandafter*%
\expandafter{\Forenames}%
- \@nameauth@Index{\Surnames, #1}[\@nameauth@CleanName{#1#2}]%
+ \ifx\Suffix\@empty \@nameauth@Index{\Surnames, #1}[\@nameauth@CleanName{#1#2}]%
+ \else \@nameauth@Index{\Shortnames, #1, \Suffix}[\@nameauth@CleanName{#1#2}]\fi%
\else%
\csgdef{\@nameauth@CleanName{#1#2!NF!}}{}%
\expandafter\@nameauth@FmtName\expandafter*%
\expandafter{\Forenames\expandafter\space\Surnames}%
- \@nameauth@Index{\Surnames, #1}[\@nameauth@CleanName{#1#2}]%
+ \ifx\Suffix\@empty \@nameauth@Index{\Surnames, #1}[\@nameauth@CleanName{#1#2}]%
+ \else \@nameauth@Index{\Shortnames, #1, \Suffix}[\@nameauth@CleanName{#1#2}]\fi%
\fi%
\fi%
\fi}%
@@ -1356,19 +1376,26 @@
% \changes{v0.94}{2012/02/15}{Added error checking}
% \changes{v1.0}{2012/02/20}{Fixed compatibility issues.}
% \changes{v1.1}{2012/03/08}{Fixed warning reporting.}
+% \changes{v1.26}{2012/04/24}{Fixed sorting of name suffixes in index}
% \begin{macrocode}
\DeclareDocumentCommand\AKA{s o m o m o}%
{%
\protected@edef\Surnamesi{#3}%
\protected@edef\Surnamesii{#5}%
+ \protected@edef\Shortnamesi{\@nameauth@Root{#3,}}%
+ \protected@edef\Shortnamesii{\@nameauth@Root{#5,}}%
+ \protected@edef\Suffixi{\@empty}%
+ \protected@edef\Suffixii{\@empty}%
\if@nameauth@DoComma\else%
\@nameauth@CheckComma{#3}%
\if@nameauth@Comma%
\protected@edef\Surnamesi{\@nameauth@Root{#3}\@nameauth@Suffix{#3}}%
+ \protected@edef\Suffixi{\@nameauth@Suffix{#3}}%
\fi%
\@nameauth@CheckComma{#5}%
\if@nameauth@Comma%
\protected@edef\Surnamesii{\@nameauth@Root{#5}\@nameauth@Suffix{#5}}%
+ \protected@edef\Suffixii{\@nameauth@Suffix{#5}}%
\fi%
\fi%
\IfValueTF{#4}%
@@ -1390,8 +1417,25 @@
\else%
\csgdef{\@nameauth@CleanName{#4#5!PN!}}{}%
\IfValueTF{#2}%
- {\@nameauth@Index{\Surnamesii, #4|see{\Surnamesi, #2}}}%
- {\@nameauth@Index{\Surnamesii, #4|see{\Surnamesi}}}%
+ {%
+ \ifx\Suffixi\@empty%
+ \ifx\Suffixii\@empty%
+ \@nameauth@Index{\Surnamesii, #4|see{\Surnamesi, #2}}%
+ \else%
+ \@nameauth@Index{\Shortnamesii, #4, \Suffixii|see{\Surnamesi, #2}}%
+ \fi%
+ \else%
+ \ifx\Suffixii\@empty%
+ \@nameauth@Index{\Surnamesii, #4|see{\Shortnamesi, #2, \Suffixi}}%
+ \else%
+ \@nameauth@Index{\Shortnamesii, #4, \Suffixii|see{\Shortnamesi, #2, \Suffixi}}%
+ \fi%
+ \fi%
+ }%
+ {%
+ \ifx\Suffixii\@empty \@nameauth@Index{\Surnamesii, #4|see{\Surnamesi}}%
+ \else\@nameauth@Index{\Shortnamesii, #4, \Suffixii|see{\Surnamesi}}\fi%
+ }%
\fi%
\fi%
\fi}%
@@ -1414,7 +1458,10 @@
\else%
\csgdef{\@nameauth@CleanName{#5#6!PN!}}{}%
\IfValueTF{#2}%
- {\@nameauth@Index{\Surnamesii\space#6|see{\Surnamesi, #2}}}%
+ {%
+ \ifx\Suffixi\@empty \@nameauth@Index{\Surnamesii\space#6|see{\Surnamesi, #2}}%
+ \else\@nameauth@Index{\Surnamesii\space#6|see{\Shortnamesi, #2, \Suffixi}}\fi%
+ }%
{\@nameauth@Index{\Surnamesii\space#6|see{\Surnamesi}}}%
\fi%
\fi%
@@ -1434,7 +1481,10 @@
\else%
\csgdef{\@nameauth@CleanName{#5!PN!}}{}%
\IfValueTF{#2}%
- {\@nameauth@Index{\Surnamesii|see{\Surnamesi, #2}}}%
+ {%
+ \ifx\Suffixi\@empty \@nameauth@Index{\Surnamesii|see{\Surnamesi, #2}}%
+ \else\@nameauth@Index{\Surnamesii|see{\Shortnamesi, #2, \Suffixi}}\fi%
+ }%
{\@nameauth@Index{\Surnamesii|see{\Surnamesi}}}%
\fi%
\fi%
@@ -1512,14 +1562,18 @@
% \changes{v0.9}{2012/02/10}{redesigned macro}
% \changes{v1.0}{2012/02/20}{Fixed compatibility issues.}
% \changes{v1.2}{2012/02/25}{Added warnings.}
+% \changes{v1.26}{2012/04/24}{Fixed sorting of name suffixes in index}
% \begin{macrocode}
\DeclareDocumentCommand\IndexName{o m o}%
{%
\protected@edef\Surnames{#2}%
+ \protected@edef\Short{\@nameauth@Root{#2,}}%
+ \protected@edef\Suffix{\@empty}%
\if@nameauth@DoComma\else%
\@nameauth@CheckComma{#2}%
\if@nameauth@Comma%
\protected@edef\Surnames{\@nameauth@Root{#2}\@nameauth@Suffix{#2}}%
+ \protected@edef\Suffix{\@nameauth@Suffix{#2}}%
\fi%
\fi%
\IfValueTF{#1}%
@@ -1527,7 +1581,8 @@
\PackageWarning{nameauth}%
{macro IndexName XRef: #1 #2 exists.}%
\else%
- \@nameauth@Index{\Surnames, #1}[\@nameauth@CleanName{#1#2}]%
+ \ifx\Suffix\@empty \@nameauth@Index{\Surnames, #1}[\@nameauth@CleanName{#1#2}]%
+ \else \@nameauth@Index{\Short, #1, \Suffix}[\@nameauth@CleanName{#1#2}]\fi%
\fi}%
{\IfValueTF{#3}
{\ifcsname\@nameauth@CleanName{#2#3!PN!}\endcsname%