可中断期

可中断期

LaTeX 不会在句号前或句号后插入换行符.我理解你为什么想避免在句号前换行,因为否则你会在句子末尾看到多余的句号。我认为在句号后不允许换行也是有充分理由的(也许是为了避免拆分缩写,例如e.g.

但有时你希望能够在句号后换行,或者至少允许在该处换行。例如,在语言学中,外语中的单词通常使用明确解释的形态来注释,语法代码用句号分隔,没有空格,例如f.dat.sg.indef。在以下示例中,换行应为'f.dat.sg. - indef'.

有没有办法在 LaTeX 中使用这种“可中断句号”?

\documentclass{article}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
Abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd ab `f.dat.sg.indef'.
\end{document}

在此处输入图片描述

答案1

简单的应用expl3

\documentclass{article}

\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\gloss}{m}
 {
  \tl_set:Nn \l_tmpa_tl { #1 }
  \tl_replace_all:Nnn \l_tmpa_tl { . } { .\- }
  `\tl_use:N \l_tmpa_tl'
 }
\ExplSyntaxOff

\begin{document}

Abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd ab `f.dat.sg.indef'.

Abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd ab \gloss{f.dat.sg.indef}.

\end{document}

我们只是将每个句号替换为.\-(带有可选连字符)。

在此处输入图片描述

如果你必须遵守不关心读者的规则,那么

\documentclass{article}

\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\gloss}{m}
 {
  \tl_set:Nn \l_tmpa_tl { #1 }
  \tl_replace_all:Nnn \l_tmpa_tl { . } { .\discretionary{}{}{} }
  `\tl_use:N \l_tmpa_tl'
 }
\ExplSyntaxOff

\begin{document}

Abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd ab \gloss{f.dat.sg.indef}.

\end{document}

会做。

在此处输入图片描述

答案2

LaTeX 通常会在句号(空格处)后中断。如果您有专门的用法,其中没有后续空格,一种简单的方法是使用url包和

\url{f.dat.sg.indef}

或手动

f.\linebreak[0]dat.\linebreak[0]sg.\linebreak[0]indef}

相关内容