新行右对齐

新行右对齐

我想要做的是右对齐新行。换句话说,我希望像平常一样有一段对齐的文本,然后我希望有一个换行符,新行右对齐,如下所示:

|Lorem ipsum dolor sit amet, consectetur adipiscing elit,|
|sed do eiusmod tempor incididunt ut labore et dolore ma-|
|gna aliqua.                                             |
|                                                    Text|

如果管道指示边距(连字符可能不遵守拉丁连字符规则,这只是一个快速而粗糙的演示)。

我尝试使用flushright环境,但是这当然会开始一个新段落,而我不想要这样:

\documentclass[12pt]{article}
\pagestyle{plain}
\usepackage[margin=1.8cm]{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{amsmath}
\usepackage{amssymb}

\begin{document}

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua.
\begin{flushright}
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
  eiusmod tempor incididunt ut labore et dolore magna aliqua.
\end{flushright}

\end{document}

在此处输入图片描述

我也尝试使用\raggedleft声明,但如果我尝试确定其范围:

Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. \\
{\raggedleft Text}

Text它根本没有右对齐。

我也尝试使用\hfill命令。这似乎在新行的开头不起作用,但我能够快速解决这个问题。尽管如此,\hfill由于某种原因,它并没有完全填满整行,导致我远远没有右对齐Text

\documentclass[12pt]{article}
\pagestyle{plain}
\usepackage[margin=1.8cm]{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{amsmath}
\usepackage{amssymb}

\begin{document}

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. \\
\hspace*{0pt}\hfill Text

\end{document}

在此处输入图片描述

可能出现的并发症

首先,理想情况下,我希望能够在enumerate环境中使用任何解决方案。

其次,我最初尝试定义一个逻辑结构的命令。我开始这样做:

\newcommand{\grade}[1]{\newline\textbf{Grade} #1}

然后我想如果我能右对齐等级,效果会更好。因此,理想情况下,我希望有一个可以纳入新命令定义中的解决方案。

答案1

\par\nopagebreak在零以下发行\parskip,这是通过使用组获得的,因此的值\parskip将在恢复\endgroup

\documentclass[12pt]{article}

\usepackage[parfill]{parskip}

\newcommand{\lastline}[1]{%
  \begingroup\setlength{\parskip}{0pt}\par\nopagebreak
  \raggedleft#1\par\endgroup
}

\begin{document}

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. 
\lastline{Some text that's flush right.}

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. 
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua.

\begin{enumerate}
\item Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua.
\lastline{Some text that's flush right.}

\item Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua.
\end{enumerate}

\end{document}

在此处输入图片描述

答案2

为了使\raggedleft(或任何其他与段落相关的调整)生效,您需要插入“段落标记”。这可以简单到留下一个空行,或者发出逐字逐句的注释\par

在此处输入图片描述

\documentclass{article}
\usepackage[parfill]{parskip}

\newcommand{\grade}[1]{%
  \par
  \vspace*{-\parskip}% Correct insertion of paragraph skip due to \par
  {\raggedleft\textbf{Grade} #1\par}}

\begin{document}

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. \\
\hspace*{0pt}\hfill Text

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua.
\grade{Text}

\end{document}

使用\\不会插入段落间隙。但是,为了使用 ,\raggedleft需要\par。由于 存在\grade问题\par, 的垂直校正\parskip可恢复段落之间插入的任何不必要的间隙。

相关内容