![gb4e:删除前言/标题行下方的多余空格](https://linux22.com/image/315563/gb4e%EF%BC%9A%E5%88%A0%E9%99%A4%E5%89%8D%E8%A8%80%2F%E6%A0%87%E9%A2%98%E8%A1%8C%E4%B8%8B%E6%96%B9%E7%9A%84%E5%A4%9A%E4%BD%99%E7%A9%BA%E6%A0%BC.png)
我正在用 撰写语言学博士论文gb4e
。在许多情况下,我想在行间示例中添加序言行,而在其他一些情况下,我需要tabbing
在示例中嵌入环境(主要用于计数器)。原则上,这可以正常工作,但gb4e
在行前引入了不必要的空格\gll
。我搜索了整个互联网,但没有找到解决方案。我的示例太多,无法切换到另一个包,例如expex
。我也尝试过使用cgloss.sty
,但这会弄乱我的一些较长的行间示例。
以下是 MWE:
\documentclass{scrbook}
\usepackage{gb4e}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{exe}
\ex \gll bloss ein Beispiel\\
just a example\\
\glt \lq Just an example'
\ex Swahili:
\gll m-toto a-na-cheza\\
1-child 1-\textsc{prog}-play\\
\glt \lq A/the child is playing'
\ex Some Swahili verb stems:
\begin{tabbing}
xxxxx\=\kill
\textit{cheza}\>\lq play; dance'\\
\textit{jua}\>\lq know'\\
\textit{fika}\>\lq arrive'
\end{tabbing}
\end{exe}
\lipsum[2]
\end{document}
因此,我希望在 (2) 中的“斯瓦希里语”和行间示例之间以及 (3) 中的“某些斯瓦希里语动词词干”和以下列表之间分别有一个换行符,且没有任何额外空格。我将非常感谢您的帮助!
答案1
1. 其中gb4e
、cgloss
和tabular
我认为解决垂直间距问题最简单的方法是加载cgloss
包并切换到tabular
环境而不是tabbing
。
该cgloss
软件包在 CTAN 或标准发行版中不可用;请参阅 Alan Munn 的回答到为什么在我的直行注释中,翻译和注释的最后一行之间的差距这么大?了解有关如何下载和安装它的信息。您提到您已经尝试过这种方法,但它给较长的示例带来了问题;也许您应该就此提出一个单独的问题,或者修改您的 MWE,以便我们可以使用其中一些较长的示例。
除非您有充分的理由使用tabbing
,否则使用 更为常见tabular
。
代码
\documentclass{scrbook}
\usepackage{array} % for formatting tabular columns
\usepackage{gb4e}
\usepackage{cgloss} % reduces vertical space between preamble and gloss lines, as well as between gloss lines and free translation lines
\begin{document}
\begin{exe}
\ex \gll bloss ein Beispiel\\
just a example\\
\glt \lq Just an example'
\ex Swahili:\\
\gll m-toto a-na-cheza\\
1-child 1-\textsc{prog}-play\\
\glt \lq A/the child is playing'
\ex Some Swahili verb stems:\\ % with tabular, just using a normal line break (\\) gives the right spacing
\begin{tabular}[t]{@{}>{\itshape}ll} % the @{} removes horizontal spacing before the start of the tabular, >{\itshape} specifies that the next column is italics, and ll give you two left-aligned columns
cheza & \lq play; dance' \\
jua & \lq know' \\
fika & \lq arrive' \\
\end{tabular}
\end{exe}
\end{document}
输出
2. 有gb4e
且tabbing
没有cgloss
如果你真的无法工作cgloss
,但又真的想使用tabbing
,这里有一些让它工作的小窍门:
- 新的
pream
命令为您提供了冒号并删除了一些垂直空间。 - 当您有一个前导行但
cgloss
尚未加载时,gb4e
会在该行前添加额外的空间\glt
,因此新\pglt
命令会在调用该命令之前删除一些垂直空间\glt
。
代码
\documentclass{scrbook}
\usepackage{gb4e}
\newcommand{\pream}[1]{#1:\\[-4.5ex]} % for preamble lines, supplies a colon and removes some vertical space
\newcommand{\pglt}{\vspace*{-2ex}\glt} % for use in examples that have a preamble
\begin{document}
\begin{exe}
\ex \gll bloss ein Beispiel\\
just a example\\
\glt \lq Just an example'
\ex \pream{Swahili} % put your preambles in the \pream{} command
\gll m-toto a-na-cheza\\
1-child 1-\textsc{prog}-play\\
\pglt \lq A/the child is playing' % when a glossed example has a preamble, use \pglt instead of \glt
\ex \pream{Some Swahili verb stems}
\begin{tabbing}
xxxxx\=\kill
\textit{cheza}\>\lq play; dance'\\
\textit{jua}\>\lq know'\\
\textit{fika}\>\lq arrive'
\end{tabbing}
\end{exe}
\end{document}
输出
3. 使用expex
用户高频高频滤波器在评论中询问如何使用其他包实现这一点。该expex
包\glpreamble
在光泽环境中提供了一个可选行,以及一个参数belowglpreambleskip
用于指示此线与光泽线之间的垂直空间大小(请参阅expex 语言注释中的 aboveglftskip有关更多信息)。该软件包非常灵活;几乎任何关于示例/注释格式的调整都可以通过提供的键值选项轻松完成。
代码
\documentclass{scrbook}
\usepackage{array} % for formatting tabular columns
\usepackage{expex}
\lingset{ % sets expex options
everygla=, % top line of gloss is not italics
belowglpreambleskip=-0.5ex, % removes some vertical space between the preamble and gloss lines
aboveglftskip=-0.5ex % removes some vertical space between the gloss and free translation lines
}
\begin{document}
\ex
\begingl
\gla bloss ein Beispiel //
\glb just a example //
\glft \lq Just an example' //
\endgl
\xe
\ex~
\begingl
\glpreamble Swahili: //
\gla m-toto a-na-cheza //
\glb 1-child 1-\textsc{prog}-play //
\glft \lq A/the child is playing' //
\endgl
\xe
\ex~ Some Swahili verb stems:\\
\begin{tabular}[t]{@{}>{\itshape}ll} % the @{} removes horizontal spacing before the start of the tabular, >{\itshape} specifies that the next column is italics, and ll give you two left-aligned columns
cheza & \lq play; dance' \\
jua & \lq know' \\
fika & \lq arrive' \\
\end{tabular}
\xe
\end{document}
输出
4. 使用linguex
因为底层linguex
使用cgloss4e
就像 一样gb4e
,所以修复方法与 非常相似gb4e
。切换到cgloss
将意味着您无法使用\exg.
提供的简写环境,linguex
而无需使用\glt
来引入自由翻译行。据我所知,\exg.
无论如何都无法使用 和 序言,因此最简单的方法可能是只对每个示例使用并在需要注释时\ex.
引入\gll
和。\glt
代码
\documentclass{scrbook}
\usepackage{array} % for formatting tabular columns
\usepackage{linguex}
\usepackage{cgloss} % reduces vertical space between preamble and gloss lines, as well as between gloss lines and free translation lines
\begin{document}
\exg. bloss ein Beispiel \\
just a example \\
\glt \lq Just an example' % won't work without the \glt
\ex. Swahili:\\
\gll m-toto a-na-cheza\\
1-child 1-\textsc{prog}-play\\
\glt \lq A/the child is playing'
\ex. Some Swahili verb stems:\\ % with tabular, just using a normal line break (\\) gives the right spacing
\begin{tabular}[t]{@{}>{\itshape}ll} % the @{} removes horizontal spacing before the start of the tabular, >{\itshape} specifies that the next column is italics, and ll give you two left-aligned columns
cheza & \lq play; dance' \\
jua & \lq know' \\
fika & \lq arrive' \\
\end{tabular}
\end{document}
输出