LaTeX/语言学
有许多 LaTeX 包可用于编写语言学论文。已经创建了各种包用于枚举示例、句法树、OT 表格、特征矩阵、IPA 字体以及许多其他应用。一些包,如 tipa
包,在该领域实际上是标准的,而其他包则会根据作者的偏好而有所不同。
一些推荐的包:[1]
- 词语释义:gb4e 或 Covington;
- IPA 符号:tipa;
- OT 表格:OTtablx;
- 句法树:qtree + tree-dvips(用于绘制箭头);
- 或者,xyling 非常强大,但不像 qtree 那么用户友好;
- xy 包本身学习曲线很陡峭,但可以进行很多控制;对于最简单的树,使用 xymatrix 功能和箭头;
- tikz-qtree 与 qtree 具有相同的语法,但使用 PGF/TikZ,这为绘制箭头等提供了更多选项。
- 依存树和气泡解析
- TikZ-dependency 包提供了一个高级、便捷的界面来绘制依存关系图。它基于 PGF/TikZ,但不需要事先了解 TikZ 就能有效地使用。
有几个常用的包用于创建语言学出版物中使用的编号示例。
gb4e 包[2](最后更新于 2010 年),使用以下命令调用:
\usepackage{gb4e}
|
重要:如果使用 gb4e 包,请将其作为文档序言中的最后一个 \usepackage 调用。否则,你可能会遇到参数堆栈大小超出错误。
此包的示例放置在 exe
环境中,每个示例都以 \ex
命令引入。
\begin{exe}
\ex This is an example.
\end{exe}
|
可以在环境中包含多个示例,每个示例都有自己的编号。
\begin{exe}
\ex This is the first example.
\ex This is the second example.
\ex This is the third.
\end{exe}
|
要创建嵌套的示例列表,可以使用 xlist
环境。
\begin{exe}
\ex \begin{xlist}
\ex This is a sub-example.
\ex This is a second sub-example.
\ex \begin{xlist}
\ex This is a sub-sub-example.
\ex This is a second sub-sub-example.
\end{xlist}
\end{xlist}
\end{exe}
|
为了标记可接受性判断,\ex
命令可以接受一个可选参数。在包含判断标记时,相应的句子必须用大括号包围。
\begin{exe}
\ex This sentence is grammatical English.
\ex[*] {This sentence English in ungrammatical is.}
\end{exe}
|
在文本中引用示例的工作方式与正常的 LaTeX 文档相同。有关更多详细信息,请参见标签和交叉引用部分。
\begin{exe}
\ex\label{ex1} Godzilla destroyed the city.
\ex\label{ex2} Godzilla roared.
\end{exe}
Sentence (\ref{ex1}) contains two arguments, but (\ref{ex2}) contains only one.
|
可以在此处找到完整文档中的更多详细信息。
Emma Pease 创建的 ling-macros 包[3](最后更新于 2016 年)是示例编号的另一种方法。此包使用两个主要命令,\enumsentence
和 \eenumsentence
。前者用于单例示例,而后者命令用于嵌套示例。
\enumsentence{This is an example.}
|
\enumsentence{This is the first example.}
\enumsentence{This is the second example.}
\enumsentence{This is the third.}
|
多重嵌套示例使用正常的 LaTeX 列表环境.
\eenumsentence{\item This is a sub-example.
\item This is a second sub-example.
\item \begin{enumerate}
\item This is sub-sub-example.
\item This is a second sub-sub-example.
\end{enumerate}
}
|
可以在此处找到完整文档。
语言学家经常需要展示句子的句法结构。实现此目的的一种方法是通过句法树。不幸的是,不同语法形式的树看起来非常不同,不同的 LaTeX 包适合不同的形式。
成分树
[edit | edit source]虽然 LaTeX 提供了几个用于绘制句法树的包,但这篇文章重点介绍了 qtree 和 xyling 包。
qtree 包
[edit | edit source]用 qtree 绘制树相对简单。首先,需要将 qtree 包(最后更新于 2006 年)包含在文档的前言中
\usepackage{qtree}
|
使用 \Tree 命令开始一个新树,每个(子)树用方括号 [ ] 表示。一个(子)树的根节点总是以 . 开头,叶节点则用它们的标签简单表示。注意,闭合方括号前的空格是 必须 的。
\Tree [.S [.NP LaTeX ] [.VP [.V is ] [.NP fun ] ] ]
|
默认情况下,qtree 将句法树居中放置在页面上。可以通过以下两种方法关闭此行为:
\usepackage[nocenter]{qtree} % do not center trees
|
在加载包时指定行为
\qtreecenterfalse % do not center trees from here on
|
或通过命令
\qtreecentertrue % center trees from here on
|
在文档中的任何位置。可以使用以下命令撤销后者的效果
重要提示:如果您使用 gb4e 包,请将其设置为文档前言中的最后一个 \usepackage
调用。否则,您可能会遇到超出参数堆栈大小的错误。
tikz-qtree[edit | edit source]
使用与 qtree 相同的语法,tikz-qtree(最后更新于 2009 年)是另一种易于使用的绘制句法树的替代方案。
对于简单的树,tikz-qtree 与 qtree 完全可以互换。但是,qtree 的一些高级功能以不同的方式实现,或者根本没有实现。另一方面,tikz-qtree 提供了其他功能,例如控制树生长的方向(从上到下,从左到右等)或不同样式的边。
\usepackage{tikz}
\usepackage{tikz-qtree}
|
要使用 tikz-qtree 包绘制树,请将以下内容放入文档的前言中
\Tree [.S [.NP LaTeX ] [.VP [.V is ] [.NP fun ] ] ]
|
tikz-qtree 的语法和绘制简单树的结果与 qtree 相同。
\begin{center}
\Tree [.S [.NP LaTeX ] [.VP [.V is ] [.NP fun ] ] ]
\end{center}
|
请注意,与 qtree 不同,树默认情况下不会居中。要居中,请将它们放入居中环境中
\tikzset{grow'=right} % make trees grow from left to right
\tikzset{every tree node/.style={anchor=base west}} % align nodes of the tree to the left (west)
\Tree [.S [.NP LaTeX ] [.VP [.V is ] [.NP fun ] ] ]
|
为了设置树的样式,tikz-qtree 提供了 \tikzset
命令。例如,要使树从左到右而不是从上到下生长,请使用以下代码
\begin{tikzpicture} % all changes only affect trees within this environment
\tikzset{grow'=right} % make trees grow from left to right
\tikzset{every tree node/.style={anchor=base west}} % align nodes of the tree to the left (west)
\Tree [.S [.NP LaTeX ] [.VP [.V is ] [.NP fun ] ] ]
\end{tikzpicture}
|
上面的代码更改了定义在 \tikzset
命令后的 所有 树的默认方向。要仅更改单个树的方向,必须将其放入 \tikzpicture
环境中
依存树[edit | edit source]
依存树可以采用多种视觉形式。通常,它们非常类似于短语结构树。或者,它们可以通过绘制在运行文本上方的括号来捕获。
二维依存树[edit | edit source]
% In the preamble:
\usepackage{tikz}
% In the document:
\begin{tikzpicture}
\node (is-root) {is}
[sibling distance=3cm]
child { node {this} }
child {
node {tree}
[sibling distance=1.5cm]
child { node {an} }
child { node {example} }
child { node {.} }
child[missing]
};
\path (is-root) +(0,-2.5\tikzleveldistance)
node {\textit{This is an example tree.}};
\end{tikzpicture}
|
使用 TikZ 创建的依存树TikZ 的优点是它允许直接从 LaTeX 源代码生成 PDF,无需任何使用以下方法编译为 DVI 的绕道latex,然后可能使用诸如以下工具将 DVI 转换为 PDFdvips和.
ps2pdf
% In the preamble:
\usepackage{xyling}
% In the document:
\Tree{ & \K{is}\B{dl}\B{drr} \\
\K{this} &&& \K{tree}\B{dll}\B{dl}\B{dr} \\
& \K{an} & \K{example} && \K{.} }
\medskip
\textit{This is an example tree.}
|
xyling
将依存树作为文本上方的括号[edit | edit source],然后可能使用诸如以下工具将 DVI 转换为 PDFdvips和在运行文本上方排版依存括号的一种方法是使用包 xytree。它让您对括号的排版方式有相当好的控制,但需要将 LaTeX 代码编译为 DVI(并可能使用以下工具转换为 PDF)
% In the preamble:
\usepackage{xytree}
% In the document:
\xytext{
\xybarnode{Peter} &~~~&
\xybarnode{and}
\xybarconnect(UL,U){-2}"_{\small conj}"
\xybarconnect(UR,U){2}"^{\small conj}"
&~~~&
\xybarnode{Mary} &~~~&
\xybarnode{bought}
\xybarconnect[8](UL,U){-4}"_{\small subj}"
\xybarconnect[13]{6}"^{\small punct}"
\xybarconnect[8](UR,U){4}"^{\small obj}"
&~~~&
\xybarnode{a} &~~~&
\xybarnode{car}
\xybarconnect(UL,U){-2}"_{\small det}"
&~~~&
\xybarnode{.}
}
|
之后。
使用 tikz-dependency 包的依存树[edit | edit source]
% In the preamble:
\usepackage{tikz-dependency}
% In the document:
\begin{dependency}[theme = simple]
\begin{deptext}[column sep=1em]
A \& hearing \& is \& scheduled \& on \& the \& issue \& today \& . \\
\end{deptext}
\deproot{3}{ROOT}
\depedge{2}{1}{ATT}
\depedge[edge start x offset=-6pt]{2}{5}{ATT}
\depedge{3}{2}{SBJ}
\depedge{3}{9}{PU}
\depedge{3}{4}{VC}
\depedge{4}{8}{TMP}
\depedge{5}{7}{PC}
\depedge[arc angle=50]{7}{6}{ATT}
\end{dependency}
|
tikz-dependency 包(最后更新于 2012 年)提供了高级命令来设计和设置依存图的样式。要绘制一个图,您只需要创建一个 dependency 环境,在 deptext 环境中写入句子的文本,并使用 \depedge
命令绘制边。全局和局部可选参数可用于设置图形的外观和微调,如以下示例所示
有关详细信息,请参见 TikZ-dependency 文档
词义标注[edit | edit source]
以下是使用不同包制作词义标注示例的方法。使用
gb4e[edit | edit source]
\begin{exe}
\ex
\gll Кот ест сметану\\
cat.NOM eat.3.SG.PRS sour-cream.ACC\\
\trans `The cat eats sour cream'
\end{exe}
|
要使用 gb4e(最后更新于 2010 年)创建词义标注示例,请使用正常的 exe
环境。但在 \ex
标签之后,使用 \gll
介绍示例及其词义标注,然后使用 \trans
标签介绍翻译。
\begin{exe}
\ex
\gll Pekka pel\"astyi karhusta.\\
Pekka {became afraid} bear.ELA\\
\trans `Pekka became afraid because of the/a bear.'
\end{exe}
|
以下是使用不同包制作词义标注示例的方法。垂直对齐的词义标注用空格分隔,因此如果需要在词义标注的部分中包含空格,只需将连接的部分括在花括号中。
ling-macros[edit | edit source]&ling-macros
包(最后更新于 2016 年)使用 \shortex
命令在 \enumsentence
和 \eenumsentence
命令中介绍词义标注示例。此命令接受四个参数,并基于正常的 tabular 环境。它的第一个参数指定词义标注中的列数。第二个和第三个参数分别给出文本及其词义标注,每列中的项目用通常的
\enumsentence{\shortex{3}
{Pekka & pel\"astyi & karhu-sta.}
{Pekka & became afraid & bear.ELA}
{`Pekka became afraid because of the/a bear.'}
}
|
表格分隔符分隔。第四个参数是翻译。
IPA 字符在 Unicode 广泛应用之前,tipa 包(最后更新于 2004 年)是国际音标符号的标准 LaTeX 包。然而,现在 Unicode 中的 IPA 符号可以直接与 LaTeX 一起使用,并结合 Template:XeLaTeX 和 Template:LuaLaTeX,大大提高了可读性。
\usepackage{tipa}
|
将 IPA 符号输入文档有两种方法。第一种方法是使用 IPA 环境。
\begin{IPA}
text in IPA format here
\end{IPA}
|
此方法适用于需要以 IPA 表示的长段文本。或者,可以使用 \textipa
命令,它将把参数中的文本格式化为 IPA。此命令类似于其他 字体排版命令。
\textipa{text in IPA format here}
|
基本符号
[edit | edit source]IPA 格式通过将 ASCII 字符转换为相应的 IPA 符号来工作。小写字母按通常方式渲染,
\textipa{abcdefghijklmnopqrstuvwxyz}
|
但大写字母的渲染方式不同。
\textipa{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
|
通常在 LaTeX 中使用的标点符号也在 IPA 环境中忠实地渲染。
\textipa{! * + = ? . , / [ ] ( ) ` ' | ||}
|
数字和@在 IPA 环境中也有变体。
\textipa{1234567890 @}
|
此外,还有一些用于表示没有其他关联的符号的特殊宏,其中一些在此列出。有关完整列表,请参阅官方 TIPA 手册[4]。
在 \;
宏前加一个大写字母,会生成该字母的小写字母版本。
\textipa{\;A \;B \;E \;G \;H \;I \;L \;R \;Y}
|
\:
宏生成卷舌音符号。
\textipa{\:d \:l \:n \:r \:s \:t \:z}
|
\!
宏生成内爆音符号和双唇点击音。
\textipa{\!b \!d \!g \!j \!G \!o}
|
XeLaTeX
[edit | edit source]在文档中输入 IPA 符号的现代方法是使用 XeTeX 作为编译器,并直接插入符号,使用字符映射或 IPA 键盘。[5]
You can type [fəˈnɛtɪk] symbols in a straightforward manner.
|
音系规则
[edit | edit source]排版音系规则可以使用 phonrule 包(最后更新于 2017 年)来完成。[6]
以下是用此包可以实现的功能示例
\phonb{\phonfeat{+stop \\ +consonant \\ +alveolar} }{[ɾ]}{\phonfeat{+vowel \\ +stressed} }{\phonfeat{+vowel \\ +stressed} }
|
参考文献
[edit | edit source]- ↑ [1] LaTeX for Linguists 演示文稿
- ↑ [2] CTAN 上的 gb4e 包
- ↑ [3] CTAN 上的 ling-macros 包
- ↑ TIPA 手册
- ↑ 有关 IPA 键盘的更多信息,请参阅 SIL [4]。
- ↑ [5] CTAN 上的包。
外部链接
[edit | edit source]