在多列环境中对齐 ExPex 行间注释

在多列环境中对齐 ExPex 行间注释

考虑一下这个MWE:

\documentclass{scrartcl}

\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\usepackage[english]{babel}
\usepackage{multicol}
\usepackage{expex}

\begin{document}

\begin{multicols}{2}

\ex %1
    \begingl
        \gla ŋada baniñu //
        \glb {I (S/AGT)} coming //
        \glc 1SG.NOM coming //
        \glft `I am coming.' //
    \endgl
\xe

\ex %2
    \begingl
        \gla ŋinda baniñu //
        \glb {you (S/AGT)} coming //
        \glc 2SG.NOM coming //
        \glft `You are coming.' //
    \endgl
\xe

\ex %3
    \begingl
        \gla {balan dugumbil} baniñu //
        \glb {the woman (S/AGT)} coming //
        \glc {the woman.ABS} coming //
        \glft `The woman is coming.' //
    \endgl
\xe

\ex %4
    \begingl
        \gla {bayi yara} baniñu //
        \glb {the man (S/AGT)} coming //
        \glc {the man.ABS} coming //
        \glft `The man is coming.' //
    \endgl
\xe

\ex %5
    \begingl
        \gla ŋada ŋinu-na balgan //
        \glb {I (AGT)} {you (PAT)} hitting //
        \glc 1SG.NOM 2SG-ACC hitting //
        \glft `I'm hitting you.' //
    \endgl
\xe

\ex %6
    \begingl
        \gla ŋinda ŋaygu-na balgan //
        \glb {you (AGT)} {me (PAT)} hitting //
        \glc 2SG.NOM 1SG-ACC hitting //
        \glft `You're hitting me.' //
    \endgl
\xe

\end{multicols}
\end{document}

虽然各个示例的行数相同,并且都包含大写和小写字符,但是当将它们并排放在两列中时,它们之间的间距就不对了,看起来很尴尬:

多列环境中示例之间的间距不合适

有什么方法可以修复此问题?有趣的是,除了最后两个示例外,我没有发现任何不规则对齐。

答案1

expex\noindent在 末尾发出\xe。我认为使用 会更好(如列表)\@doendpe。(当前系统中不需要加载 xunicode,xltxtra 通常也是不必要的,所以我删除了两者)。

\documentclass{scrartcl}

\usepackage{fontspec}
\usepackage[english]{babel}
\usepackage{multicol}
\usepackage{expex}

\makeatletter
\def\xe{%
   \expandafter\vskip\lingbelowexskip
   \egroup
   \if@specialexno \else \stepexcnt \fi
   \allowbreak
   \prevdepth\dp\strutbox
   %\noindent
   \@doendpe
}
\makeatother
\begin{document}

\begin{multicols}{2}%\raggedcolumns

\ex %1
    \begingl
        \gla ŋada baniñu //
        \glb {I (S/AGT)} coming //
        \glc 1SG.NOM coming //
        \glft `I am coming.' //
    \endgl
\xe

\ex %2
    \begingl
        \gla ŋinda baniñu //
        \glb {you (S/AGT)} coming //
        \glc 2SG.NOM coming //
        \glft `You are coming.' //
    \endgl
\xe

\ex %3
    \begingl
        \gla {balan dugumbil} baniñu //
        \glb {the woman (S/AGT)} coming //
        \glc {the woman.ABS} coming //
        \glft `The woman is coming.' //
    \endgl
\xe

\ex %4
    \begingl
        \gla {bayi yara} baniñu //
        \glb {the man (S/AGT)} coming //
        \glc {the man.ABS} coming //
        \glft `The man is coming.' //
    \endgl
\xe

\ex %5
    \begingl
        \gla ŋada ŋinu-na balgan //
        \glb {I (AGT)} {you (PAT)} hitting //
        \glc 1SG.NOM 2SG-ACC hitting //
        \glft `I'm hitting you.' //
    \endgl
\xe

\ex %6
    \begingl
        \gla ŋinda ŋaygu-na balgan //
        \glb {you (AGT)} {me (PAT)} hitting //
        \glc 2SG.NOM 1SG-ACC hitting //
        \glft `You're hitting me.'//
    \endgl
\xe

\end{multicols}
blblabla
\end{document}

在此处输入图片描述

答案2

不管怎样,我可以通过在第 3 个示例之后multicolsmulticols*和手册替换,在它之前和环境末尾用 替换来“修复”这个问题。不过,这似乎有点黑客行为。\columnbreak\vfill

相关内容