到目前为止,我还不太明白它\null
到底是什么,什么时候需要它。我只知道它可以用于创建假设锚点,如下所示。
\documentclass{article}
\usepackage[a6paper,margin=2cm]{geometry}
\parindent=0pt
\begin{document}
\hfill xport \hfill\null\\
\null\hrulefill{} never \hrulefill\par
\hrulefill{} dies. \hrulefill\par
\hfill really? \hfill\null\par
\newpage
\null
\vfill
\hfill The End \hfill\null
\end{document}
- 它是什么
\null
?我们什么时候需要使用它? - 为什么在跟随时
\hrulefill
需要\hfill
开始,但在跟随时不需要?\null
\\
\null
\par
- 为什么
\hfill
总是需要结局\null
却不\hrulefill
需要呢?
答案1
它是什么
\null
?我们什么时候需要使用它?
\null
就是\hbox{}
。什么时候需要它?实际上,从来都不需要。为什么
\hrulefill
和跟在 后面时\hfill
需要开始,而跟在 后面时不需要?是,所以它不完全像,因为它在 后面添加了一个空字距,但与 非常相似。和之间的区别在于 后面有一个框(缩进框,即使),但 后面的行上没有框,因此粘连消失(引线也消失)。\null
\\
\null
\par
\hrulefill
\leavevmode\leaders\hrule\hfill\kern0pt
\hfill
\par\hrulefill
\\\hrulefill
\par
\noindent
\\
为什么
\hfill
总是需要结局\null
却不\hrulefill
需要结局?
因为\kern0pt
结局的\hrulefill
。为什么第一行
\begin{document}
不被视为段落回忆,那里\null
需要开始\hfill
?
你能更精确地说明这一点吗?
答案2
如果没有材料,TeX 在某些情况下会忽略空格。\null
与 相同\hbox{}
,它可以用于不保留空间的材料,但向 TeX 表明有一个用于排版的框。
\documentclass{article}
\usepackage[a6paper,margin=2cm]{geometry}
\parindent=0pt
\begin{document}
\hfill xport \hfill\null
\hrulefill never \hrulefill
\hrulefill dies \hrulefill
\newpage
\null
\vfill
\hfill The End \hfill\null
\vfill
\end{document}
答案3
\null
当需要确保模式的正确行为时,实际上很有用\nofrenchspacing
,这会使每个句子后的空格更长。默认情况下,如果句子以大写字母结尾,TeX 会认为它是首字母,并且不会实现更长的间距,即使这可能是可取的。为了确保更长的间距,可以\null
在结束标点符号之前插入。例如,如果启用该选项,句子In USA we don't usually drink tea with milk, like they do it in the UK\null.
在句号后产生的空格将比没有句号时更长。\null
\nofrenchspacing
我在 Paul W. Abrahams、Kathryn A. Hargreaves 和 Karl Berry 合著的《TeX for the Impatient》一书中遇到了这种用法,可在此处获得: http://tug.ctan.org/info/impatient/book.pdf