2

In Section 8.1 of the AMSRefs package documentation, it is explained that to properly typeset author names that are to be written with the family name first, one should set the attribute inverted on that name; for example: author={Li, Lian Jie}*{inverted={yes}} will typeset correctly as 'Li Lian Jie' (and not as 'Li, Lian Jie' or 'Lian Jie Li'). Trying to use author={Li Lian Jie} to force the correct name will not work if, for instance, the option initials or the option alphabetic is called.

In Section 8.4, it is explained that one can write \DefineName{dmj}{Jones, David M.} and then use the abbreviation as author={dmj} in any \bib entry.

However, when I use an abbreviation in a \bib entry, the inverted attribute is not recognized. This happens even if there are multiple authors in a \bib entry and any one name is entered using an abbreviation, and even if that name is not the one to which the inverted attribute is being passed. Here's an MCVE:

\documentclass{amsart}

\usepackage{amsrefs}

\DefineName{aut-f}{Author, First}
\DefineName{aut-s}{Author, Second}

\begin{document}

\begin{bibdiv}
\begin{biblist}

\raggedright

\bib{art1}{article}{
    author={Author, First}*{inverted={yes}},
    author={Author, Second}*{inverted={yes}},
    title={Title of the paper},
    journal={Journal of interesting results},
    volume={10},
    date={2021},
    number={3},
    pages={8\ndash 11},
    review={\MR{12345}},
}

\end{biblist}
\end{bibdiv}

\end{document}

The output for the above example looks like this:

Author First and Author Second, Title of the paper, Journal of interesting results 10 (2021), no. 3, 8–11. MR12345

Now, if I write author={aut-f} instead of author={Author, First}, the output changes to:

First Author and Second Author, Title of the paper, Journal of interesting results 10 (2021), no. 3, 8–11. MR12345

That is, it behaves as if the inverted attribute is not passed to any of the entries. The output remains as above regardless of how I mix and match the inverted attributes with the abbreviations.

I also tried adding *{inverted={yes}} to the \DefineName commands, but that throws out LaTeX Error: Missing \begin{document}.

Question: How can I get the inverted attribute to work with the \DefineName abbreviations?


I tried looking at the documented source, but I was not really able to gather anything of use on my own. I noticed that \DefineSimpleKey{prop}{inverted} is defined on line 236, and we have on lines 2450–2461:

\def\set@name@a#1{%
    \begingroup
        \get@current@properties
        \select@auxlanguage
        \def\@tempa{yes}%
        \ifx\@tempa\prop’inverted
            \setbib@nameBE
        \else
            #1%
        \fi
    \endgroup
}

But, I'm not sure how to relate this to the definition of \DefineName given on lines 1244–1246:

\newcommand{\DefineName}[2]{%
    \bib*{#1}{name}{name={#2}}%
}

I also looked at the documentation for the rkeyval package to find out whether the key value option *{inverted={yes}} needs to somehow be added to the definition of the command \DefineName, but once again I didn't get much out of it (being far too much of a novice). For instance, on page 3 of the rkeyval documentation the following is mentioned:

Test for a trailing option marked by a star. Usage:

\newcommand{\blub}[1]{\star@{\blubaux{#1}}{default}}

Arg 1 of \star@ is the code to be run, arg 2 is the default value of the option (could be empty). If arg 1 is \moo, this test discards a star and expands to \moo if a star is found, or expands to \moo{#2} if not. As the example shows, arg 1 need not be a single token.

10 \def\star@#1#2{%
11     \def\star@a##1{#1}%
12     \def\star@b{#1{#2}}%
13     \futurelet\@let@token\star@test
14 }
15
16 \def\star@test{\ifx*\@let@token \let\star@b\star@a\fi \star@b}

Perhaps this is relevant? I'm honestly quite lost.


I also noticed that if I define a command called \DefineInvertedName analogously to \DefineName as

\newcommand{\DefineInvertedName}[2]{%
    \bib*{#1}{name}{name={#2}*{inverted={yes}}}%
}

followed by adding

\DefineInvertedName{aut-f1}{Author, First}
\DefineInvertedName{aut-s1}{Author, Second}

to the preamble in the MCVE above, and using author={aut-f1} and author={aut-s1} in the \bib entry, gives this as the output:

First Author and Author Second, Title of the paper, Journal of interesting results 10 (2021), no. 3, 8–11. MR12345

That is, only the last author entry is inverted. The same happens when I create a \bib entry with more than two authors: only the last author entry is inverted. This is possibly a byproduct of the way multiple author entries are strung together by AMSRefs, but I'm not able to pinpoint exactly why it is so.

0

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.