% !TEX TS-program = pdflatexmk

\documentclass[11pt]{article}
\title{\textbf{The \textsf{he-she} package}}
\author{\textbf{Alan Munn}\\Department of Linguistics and Languages\\Michigan State University\\\texttt{\href{mailto:amunn@msu.edu}{amunn@msu.edu}}}
\date{Version 1.3\\June 6, 2016}
\usepackage[T1]{fontenc}
\usepackage[margin=1in,includefoot]{geometry}
\usepackage{titling}
\usepackage[utf8]{inputenc}
\usepackage{array, booktabs, multicol, fancyhdr, xspace,tabularx}
\usepackage{enumitem}
\usepackage{fancyvrb,listings,url}
\usepackage[sf,compact]{titlesec}
\usepackage[]{he-she}
\usepackage{gb4e}
\usepackage[colorlinks=true]{hyperref}
\noautomath


\DefineShortVerb{\|}
\newcommand*\bs{\textbackslash}

\IfFileExists{luximono.sty}%
{%
  \usepackage[scaled]{luximono}%
}
{%
  \IfFileExists{beramono.sty}%
  {%
    \usepackage[scaled]{beramono}%
  }{}
}

  
\lstset{%
    basicstyle=\ttfamily\small,
    commentstyle=\itshape\ttfamily\small,
    showspaces=false,
    showstringspaces=false,
    breaklines=true,
    breakautoindent=true,
    breakindent=1em,
    xrightmargin=2.5em,
    captionpos=t
    language=TeX
}
  
