如果你已经知道黏和不粘命令是,跳到标题REAL QUESTION
A黏命令将一直有效,直到您明确将其关闭。
例如,$
进入数学模式是粘性的。数学模式将保持对几乎所有未来字符的打开,直到$
遇到类似其他字符。此外,\it
是一个粘性命令。
\it oh mY GOURD! THE ENTIRE REMAINDER OF THIS DOCUMENT IS IN ITALICS!
可以用下列方法之一来限制粘性命令的范围:
在你想要的效果停止的地方放置一个结束分隔符
not-italic \it ITALIC ITALIC \em not-italic, not-italic
仅在非常小的封闭环境中执行粘性命令
not-italic {\it ITALIC ITALIC} not-italic, not-italic
A不粘命令影响仅有的输入流上的下一个项目,然后自动关闭。输入要么是它自己的结束分隔符,要么你从一开始就不会给非粘性命令整个流。 _
数学模式几乎是一个粘性命令,但不完全是。如果“_”是粘性的,那么以下两行代码将具有相同的效果:
$thing_s_u_b_s_c_r_i_p_t$
$thing_{subscript}$
数学模式 '_' 具有粘性,因为以下情况仅使的首字母subscript
带下标:
$thing_subscript$
对于非粘性命令,如果您希望接下来的几个输入都受到影响,您必须执行以下操作之一:
重复使用非粘性命令
CMD input CMD input CMD input CMD input [...]
将多个输入集中到一个输入中,并将该输入提供给非粘性命令。CMD {输入 输入 输入 输入}
- 使用不同的命令
真正的问题
当我们使用 时\nolinebreak
,它会持续多久?仅下一个字符?直到下一个空格字符?直到……具体什么时候?是否会\nolinebreak
影响以前的字符?(命令左边的字符还是命令上方的字符?)
我想这可能取决于如何\nolinebreak
使用。选择以下一个或多个示例,
HAM HAM \nolinebreak STEAK STEAK
ORANGE ORANGE \nolinebreak{STRAWBERRY STRAWBERRY } KIWI KIWI
AZALEA AZALEA AZALEA AZALEA AZALEA AZALEA
\begin{nolinebreak}
CHRYSANTHEMUM CHRYSANTHEMUM
\end{nolinebreak}
答案1
\nolinebreak
根本不“持久”。你显然对 TeX 的工作方式有一些心理模型,但实际上根本不是这样。 将惩罚节点添加到当前水平列表中的方式与将字符节点添加到当前水平列表中的\nolinebreak
方式完全相同。x
尝试完全的文档
\documentclass{article}
\begin{document}
\showoutput
x\nolinebreak[1]y\nolinebreak[2]z
\end{document}
您将在日志中看到 5 个节点
....\OT1/cmr/m/n/10 x
....\penalty 51
....\OT1/cmr/m/n/10 y
....\penalty 151
....\OT1/cmr/m/n/10 z
对应于输入。