我正在尝试对齐文本,使第一行完全左对齐,第二行居中。以下是与相关代码相关的期望行为。
\begin{flushleft}
Step 2:
\end{flushleft}
\begin{center}
chi-squared-test (assuming data is normal)
\end{center}
我通常使用\raggedright
并\centering
喜欢下面的方法,但这给我带来了不良的行为。
\raggedright{Step 2:}
\centering{chi-squared-test (assuming data is normal)}
我也尝试\newline
在第一行后插入一个,但这也导致了不良行为。
\raggedright{Step 2:}
\newline
\centering{chi-squared-test (assuming data is normal)}
我在第一个代码块中有一个工作部分,但为了少写代码,我更愿意使用\raggedright
和\centering
。我做错了什么?为什么代码块之间的行为不同?谢谢。
以下是完整文档。
\documentclass{article}
\usepackage{ragged2e}
\begin{document}
\begin{flushleft}
Step 2:
\end{flushleft}
\begin{center}
chi-squared-test (assuming data is normal)
\end{center}
\raggedright{Step 2:}
\newline
\centering{chi-squared-test (assuming data is normal)}
\end{document}
答案1
\raggedright 和 \centering 不接受参数。它们是影响段落的开关。因此您需要先将它们分组并结束段落:
\documentclass{article}
\usepackage{ragged2e}
\begin{document}
\begin{flushleft}
Step 2:
\end{flushleft}
\begin{center}
chi-squared-test (assuming data is normal)
\end{center}
{\raggedright Step 2: \par}
{\centering chi-squared-test (assuming data is normal)\par}
\end{document}
答案2
随后flushleft
您center
会获得太多的垂直空间。
使用\raggedright
和\centering
不会添加不必要的空格,但它们不是带参数的命令。不过,还有另一个方面需要考虑:您不希望两行之间有分页符,但 TeX 总是愿意在段落之间分页。
您可以将该内容排版为一个段落,并附加额外的标记,这是一件好事,因为您可能会改变对此类对象的排版想法,并且在打字稿中乱放格式指令是邪恶的。
如果我们制作一个两行段落,我们可以告诉 TeX,在这些行之间分页会受到无限惩罚。我们希望第一行排版左对齐,第二行居中,因此我们可以将\leftskip
和设置\rightskip
为无限可拉伸粘连,并用第一行中的“更多无限”粘连覆盖它。
我还在每个台阶的上方和下方添加了一些垂直空间。
\documentclass{article}
\newcommand{\step}[2]{% #1 = step number, #2 = centered text
\par
\addvspace{\topsep}% some vertical space above
\begingroup % make local settings
\interlinepenalty=10000 % no page break between lines
\setlength{\parindent}{0pt}% no indentation in the first line
\setlength{\parfillskip}{0pt}% don't flush left the last line
\leftskip=0pt plus 1fil % infinitely stretchable glue at the left
\rightskip=0pt plus 1fil % infinitely stretchable glue at the right
Step #1\hfill\break % override those glues in the first line
#2\par % the second line (centered)
\endgroup
\addvspace{\topsep}% some vertical space
}
\begin{document}
\step{1}{chi-squared-test (assuming data is normal)}
\step{2}{chi-squared-test (assuming data is normal) and some words}
\step{3}{chi-squared-test}
\end{document}