我用它gb4e
来修饰环境内部的光泽linguex
。
为了识别词单元,我们不仅要在每个我们想要单独注释的单元后输入空格,还要在相应的注释后输入空格。
例如如果我想写学校并计划输入注释“学校”,我必须输入l' école
。
但显然,你并不总是想要真实的排版空间:在某些情况下,即当对应部分较小时,这只会给您带来不想要的额外空间。例如:
\gll lorsqu' il est venu\\
when he came\\
会给你一个空格洛斯夸和伊尔(参见图片中的 1a),这显然是我们不想要的。
为了抑制空间,我使用\kern0.01em
(注意命令后的空格),效果非常好:引擎在分词时会考虑空间,但实际上并没有排版;参见(2a–b)。
但是,当我需要输入许多分隔符时,我更喜欢使用一个简单的命令,比如说\sep
,它相当于\kern0.01em
。
但是,由于我们都知道的原因,后面的空间\sep
将不会被考虑;参见(3)。
现在如果我尝试\sep{}
,情况并不会更好,因为考虑到了空间,但是作为一个真实的空间;参见(4)。
您认为我该如何进行?
编辑
wipet
建议使用 \def\sep#1{kern0.01em},如果传递带有空分隔符的命令,即\sep{}
,则该命令有效。这样,问题就解决了。
然而,从辅助意义上讲,找到一种方法可能会更加方便,不是需要空括号。
平均能量损失
\documentclass{article}
\usepackage{linguex}
\newcommand{\sep}{\kern0.01em}
\begin{document}
\ex.
\a. \gll lorsqu' il est~venu\\
when he came\\
\b. \gll un trompe- la- mort\\
a deceives- the- death\\
% I do not want extra spaces. Spaces are only typed as word boundaries.
\ex.
\a. \gll lorsqu'\kern0.01em il est~venu\\
when he came\\
\b. \gll un trompe- la- mort\\
a deceives-\kern0.01em the-\kern0.01em death\\
% This is what I want: the space after the kern is only regarded as a word boundary, not actually typeset.
\ex.
\a. \gll lorsqu'\sep il est~venu\\
when he came\\
\b. \gll un trompe- la- mort\\
a deceives-\sep the-\sep death\\ % The space is ignored.
\ex.
\a. \gll lorsqu'\sep{} il est~venu\\
when he came\\
\b. \gll un trompe- la- mort\\
a deceives-\sep{} the-\sep{} death\\
% The space is regarded as a true space: back to the original problem.
\end{document}
答案1
您可以尝试定义
\def\sep#1{\kern0.01em}
并使用在这种情况下\sep{}
参数#1
为空,并且 TeX 基元\kern
插入所需的 kern 并忽略“em”单位后的空格,即 后的空格\sep{}
。
如果你不想写{}
,你可以定义
\def\sep/{\kern0.01em}
并使用\sep/
与上述相同的结果。