首先,我并不是使用 LaTeX 的专家,我几个月前才开始使用。
我正在使用 MiKTeX 和expex
注释语言示例包。如果我们看一个注释示例,我们会看到第四行上方有一个空格,这是自由翻译(\glft
):
为了消除 glft 行上方的垂直间距,expex 文档建议您在列aboveglftskip=0pt
中使用命令“ ” \begingl
。我在我的文档中使用了这个命令,但它仍然给我一个带有间距的注释\glft
。我正在使用一个奇怪的模板,里面有很多东西,但它很可能是 beamer 类。但即使我剥离文档中的所有内容,并执行正常的 beamer 或 article 类,它也不会起作用:
\documentclass{article}
\usepackage{expex}
\begin{document}
\ex
\begingl[everyglpreamble=\it, belowglpreambleskip=0pt, aboveglftskip=0pt]
\gla batis-ne //
\glb feet-\sc{3.sg.poss}//
\glft`his/her feet'//
\endgl
\xe
\clearpage
\end{document}
根据文档,也可以在\glft
我尝试过的行中使用命令。但它没有起作用...我做错了什么吗?我想去掉 glft 行上方的垂直间距!我也在expex
写的一篇论文中使用了这个包,它在那里工作得很好。
答案1
在我看来,aboveglftskip=0pt
即使使用最新版本 (2014/03/10 v5.0b),也无法消除注释和翻译之间的所有额外垂直空间expex
;见下文。为了解决这个问题,我通常使用负值aboveglftskip
(和belowglpreambleskip
,有同样的问题),但在我看来这只是一个 hack。
由此代码生成:
\documentclass{article}
\usepackage{expex}
\begin{document}
\ex
\begingl[everygla=]
\glpreamble XXXXXXXX (default) //
\gla XXXXXXXX //
\glb XXXXXXXX //
\glft XXXXXXXX (default)//
\endgl
\xe
\ex
\begingl[everygla=, belowglpreambleskip=0pt, aboveglftskip=0pt]
\glpreamble XXXXXXXX (0pt) //
\gla XXXXXXXX //
\glb XXXXXXXX //
\glft XXXXXXXX (0pt) //
\endgl
\xe
\ex
\begingl[everygla=, belowglpreambleskip=-0.5ex, aboveglftskip=-0.5ex]
\glpreamble XXXXXXXX (-0.5ex) //
\gla XXXXXXXX //
\glb XXXXXXXX //
\glft XXXXXXXX (-0.5ex) //
\endgl
\xe
\clearpage
\end{document}
答案2
我提交了关于这个问题在expex
github repo 中,作者报告了一种短期解决方法。
结论:您可以将 设置为\parskip
(如下所示),并将一些其他值设置为。0pt
Everyex
0pt
\lingset{Everyex={\parskip=0pt}}
以下 MWE 是一个完整的解决方法:
\documentclass{article}
\usepackage{expex}
\setlength{\parskip}{12pt}
\lingset{
aboveglftskip=0pt,
belowglpreambleskip=0pt,
belowpreambleskip=0pt,
extraglskip=0pt,
Everyex={\parskip=0pt},
}
\begin{document}
\ex
\begingl[everygla={}]
\glpreamble XXXXXXXX //
\gla XXXXXXXX //
\glb XXXXXXXX //
\glft XXXXXXXX //
\endgl
\xe
\end{document}
这似乎导致了间距均匀的线条:
没有了extraglskip=0pt
,它看起来就像这样,大部分额外的空间都消失了:
如果Everyex={\parskip=0pt}
另外删除,则结果如下,会有很多额外空间(由于12pt
\parskip
):