我想知道,为什么换行符之间的间隙不同,这取决于由 发起的换行符\\[5pt]
是在花括号内还是花括号外。
这有什么关系?难道不应该是一样的吗?
梅威瑟:
\documentclass{scrartcl}
\textwidth=6cm
\begin{document}
{\raggedleft{02.2016 -- 09.2018}\par}
{\raggedright Testline to see the gap \\[5pt]}
{\raggedleft{02.2016 -- 09.2018}\par}
{\raggedright Testline to see the gap} \\[5pt]
{\raggedleft{02.2016 -- 09.2018}\par}
{\raggedright Testline to see the gap}
\end{document}
答案1
中间的情况是错误的,看起来像垂直空格的东西实际上是段落的第二行(空行),空行就是 TeX 向你尖叫的原因
Underfull \hbox (badness 10000) in paragraph at lines 9--10
10000 是不良程度的最大值,所以这说明输出已经糟糕到极致。由于这是一行文本,而不是垂直空间,因此如果分页符发生在第一行之后,它就不会被丢弃在页面开头。
第一个\\
是在范围内,\raggedright
这意味着由于技术原因\\
是,所以在段落末尾还不算太糟糕(尽管仍然是糟糕的标记\par
)\\[5pt]
\par\vspace{5pt}
但第二种情况是“正常”的\\
,因此这不会结束段落,只是在现有段落中强制换行,然后是一行空文本。您可以通过替换看到这一点,\\[5pt]
垂直\\[5pt]zzzzz
间距不会改变,但段落的第二行将不再为空。
请注意,\raggedleft
不接受参数,因此
\raggedleft{02.2016 -- 09.2018}
是相同的
\raggedleft 02.2016 -- 09.2018
内部支架在这里不起任何作用。
相反地
{\raggedright Testline to see the gap}
段落在之后结束,}
此时\raggedright
已经超出范围,因此这不会导致右侧文本参差不齐,它是一个两端对齐的段落(但这里不清楚,因为它只有一行),的唯一效果\raggedright
是抑制段落缩进。
\documentclass{scrartcl}
\begin{document}
\noindent
\begin{minipage}[t]{6cm}
{\raggedleft{02.2016 -- 09.2018}\par}
{\raggedright Testline to see the gap \\[5pt]}
{\raggedleft{02.2016 -- 09.2018}\par}
{\raggedright Testline to see the gap} \\[5pt]
{\raggedleft{02.2016 -- 09.2018}\par}
{\raggedright Testline to see the gap}
\end{minipage}\quad\vrule\quad
\begin{minipage}[t]{6cm}
{\raggedleft{02.2016 -- 09.2018}\par}
{\raggedright Testline to see the gap \\[5pt]}
{\raggedleft{02.2016 -- 09.2018}\par}
{\raggedright Testline to see the gap} \\[5pt]zzz
{\raggedleft{02.2016 -- 09.2018}\par}
{\raggedright Testline to see the gap}
\end{minipage}
\end{document}