使用 gb4e 将直行注释放在同一页上

使用 gb4e 将直行注释放在同一页上

我在论文中使用了gb4e数百个直行注释。其中几个例子跨越了多页,也就是说,白话文和注释将出现在一页上,而意译则出现在下一页的顶部。

我如何才能将这三个元素放在同一页上?我经常有一些不需要放在一起的子示例 (a、b、c)。也就是说,1a 可以在一页上,1b 可以在下一页上,只要每个子部分的无白话注释翻译保持在一起即可。

在下面的 MWE 中,意译位于第 2 页的顶部,而白话文和注释位于第 1 页的底部。

\documentclass[11pt,letterpaper]{article}
\usepackage{lipsum}
\usepackage{gb4e}
\noautomath
\begin{document}
\lipsum[1-4]
\begin{exe}
    \ex \gll wuz x̃ũch it-ak xohish-em\\
             1\textsc{sg.prn} bread eat-\textsc{inf} want.\textsc{prs}-1\textsc{sg}\\
        \glt `I want to eat bread.' 
\end{exe}
\end{document}

对类似问题提出了解决方案(防止示例第一行之后出现分页符),但它要求我手动查找整篇论文中可能存在的数十个孤立项(并且当应用于我的示例时不起作用,因为它仍然使 FT 陷入困境)。我更喜欢一种更优雅的解决方案,可以自动处理问题。

答案1

\glt是一个非常简单的宏,似乎您可以添加\nobreak,并且至少在这种情况下它是有效的......

\documentclass[11pt,letterpaper]{article}
\usepackage{lipsum}
\usepackage{gb4e}
\def\glt{\nobreak\vskip.17\baselineskip}
\noautomath
\begin{document}
\lipsum[1-4]
\begin{exe}
    \ex \gll wuz x̃ũch it-ak xohish-em\\
             1\textsc{sg.prn} bread eat-\textsc{inf} want.\textsc{prs}-1\textsc{sg}\\
        \glt `I want to eat bread.' 
\end{exe}
\end{document}

答案2

这是一个适用于和的不同解决方案gb4elinguex不需要使用\glt宏来引入翻译行):

gb4e

\documentclass[11pt,letterpaper]{article}
\usepackage{lipsum}
\usepackage{etoolbox}
\usepackage{gb4e}
\makeatletter
\apptocmd{\gl@stop}{\nobreak}{}{}
\makeatother
\noautomath
\begin{document}
\lipsum[1-4]
\begin{exe}
\ex
\begin{xlist}
    \ex \gll wuz x̃ũch it-ak xohish-em\\
             1\textsc{sg.prn} bread eat-\textsc{inf} want.\textsc{prs}-1\textsc{sg}\\
        \glt `I want to eat bread.'
    \ex This is another example. 
\end{xlist}
\end{exe}
\end{document}

linguex

\documentclass[11pt,letterpaper]{article}
\usepackage{lipsum}
\usepackage{etoolbox}
\usepackage{linguex}
\makeatletter
\apptocmd{\gl@stop}{\nobreak}{}{}
\makeatother
\begin{document}
\lipsum[1-4]
\exg. wuz x̃ũch it-ak xohish-em\\
         1\textsc{sg.prn} bread eat-\textsc{inf} want.\textsc{prs}-1\textsc{sg}\\
          `I want to eat bread.'

\ex.    This is another example.

\end{document}

相关内容