From d7234c8b1a0b9dd638531f41e22cb99a6952c474 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Thu, 12 Nov 2015 22:17:08 +0000
Subject: nameauth (12nov15)

git-svn-id: svn://tug.org/texlive/trunk@38829 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/nameauth/nameauth.sty | 1576 ++++++++++++---------
 1 file changed, 900 insertions(+), 676 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/nameauth/nameauth.sty')

diff --git a/Master/texmf-dist/tex/latex/nameauth/nameauth.sty b/Master/texmf-dist/tex/latex/nameauth/nameauth.sty
index e6ae07608af..a78b978c695 100644
--- a/Master/texmf-dist/tex/latex/nameauth/nameauth.sty
+++ b/Master/texmf-dist/tex/latex/nameauth/nameauth.sty
@@ -5,34 +5,27 @@
 %% The original source files were:
 %%
 %% nameauth.dtx  (with options: `package')
+%% --------:| ----------------------------------------------------------------
+%% nameauth:| Name authority mechanism for consistency in text and index
+%%   Author:| Charles P. Schaum
+%%   E-mail:| charles dot schaum at comcast dot net
+%%  License:| Released under the LaTeX Project Public License v1.3c or later
+%%      See:| http://www.latex-project.org/lppl.txt
 %% 
-%% This is a generated file.
-%% 
-%% Copyright (C) 2011 by Charles P. Schaum <charles dot schaum at comcast dot net>
-%% 
-%% This file may be distributed and/or modified under the conditions of
-%% the LaTeX Project Public License, either version 1.2 of this license
-%% or (at your option) any later version.  The latest version of this
-%% license is in:
-%% 
-%%    http://www.latex-project.org/lppl.txt
-%% 
-%% and version 1.2 or later is part of all distributions of LaTeX version
-%% 1999/12/01 or later.
-%% 
-\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 \ProvidesPackage{nameauth}
-    [2015/07/09 v1.9 name authority macros to aid consistent display and indexing of names]
+    [2015/11/11 v2.0 Name authority mechanism for consistency in text and index]
 \newif\if@nameauth@FullName
 \newif\if@nameauth@FirstName
 \newif\if@nameauth@AltAKA
 \newif\if@nameauth@DoFormat
-\newif\if@nameauth@DoIndex
+\newif\if@nameauth@FirstFormat
 \newif\if@nameauth@AlwaysFormat
 \newif\if@nameauth@AlwaysComma
 \newif\if@nameauth@ShowComma
 \newif\if@nameauth@NBSP
-\newif\if@nameauth@Comma
+\newif\if@nameauth@DoIndex
+\newif\if@nameauth@Pretag
 \newif\if@nameauth@Punct
 \newif\if@nameauth@DoCaps
 \newif\if@nameauth@AllCaps
@@ -42,6 +35,7 @@
 \newif\if@nameauth@RevAllComma
 \newif\if@nameauth@RevThisComma
 \newcommand{\NamesFormat}{}
+\def\@nameauth@Actual{@}
 \DeclareOption{mainmatter}{\@nameauth@DoFormattrue}
 \DeclareOption{frontmatter}{\@nameauth@DoFormatfalse}
 \DeclareOption{smallcaps}{\renewcommand{\NamesFormat}{\scshape}}
@@ -51,28 +45,36 @@
 \DeclareOption{alwaysformat}{\@nameauth@AlwaysFormattrue}
 \DeclareOption{allcaps}{\@nameauth@AllCapstrue}
 \DeclareOption{normalcaps}{\@nameauth@AllCapsfalse}
-\DeclareOption{allreversed}{\@nameauth@RevAlltrue\@nameauth@RevAllCommafalse}
-\DeclareOption{allrevcomma}{\@nameauth@RevAlltrue\@nameauth@RevAllCommatrue}
-\DeclareOption{notreversed}{\@nameauth@RevAllfalse\@nameauth@RevAllCommafalse}
+\DeclareOption{allreversed}%
+  {\@nameauth@RevAlltrue\@nameauth@RevAllCommafalse}
+\DeclareOption{allrevcomma}%
+  {\@nameauth@RevAlltrue\@nameauth@RevAllCommatrue}
+\DeclareOption{notreversed}%
+  {\@nameauth@RevAllfalse\@nameauth@RevAllCommafalse}
 \DeclareOption{comma}{\@nameauth@AlwaysCommatrue}
 \DeclareOption{nocomma}{\@nameauth@AlwaysCommafalse}
 \DeclareOption{index}{\@nameauth@DoIndextrue}
 \DeclareOption{noindex}{\@nameauth@DoIndexfalse}
-\ExecuteOptions{nocomma,mainmatter,index,normalcaps,notreversed,smallcaps}
+\DeclareOption{pretag}{\@nameauth@Pretagtrue}
+\DeclareOption{nopretag}{\@nameauth@Pretagfalse}
+\ExecuteOptions%
+  {nocomma,%
+   mainmatter,%
+   index,%
+   pretag,%
+   normalcaps,%
+   notreversed,%
+   smallcaps}
 \ProcessOptions\relax
 \RequirePackage{etoolbox}
 \RequirePackage{trimspaces}
 \RequirePackage{suffix}
 \RequirePackage{xargs}
-\newcommand*{\@nameauth@CleanName}[1]%
-{%
-  \expandafter\zap@space\detokenize{#1} \@empty%
-}
+\newcommand*{\@nameauth@Clean}[1]%
+  {\expandafter\zap@space\detokenize{#1} \@empty}
 \newcommand*{\@nameauth@Root}[1]%
-{%
-  \@nameauth@TrimRoot#1,\@empty\relax%
-}
-\def\@nameauth@TrimRoot#1,#2\relax{#1}
+  {\@nameauth@TrimRoot#1,\@empty\relax}
+\def\@nameauth@TrimRoot#1,#2\relax{\trim@spaces{#1}}
 \newcommand*{\@nameauth@CapRoot}[1]%
   {\@nameauth@CR#1\relax}
 \def\@nameauth@CR#1#2\relax{\uppercase{#1}\@nameauth@Root{#2}}
@@ -89,548 +91,609 @@
   \@nameauth@Punctfalse%
   \TestDot#1\TestEnd.\TestEnd\TestStop%
 }
-\def\@nameauth@CheckDot{\futurelet\@token\@nameauth@EvalDot}
-\def\@nameauth@EvalDot%
+\newcommand*{\@nameauth@CheckDot}%
+  {\futurelet\@token\@nameauth@EvalDot}
+\newcommand*{\@nameauth@EvalDot}%
   {\let\@period=.\ifx\@token\@period\expandafter\@gobble \fi}
-\newcommand{\@nameauth@FmtName}[1]%
+\newcommand*{\@nameauth@FmtName}[1]%
 {%
+  \if@nameauth@AlwaysFormat\@nameauth@FirstFormattrue\fi
   \@nameauth@TestDot{#1}%
-  \if@nameauth@DoFormat%
-    \bgroup\NamesFormat{#1}\egroup%
-  \else%
-    #1%
-  \fi%
-}
-\WithSuffix\newcommand\@nameauth@FmtName*[1]%
-{%
-  \@nameauth@TestDot{#1}%
-  \if@nameauth@DoFormat%
-    \if@nameauth@AlwaysFormat%
+  \if@nameauth@DoFormat
+    \if@nameauth@FirstFormat
       \bgroup\NamesFormat{#1}\egroup%
-    \else%
+    \else
       #1%
-    \fi%
-  \else%
+    \fi
+  \else
     #1%
-  \fi%
+  \fi
 }
-\newcommandx\@nameauth@Index[2][2=\@empty]%
+\newcommand*{\@nameauth@Index}[2]%
 {%
-  \ifx#2\@empty%
-    \if@nameauth@DoIndex\index{#1}\fi%
-  \else%
-    \ifcsname#2\endcsname%
-      \if@nameauth@DoIndex\index{#1\csname#2\endcsname}\fi%
-    \else%
-      \if@nameauth@DoIndex\index{#1}\fi%
-    \fi%
-  \fi%
+  \def\cseq{#1}%
+  \ifcsname\cseq!TAG\endcsname
+    \ifcsname\cseq!PRE\endcsname
+      \if@nameauth@DoIndex
+        \index{\csname\cseq!PRE\endcsname#2\csname\cseq!TAG\endcsname}%
+      \fi
+    \else
+      \if@nameauth@DoIndex\index{#2\csname\cseq!TAG\endcsname}\fi
+    \fi
+  \else
+    \ifcsname\cseq!PRE\endcsname
+      \if@nameauth@DoIndex\index{\csname\cseq!PRE\endcsname#2}\fi
+    \else
+      \if@nameauth@DoIndex\index{#2}\fi
+    \fi
+  \fi
 }
-\newcommand{\CapThis}{\@nameauth@DoCapstrue}
-\newcommand{\CapName}{\@nameauth@AllThistrue}
-\newcommand{\RevName}{\@nameauth@RevThistrue}
-\newcommand{\RevComma}%
+\newcommand*{\CapThis}{\@nameauth@DoCapstrue}
+\newcommand*{\CapName}{\@nameauth@AllThistrue}
+\newcommand*{\RevName}{\@nameauth@RevThistrue}
+\newcommand*{\RevComma}%
   {\@nameauth@RevThistrue\@nameauth@RevThisCommatrue}
-\newcommand{\ShowComma}{\@nameauth@ShowCommatrue}
-\newcommand{\KeepAffix}{\@nameauth@NBSPtrue}
-\newcommandx\Name[3][1=\@empty, 3=\@empty]%
+\newcommand*{\ShowComma}{\@nameauth@ShowCommatrue}
+\newcommand*{\KeepAffix}{\@nameauth@NBSPtrue}
+\newcommand*{\NamesInactive}{\@nameauth@DoFormatfalse}
+\newcommand*{\NamesActive}{\@nameauth@DoFormattrue}
+\newcommand*{\AllCapsInactive}{\@nameauth@AllCapsfalse}
+\newcommand*{\AllCapsActive}{\@nameauth@AllCapstrue}
+\newcommand*{\ReverseInactive}{\@nameauth@RevAllfalse}
+\newcommand*{\ReverseActive}{\@nameauth@RevAlltrue}
+\newcommand*{\ReverseCommaInactive}%
+  {\@nameauth@RevAllfalse\@nameauth@RevAllCommafalse}
+\newcommand*{\ReverseCommaActive}%
+  {\@nameauth@RevAlltrue\@nameauth@RevAllCommatrue}
+\newcommand*{\IndexInactive}{\@nameauth@DoIndexfalse}
+\newcommand*{\IndexActive}{\@nameauth@DoIndextrue}
+\newcommand*{\IndexActual}[1]{\gdef\@nameauth@Actual{#1}}
+\newcommandx*\Name[3][1=\@empty, 3=\@empty]%
 {%
+  \let\ex\expandafter%
   \leavevmode\hbox{}%
-  \protected@edef\testi{#1}%
-  \protected@edef\testii{#2}%
-  \protected@edef\testiii{#3}%
-  \if@nameauth@AllCaps\@nameauth@AllThistrue\fi%
-  \if@nameauth@RevAll\@nameauth@RevThistrue\fi%
-  \if@nameauth@RevAllComma\@nameauth@RevThisCommatrue\fi%
+  \protected@edef\testa{#1}%
+  \protected@edef\arga{\trim@spaces{#1}}%
+  \protected@edef\testb{\trim@spaces{#2}}%
+  \protected@edef\testbr{\@nameauth@Root{#2}}%
+  \protected@edef\testc{#3}%
+  \protected@edef\argc{\trim@spaces{#3}}%
+  \def\csb{\@nameauth@Clean{#2}}%
+  \def\csbc{\@nameauth@Clean{#2#3}}%
+  \def\csab{\@nameauth@Clean{#1!#2}}%
+  \ifx\testb\@empty
+    \PackageError{nameauth}%
+    {macro \Name: Essential name missing}%
+  \else
+    \ifx\csb\@empty
+      \PackageError{nameauth}%
+      {macro \AKA: Essential name malformed}%
+    \fi
+  \fi
+  \if@nameauth@AllCaps\@nameauth@AllThistrue\fi
+  \if@nameauth@RevAll\@nameauth@RevThistrue\fi
+  \if@nameauth@RevAllComma\@nameauth@RevThisCommatrue\fi
   \protected@edef\ISpace{\space}%
   \protected@edef\Space{\space}%
-  \if@nameauth@NBSP\protected@edef\Space{\nobreakspace}\fi%
-  \if@nameauth@AlwaysComma%
+  \if@nameauth@NBSP\protected@edef\Space{\nobreakspace}\fi
+  \if@nameauth@AlwaysComma
     \protected@edef\ISpace{,\space}%
     \protected@edef\Space{,\space}%
-    \if@nameauth@NBSP\protected@edef\Space{,\nobreakspace}\fi%
-  \fi%
-  \if@nameauth@ShowComma%
+    \if@nameauth@NBSP\protected@edef\Space{,\nobreakspace}\fi
+  \fi
+  \if@nameauth@ShowComma
     \protected@edef\ISpace{,\space}%
     \protected@edef\Space{,\space}%
-    \if@nameauth@NBSP\protected@edef\Space{,\nobreakspace}\fi%
-  \fi%
+    \if@nameauth@NBSP\protected@edef\Space{,\nobreakspace}\fi
+  \fi
   \protected@edef\RawShort{\@nameauth@Root{#2}}%
   \protected@edef\CapShort{\@nameauth@CapRoot{#2}}%
   \protected@edef\AllCapShort{\@nameauth@AllCapRoot{#2}}%
   \let\IndexShort\RawShort%
-  \ifx\testii\RawShort%
-    \protected@edef\Suffix{\@empty}%
-    \let\IndexSurnames\RawShort%
+  \ifx\testb\testbr
+    \protected@edef\Suff{\@empty}%
+    \let\IndexSNN\RawShort%
     \let\Reversed\RawShort%
-    \let\Surnames\RawShort%
+    \let\SNN\RawShort%
     \let\PrintShort\RawShort%
-    \if@nameauth@DoCaps%
+    \if@nameauth@DoCaps
       \let\Reversed\CapShort%
-      \let\Surnames\CapShort%
+      \let\SNN\CapShort%
       \let\PrintShort\CapShort%
-    \fi%
-    \if@nameauth@AllThis%
+    \fi
+    \if@nameauth@AllThis
       \let\Reversed\AllCapShort%
-      \let\Surnames\AllCapShort%
+      \let\SNN\AllCapShort%
       \let\PrintShort\AllCapShort%
-    \fi%
-  \else%
-    \protected@edef\Suffix{\@nameauth@Suffix{#2}}%
-    \protected@edef\IndexSurnames{\RawShort\ISpace\Suffix}%
-    \protected@edef\Reversed{\Suffix\Space\RawShort}%
-    \protected@edef\Surnames{\RawShort\Space\Suffix}%
-    \if@nameauth@RevThis%
-      \let\PrintShort\Suffix%
-    \else%
+    \fi
+  \else
+    \protected@edef\Suff{\@nameauth@Suffix{#2}}%
+    \protected@edef\IndexSNN{\RawShort\ISpace\Suff}%
+    \protected@edef\Reversed{\Suff\Space\RawShort}%
+    \protected@edef\SNN{\RawShort\Space\Suff}%
+    \if@nameauth@RevThis
+      \let\PrintShort\Suff%
+    \else
       \let\PrintShort\RawShort%
-    \fi%
-    \if@nameauth@DoCaps%
-      \protected@edef\Reversed{\Suffix\Space\CapShort}%
-      \protected@edef\Surnames{\CapShort\Space\Suffix}%
-      \if@nameauth@RevThis%
-        \let\PrintShort\Suffix%
-      \else%
+    \fi
+    \if@nameauth@DoCaps
+      \protected@edef\Reversed{\Suff\Space\CapShort}%
+      \protected@edef\SNN{\CapShort\Space\Suff}%
+      \if@nameauth@RevThis
+        \let\PrintShort\Suff%
+      \else
         \let\PrintShort\CapShort%
-      \fi%
-    \fi%
-    \if@nameauth@AllThis%
-      \protected@edef\Reversed{\Suffix\Space\AllCapShort}%
-      \protected@edef\Surnames{\AllCapShort\Space\Suffix}%
-      \if@nameauth@RevThis%
-        \let\PrintShort\Suffix%
-      \else%
+      \fi
+    \fi
+    \if@nameauth@AllThis
+      \protected@edef\Reversed{\Suff\Space\AllCapShort}%
+      \protected@edef\SNN{\AllCapShort\Space\Suff}%
+      \if@nameauth@RevThis
+        \let\PrintShort\Suff%
+      \else
         \let\PrintShort\AllCapShort%
-      \fi%
-    \fi%
-  \fi%
-  \ifx\testi\@empty%
-    \ifx\testiii\@empty%
-      \ifcsname\@nameauth@CleanName{#2!PN!}\endcsname%
+      \fi
+    \fi
+  \fi
+  \ifx\testa\@empty
+    \ifx\testc\@empty
+      \ifcsname\csb!PN\endcsname
         \PackageWarning{nameauth}%
-        {macro \Name: Xref: #2 cannot be a page reference.}%
-      \else%
-        \@nameauth@Index{\IndexSurnames}[\@nameauth@CleanName{#2}!TAG!]%
-      \fi%
-      \if@nameauth@DoFormat%
-          \ifcsname\@nameauth@CleanName{#2!MN!}\endcsname%
-            \if@nameauth@FirstName%
-              \@nameauth@FullNamefalse%
-              \@nameauth@FirstNamefalse%
-            \fi%
-            \if@nameauth@FullName%
-              \@nameauth@FullNamefalse%
-              \if@nameauth@RevThis%
-                \expandafter\@nameauth@FmtName\expandafter*\expandafter{\Reversed}%
-              \else%
-                \expandafter\@nameauth@FmtName\expandafter*\expandafter{\Surnames}%
-              \fi%
-            \else%
-              \expandafter\@nameauth@FmtName\expandafter*\expandafter{\PrintShort}%
-            \fi%
-          \else%
+        {macro \Name: Xref: #2 cannot be a page reference}%
+      \else
+        \@nameauth@Index{\csb}{\IndexSNN}%
+      \fi
+      \if@nameauth@DoFormat
+        \ifcsname\csb!MN\endcsname
+          \if@nameauth@FirstName
             \@nameauth@FullNamefalse%
             \@nameauth@FirstNamefalse%
-            \csgdef{\@nameauth@CleanName{#2!MN!}}{}%
-            \if@nameauth@RevThis%
-              \expandafter\@nameauth@FmtName\expandafter{\Reversed}%
-            \else%
-              \expandafter\@nameauth@FmtName\expandafter{\Surnames}%
-            \fi%
-          \fi%
-      \else%
-          \ifcsname\@nameauth@CleanName{#2!NF!}\endcsname%
-            \if@nameauth@FirstName%
-              \@nameauth@FullNamefalse%
-              \@nameauth@FirstNamefalse%
-            \fi%
-            \if@nameauth@FullName%
-              \@nameauth@FullNamefalse%
-              \if@nameauth@RevThis%
-                \expandafter\@nameauth@FmtName\expandafter*\expandafter{\Reversed}%
-              \else%
-                \expandafter\@nameauth@FmtName\expandafter*\expandafter{\Surnames}%
-              \fi%
-            \else%
-              \expandafter\@nameauth@FmtName\expandafter*\expandafter{\PrintShort}%
-            \fi%
-          \else%
+          \fi
+          \if@nameauth@FullName
+            \@nameauth@FullNamefalse%
+            \if@nameauth@RevThis
+              \ex\@nameauth@FmtName\ex{\Reversed}%
+            \else
+              \ex\@nameauth@FmtName\ex{\SNN}%
+            \fi
+          \else
+            \ex\@nameauth@FmtName\ex{\PrintShort}%
+          \fi
+        \else
+          \@nameauth@FirstFormattrue%
+          \@nameauth@FullNamefalse%
+          \@nameauth@FirstNamefalse%
+          \csgdef{\csb!MN}{}%
+          \if@nameauth@RevThis
+            \ex\@nameauth@FmtName\ex{\Reversed}%
+          \else
+            \ex\@nameauth@FmtName\ex{\SNN}%
+          \fi
+        \fi
+      \else
+        \ifcsname\csb!NF\endcsname
+          \if@nameauth@FirstName
             \@nameauth@FullNamefalse%
             \@nameauth@FirstNamefalse%
-            \csgdef{\@nameauth@CleanName{#2!NF!}}{}%
-            \if@nameauth@RevThis%
-              \expandafter\@nameauth@FmtName\expandafter*\expandafter{\Reversed}%
-            \else%
-              \expandafter\@nameauth@FmtName\expandafter*\expandafter{\Surnames}%
-            \fi%
-          \fi%
-      \fi%
-    \else%
-      \ifcsname\@nameauth@CleanName{#2#3!PN!}\endcsname%
+          \fi
+          \if@nameauth@FullName
+            \@nameauth@FullNamefalse%
+            \if@nameauth@RevThis
+              \ex\@nameauth@FmtName\ex{\Reversed}%
+            \else
+              \ex\@nameauth@FmtName\ex{\SNN}%
+            \fi
+          \else
+            \ex\@nameauth@FmtName\ex{\PrintShort}%
+          \fi
+        \else
+          \@nameauth@FullNamefalse%
+          \@nameauth@FirstNamefalse%
+          \csgdef{\csb!NF}{}%
+          \if@nameauth@RevThis
+            \ex\@nameauth@FmtName\ex{\Reversed}%
+          \else
+            \ex\@nameauth@FmtName\ex{\SNN}%
+          \fi
+        \fi
+      \fi
+    \else
+      \ifcsname\csbc!PN\endcsname
         \PackageWarning{nameauth}%
-        {macro \Name: Xref: #2 #3 cannot be a page reference.}%
-      \else%
-        \@nameauth@Index{\IndexSurnames\ISpace#3}[\@nameauth@CleanName{#2#3}!TAG!]%
-      \fi%
-      \if@nameauth@DoFormat%
-        \ifcsname\@nameauth@CleanName{#2#3!MN!}\endcsname%
-          \if@nameauth@FirstName%
+        {macro \Name: Xref: #2 #3 cannot be a page reference}%
+      \else
+        \@nameauth@Index{\csbc}{\IndexSNN\ISpace\argc}%
+      \fi
+      \if@nameauth@DoFormat
+        \ifcsname\csbc!MN\endcsname
+          \if@nameauth@FirstName
             \@nameauth@FullNamefalse%
             \@nameauth@FirstNamefalse%
-          \fi%
-          \if@nameauth@FullName%
+          \fi
+          \if@nameauth@FullName
             \@nameauth@FullNamefalse%
-            \if@nameauth@RevThis%
-              \expandafter\@nameauth@FmtName\expandafter*\expandafter{%
-                \expandafter\testiii\expandafter\space\Surnames}%
-            \else%
-              \expandafter\@nameauth@FmtName\expandafter*\expandafter{%
-                \expandafter\Surnames\expandafter\space#3}%
-            \fi%
-          \else%
-            \if@nameauth@RevThis%
-              \expandafter\@nameauth@FmtName\expandafter*\expandafter{\testiii}%
-            \else%
-              \expandafter\@nameauth@FmtName\expandafter*\expandafter{\PrintShort}%
-            \fi%
-          \fi%
-        \else%
+            \if@nameauth@RevThis
+              \ex\@nameauth@FmtName\ex{\ex\argc\ex\space\SNN}%
+            \else
+              \ex\@nameauth@FmtName\ex{\ex\SNN\ex\space\argc}%
+            \fi
+          \else
+            \if@nameauth@RevThis
+              \ex\@nameauth@FmtName\ex{\argc}%
+            \else
+              \ex\@nameauth@FmtName\ex{\PrintShort}%
+            \fi
+          \fi
+        \else
+          \@nameauth@FirstFormattrue%
           \@nameauth@FullNamefalse%
           \@nameauth@FirstNamefalse%
-          \csgdef{\@nameauth@CleanName{#2#3!MN!}}{}%
-          \if@nameauth@RevThis%
-            \expandafter\@nameauth@FmtName\expandafter{%
-              \expandafter\testiii\expandafter\space\Surnames}%
-          \else%
-            \expandafter\@nameauth@FmtName\expandafter{%
-              \expandafter\Surnames\expandafter\space#3}%
-          \fi%
-        \fi%
-      \else%
-        \ifcsname\@nameauth@CleanName{#2#3!NF!}\endcsname%
-          \if@nameauth@FirstName%
+          \csgdef{\csbc!MN}{}%
+          \if@nameauth@RevThis
+            \ex\@nameauth@FmtName\ex{\ex\argc\ex\space\SNN}%
+          \else
+            \ex\@nameauth@FmtName\ex{\ex\SNN\ex\space\argc}%
+          \fi
+        \fi
+      \else
+        \ifcsname\csbc!NF\endcsname
+          \if@nameauth@FirstName
             \@nameauth@FullNamefalse%
             \@nameauth@FirstNamefalse%
-          \fi%
-          \if@nameauth@FullName%
+          \fi
+          \if@nameauth@FullName
             \@nameauth@FullNamefalse%
-            \if@nameauth@RevThis%
-              \expandafter\@nameauth@FmtName\expandafter*\expandafter{%
-                \expandafter\testiii\expandafter\space\Surnames}%
-            \else%
-              \expandafter\@nameauth@FmtName\expandafter*\expandafter{%
-                \expandafter\Surnames\expandafter\space#3}%
-            \fi%
-          \else%
-            \if@nameauth@RevThis%
-              \expandafter\@nameauth@FmtName\expandafter*\expandafter{\testiii}%
-            \else%
-              \expandafter\@nameauth@FmtName\expandafter*\expandafter{\PrintShort}%
-            \fi%
-          \fi%
-        \else%
+            \if@nameauth@RevThis
+              \ex\@nameauth@FmtName\ex{\ex\argc\ex\space\SNN}%
+            \else
+              \ex\@nameauth@FmtName\ex{\ex\SNN\ex\space\argc}%
+            \fi
+          \else
+            \if@nameauth@RevThis
+              \ex\@nameauth@FmtName\ex{\argc}%
+            \else
+              \ex\@nameauth@FmtName\ex{\PrintShort}%
+            \fi
+          \fi
+        \else
           \@nameauth@FullNamefalse%
           \@nameauth@FirstNamefalse%
-          \csgdef{\@nameauth@CleanName{#2#3!NF!}}{}%
-          \if@nameauth@RevThis%
-            \expandafter\@nameauth@FmtName\expandafter*\expandafter{%
-              \expandafter\testiii\expandafter\space\Surnames}%
-          \else%
-            \expandafter\@nameauth@FmtName\expandafter*\expandafter{%
-              \expandafter\Surnames\expandafter\space\testiii}%
-          \fi%
-        \fi%
-      \fi%
-    \fi%
-  \else%
-    \if@nameauth@RevThisComma%
+          \csgdef{\csbc!NF}{}%
+          \if@nameauth@RevThis
+            \ex\@nameauth@FmtName\ex{\ex\argc\ex\space\SNN}%
+          \else
+            \ex\@nameauth@FmtName\ex{\ex\SNN\ex\space\argc}%
+          \fi
+        \fi
+      \fi
+    \fi
+  \else
+    \if@nameauth@RevThisComma
       \protected@edef\ISpace{,\space}%
       \protected@edef\Space{,\space}%
-      \if@nameauth@NBSP\protected@edef\Space{,\nobreakspace}\fi%
-    \fi%
-    \ifx\testiii\@empty%
-      \protected@edef\Forenames{#1}%
-    \else%
-      \protected@edef\Forenames{#3}%
-    \fi
-    \ifcsname\@nameauth@CleanName{#1#2!PN!}\endcsname%
+      \if@nameauth@NBSP\protected@edef\Space{,\nobreakspace}\fi
+    \fi
+    \ifx\testc\@empty
+      \let\FNN\arga%
+    \else
+      \let\FNN\argc%
+    \fi
+    \ifcsname\csab!PN\endcsname
       \PackageWarning{nameauth}%
-      {macro \Name: Xref: #1 #2 cannot be a page reference.}%
-    \else%
-      \ifx\Suffix\@empty%
-        \@nameauth@Index{\IndexShort, #1}[\@nameauth@CleanName{#1#2}!TAG!]%
-      \else%
-        \@nameauth@Index{\IndexShort, #1, \Suffix}[\@nameauth@CleanName{#1#2}!TAG!]%
-      \fi%
-    \fi%
-    \if@nameauth@DoFormat%
-      \ifcsname\@nameauth@CleanName{#1#2!MN!}\endcsname%
-        \if@nameauth@FirstName%
+      {macro \Name: Xref: #1 #2 cannot be a page reference}%
+    \else
+      \ifx\Suff\@empty
+        \@nameauth@Index{\csab}{\IndexShort,\space\arga}%
+      \else
+        \@nameauth@Index{\csab}{\IndexShort,\space\arga,\space\Suff}%
+      \fi
+    \fi
+    \if@nameauth@DoFormat
+      \ifcsname\csab!MN\endcsname
+        \if@nameauth@FirstName
           \@nameauth@FullNamefalse%
           \@nameauth@FirstNamefalse%
-          \let\PrintShort\Forenames%
-        \fi%
-        \if@nameauth@FullName%
+          \let\PrintShort\FNN%
+        \fi
+        \if@nameauth@FullName
           \@nameauth@FullNamefalse%
-          \if@nameauth@RevThis%
-            \expandafter\@nameauth@FmtName\expandafter*\expandafter{%
-              \expandafter\Surnames\expandafter\Space\Forenames}%
-          \else%
-            \expandafter\@nameauth@FmtName\expandafter*\expandafter{%
-              \expandafter\Forenames\expandafter\space\Surnames}%
-          \fi%
-        \else%
-          \expandafter\@nameauth@FmtName\expandafter*\expandafter{\PrintShort}%
-        \fi%
-      \else%
+          \if@nameauth@RevThis
+            \ex\@nameauth@FmtName\ex{\ex\SNN\ex\Space\FNN}%
+          \else
+            \ex\@nameauth@FmtName\ex{\ex\FNN\ex\space\SNN}%
+          \fi
+        \else
+          \ex\@nameauth@FmtName\ex{\PrintShort}%
+        \fi
+      \else
+        \@nameauth@FirstFormattrue%
         \@nameauth@FullNamefalse%
         \@nameauth@FirstNamefalse%
-        \csgdef{\@nameauth@CleanName{#1#2!MN!}}{}%
-        \if@nameauth@RevThis%
-          \expandafter\@nameauth@FmtName\expandafter{%
-            \expandafter\Surnames\expandafter\Space\Forenames}%
-        \else%
-          \expandafter\@nameauth@FmtName\expandafter{%
-            \expandafter\Forenames\expandafter\space\Surnames}%
-        \fi%
-      \fi%
-    \else%
-      \ifcsname\@nameauth@CleanName{#1#2!NF!}\endcsname%
-        \if@nameauth@FirstName%
+        \csgdef{\csab!MN}{}%
+        \if@nameauth@RevThis
+          \ex\@nameauth@FmtName\ex{\ex\SNN\ex\Space\FNN}%
+        \else
+          \ex\@nameauth@FmtName\ex{\ex\FNN\ex\space\SNN}%
+        \fi
+      \fi
+    \else
+      \ifcsname\csab!NF\endcsname
+        \if@nameauth@FirstName
           \@nameauth@FullNamefalse%
           \@nameauth@FirstNamefalse%
-          \let\PrintShort\Forenames%
-        \fi%
-        \if@nameauth@FullName%
+          \let\PrintShort\FNN%
+        \fi
+        \if@nameauth@FullName
           \@nameauth@FullNamefalse%
-          \if@nameauth@RevThis%
-            \expandafter\@nameauth@FmtName\expandafter*\expandafter{%
-              \expandafter\Surnames\expandafter\Space\Forenames}%
-          \else%
-            \expandafter\@nameauth@FmtName\expandafter*\expandafter{%
-              \expandafter\Forenames\expandafter\space\Surnames}%
-          \fi%
-        \else%
-          \expandafter\@nameauth@FmtName\expandafter*\expandafter{\PrintShort}%
-        \fi%
-      \else%
+          \if@nameauth@RevThis
+            \ex\@nameauth@FmtName\ex{\ex\SNN\ex\Space\FNN}%
+          \else
+            \ex\@nameauth@FmtName\ex{\ex\FNN\ex\space\SNN}%
+          \fi
+        \else
+          \ex\@nameauth@FmtName\ex{\PrintShort}%
+        \fi
+      \else
         \@nameauth@FullNamefalse%
         \@nameauth@FirstNamefalse%
-        \csgdef{\@nameauth@CleanName{#1#2!NF!}}{}%
-        \if@nameauth@RevThis%
-          \expandafter\@nameauth@FmtName\expandafter*\expandafter{%
-            \expandafter\Surnames\expandafter\Space\Forenames}%
-        \else%
-          \expandafter\@nameauth@FmtName\expandafter*\expandafter{%
-            \expandafter\Forenames\expandafter\space\Surnames}%
-        \fi%
-      \fi%
-    \fi%
-  \fi%
+        \csgdef{\csab!NF}{}%
+        \if@nameauth@RevThis
+          \ex\@nameauth@FmtName\ex{\ex\SNN\ex\Space\FNN}%
+        \else
+          \ex\@nameauth@FmtName\ex{\ex\FNN\ex\space\SNN}%
+        \fi
+      \fi
+    \fi
+  \fi
+  \@nameauth@FirstFormatfalse%
   \@nameauth@NBSPfalse%
   \@nameauth@DoCapsfalse%
   \@nameauth@AllThisfalse%
   \@nameauth@ShowCommafalse%
   \@nameauth@RevThisfalse%
   \@nameauth@RevThisCommafalse%
-  \if@nameauth@Punct\expandafter\@nameauth@CheckDot\fi%
+  \if@nameauth@Punct\expandafter\@nameauth@CheckDot\fi
 }
-\WithSuffix\newcommandx\Name*[3][1=\@empty, 3=\@empty]%
-  {\@nameauth@FullNametrue\Name[#1]{#2}[#3]}
-\newcommandx\FName[3][1=\@empty, 3=\@empty]%
-  {\@nameauth@FirstNametrue\Name[#1]{#2}[#3]}
-\WithSuffix\newcommandx\FName*[3][1=\@empty, 3=\@empty]%
-  {\@nameauth@FirstNametrue\Name[#1]{#2}[#3]}
-\newcommandx\AKA[5][1=\@empty, 3=\@empty, 5=\@empty]%
+\WithSuffix\def\Name*{\@nameauth@FullNametrue\Name}
+\def\FName{\@nameauth@FirstNametrue\Name}
+\WithSuffix\def\FName*{\@nameauth@FirstNametrue\Name}
+\newcommandx*\AKA[5][1=\@empty, 3=\@empty, 5=\@empty]%
 {%
+  \let\ex\expandafter%
   \leavevmode\hbox{}%
-  \protected@edef\testi{#1}%
-  \protected@edef\testii{#2}%
-  \protected@edef\testiii{#3}%
-  \protected@edef\testiv{#4}%
-  \protected@edef\testv{#5}%
-  \if@nameauth@AllCaps\@nameauth@AllThistrue\fi%
-  \if@nameauth@RevAll\@nameauth@RevThistrue\fi%
-  \if@nameauth@RevAllComma\@nameauth@RevThisCommatrue\fi%
+  \protected@edef\testa{#1}%
+  \protected@edef\arga{\trim@spaces{#1}}%
+  \protected@edef\testb{\trim@spaces{#2}}%
+  \protected@edef\testbr{\@nameauth@Root{#2}}%
+  \protected@edef\testc{#3}%
+  \protected@edef\argc{\trim@spaces{#3}}%
+  \protected@edef\testd{\trim@spaces{#4}}%
+  \protected@edef\testdr{\@nameauth@Root{#4}}%
+  \protected@edef\teste{#5}%
+  \protected@edef\arge{\trim@spaces{#5}}%
+  \def\csd{\@nameauth@Clean{#4}}%
+  \def\csde{\@nameauth@Clean{#4#5}}%
+  \def\cscd{\@nameauth@Clean{#3!#4}}%
+  \ifx\testb\@empty
+    \PackageError{nameauth}%
+    {macro \AKA: Essential name missing}%
+  \else
+    \ifx\csb\@empty
+      \PackageError{nameauth}%
+      {macro \AKA: Essential name malformed}%
+    \fi
+  \fi
+  \ifx\testd\@empty
+    \PackageError{nameauth}%
+    {macro \AKA: Essential name missing}%
+  \else
+    \ifx\csd\@empty
+      \PackageError{nameauth}%
+      {macro \AKA: Essential name malformed}%
+    \fi
+  \fi
+  \if@nameauth@AllCaps\@nameauth@AllThistrue\fi
+  \if@nameauth@RevAll\@nameauth@RevThistrue\fi
+  \if@nameauth@RevAllComma\@nameauth@RevThisCommatrue\fi
   \protected@edef\ISpace{\space}%
   \protected@edef\Space{\space}%
-  \if@nameauth@NBSP\protected@edef\Space{\nobreakspace}\fi%
-  \if@nameauth@AlwaysComma%
+  \if@nameauth@NBSP\protected@edef\Space{\nobreakspace}\fi
+  \if@nameauth@AlwaysComma
     \protected@edef\ISpace{,\space}%
     \protected@edef\Space{,\space}%
-    \if@nameauth@NBSP\protected@edef\Space{,\nobreakspace}\fi%
-  \fi%
-  \if@nameauth@ShowComma%
+    \if@nameauth@NBSP\protected@edef\Space{,\nobreakspace}\fi
+  \fi
+  \if@nameauth@ShowComma
     \protected@edef\ISpace{,\space}%
     \protected@edef\Space{,\space}%
-    \if@nameauth@NBSP\protected@edef\Space{,\nobreakspace}\fi%
-  \fi%
-  \protected@edef\Shortii{\@nameauth@Root{#2}}%
-  \protected@edef\Shortiv{\@nameauth@Root{#4}}%
+    \if@nameauth@NBSP\protected@edef\Space{,\nobreakspace}\fi
+  \fi
+  \protected@edef\Shortb{\@nameauth@Root{#2}}%
+  \protected@edef\Shortd{\@nameauth@Root{#4}}%
   \protected@edef\CapShort{\@nameauth@CapRoot{#4}}%
   \protected@edef\AllCapShort{\@nameauth@AllCapRoot{#4}}%
-  \ifx\testii\Shortii%
-    \let\Surnamesii\Shortii%
-    \protected@edef\Suffixii{\@empty}%
-  \else%
-    \protected@edef\Suffixii{\@nameauth@Suffix{#2}}%
-    \protected@edef\Surnamesii{\Shortii\ISpace\Suffixii}%
-  \fi%
-  \ifx\testiv\Shortiv%
-    \protected@edef\Suffixiv{\@empty}%
-    \let\ISurnamesiv\Shortiv%
-    \let\Reversed\Shortiv%
-    \let\Surnamesiv\Shortiv%
-    \if@nameauth@DoCaps%
-      \let\Surnamesiv\CapShort%
+  \ifx\testb\testbr
+    \let\SNNb\Shortb%
+    \protected@edef\Suffb{\@empty}%
+  \else
+    \protected@edef\Suffb{\@nameauth@Suffix{#2}}%
+    \protected@edef\SNNb{\Shortb\ISpace\Suffb}%
+  \fi
+  \ifx\testd\testdr
+    \protected@edef\Suffd{\@empty}%
+    \let\ISNNd\Shortd%
+    \let\Reversed\Shortd%
+    \let\SNNd\Shortd%
+    \if@nameauth@DoCaps
+      \let\SNNd\CapShort%
       \let\Reversed\CapShort%
-    \fi%
-    \if@nameauth@AllThis%
-      \let\Surnamesiv\AllCapShort%
+    \fi
+    \if@nameauth@AllThis
+      \let\SNNd\AllCapShort%
       \let\Reversed\AllCapShort%
-    \fi%
-  \else%
-    \protected@edef\Suffixiv{\@nameauth@Suffix{#4}}%
-    \protected@edef\ISurnamesiv{\Shortiv\ISpace\Suffixiv}%
-    \protected@edef\Reversed{\Suffixiv\Space\Shortiv}%
-    \protected@edef\Surnamesiv{\Shortiv\Space\Suffixiv}%
-    \if@nameauth@DoCaps%
-      \protected@edef\Reversed{\Suffixiv\Space\CapShort}%
-      \protected@edef\Surnamesiv{\CapShort\Space\Suffixiv}%
-    \fi%
-    \if@nameauth@AllThis%
-      \protected@edef\Reversed{\Suffixiv\Space\AllCapShort}%
-      \protected@edef\Surnamesiv{\AllCapShort\Space\Suffixiv}%
-    \fi%
-  \fi%
-  \ifx\testiii\@empty%
-    \ifx\testv\@empty%
-      \ifcsname\@nameauth@CleanName{#4!PN!}\endcsname%
+    \fi
+  \else
+    \protected@edef\Suffd{\@nameauth@Suffix{#4}}%
+    \protected@edef\ISNNd{\Shortd\ISpace\Suffd}%
+    \protected@edef\Reversed{\Suffd\Space\Shortd}%
+    \protected@edef\SNNd{\Shortd\Space\Suffd}%
+    \if@nameauth@DoCaps
+      \protected@edef\Reversed{\Suffd\Space\CapShort}%
+      \protected@edef\SNNd{\CapShort\Space\Suffd}%
+    \fi
+    \if@nameauth@AllThis
+      \protected@edef\Reversed{\Suffd\Space\AllCapShort}%
+      \protected@edef\SNNd{\AllCapShort\Space\Suffd}%
+    \fi
+  \fi
+  \ifx\testc\@empty
+    \ifx\teste\@empty
+      \ifcsname\csd!PN\endcsname
         \PackageWarning{nameauth}%
-        {macro \AKA: XRef: #4 exists.}%
-      \else%
-        \ifcsname\@nameauth@CleanName{#4!MN!}\endcsname%
+        {macro \AKA: XRef: #4 exists}%
+      \else
+        \ifcsname\csd!MN\endcsname
           \PackageWarning{nameauth}%
-          {macro \AKA: Name reference: #4 already exists; no see ref.}%
-        \else%
-          \ifcsname\@nameauth@CleanName{#4#5!NF!}\endcsname%
+          {macro \AKA: Name reference: #4 exists; no xref}%
+        \else
+          \ifcsname\csd!NF\endcsname
             \PackageWarning{nameauth}%
-            {macro \AKA: Name reference: #4 already exists; no see ref.}%
-          \else%
-            \csgdef{\@nameauth@CleanName{#4!PN!}}{}%
-            \ifx\testi\@empty%
-              \@nameauth@Index{\ISurnamesiv|see{\Surnamesii}}%
-            \else%
-              \ifx\Suffixii\@empty \@nameauth@Index{\ISurnamesiv|see{\Surnamesii, #1}}%
-              \else \@nameauth@Index{\ISurnamesiv|see{\Shortii, #1, \Suffixii}}\fi%
-            \fi%
-          \fi%
-        \fi%
-      \fi%
-      \if@nameauth@RevThisComma%
+            {macro \AKA: Name reference: #4 exists; no xref}%
+          \else
+            \csgdef{\csd!PN}{}%
+            \ifx\testa\@empty
+              \@nameauth@Index{\csd}%
+                {\ISNNd|see{\SNNb}}%
+            \else
+              \ifx\Suffb\@empty
+                \@nameauth@Index{\csd}%
+                  {\ISNNd|see{\SNNb,\space\arga}}%
+              \else
+                \@nameauth@Index{\csd}%
+                  {\ISNNd|see{\Shortb,\space\arga,\space\Suffb}}%
+              \fi
+            \fi
+          \fi
+        \fi
+      \fi
+      \if@nameauth@RevThisComma
         \protected@edef\ISpace{,\space}%
         \protected@edef\Space{,\space}%
-        \if@nameauth@NBSP\protected@edef\Space{,\nobreakspace}\fi%
-      \fi%
-      \if@nameauth@RevThis%
-        \expandafter\@nameauth@FmtName\expandafter*\expandafter{\Reversed}%
-      \else%
-        \expandafter\@nameauth@FmtName\expandafter*\expandafter{\Surnamesiv}%
-      \fi%
-    \else%
-      \ifcsname\@nameauth@CleanName{#4#5!PN!}\endcsname%
+        \if@nameauth@NBSP
+          \protected@edef\Space{,\nobreakspace}%
+        \fi
+      \fi
+      \if@nameauth@RevThis
+        \ex\@nameauth@FmtName\ex{\Reversed}%
+      \else
+        \ex\@nameauth@FmtName\ex{\SNNd}%
+      \fi
+    \else
+      \ifcsname\csde!PN\endcsname
         \PackageWarning{nameauth}%
-        {macro \AKA: XRef: #4 #5 exists.}%
-      \else%
-        \ifcsname\@nameauth@CleanName{#4#5!MN!}\endcsname%
+        {macro \AKA: XRef: #4 #5 exists}%
+      \else
+        \ifcsname\csde!MN\endcsname
           \PackageWarning{nameauth}%
-          {macro \AKA: Name reference: #4 #5 already exists; no see ref.}%
-        \else%
-          \ifcsname\@nameauth@CleanName{#4#5!NF!}\endcsname%
+          {macro \AKA: Name reference: #4 #5 exists; no xref}%
+        \else
+          \ifcsname\csde!NF\endcsname
             \PackageWarning{nameauth}%
-            {macro \AKA: Name reference: #4 #5 already exists; no see ref.}%
-          \else%
-            \csgdef{\@nameauth@CleanName{#4#5!PN!}}{}%
-            \ifx\testi\@empty%
-              \@nameauth@Index{\ISurnamesiv\ISpace#5|see{\Surnamesii}}%
-            \else%
-              \ifx\Suffixii\@empty \@nameauth@Index{\ISurnamesiv\ISpace#5|see{\Surnamesii, #1}}%
-              \else \@nameauth@Index{\ISurnamesiv\ISpace#5|see{\Shortii, #1, \Suffixii}}\fi%
-            \fi%
-          \fi%
-        \fi%
-      \fi%
-      \if@nameauth@RevThisComma%
+            {macro \AKA: Name reference: #4 #5 exists; no xref}%
+          \else
+            \csgdef{\csde!PN}{}%
+            \ifx\testa\@empty
+              \@nameauth@Index{\csde}%
+                {\ISNNd\ISpace\arge|see{\SNNb}}%
+            \else
+              \ifx\Suffb\@empty
+                \@nameauth@Index{\csde}%
+                  {\ISNNd\ISpace\arge|see{\SNNb,\space\arga}}%
+              \else
+                \@nameauth@Index{\csde}%
+                {\ISNNd\ISpace\arge|see{\Shortb,\space\arga,\space\Suffb}}%
+              \fi
+            \fi
+          \fi
+        \fi
+      \fi
+      \if@nameauth@RevThisComma
         \protected@edef\ISpace{,\space}%
         \protected@edef\Space{,\space}%
-        \if@nameauth@NBSP\protected@edef\Space{,\nobreakspace}\fi%
-      \fi%
-      \if@nameauth@AltAKA%
-        \if@nameauth@RevThis%
-        \else%
-          \expandafter\@nameauth@FmtName\expandafter*\expandafter{\testv}%
-        \fi%
-      \else%
-        \if@nameauth@RevThis%
-          \expandafter\@nameauth@FmtName\expandafter*\expandafter{\expandafter\testv\expandafter\Space\Surnamesiv}%
-        \else%
-          \expandafter\@nameauth@FmtName\expandafter*\expandafter{\expandafter\Surnamesiv\expandafter\space\testv}%
-        \fi%
-      \fi%
-    \fi%
-  \else%
-    \ifcsname\@nameauth@CleanName{#3#4!PN!}\endcsname%
+        \if@nameauth@NBSP
+          \protected@edef\Space{,\nobreakspace}%
+        \fi
+      \fi
+      \if@nameauth@AltAKA
+        \ex\@nameauth@FmtName\ex{\arge}%
+      \else
+        \if@nameauth@RevThis
+          \ex\@nameauth@FmtName\ex{\ex\arge\ex\Space\SNNd}%
+        \else
+          \ex\@nameauth@FmtName\ex{\ex\SNNd\ex\space\arge}%
+        \fi
+      \fi
+    \fi
+  \else
+    \ifcsname\cscd!PN\endcsname
       \PackageWarning{nameauth}%
-      {macro \AKA: XRef: #3 #4 exists.}%
-    \else%
-      \ifcsname\@nameauth@CleanName{#3#4!MN!}\endcsname%
+      {macro \AKA: XRef: #3 #4 exists}%
+    \else
+      \ifcsname\cscd!MN\endcsname
         \PackageWarning{nameauth}%
-        {macro \AKA: Name reference: #3 #4 already exists; no see ref.}%
-      \else%
-        \ifcsname\@nameauth@CleanName{#3#4!NF!}\endcsname%
+        {macro \AKA: Name reference: #3 #4 exists; no xref}%
+      \else
+        \ifcsname\cscd!NF\endcsname
           \PackageWarning{nameauth}%
-          {macro \AKA: Name reference: #3 #4 already exists; no see ref.}%
-        \else%
-          \csgdef{\@nameauth@CleanName{#3#4!PN!}}{}%
-          \ifx\testi\@empty%
-            \ifx\Suffixiv\@empty \@nameauth@Index{\ISurnamesiv, #3|see{\Surnamesii}}%
-            \else \@nameauth@Index{\Shortiv, #3, \Suffixiv|see{\Surnamesii}}\fi%
-          \else%
-            \ifx\Suffixii\@empty%
-              \ifx\Suffixiv\@empty%
-                \@nameauth@Index{\ISurnamesiv, #3|see{\Surnamesii, #1}}%
-              \else%
-                \@nameauth@Index{\Shortiv, #3, \Suffixiv|see{\Surnamesii, #1}}%
-              \fi%
-            \else%
-              \ifx\Suffixiv\@empty%
-                \@nameauth@Index{\ISurnamesiv, #3|see{\Shortii, #1, \Suffixii}}%
-              \else%
-                \@nameauth@Index{\Shortiv, #3, \Suffixiv|see{\Shortii, #1, \Suffixii}}%
-              \fi%
-            \fi%
-          \fi%
-        \fi%
-      \fi%
-    \fi%
-    \if@nameauth@RevThisComma%
+          {macro \AKA: Name reference: #3 #4 exists; no xref}%
+        \else
+          \csgdef{\cscd!PN}{}%
+          \ifx\testa\@empty
+            \ifx\Suffd\@empty
+              \@nameauth@Index{\cscd}%
+                {\ISNNd,\space\argc|see{\SNNb}}%
+            \else
+              \@nameauth@Index{\cscd}%
+                {\Shortd,\space\argc,\space\Suffd|see{\SNNb}}%
+            \fi
+          \else
+            \ifx\Suffb\@empty
+              \ifx\Suffd\@empty
+                \@nameauth@Index{\cscd}%
+                  {\ISNNd,\space\argc|see{\SNNb,\space\arga}}%
+              \else
+                \@nameauth@Index{\cscd}%
+                {\Shortd,\space\argc,\space\Suffd|see{\SNNb,\space\arga}}%
+              \fi
+            \else
+              \ifx\Suffd\@empty
+                \@nameauth@Index{\cscd}%
+                {\ISNNd,\space\argc|see{\Shortb,\space\arga,\space\Suffb}}%
+              \else
+                \@nameauth@Index{\cscd}%
+  {\Shortd,\space\argc,\space\Suffd|see{\Shortb,\space\arga,\space\Suffb}}%
+              \fi
+            \fi
+          \fi
+        \fi
+      \fi
+    \fi
+    \if@nameauth@RevThisComma
       \protected@edef\ISpace{,\space}%
       \protected@edef\Space{,\space}%
-      \if@nameauth@NBSP\protected@edef\Space{,\nobreakspace}\fi%
-    \fi%
-    \ifx\testv\@empty%
-      \protected@edef\Forenames{#3}%
-    \else%
-      \protected@edef\Forenames{#5}%
-    \fi%
-    \if@nameauth@RevThis%
-      \expandafter\@nameauth@FmtName\expandafter*\expandafter{%
-        \expandafter\Surnamesiv\expandafter\Space\Forenames}%
-    \else%
-      \expandafter\@nameauth@FmtName\expandafter*\expandafter{%
-        \expandafter\Forenames\expandafter\space\Surnamesiv}%
-    \fi%
-  \fi%
+      \if@nameauth@NBSP\protected@edef\Space{,\nobreakspace}\fi
+    \fi
+    \ifx\teste\@empty
+      \let\FNN\argc%
+    \else
+      \let\FNN\arge%
+    \fi
+    \if@nameauth@RevThis
+      \ex\@nameauth@FmtName\ex{\ex\SNNd\ex\Space\FNN}%
+    \else
+      \ex\@nameauth@FmtName\ex{\ex\FNN\ex\space\SNNd}%
+    \fi
+  \fi
   \@nameauth@NBSPfalse%
   \@nameauth@AltAKAfalse%
   \@nameauth@DoCapsfalse%
@@ -638,253 +701,414 @@
   \@nameauth@ShowCommafalse%
   \@nameauth@RevThisfalse%
   \@nameauth@RevThisCommafalse%
-  \if@nameauth@Punct\expandafter\@nameauth@CheckDot\fi%
+  \if@nameauth@Punct\expandafter\@nameauth@CheckDot\fi
 }
-\WithSuffix\newcommandx\AKA*[5][1=\@empty,3=\@empty,5=\@empty]%
+\WithSuffix\def\AKA*{\@nameauth@AltAKAtrue\AKA}
+\newcommandx*\PName[5][1=\@empty,3=\@empty,5=\@empty]%
 {%
-  \@nameauth@AltAKAtrue%
-  \AKA[#1]{#2}[#3]{#4}[#5]%
+  \Name[#1]{#2}\space(\AKA[#1]{#2}[#3]{#4}[#5])%
 }
-\newcommandx\PName[5][1=\@empty,3=\@empty,5=\@empty]%
+\WithSuffix\def\PName*{\@nameauth@FullNametrue\PName}
+\newcommandx*\TagName[4][1=\@empty, 3=\@empty]%
 {%
-  \Name[#1]{#2}\space(\AKA[#1]{#2}[#3]{#4}[#5])%
+  \protected@edef\testa{#1}%
+  \protected@edef\testb{\trim@spaces{#2}}%
+  \protected@edef\testc{#3}%
+  \def\csb{\@nameauth@Clean{#2}}%
+  \def\csbc{\@nameauth@Clean{#2#3}}%
+  \def\csab{\@nameauth@Clean{#1!#2}}%
+  \ifx\testb\@empty
+    \PackageError{nameauth}%
+    {macro \TagName: Essential name missing}%
+  \else
+    \ifx\csb\@empty
+      \PackageError{nameauth}%
+      {macro \TagName: Essential name malformed}%
+    \fi
+  \fi
+  \ifx\testa\@empty
+    \ifx\testc\@empty
+      \ifcsname\csb!PN\endcsname
+        \PackageWarning{nameauth}%
+        {macro \TagName: not tagging xref: #2}%
+      \else
+        \csgdef{\csb!TAG}{#4}%
+      \fi
+    \else
+      \ifcsname\csbc!PN\endcsname
+        \PackageWarning{nameauth}%
+        {macro \TagName: not tagging xref: #2 #3}%
+      \else
+        \csgdef{\csbc!TAG}{#4}%
+      \fi
+    \fi
+  \else
+    \ifcsname\csab!PN\endcsname
+      \PackageWarning{nameauth}%
+      {macro \TagName: not tagging xref: #1 #2}%
+    \else
+      \csgdef{\csab!TAG}{#4}%
+    \fi
+  \fi
 }
-\WithSuffix\newcommandx\PName*[5][1=\@empty,3=\@empty,5=\@empty]%
+\newcommandx*\UntagName[3][1=\@empty, 3=\@empty]%
 {%
-  \Name*[#1]{#2}\space(\AKA[#1]{#2}[#3]{#4}[#5])%
+  \protected@edef\testa{#1}%
+  \protected@edef\testb{\trim@spaces{#2}}%
+  \protected@edef\testc{#3}%
+  \def\csb{\@nameauth@Clean{#2}}%
+  \def\csbc{\@nameauth@Clean{#2#3}}%
+  \def\csab{\@nameauth@Clean{#1!#2}}%
+  \ifx\testb\@empty
+    \PackageError{nameauth}%
+    {macro \UntagName: Essential name missing}%
+  \else
+    \ifx\csb\@empty
+      \PackageError{nameauth}%
+      {macro \UntagName: Essential name malformed}%
+    \fi
+  \fi
+  \ifx\testa\@empty
+    \ifx\testc\@empty
+      \global\csundef{\csb!TAG}%
+    \else
+      \global\csundef{\csbc!TAG}%
+    \fi
+  \else
+    \global\csundef{\csab!TAG}%
+  \fi
 }
-\newcommandx\TagName[4][1=\@empty, 3=\@empty]%
+\newcommandx*\PretagName[4][1=\@empty, 3=\@empty]%
 {%
-  \protected@edef\testi{#1}%
-  \protected@edef\testiii{#3}%
-  \ifx\testi\@empty%
-    \ifx\testiii\@empty%
-      \ifcsname\@nameauth@CleanName{#2!PN!}\endcsname%
-        \PackageWarning{nameauth}%
-        {macro \textbackslash TagName Cannot tag xref: #2.}%
-      \else%
-        \csgdef{\@nameauth@CleanName{#2}!TAG!}{#4}%
-      \fi%
-    \else%
-      \ifcsname\@nameauth@CleanName{#2#3!PN!}\endcsname%
+  \protected@edef\testa{#1}%
+  \protected@edef\testb{\trim@spaces{#2}}%
+  \protected@edef\testc{#3}%
+  \def\csb{\@nameauth@Clean{#2}}%
+  \def\csbc{\@nameauth@Clean{#2#3}}%
+  \def\csab{\@nameauth@Clean{#1!#2}}%
+  \ifx\testb\@empty
+    \PackageError{nameauth}%
+    {macro \TagName: Essential name missing}%
+  \else
+    \ifx\csb\@empty
+      \PackageError{nameauth}%
+      {macro \TagName: Essential name malformed}%
+    \fi
+  \fi
+  \ifx\testa\@empty
+    \ifx\testc\@empty
+      \ifcsname\csb!PN\endcsname
         \PackageWarning{nameauth}%
-        {macro \textbackslash TagName Cannot tag xref: #2 #3.}%
-      \else%
-        \csgdef{\@nameauth@CleanName{#2#3}!TAG!}{#4}%
-      \fi%
-    \fi%
-  \else%
-      \ifcsname\@nameauth@CleanName{#1#2!PN!}\endcsname%
+        {macro \PretagName: tagging xref: #2}%
+      \fi
+      \if@nameauth@Pretag\csgdef{\csb!PRE}{#4\@nameauth@Actual}\fi
+    \else
+      \ifcsname\csbc!PN\endcsname
         \PackageWarning{nameauth}%
-        {macro \textbackslash TagName Cannot tag xref: #1 #2.}%
-      \else%
-        \csgdef{\@nameauth@CleanName{#1#2}!TAG!}{#4}%
-      \fi%
-  \fi%
-}
-\newcommandx\UntagName[3][1=\@empty, 3=\@empty]%
-{%
-  \protected@edef\testi{#1}%
-  \protected@edef\testiii{#3}%
-  \ifx\testi\@empty%
-    \ifx\testiii\@empty%
-      \global\csundef{\@nameauth@CleanName{#2}!TAG!}%
-    \else%
-      \global\csundef{\@nameauth@CleanName{#2#3}!TAG!}%
-    \fi%
-  \else%
-      \global\csundef{\@nameauth@CleanName{#1#2}!TAG!}%
-  \fi%
+        {macro \PretagName: tagging xref: #2 #3}%
+      \fi
+      \if@nameauth@Pretag\csgdef{\csbc!PRE}{#4\@nameauth@Actual}\fi
+    \fi
+  \else
+    \ifcsname\csab!PN\endcsname
+      \PackageWarning{nameauth}%
+      {macro \PretagName: tagging xref: #1 #2}%
+    \fi
+    \if@nameauth@Pretag\csgdef{\csab!PRE}{#4\@nameauth@Actual}\fi
+  \fi
 }
-\newcommandx\IndexName[3][1=\@empty, 3=\@empty]%
+\newcommandx*\IndexName[3][1=\@empty, 3=\@empty]%
 {%
-  \protected@edef\testi{#1}%
-  \protected@edef\testii{#2}%
-  \protected@edef\testiii{#3}%
+  \protected@edef\testa{#1}%
+  \protected@edef\arga{\trim@spaces{#1}}%
+  \protected@edef\testb{\trim@spaces{#2}}%
+  \protected@edef\testbr{\@nameauth@Root{#2}}%
+  \protected@edef\testc{#3}%
+  \protected@edef\argc{\trim@spaces{#3}}%
+  \def\csb{\@nameauth@Clean{#2}}%
+  \def\csbc{\@nameauth@Clean{#2#3}}%
+  \def\csab{\@nameauth@Clean{#1!#2}}%
+  \ifx\testb\@empty
+    \PackageError{nameauth}%
+    {macro \IndexName: Essential name missing}%
+  \else
+    \ifx\csb\@empty
+      \PackageError{nameauth}%
+      {macro \IndexName: Essential name malformed}%
+    \fi
+  \fi
   \protected@edef\Space{\space}%
-  \if@nameauth@AlwaysComma%
+  \if@nameauth@AlwaysComma
     \protected@edef\Space{,\space}%
-  \fi%
-  \if@nameauth@ShowComma%
+  \fi
+  \if@nameauth@ShowComma
     \protected@edef\Space{,\space}%
-  \fi%
-  \protected@edef\Short{\@nameauth@Root{#2}}%
-  \ifx\testii\Short%
-    \let\Surnames\Short%
-    \protected@edef\Suffix{\@empty}%
-  \else%
-    \protected@edef\Suffix{\@nameauth@Suffix{#2}}%
-    \protected@edef\Surnames{\Short\Space\Suffix}%
-  \fi%
-  \ifx\testi\@empty%
-    \ifx\testiii\@empty%
-      \ifcsname\@nameauth@CleanName{#2!PN!}\endcsname%
+  \fi
+  \let\Short\testbr%
+  \ifx\testb\testbr
+    \let\SNN\Short%
+    \protected@edef\Suff{\@empty}%
+  \else
+    \protected@edef\Suff{\@nameauth@Suffix{#2}}%
+    \protected@edef\SNN{\Short\Space\Suff}%
+  \fi
+  \ifx\testa\@empty
+    \ifx\testc\@empty
+      \ifcsname\csb!PN\endcsname
         \PackageWarning{nameauth}%
-        {macro \IndexName: XRef: #2 exists.}%
-      \else%
-        \@nameauth@Index{\Surnames}[\@nameauth@CleanName{#2}!TAG!]%
-      \fi%
-    \else%
-      \ifcsname\@nameauth@CleanName{#2#3!PN!}\endcsname%
-        \PackageWarning{nameauth}%
-        {macro \IndexName: XRef: #2 #3 exists.}%
-      \else%
-        \@nameauth@Index{\Surnames\Space#3}[\@nameauth@CleanName{#2#3}!TAG!]%
-      \fi%
-    \fi%
-  \else%
-      \ifcsname\@nameauth@CleanName{#1#2!PN!}\endcsname%
+        {macro \IndexName: XRef: #2 exists}%
+      \else
+        \@nameauth@Index{\csb}{\SNN}%
+      \fi
+    \else
+      \ifcsname\csbc!PN\endcsname
         \PackageWarning{nameauth}%
-        {macro \IndexName: XRef: #1 #2 exists.}%
-      \else%
-        \ifx\Suffix\@empty \@nameauth@Index{\Short, #1}[\@nameauth@CleanName{#1#2}!TAG!]%
-        \else \@nameauth@Index{\Short, #1, \Suffix}[\@nameauth@CleanName{#1#2}!TAG!]\fi%
-      \fi%
-  \fi%
+        {macro \IndexName: XRef: #2 #3 exists}%
+      \else
+        \@nameauth@Index{\csbc}{\SNN\Space\argc}%
+      \fi
+    \fi
+  \else
+    \ifcsname\csab!PN\endcsname
+      \PackageWarning{nameauth}%
+      {macro \IndexName: XRef: #1 #2 exists}%
+    \else
+      \ifx\Suff\@empty
+        \@nameauth@Index{\csab}{\Short,\space\arga}%
+      \else
+        \@nameauth@Index{\csab}{\Short,\space\arga,\space\Suff}%
+      \fi
+    \fi
+  \fi
   \@nameauth@ShowCommafalse%
 }
-\newcommandx\ExcludeName[3][1=\@empty, 3=\@empty]%
+\newcommandx*\ExcludeName[3][1=\@empty, 3=\@empty]%
 {%
-  \protected@edef\testi{#1}%
-  \protected@edef\testiii{#3}%
-  \ifx\testi\@empty%
-    \ifx\testiii\@empty%
-      \ifcsname\@nameauth@CleanName{#2!PN!}\endcsname\relax%
-      \else%
-        \ifcsname\@nameauth@CleanName{#2!MN!}\endcsname%
+  \protected@edef\testa{#1}%
+  \protected@edef\testb{\trim@spaces{#2}}%
+  \protected@edef\testc{#3}%
+  \def\csb{\@nameauth@Clean{#2}}%
+  \def\csbc{\@nameauth@Clean{#2#3}}%
+  \def\csab{\@nameauth@Clean{#1!#2}}%
+  \ifx\testb\@empty
+    \PackageError{nameauth}%
+    {macro \ExcludeName: Essential name missing}%
+  \else
+    \ifx\csb\@empty
+      \PackageError{nameauth}%
+      {macro \ExcludeName: Essential name malformed}%
+    \fi
+  \fi
+  \ifx\testa\@empty
+    \ifx\testc\@empty
+      \ifcsname\csb!PN\endcsname
+        \PackageWarning{nameauth}%
+        {macro \ExcludeName: Xref: #2 already exists}%
+      \else
+        \ifcsname\csb!MN\endcsname
           \PackageWarning{nameauth}%
-          {macro \ExcludeName: Reference: #2 already exists; no exclusion.}%
-        \else%
-          \ifcsname\@nameauth@CleanName{#2!NF!}\endcsname%
+          {macro \ExcludeName: Reference: #2 exists; no exclusion}%
+        \else
+          \ifcsname\csb!NF\endcsname
             \PackageWarning{nameauth}%
-            {macro \ExcludeName: Reference: #2 already exists; no exclusion.}%
-          \else%
-            \csgdef{\@nameauth@CleanName{#2!PN!}}{}%
-          \fi%
-        \fi%
-      \fi%
-    \else%
-      \ifcsname\@nameauth@CleanName{#2#3!PN!}\endcsname\relax%
-      \else%
-        \ifcsname\@nameauth@CleanName{#2#3!MN!}\endcsname%
+            {macro \ExcludeName: Reference: #2 exists; no exclusion}%
+          \else
+            \csgdef{\csb!PN}{}%
+          \fi
+        \fi
+      \fi
+    \else
+      \ifcsname\csbc!PN\endcsname
+        \PackageWarning{nameauth}%
+        {macro \ExcludeName: Xref: #2 #3 already exists}%
+      \else
+        \ifcsname\csbc!MN\endcsname
           \PackageWarning{nameauth}%
-          {macro \ExcludeName: Reference: #2 #3 already exists; no exclusion.}%
-        \else%
-          \ifcsname\@nameauth@CleanName{#2#3!NF!}\endcsname%
+          {macro \ExcludeName: Reference: #2 #3 exists; no exclusion}%
+        \else
+          \ifcsname\csbc!NF\endcsname
             \PackageWarning{nameauth}%
-            {macro \ExcludeName: Reference: #2 #3 already exists; no exclusion.}%
-          \else%
-            \csgdef{\@nameauth@CleanName{#2#3!PN!}}{}%
-          \fi%
-        \fi%
-      \fi%
-    \fi%
-  \else%
-    \ifcsname\@nameauth@CleanName{#1#2!PN!}\endcsname%
+            {macro \ExcludeName: Reference: #2 #3 exists; no exclusion}%
+          \else
+            \csgdef{\csbc!PN}{}%
+          \fi
+        \fi
+      \fi
+    \fi
+  \else
+    \ifcsname\csab!PN\endcsname
       \PackageWarning{nameauth}%
-      {macro \ExcludeName: XRef: #1 #2 exists.}%
-    \else%
-      \ifcsname\@nameauth@CleanName{#1#2!MN!}\endcsname%
+      {macro \ExcludeName: XRef: #1 #2 already exists}%
+    \else
+      \ifcsname\csab!MN\endcsname
         \PackageWarning{nameauth}%
-        {macro \ExcludeName: Reference: #1 #2 already exists; no exclusion.}%
-      \else%
-        \ifcsname\@nameauth@CleanName{#1#2!NF!}\endcsname%
+        {macro \ExcludeName: Reference: #1 #2 exists; no exclusion}%
+      \else
+        \ifcsname\csab!NF\endcsname
           \PackageWarning{nameauth}%
-          {macro \ExcludeName: Reference: #1 #2 already exists; no exclusion.}%
-        \else%
-          \csgdef{\@nameauth@CleanName{#1#2!PN!}}{}%
-        \fi%
-      \fi%
-    \fi%
-  \fi%
+          {macro \ExcludeName: Reference: #1 #2 exists; no exclusion}%
+        \else
+          \csgdef{\csab!PN}{}%
+        \fi
+      \fi
+    \fi
+  \fi
 }
-\newcommandx\ForgetName[3][1=\@empty, 3=\@empty]%
+\newcommandx*\ForgetName[3][1=\@empty, 3=\@empty]%
 {%
-  \protected@edef\testi{#1}%
-  \protected@edef\testiii{#3}%
-  \ifx\testi\@empty%
-    \ifx\testiii\@empty%
-      \global\csundef{\@nameauth@CleanName{#2!MN!}}%
-      \global\csundef{\@nameauth@CleanName{#2!NF!}}%
-    \else%
-      \global\csundef{\@nameauth@CleanName{#2#3!MN!}}%
-      \global\csundef{\@nameauth@CleanName{#2#3!NF!}}%
-    \fi%
-  \else%
-      \global\csundef{\@nameauth@CleanName{#1#2!MN!}}%
-      \global\csundef{\@nameauth@CleanName{#1#2!NF!}}%
-  \fi%
+  \protected@edef\testa{#1}%
+  \protected@edef\testb{\trim@spaces{#2}}%
+  \protected@edef\testc{#3}%
+  \def\csb{\@nameauth@Clean{#2}}%
+  \def\csbc{\@nameauth@Clean{#2#3}}%
+  \def\csab{\@nameauth@Clean{#1!#2}}%
+  \ifx\testb\@empty
+    \PackageError{nameauth}%
+    {macro \ForgetName: Essential name missing}%
+  \else
+    \ifx\csb\@empty
+      \PackageError{nameauth}%
+      {macro \ForgetName: Essential name malformed}%
+    \fi
+  \fi
+  \ifx\testa\@empty
+    \ifx\testc\@empty
+      \global\csundef{\csb!MN}%
+      \global\csundef{\csb!NF}%
+    \else
+      \global\csundef{\csbc!MN}%
+      \global\csundef{\csbc!NF}%
+    \fi
+  \else
+      \global\csundef{\csab!MN}%
+      \global\csundef{\csab!NF}%
+  \fi
 }
-\newcommandx\SubvertName[3][1=\@empty, 3=\@empty]%
+\newcommandx*\SubvertName[3][1=\@empty, 3=\@empty]%
 {%
-  \protected@edef\testi{#1}%
-  \protected@edef\testiii{#3}%
-  \ifx\testi\@empty%
-    \ifx\testiii\@empty%
-      \csgdef{\@nameauth@CleanName{#2!MN!}}{}%
-      \csgdef{\@nameauth@CleanName{#2!NF!}}{}%
-    \else%
-      \csgdef{\@nameauth@CleanName{#2#3!MN!}}{}%
-      \csgdef{\@nameauth@CleanName{#2#3!NF!}}{}%
-    \fi%
-  \else%
-      \csgdef{\@nameauth@CleanName{#1#2!MN!}}{}%
-      \csgdef{\@nameauth@CleanName{#1#2!NF!}}{}%
-  \fi%
+  \protected@edef\testa{#1}%
+  \protected@edef\testb{\trim@spaces{#2}}%
+  \protected@edef\testc{#3}%
+  \def\csb{\@nameauth@Clean{#2}}%
+  \def\csbc{\@nameauth@Clean{#2#3}}%
+  \def\csab{\@nameauth@Clean{#1!#2}}%
+  \ifx\testb\@empty
+    \PackageError{nameauth}%
+    {macro \SubvertName: Essential name missing}%
+  \else
+    \ifx\csb\@empty
+      \PackageError{nameauth}%
+      {macro \SubvertName: Essential name malformed}%
+    \fi
+  \fi
+  \ifx\testa\@empty
+    \ifx\testc\@empty
+      \csgdef{\csb!MN}{}%
+      \csgdef{\csb!NF}{}%
+    \else
+      \csgdef{\csbc!MN}{}%
+      \csgdef{\csbc!NF}{}%
+    \fi
+  \else
+      \csgdef{\csab!MN}{}%
+      \csgdef{\csab!NF}{}%
+  \fi
 }
 \newenvironment{nameauth}{%
   \begingroup%
+  \let\ex\expandafter%
   \csdef{<}##1&##2&##3&##4>{%
     \protected@edef\arga{\trim@spaces{##1}}%
-    \protected@edef\argb{\trim@spaces{##2}}%
-    \protected@edef\argc{\trim@spaces{##3}}%
-    \protected@edef\argd{\trim@spaces{##4}}%
+    \protected@edef\testb{\trim@spaces{##2}}%
+    \protected@edef\testc{\trim@spaces{##3}}%
+    \protected@edef\testd{\trim@spaces{##4}}%
+    \newtoks\tokb%
+    \newtoks\tokc%
+    \newtoks\tokd%
+    \tokb\expandafter{##2}%
+    \tokc\expandafter{##3}%
+    \tokd\expandafter{##4}%
     \ifx\arga\@empty
         \PackageError{nameauth}%
-        {environment nameauth: Control sequence missing.}%
+        {environment nameauth: Control sequence missing}%
     \else
-      \ifx\argc\@empty
+      \ifx\testc\@empty
         \PackageError{nameauth}%
-        {environment nameauth: Essential name missing.}%
+        {environment nameauth: Essential name missing}%
       \else
-        \ifx\argd\@empty
-          \ifx\argb\@empty
-            \csxdef{\arga}{\Name{\argc}}%
-            \csxdef{L\arga}{\Name*{\argc}}%
-            \csxdef{S\arga}{\FName{\argc}}%
+        \ifcsname\arga\endcsname
+          \PackageWarning{nameauth}%
+          {environment nameauth: Redefinition of shorthands}%
+        \fi
+        \ifx\testd\@empty
+          \ifx\testb\@empty
+            \ex\csxdef\ex{\ex\arga\ex}\ex{\ex\Name\ex{\the\tokc}}%
+            \ex\csgdef\ex{\ex L\ex\arga\ex}\ex{\ex\Name\ex*\ex{\the\tokc}}%
+            \ex\csgdef\ex{\ex S\ex\arga\ex}\ex{\ex\FName\ex{\the\tokc}}%
           \else
-            \csxdef{\arga}{\Name[\argb]{\argc}}%
-            \csxdef{L\arga}{\Name*[\argb]{\argc}}%
-            \csxdef{S\arga}{\FName[\argb]{\argc}}%
+            \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex\arga\ex\ex\ex}%
+              \ex\ex\ex{\ex\ex\ex\Name\ex\ex\ex[\ex\the\ex\tokb\ex]%
+              \ex{\the\tokc}}%
+            \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex L\ex\ex\ex\arga%
+              \ex\ex\ex}\ex\ex\ex{\ex\ex\ex\Name\ex\ex\ex*%
+              \ex\ex\ex[\ex\the\ex\tokb\ex]\ex{\the\tokc}}%
+            \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex S\ex\ex\ex\arga%
+              \ex\ex\ex}\ex\ex\ex{\ex\ex\ex\FName\ex\ex\ex[%
+              \ex\the\ex\tokb\ex]\ex{\the\tokc}}%
           \fi
         \else
-          \ifx\argb\@empty
-            \csxdef{\arga}{\Name{\argc}[\argd]}%
-            \csxdef{L\arga}{\Name*{\argc}[\argd]}%
-            \csxdef{S\arga}{\FName{\argc}[\argd]}%
+          \ifx\testb\@empty
+            \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex\arga\ex\ex\ex}%
+              \ex\ex\ex{\ex\ex\ex\Name\ex\ex\ex{\ex\the\ex\tokc\ex}%
+              \ex[\the\tokd]}%
+            \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex L\ex\ex\ex\arga%
+              \ex\ex\ex}\ex\ex\ex{\ex\ex\ex\Name%
+              \ex\ex\ex*\ex\ex\ex{\ex\the\ex\tokc\ex}\ex[\the\tokd]}%
+            \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex S\ex\ex\ex\arga%
+              \ex\ex\ex}\ex\ex\ex{\ex\ex\ex\FName\ex\ex\ex{%
+              \ex\the\ex\tokc\ex}\ex[\the\tokd]}%
           \else
-            \csxdef{\arga}{\Name[\argb]{\argc}[\argd]}%
-            \csxdef{L\arga}{\Name*[\argb]{\argc}[\argd]}%
-            \csxdef{S\arga}{\FName[\argb]{\argc}[\argd]}%
+            \ex\ex\ex\ex\ex\ex\ex\csgdef\ex\ex\ex\ex\ex\ex\ex{%
+              \ex\ex\ex\ex\ex\ex\ex\arga\ex\ex\ex\ex\ex\ex\ex}%
+              \ex\ex\ex\ex\ex\ex\ex{\ex\ex\ex\ex\ex\ex\ex\Name%
+              \ex\ex\ex\ex\ex\ex\ex[\ex\ex\ex\the\ex\ex\ex\tokb%
+              \ex\ex\ex]\ex\ex\ex{\ex\the\ex\tokc\ex}\ex[\the\tokd]}%
+            \ex\ex\ex\ex\ex\ex\ex\csgdef\ex\ex\ex\ex\ex\ex\ex{%
+              \ex\ex\ex\ex\ex\ex\ex L\ex\ex\ex\ex\ex\ex\ex\arga%
+              \ex\ex\ex\ex\ex\ex\ex}\ex\ex\ex\ex\ex\ex\ex{%
+              \ex\ex\ex\ex\ex\ex\ex\Name\ex\ex\ex\ex\ex\ex\ex*%
+              \ex\ex\ex\ex\ex\ex\ex[\ex\ex\ex\the\ex\ex\ex\tokb%
+              \ex\ex\ex]\ex\ex\ex{\ex\the\ex\tokc\ex}\ex[\the\tokd]}%
+            \ex\ex\ex\ex\ex\ex\ex\csgdef\ex\ex\ex\ex\ex\ex\ex{%
+              \ex\ex\ex\ex\ex\ex\ex S\ex\ex\ex\ex\ex\ex\ex\arga%
+              \ex\ex\ex\ex\ex\ex\ex}\ex\ex\ex\ex\ex\ex\ex{%
+              \ex\ex\ex\ex\ex\ex\ex\FName\ex\ex\ex\ex\ex\ex\ex[%
+              \ex\ex\ex\the\ex\ex\ex\tokb\ex\ex\ex]%
+              \ex\ex\ex{\ex\the\ex\tokc\ex}\ex[\the\tokd]}%
           \fi
         \fi
       \fi
     \fi
     \ignorespaces%
-  }%
-}{\endgroup}
-\newcommand{\NamesInactive}{\@nameauth@DoFormatfalse}
-\newcommand{\NamesActive}{\@nameauth@DoFormattrue}
-\newcommand{\AllCapsInactive}{\@nameauth@AllCapsfalse}
-\newcommand{\AllCapsActive}{\@nameauth@AllCapstrue}
-\newcommand{\ReverseInactive}{\@nameauth@RevAllfalse}
-\newcommand{\ReverseActive}{\@nameauth@RevAlltrue}
-\newcommand{\ReverseCommaInactive}%
-  {\@nameauth@RevAllfalse\@nameauth@RevAllCommafalse}
-\newcommand{\ReverseCommaActive}%
-  {\@nameauth@RevAlltrue\@nameauth@RevAllCommatrue}
-\newcommand{\IndexInactive}{\@nameauth@DoIndexfalse}
-\newcommand{\IndexActive}{\@nameauth@DoIndextrue}
-\endinput
+  }\ignorespaces%
+}{\endgroup\ignorespaces}
+%% 
+%% Copyright (C) 2015 by Charles P. Schaum <charles dot schaum at comcast dot net>
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License (LPPL), either
+%% version 1.3c of this license or (at your option) any later
+%% version.  The latest version of this license is in the file:
+%% 
+%% http://www.latex-project.org/lppl.txt
+%% 
+%% This work is "maintained" (as per LPPL maintenance status) by
+%% Charles P. Schaum.
+%% 
+%% This work consists of the file nameauth.dtx and a Makefile.
+%% Running "make" generates the derived files README, nameauth.pdf and nameauth.sty.
+%% Running "make inst" installs the files in the user's TeX tree.
+%% Running "make install" installs the files in the local TeX tree.
+%% 
 %%
 %% End of file `nameauth.sty'.
-- 
cgit v1.2.3

