我使用该cloze
包创建完形填空文本。文档具体说明(第 4 页):
该命令
\cloze
不会改变连字符的行为。
但是当我尝试给定的例子时,我发现单词不再正确地连字符了:
\documentclass{article}
\usepackage{cloze}
\begin{document}
Telekommunikationsüberwachung geht Unternehmenssteuerfortentwicklungsgesetz
\cloze{Telekommunikationsüberwachung} geht \cloze{Unternehmenssteuerfortentwicklungsgesetz}
\end{document}
有人能证实这一点吗?这“可以修复”吗?让我担心的是,我记得不久前测试时连字符是有效的。
答案1
如果我查看文档(文件cloze.dtx
)的源代码,我会看到
\begin{clozeexample}
es
\cloze{Te\-le\-kom\-mu\-ni\-ka\-tions\-ü\-ber\-wach\-ung}
geht
\cloze{Un\-ter\-neh\-mens\-steu\-er\-fort\-ent\-wick\-lungs\-ge\-setz}
\cloze{Ab\-teil\-ungs\-lei\-ter\-in}
\cloze{Ober\-kom\-mi\-sar\-in}
auch
\cloze{Fil\-lial\-lei\-ter\-in}
kurz
\cloze{Ober\-kom\-mi\-sar\-in}
\cloze{Un\-ter\-neh\-mens\-steu\-er\-fort\-ent\-wick\-lungs\-ge\-setz}
\cloze{Fil\-lial\-lei\-ter\-in}
\cloze{Metz\-ger\-mei\-ster\-in}
in
\cloze{Ab\-teil\-ungs\-lei\-ter\-in}
der
\cloze{Ober\-kom\-mi\-sar\-in}
\cloze{Hoch\-lei\-stungs\-flüs\-sig\-keits\-chro\-ma\-to\-gra\-phie}
\cloze{Fil\-lial\-lei\-ter\-in}
Kürze
\cloze{Un\-ter\-neh\-mens\-steu\-er\-fort\-ent\-wick\-lungs\-ge\-setz}
\cloze{Metz\-ger\-mei\-ster\-in}
liegt
\cloze{Ab\-teil\-ungs\-lei\-ter\-in}
die
\cloze{Metz\-ger\-mei\-ster\-in}
\cloze{Ab\-teil\-ungs\-lei\-ter\-in}
Würze
\cloze{Ober\-kom\-mi\-sar\-in}
\end{clozeexample}
确实,编译后,连字符是可以的。
另一方面,这似乎重现了你的问题:
\documentclass{article}
\usepackage{cloze}
\begin{document}
\parbox{2cm}{
\cloze{supercalifragilisticexpialidocious}
}
\bigskip
\parbox{2cm}{
supercalifragilisticexpialidocious
\cloze{supercalifragilisticexpialidocious}
}
\bigskip
\parbox{2cm}{
x
\cloze{supercalifragilisticexpialidocious}
}
\end{document}
似乎 if\cloze
位于空格之后,它不允许使用连字符。如果我将第二个示例更改为
\parbox{2cm}{
supercalifragilisticexpialidocious
\cloze{\hspace{0pt}supercalifragilisticexpialidocious}
}
那么结果正如预期:
可能存在修复,但只适用于 TeX Live 2017(预测试,LuaTeX 1.0.4)
\documentclass{article}
\usepackage{cloze}
\usepackage{xpatch}
\xpatchcmd{\cloze}{#2}{\hspace{0pt}#2}{}{}
\begin{document}
\parbox{2cm}{
\cloze{supercalifragilisticexpialidocious}
}
\bigskip
\parbox{2cm}{
supercalifragilisticexpialidocious
\cloze{supercalifragilisticexpialidocious}
}
\bigskip
\parbox{2cm}{
x
\cloze{supercalifragilisticexpialidocious}
}
\end{document}