段落居中但左对齐

段落居中但左对齐

我想要一个段落,它居中但本身左对齐。有人知道如何实现吗?

(我在一个段落中有文字,每行的文字都比宽度短,但如果我只是在周围放置“flushleft”,它就会出现在页面的左边距)

答案1

可以创建一个独立的环境,它可以一次性完成所有操作——居中和内部对齐元素:

\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{environ}% http://ctan.org/pkg/environ
\NewEnviron​{centerbox}[1][\linewidth]{% \begin{centerbox}[..] ... \end{centerbox}
  \noindent\makebox[\linewidth][c]{%
    \begin{minipage}{#1}%
      \raggedright% Minipage alignment
      \BODY% Typeset body/contents
    \end{minipage}%
  }
}%
\begin{document}
\lipsum[1]

\begin{centerbox}[0.5\linewidth]
  \lipsum[2]
\end{centerbox}

\lipsum[3]
\end{document}

上述代码生成centerbox环境(使用environ包裹)。可选参数指定居中框的宽度,默认为\linewidth

居中框

答案2

另一种方法是利用这次引用包定义一个新环境,其左右边距相等(即“居中”),由一个可选参数控制,其默认值为2em\RaggedRight内容为:

\documentclass{article}
\usepackage{quoting}
\usepackage{ragged2e}
\usepackage{lipsum}

\newenvironment{RCText}[1][2em]
  {\begin{quoting}[leftmargin=#1,rightmargin=#1]\RaggedRight}
  {\end{quoting}}

\begin{document}

\lipsum[1]
\begin{RCText}[2cm]
  \lipsum[1]
\end{RCText}

\lipsum[1]

\end{document}

在此处输入图片描述

这里还有另一个选项,这次使用列表环境;同样,可以使用可选参数设置边距:

\documentclass{article}
\usepackage{ragged2e}
\usepackage{lipsum}

\newenvironment{RLCText}[1][2em]
  {\begin{list}{}{\setlength\leftmargin{#1}\setlength\rightmargin{#1}}\item[]\RaggedRight}
  {\end{list}}

\begin{document}

\lipsum[1]
\begin{RLCText}[2cm]
  \lipsum[1]
\end{RLCText}

\lipsum[1]

\end{document}

两种解决方案都允许在新环境中进行分页。

答案3

\documentclass{article}

\usepackage{lipsum}% just for filler text

\begin{document}
\begin{center}
    \parbox{0.5\textwidth}{\raggedright\lipsum[1]}
\end{center}
\end{document}

您可以调整0.5\textwidth到您喜欢的任何宽度。请注意,文本不会\parbox分页到新页面。


编辑:使用ragged2e's \RaggedRight,正如 Mico 所建议的那样他的回答如果您想在段落中使用连字符,则使用 而不是\raggedright(就像我做的那样)会很有帮助,这将使段落填充得更均匀。以下是使用和's 的\lipsum[1]填充文本段落的比较:\raggedrightragged2e\RaggedRight

\raggedright 与 \RaggedRight 的比较

注意\RaggedRight结果少了一行。(我在它们周围放了方框,以使右侧的空白处更加明显。)

答案4

您可以使用ragged2e包及其命令\RaggedRight使行左对齐。要创建一个居中且文本整体宽度小于周围文本的段落,您可以使用centerminipage环境。在以下 MWE 中,此环境的默认宽度为 0.6* \textwidth

\documentclass{article}
\usepackage{ragged2e,lipsum}
\begin{document}
\begin{center}
   \begin{minipage}{0.6\textwidth}
       \RaggedRight
       \lipsum[1] %% filler-text
   \end{minipage}
\end{center}       
\lipsum[2]  %% more filler-text
\end{document}

附录:如果您需要创建多个居中且右侧不齐的段落,则为centragg它们创建一个单独的环境(例如)会很有帮助。以下 MWE 说明了如何设置它以及如何使用它。请注意,centragg环境的默认宽度为0.75\textwidth,但可以通过指定显式宽度(例如)来覆盖5cm。除了\RaggedRight自动调用之外,它还会添加一些额外的段落间距,以防 centragg 环境中一次有多个段落。(传统上,排版为右侧不齐的段落没有特殊的段落缩进。)

\documentclass{article}
\usepackage{ragged2e,lipsum}
\newenvironment{centragg}[1][0.75\textwidth]{% 
   \begin{center}
   \begin{minipage}{#1}
   \RaggedRight \setlength{\parskip}{0.5\baselineskip} \noindent\ignorespaces}
   {\end{minipage}\end{center}}

\begin{document}
\lipsum[2]
\begin{centragg}
   (Default width) \lipsum[2] %% filler-text
\end{centragg}       
\begin{centragg}[6cm]
   (5 cm wide) \lipsum[10] %% filler-text
\end{centragg}       
\lipsum[11]  %% more filler-text
\end{document}

这种方法唯一的缺点是,LaTeX 不会跨页面拆分minipages(或parboxes),​​如果居中段落的长度超过几行,则可能会造成页面过满。

相关内容