\newcommand*{\pkg}[1]{\texttt{#1}\xspace}
\setitemize[1]{label={}}
\setitemize[2]{label={}}
\setdescription{font={\normalfont}}
\setlength{\droptitle}{-1in}

\lhead{}
\chead{}
\rhead{}
\lfoot{\emph{}}
\cfoot{\thepage}
\rfoot{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\pagestyle{fancy}


\begin{document}
\maketitle
\thispagestyle{empty}
\renewcommand{\abstractname}{\sffamily Abstract}

\abstract{\noindent\begin{quote}This is a package to produce ``gender neutral'' text by allowing one to alternate use of the masculine and feminine genders within a text.  It is not really intended to be taken too seriously (although it works) but it was fun to think about how one would do this automatically.  Some comments about using the package in practice are given at the end.\end{quote}}
\section{Introduction}
This package arose out of a question asked on the StackExchange website: \href{http://tex.stackexchange.com/questions/10787/}{Alternate he / she in text}. The question asked how easy it would be to automatically alternate masculine and feminine pronouns. A couple of almost identical solutions were proposed by Martin Scharrer and someone named Josef.  It became clear to me that the simple solution really wasn't enough, since you don't want to switch pronouns all the time, but also require anaphora to an existing switched pronoun.  This package is the result of that discussion. 
\section{Background}
If you are trying to write truly gender-neutral text, then generic constructs like (\ref{1}) prescriptively require you to use either the masculine pronoun (\ref{he}) (which today sounds very stuffy) or the somewhat awful-looking \emph{he or she} (\ref{heshe}) or even worse \emph{s/he} (\ref{she}). Or you can try to reverse the male-only trend and use only the feminine pronoun as a replacement for (\ref{he}), as in (\ref{she-only}). With any luck the use of the gender neutral \emph{they} (as in (\ref{they1})) will become more acceptable to editors, but until then, people who don't like either of the other options are stuck.

\begin{exe}
\ex\label{1}
\begin{xlist}
\ex When a student registers, he receives an ID card.\label{he}
\ex When a student registers, he or she receives an ID card.\label{heshe}
\ex When a student registers, s/he receives an ID card.\label{she}
\ex When a student register, she receives an ID card.\label{she-only}
\ex When a student registers, they receive an ID card.\label{they1}
\end{xlist}
\end{exe}

One option that some seem to have adopted is to switch genders every time a generic pronoun is required so that the first instance of a generic would be continued with \emph{he} and the second by \emph{she}, and so on throughout a text.

It's debatable whether this is in fact a good strategy, and I in no way endorse it, but it was fun to write the resultant package.  So, should you wish to adopt the strategy, and be in need of an automatic way to do it (which makes sense, since otherwise it would be hard to keep track of the switches) the present package is for you.
\section{Package Options}
There are three package options, two serious, and one comic.
\begin{center}
\begin{tabularx}{.8\textwidth}{>{\ttfamily}lX}
\toprule
\multicolumn{1}{c}{\textbf{Option name}} & \multicolumn{1}{l}{\textbf{Description}}\\
\midrule
{[noxspace]} &  Disable the use of \pkg{\bs xspace}\\
{[para]} & Automatically switch the gender every paragraph\\
{[they]} & Replace all pronouns with the gender neutral \emph{they/them/their}. This is not really a practical option, but is included for comic purposes. (See usage notes below.)\\
\bottomrule
\end{tabularx}
\end{center}


\section{User commands}
The user commands are quite simple: for each pronoun case form (nominative, accusative, and genitive determiner and genitive pronominal) there is a switching version and an anaphoric version. In the accusative, there is also a reflexive form.\footnote{In most normal use the reflexive form will only be used in its anaphoric form. I'll leave it as an exercise to the reader to figure out why; linguists in particular may have a use for the switching form, however.}  Each of these has both an uppercase version and a lowercase version. The anaphoric forms can be of either gender, just to keep everyone happy. Since the feminine accusative and genitive determiner forms (\emph{her}) are identical, the feminine genitive determiner macro is |\hir|. And since the masculine genitive pronominal form is the same as the determiner form, the masculine genitive pronominal form is |\hiss|.  There are also a couple of flags that may be of use.\bigskip

\noindent
\begin{tabularx}{.9\textwidth}{>{\ttfamily}l>{\ttfamily}lX}
\toprule
\normalfont\textbf{Command} & \normalfont\textbf{Synonym} &\textbf{Description}\\
\midrule
{\bs heshe} &  & Outputs either \emph{he} or \emph{she} and switches gender.\\
{\bs he} & {\bs she} & Anaphoric \emph{he} or \emph{she} according to the current gender state.\\
{\bs himher} & & \emph{him} or \emph{her} switch.\\
{\bs him} &   {\bs her} & \emph{him} or \emph{her} anaphoric.\\
{\bs himherself} & & \emph{himself} or \emph{herself} switch\\
{\bs himself} & {\bs herself} & \emph{himself} or \emph{herself} anaphoric.\\
{\bs hisher} & & \emph{his} or \emph{her} switch.\\
{\bs his} & {\bs hir} & \emph{his} or \emph{her} anaphoric.\\
{\bs hishers} & & \emph{his} or \emph{hers} switch.\\
{\bs hiss} & {\bs hers } & \emph{his} or \emph{hers} anaphoric.\\
{\bs Heshe} & &  Uppercase version.\\
{\bs Himher} & &  Uppercase version.\\
{\bs Himherself} & & Uppercase version.\\
{\bs Hisher} & &  Uppercase version.\\
{\bs Hishers} & & Uppercase version.\\
{\bs He} & {\bs She} &  Uppercase version.\\
{\bs Him} & {\bs Her} &  Uppercase version.\\
{\bs Himself} & {\bs Herself} & Uppercase version.\\
{\bs His} & {\bs Hir} &  Uppercase version.\\
{\bs Hiss} & {\bs Hers} & Uppercase version.\\
%{\bs she,\bs her,\bs herself, \bs hers} & synonyms for the anaphoric pronouns.\\
%{\bs She,\bs Her, \bs Herself, \bs Hers} & uppercase synonyms for the anaphoric pronouns.\\
{\bs xspacefalse} & & turn off the use of \texttt{\bs xspace}.\\
%{\bs hetrue,\bs hefalse} & & switches current gender state.\\
{\bs setgender\{\}} & & takes one argument: Male/Masculine/M, Female/Feminine/F to set the current gender state.\\
\bottomrule
\end{tabularx}\bigskip

\section{Comments on practical usage}
\subsection{Use of the switching and anaphoric forms}
To see why two systems are needed, consider the following continuation of the example in (\ref{1}).  If we implemented this by replacing each pronoun with a switching version, the result would be (\ref{switched}), which is ridiculous. Instead, we need subsequent pronouns to be anaphoric to the current gender state, as in (\ref{anaphoric}).

\begin{exe}
\ex\label{2}
\begin{xlist}
\ex \hefalse When a student registers, \heshe receives an ID card. \Heshe also must go to the advising office so that an advisor can  verify \hisher schedule with \himher.\label{switched}
\ex When a student registers, \heshe receives an ID card. \He also must go to the advising office so that an advisor  can verify \his schedule with \him.\label{anaphoric}
\end{xlist}
\end{exe}

Using the package, the code that produces the two examples in (\ref{2}) is given in (\ref{code}):

\begin{exe}
\ex\label{code}
\begin{xlist}
\ex
\begin{lstlisting}
When a student registers, \heshe receives an ID card. \Heshe also must go to the advising office so that an advisor can verify \hisher schedule with \himher.
\end{lstlisting}
\sn
\vskip-2em
\ex
\begin{lstlisting}
When a student registers, \heshe receives an ID card. \He also must go to the advising office so that an advisor can verify \his schedule with \him.
\end{lstlisting}
\end{xlist}
\end{exe}

In the first example, the switching version is used throughout, yielding the gibberish of (\ref{switched}). In the second example the first instance of the pronoun uses the switching version (|\heshe|) (here assuming it has been already used once), but subsequent anaphoric references to the current gender are preserved using the anaphoric versions (|\he,\him|, |\his| or |\hiss|).

\subsection{Use of the \pkg{xspace} package}
By default, the package uses the \pkg{xspace} package to insert a space automatically after the pronoun. The \pkg{xspace} package automatically checks for following punctuation and suppresses the space in these cases.  However, it's not perfect, and some users might prefer not to have the space inserted automatically.  They can do this by using the \pkg{[noxspace]} option.

If you are using the default settings, and encounter problems (for example, using a pronoun macro as the argument to another macro which ends in |\relax| will pose problems, as will punctuation that \pkg{xspace} doesn't know about) you can temporarily suppress the insertion of the space using the boolean |\xspacefalse|. The examples below illustrate this.

\newcommand*\mymacro[1]{#1\relax}
\begin{exe}
\ex\label{xspaces}
\begin{xlist}
\ex \begin{lstlisting}
\newcommand*\mymacro[1]{#1\relax}
I will see \mymacro{\himher}.
\end{lstlisting}
\ex I will see \mymacro{\himher}.\hfill(Extra space incorrectly inserted.)
\ex\begin{lstlisting}
\newcommand*\mymacro[1]{\xspacefalse#1\relax}
I will see \mymacro{\himher}.
\end{lstlisting}
\def\mymacro#1{\xspacefalse#1\relax}
\ex I will see \mymacro{\himher}.\hfill(Extra space suppressed.)
\end{xlist}
\end{exe}
\subsection{Manually switching the gender state}
\sloppy For some purposes it might be useful to set the gender manually.  For this there is the |\setgender{}| command. This command takes one argument which can be any version of |Male/Female/Masculine/Feminine/M/F|. Using the manual method might actually be practical in some cases.  For example, you could set the state at the beginning of a chapter and then just use the anaphoric version of the pronouns for all generic pronouns throughout the chapter.  This might be a less annoying strategy than switching pronouns constantly throughout a chapter. Another possible use for this method would be for form letters which have text which must be personalized for the gender of the addressee.

Here are some examples.  In (\ref{booleansa}) we see the gender set to F and then a switching version of the pronoun is used. This switches the gender to M.  In (\ref{booleansb}), the gender is set to F and then a anaphoric pronoun is used, and its gender is also F.\footnote{This command replaces direct manipulation of the state-switching boolean which was present in older versions. Documents using these direct manipulations will still work, however.}


\begin{exe}
\ex\label{booleansa}
\begin{xlist}
\ex \begin{lstlisting}
\setgender{F} \Heshe will leave.
\end{lstlisting}
\ex \setgender{F}\Heshe will leave.\hfill(Since gender is set to F, the switched pronoun is M)
\end{xlist}
\end{exe}
\begin{exe}
\ex\label{booleansb}
\begin{xlist}
\ex\begin{lstlisting}
\setgender{F} \He will leave.
\end{lstlisting}
\ex \setgender{F} \He will leave.\hfill(Since gender is set to F the anaphoric pronoun is also F)
\end{xlist}
\end{exe}


\section{The \pkg{[para]} option}
For some purposes it may be useful to have the genders switch every paragraph.  In this case you may use the \pkg{[para]} option.  With this option, every new paragraph resets the gender.  In this case, as with the per chapter example just discussed, \emph{only} the anaphoric versions of the pronouns should be used in the running text. This option was added in response to another  \href{http://tex.stackexchange.com/q/100108/2693}{Stack Exchange question}.

\section{The \pkg{[they]} option}
When you get tired of alternating genders, you can switch to
this option, which will replace all of the relevant pronouns with the third
person plural pronoun form (\emph{they/them/their/theirs}).  Note that for the nominative
this will cause your document to produce ungrammatical text, since there is 
no way to fix the subject/verb agreement. As a result, this is probably not intended to be a robust alternative! You have been warned! (And you will be if you use it too.) Here is a sample:
\begin{exe}
\ex\label{they}
\begin{xlist}
\ex \begin{lstlisting}
If someone thinks \heshe is sick \he should go to a doctor immediately. When \he goes to the the doctor, \heshe can figure out the problem.
\end{lstlisting}
\ex If someone thinks they is sick they should go to a doctor immediately. When they goes to the the doctor, they can figure out the problem.
\end{xlist}
\end{exe}
\section{Bugs}
Feel free to report bugs if you find some. I will try to address them as time permits. Also,  if you really find the package useful, please let me know.  The same goes for feature requests.

\end{document}