这个问题导致了一个新的方案的出现:
he-she
我见过一本书,里面没有使用男性代词(他、他的等等),而是交替使用性别(“他”然后是“她”,下次又是“他”)。
有没有办法用 LaTeX 做到这一点 - 使用在两个预定义单词之间交替的占位符?
(我正在寻找一个关于从哪里开始的指针。)
编辑:对马丁的回答的评论中有一个有用的讨论,关于如何放宽严格的他/她替代(如果应用得太严格,可能会造成混淆)。
答案1
继讨论如何在实践中实现这一点之后,这里对 Josef 的解决方案进行了修改,允许使用与当前状态相关的首语代词。代词首语相当复杂,因此即使这种解决方案也只适用于有限的几种情况,但它仍然是一种改进。
更新:我已经实施了这个解决方案作为he-she
包裹。
问题出现在如下句子中:
- 如果有人认为他/她病了,他应该去看医生。
(正如诺曼所说,用“他们”来表示这类代词是完全口语化的英语,但由于这在这里不是辩论的焦点,我们将继续前进 :-))
在句子 (1) 中,我们需要主句中的代词与“if”从句中的代词在性别上相匹配。\heshe
但是,如果我们使用宏,我们将不知道性别是什么,因为它会根据之前使用的次数而改变。
所以我们确实需要二宏:一个用于切换,一个用于当前性别状态的照应引用。我通过在 Josef 的解决方案中创建一个额外的宏来实现这一点(当然,同样的想法也适用于 Martin 的解决方案)。
\documentclass{article}
\usepackage{xspace}
\newif\ifhe\hetrue
\newcommand*\heshe%
{%
\ifhe%
he%
\global\hefalse%
\else%
she%
\global\hetrue%
\fi%
\xspace
}%
\newcommand*\he%
{\ifhe%
she
\else%
he%
\fi
\xspace
}
\begin{document}
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{document}
与将更改范围限制到单个句子相比,这是一个从语言学角度更有用的版本,因为在源示例的第二个句子中,有两个代词实例:第一个是前一个句子的回指词(因此应该在性别上匹配,但第二个可以分配一个新的性别。)
答案2
您可以通过定义一个开关每次使用时都会切换:
\newif\iffemale
\usepackage{xspace}
\newcommand*\heorshe{%
\iffemale
she
\global\femalefalse% next one is male
\else
he
\global\femaletrue% next one is female
\fi
\xspace
}
% Capitalized version:
\newcommand*\Heorshe{%
\iffemale
She
\global\femalefalse
\else
He
\global\femaletrue
\fi
\xspace
}
编辑:添加了缺失的\global
和\xspace
。
答案3
我很努力,但马丁更快;-)
\documentclass{scrartcl}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{xspace}
\newif\ifhe\hetrue
\newcommand*\heshe%
{%
\ifhe%
he%
\global\hefalse%
\else%
she%
\global\hetrue%
\fi%
\xspace
}%
\begin{document}
First \heshe is a man, but then \heshe turns into a woman. And back again: \heshe
\end{document}
答案4
几年后,这里提出了一个替代方案。这样做会自动出现一些棘手的极端情况。以这个性别中立的爱丽丝和鲍勃为例:
爱丽丝问鲍勃移动鲍勃的车出爱丽丝的车道。 鲍勃告诉爱丽丝车道也一样鲍勃的作为爱丽丝的, 所以爱丽丝可以去爱她自己。
如果你将所有名字替换为代词,则会得到:
她问他移动他的车出她车道。 他告诉她车道也一样他的作为她的, 所以她可以去爱她自己。
我们立即注意到三件事:
- 本英文段落中人称代词有五种格:主语、宾语、所有格、绝对所有格和反身格。
- 其中任何一个都可以以大写或小写形式出现。
- 代词不是总是交替出现。有两个角色,按性别区分。
现有he-she
软件包可以处理一个人的首语代词,但如果您尝试混合使用\him
and \her
(或\his
and\hir
或\hiss
and \hers
),它们在下一段之前都将是同一性别。写出两个不同性别的示例角色的唯一方法是不断切换性别,这很难阅读并且容易出错。
例如,如果我们以后需要记住某个角色的任意性别,那么逻辑就会变得更加复杂。(回想一下第 1 节中我们那个可怜的学生。) 她....)
并且,即使只引入任何语言中具有语法性别的几个词,也会使事情变得复杂得多。(例如,未婚夫/未婚妻。)
你可以用它做的最有用的事情是,对于单数他们或 Spivak 代词,你不能像他们那样流利地使用它们——你有一个虚构的例子,两个人使用不同的代词。那么你就不必继续使用他们的名字或像“前者”或“第二个”这样的迂回说法。在那种用例中,只需要跟踪两个人。幸运的是,有两种排列组合他/她,她/他的,等等。因此,您可以定义命令\heshe
、\shehe
、\HerHis
、\HisHer
等。添加星号后,将交换当前角色的性别。命令的性别将保持一致(如果\SheHe
扩展为She
,\hisher
将扩展为his
,等等),直到下一个带星号的命令将它们全部交换。
因此,该示例的源代码如下所示:
\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.
这可以从一个更通用的命令构建,该命令根据最后一个字符的性别进行选择,这本身也很有用:
\gendered{fiancé}{fiancée}
“简单”的实现
\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}