我现在正在写一个文档,但 TeX 没有按照我的要求执行。我在写文档时使用的格式如下:
Blah
\vspace{.08in}
\noindent Blah2 dasfogasngangsnklgs etc etc
\vspace{.08in}
\noindent blah3
等等。问题是在页面中间,中间的一个空格比其他所有空格都大很多。我能做些什么来解决这个问题?
如果有帮助的话,我的序言看起来像
\documentclass[11pt]{amsart}
\numberwithin{equation}{section} \setlength{\textwidth}{17cm}
\usepackage[top=1in, bottom=1in, left=1in, right=1in]{geometry}
\usepackage{graphicx,tabularx,array}
\thispagestyle{empty}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\usepackage{verbatim}
答案1
您永远不需要对文档文本使用\noindent
或\vspace
。由于没有提供实际示例,因此必须进行一些猜测,但是很可能额外的空白恰好是一条基线,因为您有一行白色文本(水平框,而不是 tex 结构中的垂直跳跃)。
如果你做使用\vspace
那么你永远不应该在水平模式下使用它
\noindent Blah2 dasfogasngangsnklgs etc etc
\vspace{.08in}
您应该在垂直模式下使用它:
\noindent Blah2 dasfogasngangsnklgs etc etc
\vspace{.08in}
如果在水平模式下使用\vspace
,则会保存(在 vadjust 节点中)并插入(在 TeX 将段落分成几行之后)后包含 vadjust 节点的行。
在段落末尾,在将文本分成几行之前,TeX 会执行一个\unskip
操作来删除可能存在的空格,但你不能跳过空格,\vadjust
所以如果你这样做
\noindent Blah2 dasfogasngangsnklgs etc etc
\vspace{.08in}
代替
\noindent Blah2 dasfogasngangsnklgs etc etc%
\vspace{.08in}
那么段落中最后一个要断开的字符是空间. 如果您使用 ,您就会看到这一点\showoutput
。
....\glue 3.33333 plus 1.66666 minus 1.11111
....\OT1/cmr/m/n/10 e
....\OT1/cmr/m/n/10 t
....\OT1/cmr/m/n/10 c
....\glue 3.33333 plus 1.66666 minus 1.11111
....\penalty 10000
....\glue(\parfillskip) 0.0 plus 1.0fil
....\glue(\rightskip) 0.0
如果您运气不好,换行符就会刚好落在最后一个单词空格之前\glue 3.33333 plus 1.66666 minus 1.11111
,因此段落的最后一行将只包含 parfillskip 和 rightskip 粘连,因此看起来像垂直空间。
但标记应该只是
Blah2 dasfogasngangsnklgs etc etc
设置\parindent
为零,段落就不会缩进,\parskip
设置为非零,段落就会分开。例如,请参阅parskip
包。
要查看可行的示例,请参见之前段落中blah4
由于来自 之前的换行符的单词空格而产生的虚假全白线\vspace
。
\documentclass{article}
\setlength\textwidth{7cm}
\begin{document}
\noindent Blah\dotfill X
\vspace{.08in}
\noindent Blah2 dasfogasngangsnklgs etc etc
\vspace{.08in}
\noindent Blah2 dasfogasngangsnklgs zzzzzzzzzzzzzetc etc
\vspace{.08in}
\noindent blah4
\noindent Blah2 dasfogasngangsnklgs zzzzzzzzzzzzzetc etc%
\vspace{.08in}
\noindent blah5
\end{document}