Here several years later with an alternative proposal. Doing this automatically presents some tricky corner cases. Take this gender-neutral Alice-and-Bob example:
Alice asked Bob to move Bob’s car out of Alice’s driveway. Bob told Alice that the driveway was as much Bob’s as Alice’s, so Alice could go love herself.
If you replaced all the names with pronouns, you would get:
She asked him to move his car out of her driveway. He told her that the driveway was as much his as hers, so she could go love herself.
Three things we immediately notice:
- There are five cases for the personal pronouns in this English paragraph: subject, object, possessive, absolute possessive, and reflexive.
- Any of them can appear in uppercase or lowercase.
- The pronouns do not always alternate. There are two characters, distinguished by gender.
The existing he-she
package can handle anaphoric pronouns for one person, but if you try to mix \him
and \her
(or \his
and \hir
or \hiss
and \hers
), they will all be the same gender until the next paragraph. The only way to write about two example characters with different genders is to constantly flip the gender toggle, which is difficult to read and error-prone.
The logic gets even more complex if we need to, for example, remember the arbitrary gender of a character later. (Think back to our poor student in Section 1. She ....)
And introducing even a few words from any language with grammatical gender complicates things a lot. (Fiancé/Fiancée, for example.)
The most useful thing you can do with this—which, with respect to singular they or Spivak pronouns, you can’t do as fluently with them—is that you have a made-up example with two people, who use different pronouns. Then you don’t have to keep using their names or circumlocutions like “the former” or ”the second one.” In that use case, there are only two people to keep track of. Luckily, there are two permutations of he/she, her/his, and so on. So, you could define commands \heshe
, \shehe
, \HerHis
, \HisHer
, etc. Adding a star would then swap the current character’s gender. The genders of commands will remain consistent (if \SheHe
expands to She
, \hisher
will expand to his
, and so on) until the next starred command swaps them all.
So, the source code for that example would look like:
\SheHe* asked \himher to move \hisher car out of
\herhis driveway. \HeShe told \herhim that the
driveway was as much \hishers as \hershis, so
\shehe could go love \herhimself.
This could be built from a more general command that selects based on the last character’s gender, which would also be useful in and of itself:
\gendered{fiancé}{fiancée}
A “Simple” implementation
\documentclass{article}
\usepackage{libertine} % For example.
%% Simple pronoun alternation:
\usepackage{xspace, suffix}
\makeatletter
\newif\ifpronouns@feminine
\pronouns@femininefalse
\newcommand{\gendered}[2]{%
\ifpronouns@feminine%
{#2}%
\else {#1}%
\fi}
\WithSuffix\newcommand\gendered*[2]{%
\ifpronouns@feminine%
\pronouns@femininefalse%
\else%
\pronouns@femininetrue%
\fi%
\gendered{#1}{#2}}
%% This could really be automated to generate the eight forms of each pair of
%% pronouns, along the capital/lowercase, same/other and starred/unstarred
%% axes.
\newcommand\HeShe{\gendered{He}{She}\xspace}
\WithSuffix\newcommand\HeShe*{\gendered*{He}{She}\xspace}
\newcommand\heshe{\gendered{he}{she}\xspace}
\WithSuffix\newcommand\heshe*{\gendered*{he}{she}\xspace}
\newcommand\SheHe{\gendered{She}{He}\xspace}
\WithSuffix\newcommand\SheHe*{\gendered*{She}{He}\xspace}
\newcommand\shehe{\gendered{she}{he}\xspace}
\WithSuffix\newcommand\shehe*{\gendered*{she}{he}\xspace}
\newcommand\HimHer{\gendered{Him}{Her}\xspace}
\WithSuffix\newcommand\HimHer*{\gendered*{Him}{Her}\xspace}
\newcommand\himher{\gendered{him}{her}\xspace}
\WithSuffix\newcommand\himher*{\gendered*{him}{her}\xspace}
\newcommand\HerHim{\gendered{Her}{Him}\xspace}
\WithSuffix\newcommand\HerHim*{\gendered*{Her}{Him}\xspace}
\newcommand\herhim{\gendered{her}{him}\xspace}
\WithSuffix\newcommand\herhim*{\gendered*{her}{him}\xspace}
\newcommand\HisHer{\gendered{His}{Her}\xspace}
\WithSuffix\newcommand\HisHer*{\gendered*{His}{Her}\xspace}
\newcommand\hisher{\gendered{his}{her}\xspace}
\WithSuffix\newcommand\hisher*{\gendered*{his}{her}\xspace}
\newcommand\HerHis{\gendered{Her}{His}\xspace}
\WithSuffix\newcommand\HerHis*{\gendered*{Her}{His}\xspace}
\newcommand\herhis{\gendered{her}{his}\xspace}
\WithSuffix\newcommand\herhis*{\gendered*{her}{his}\xspace}
\newcommand\HisHers{\gendered{His}{Hers}\xspace}
\WithSuffix\newcommand\HisHers*{\gendered*{His}{Hers}\xspace}
\newcommand\hishers{\gendered{his}{hers}\xspace}
\WithSuffix\newcommand\hishers*{\gendered*{his}{hers}\xspace}
\newcommand\HersHis{\gendered{Hers}{His}\xspace}
\WithSuffix\newcommand\HersHis*{\gendered*{Hers}{His}\xspace}
\newcommand\hershis{\gendered{hers}{his}\xspace}
\WithSuffix\newcommand\hershis*{\gendered*{hers}{his}\xspace}
\newcommand\HimHerself{\gendered{Himself}{Herself}\xspace}
\WithSuffix\newcommand\HimHerself*{\gendered*{Himself}{Herself}\xspace}
\newcommand\himherself{\gendered{himself}{herself}\xspace}
\WithSuffix\newcommand\himherself*{\gendered*{himself}{herself}\xspace}
\newcommand\HerHimself{\gendered{Herself}{Himself}\xspace}
\WithSuffix\newcommand\HerHimself*{\gendered*{Herself}{Himself}\xspace}
\newcommand\herhimself{\gendered{herself}{himself}\xspace}
\WithSuffix\newcommand\herhimself*{\gendered*{herself}{himself}\xspace}
\makeatother
%% Test document:
\begin{document}
\SheHe* asked \himher to move \hisher car out of
\herhis driveway. \HeShe told \herhim that the
driveway was as much \hishers as \hershis, so
\shehe could go love \herhimself.
\SheHe* asked \himher to move \hisher car out of
\herhis driveway. \HeShe told \herhim that the
driveway was as much \hishers as \hershis, so
\shehe could go love \herhimself.
\end{document}