我想创建linguex
一些示例,其中自由翻译行的悬挂缩进为 21.3 个大点。我发现使用这个hanging
足够简单的包不起作用(代码中的第二个示例)。阅读 TeXbook 的相关部分(三天后)找到了一个不太简单的解决方案,但确实有效(代码中的第一个示例)。为什么使用这个hanging
包会失败?
\tracingmacros=1
\documentclass{article}
\usepackage{hanging}
\usepackage{linguex}
\usepackage{lipsum}
\begin{document}
\ex .
\gll Mundus vult decipi \\
world want deceive \\
\glt \dimen0=\the\textwidth
\dimen1=\the\textwidth
\dimen2=21.3bp
\advance\dimen0 by -\the\labelwidth
\advance\dimen1 by -\the\labelwidth
\advance\dimen1 by -\dimen2
\advance\dimen2 by \the\labelwidth
\parshape=2 \the\labelwidth \dimen0 \dimen2 \dimen1
\lipsum[2]
\ex .
\gll Mundus vult decipi \\
world want deceive \\
\glt \hangpara{21.3bp}{2}\lipsum[2]
\end{document}
上述代码的输出如下:
答案1
正如 Alan Munn 在他的评论中所说,linguex
基本上使用列表环境;在列表环境中,每个段落开始时\parshape1
都会执行一条指令,这比设置 更好\hangindent
。因此,任何设置为 的设置都\hangindent
将被忽略。您可以list
自己使用:设置一点也不难:
\documentclass{article}
\usepackage{linguex}
\usepackage{lipsum}
\begin{document}
\ex .
\gll Mundus vult decipi \\
world want deceive \\
\glt \begin{list}{}{%
\leftmargin=21.3pt
\itemindent=-\leftmargin}
\item[]\lipsum*[2]
\end{list}
\end{document}
您可能想要为此定义自己的环境:
\newcommand{myindentedpar}[1][21.3pt]
{\begin{list}{}{\leftmargin=#1 \itemindent=-\leftmargin}\item[]}
{\end{list}}
因此上述内容可以指定为
\glt \begin{myindentedpar}
\lipsum*[2]
\end{myindentedpar}
可以在可选参数中指定不同的缩进量
\begin{myindentedpar}[30pt]
\lipsum*[2]
\end{myindentedpar}
以下是 21.3pt 的结果: