The he-she
package now does everything you need. (I have added a package option as the result of this question.) Let's first see how you would do this without automating (and why this is probably preferable.)
Partial automation
The he-she
package implements two different sets of macros for pronouns: one set (\heshe
, \himher
, and \hisher
) outputs a pronoun and switches the gender for the next use of any one of the same set. So, for example:
\Heshe put \hisher coat beside a statue of \himher.
will output
He put her coat beside a statue of him.
or:
She put his coat beside a statue of her.
depending on the current state.
However, the second set of pronouns (\he
, \him
, \his
) allows you to continue with the current gender state as long as you like, in your case, for a whole paragraph if you wish. So in this case:
\Heshe put \his coat beside a statue of \him.
will output
He put his coat beside a statue of him.
or:
She put her coat beside a statue of her.
depending on the current state.
So if you want to change pronouns every paragraph, you can do so by making the first instance of a pronoun in a paragraph be the switching version, and every subsequent pronoun a non-switching (anaphoric) version.
Now this obviously doesn't automatically switch every paragraph, but I'm not sure that's desirable anyway. Just as a the sentence is not the right level at which to change genders, it's not clear to me that the paragraph is the right level either, since you probably really want to change at some sort of higher level of structure (something like "topic change"). So it might not be the best idea to reset the gender every paragraph, but every set of one or more paragraphs that form a coherent topic.
However, if you're wedded to automation (and after all that's one of the things we all love about LaTeX anyway) it can be done:
Total automation
Adapting the everypar
solution to the he-she
package, we can do the following. I've used the everyhook
package to interface with \everypar
. This has now been added as an option to the package itself.
\documentclass{article}
\usepackage{everyhook}
\usepackage{he-she}
\PushPreHook{par}{\makebox[0pt][0pt]{\heshe}}
\begin{document}
When a player rolls the dice \he will have to do something. \He will do that thing
with all of \his powers and \he will make sure that nobody sees \him.
When a player rolls the dice \he will have to do something. \He will do that thing
with all of \his powers and \he will make sure that nobody sees \him.
\end{document}
The idea here is that we hook into \par
and issue the switching version of the pronoun command in a zero width box. Then we use the anaphoric version of the pronoun in the running text.
As a package option
This has been implemented into the package as an option [para]
. So with the current version of the package (v1.1) you can just do:
\documentclass{article}
\usepackage[para]{he-she}
\begin{document}
When a player rolls the dice \he will have to do something. \He will do that thing
with all of \his powers and \he will make sure that nobody sees \him.
When a player rolls the dice \he will have to do something. \He will do that thing
with all of \his powers and \he will make sure that nobody sees \him.
\end{document}

he-she
package by Alan Munn – texenthusiast Feb 27 '13 at 5:10