在文本中替换他/她

在文本中替换他/她

这个问题导致了一个新的方案的出现:
he-she

我见过一本书,里面没有使用男性代词(他、他的等等),而是交替使用性别(“他”然后是“她”,下次又是“他”)。

有没有办法用 LaTeX 做到这一点 - 使用在两个预定义单词之间交替的占位符?

(我正在寻找一个关于从哪里开始的指针。)

编辑:对马丁的回答的评论中有一个有用的讨论,关于如何放宽严格的他/她替代(如果应用得太严格,可能会造成混淆)。

答案1

继讨论如何在实践中实现这一点之后,这里对 Josef 的解决方案进行了修改,允许使用与当前状态相关的首语代词。代词首语相当复杂,因此即使这种解决方案也只适用于有限的几种情况,但它仍然是一种改进。

更新:我已经实施了这个解决方案作为he-she包裹。

问题出现在如下句子中:

  1. 如果有人认为他/她病了,他应该去看医生。

(正如诺曼所说,用“他们”来表示这类代词是完全口语化的英语,但由于这在这里不是辩论的焦点,我们将继续前进 :-))

在句子 (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软件包可以处理一个人的首语代词,但如果您尝试混合使用\himand \her(或\hisand\hir\hissand \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}

代词替换示例

相关内容