![将文本右对齐,同时保留一些文本处于不缩进位置](https://linux22.com/image/403463/%E5%B0%86%E6%96%87%E6%9C%AC%E5%8F%B3%E5%AF%B9%E9%BD%90%EF%BC%8C%E5%90%8C%E6%97%B6%E4%BF%9D%E7%95%99%E4%B8%80%E4%BA%9B%E6%96%87%E6%9C%AC%E5%A4%84%E4%BA%8E%E4%B8%8D%E7%BC%A9%E8%BF%9B%E4%BD%8D%E7%BD%AE.png)
我想以某种方式将文本右对齐。我尝试了以下方法:
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}
\begin{document}
\noindent \textbf{Chapter 1:} \quad \lipsum[1]
\bigbreak
\noindent \textbf{Chapter 2:} \quad \lipsum[2-3]
\bigbreak
\noindent \textbf{Chapter 3:} \quad \lipsum[4]
\bigbreak
\end{document}
我希望整个文本都位于第一个位置,quad
除了我想要位于其位置的章节之外noindent
。
我如何实现这个目标?
答案1
那么使用列表怎么样?
\documentclass{book}
\usepackage{enumitem}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}
\usepackage{showframe} % to show frames
\begin{document}
\begin{enumerate}[label={\textbf{Chapter~\arabic*:}},left=0cm]
\item \lipsum[1]
\item \lipsum[2]
\item[\textbf{Summary:}] \lipsum[3] % <-- supress item label
\end{enumerate}
\end{document}
答案2
大多数方法的关键是测量宽度,这可以使用保存框来完成。请注意,这只\hangindent
影响一个段落,这就是我在这里没有使用它的原因。
另一方面,如果您希望它们全部对齐,则需要提前选择宽度。(这很大程度上取决于您是否打算列出超过 9 个章节。)
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}
\newcommand{\myindent}[2]% #1=title, #2=text
{\bgroup% use local box register
\sbox0{\textbf{#1}\quad}% measure width
\leftskip=\wd0
\noindent\llap{\usebox0}#2\par
\egroup}
\begin{document}
\myindent{Chapter 1:}{\lipsum[1]}
\bigbreak
\myindent{Chapter 2:}{\lipsum[2-3]}
\bigbreak
\myindent{Chapter 3:}{\lipsum[4]}
\bigbreak
\end{document}