调整 gb4e 中的边距和行间距

调整 gb4e 中的边距和行间距

我正在尝试压缩 gb4e 中示例周围的空间,目的是删除摘要中示例周围不必要的空白。以下是 gb4e 现在给我的结果:

gb4e 默认间距

我希望这些示例本质上看起来像正在运行的文本的一部分,如下所示:

在此处输入图片描述

总之,我想删除顶级项目编号之前的左缩进,删除示例之间的垂直空间,并删除环境上方和下方的垂直空间exe

我认为\vspace命令可能在这里起作用,但每次都这样做会变得非常繁琐,而且我也想以“正确”的方式去做。

(我也认为linguex也许能够毫不费力地做到这一点,但我习惯使用 gb4e,所以如果有办法做到这一点,我宁愿坚持使用它。)

梅威瑟:

\documentclass{article}

\usepackage{gb4e}
\usepackage{lipsum}

\begin{document}
    \lipsum[1]
    \begin{exe}
        \ex Blah \begin{xlist}
            \ex Blah
            \ex Blah
        \end{xlist}
        \ex Blah
        \ex Blah
    \end{exe}
    \lipsum[1]
\end{document}

答案1

gb4e软件包实际上并非设计为可以以这种方式进行定制,但一次性修复并不困难:

\documentclass{article}
\usepackage{etoolbox}
\usepackage{gb4e}
\makeatletter
\renewcommand{\@subex}[2]{\settowidth{\labelwidth}{#1}\itemindent\z@\labelsep#2%
         \topsep0\p@\itemsep0\p@%
         \parsep\p@\partopsep0\p@%
         \leftmargin\labelwidth%
         \ifnum\the\@xnumdepth=1
         \else\advance\leftmargin#2\relax\fi}
\makeatother
\usepackage{lipsum}
\begin{document}
\lipsum[1]
    \begin{exe}
        \ex Blah \begin{xlist}
            \ex Blah
            \ex Blah
        \end{xlist}
        \ex Blah
        \ex Blah
    \end{exe}
    \lipsum[1]
\end{document}

代码输出

单独调整左边距

如果您只想调整左边距,但保持行间距不变,则使用以下重新定义:

\renewcommand{\@subex}[2]{\settowidth{\labelwidth}{#1}\itemindent\z@\labelsep#2%
         \ifnum\the\@xnumdepth=1%
           \topsep 7\p@ plus2\p@ minus3\p@\itemsep3\p@ plus2\p@\else%
           \topsep1.5\p@ plus\p@\itemsep1.5\p@ plus\p@%
           \parsep\p@ plus.5\p@ minus.5\p@%
           \advance\leftmargin#2\relax\fi}

相关内容