段落缩进到绝对水平位置。

段落缩进到绝对水平位置。

我处于以下情况:我需要将段落第一行的一些文本缩进到正常段落缩进点,然后我需要同一行上的更多文本以及段落中所有后续行,缩进到特定的水平位置(在我的情况下是 2 英寸)。我该如何实现这一点?

编辑:没有一个解决方案考虑到我需要第一行上的更多文字缩进到与附加行相同的长度。您的回答让我几乎明白了,但还不够。

样本

答案1

您可以使用hanging包来执行此操作:

\documentclass{article}
\usepackage{hanging}
\newcommand{\lipsum}{Lorem ipsum dolor sit amet, consectetuer
 adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
 adipiscing vitae, felis.}
\begin{document}
\lipsum\lipsum\par
\hangpara{2in}{1}
\indent\lipsum\lipsum
\end{document}

代码输出

编辑

如果你需要的更像是一个列表,你可以使用enumitem包来定义描述环境。这似乎更接近你想要的。

\documentclass{article}
\usepackage{enumitem}
\setdescription{style=sameline,leftmargin=2in}
\newcommand{\lipsum}{Lorem ipsum dolor sit amet, consectetuer
  adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
  adipiscing vitae, felis.}
\begin{document}
\begin{description}
\item[A description]\lipsum
\item[Another description]\lipsum
\end{description}

\end{document}

代码输出

答案2

喜欢这个 (普通) 吗?

\hsize=.7\hsize
\parindent=20pt
\def\lipsum{Lorem ipsum dolor sit amet. }
\lipsum\lipsum\lipsum\lipsum\lipsum\lipsum
\lipsum\lipsum\lipsum\lipsum\lipsum\lipsum

\leftskip=2in
\lipsum\lipsum\lipsum\lipsum\lipsum\lipsum
\lipsum\lipsum\lipsum\lipsum\lipsum\lipsum
\bye

跳过

根据您的需要,您还可以使用\hoffset

答案3

TeX 原语\parshape可以做你想做的事。

\dimen0\hsize
\advance\dimen0 by -2in
\parshape=2 0pt \hsize 2in \dimen0
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna
aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore
eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue
duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod
mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem.
Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui
sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit
litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum
clarifiant sollemnes in futurum.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna
aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore
eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue
duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod
mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem.
Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui
sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit
litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum
clarifiant sollemnes in futurum.

\bye

(这是一个纯文本示例;如果您想要在 LaTeX 中使用,只需复制并粘贴即可,\begin{document}...\end{document}但请省略\bye

示例代码输出

Parshapes 已记录在 TeXBook 中。Google 为我找到了一个通道高级 TeXBook这也有帮助。基本用法是,它\parshape需要一个数字,然后是一串维度对。每对维度代表每行的缩进和宽度。开头的数字是该对的索引,一旦该对序列用尽,就应该使用该索引。

示例的前两行将临时尺寸设置\dimen0为默认段落宽度\hsize减 2 英寸。该\parshape行表示第一行应为正常行(无缩进,宽度\hsize),第二行应缩进 2 英寸,\hsize宽度为 -2 英寸(因此它结束于与上文相同的位置),后续行应遵循第二行的规范。显然,常规的第一行段落缩进是在应用 parshape 之后进行的,因此您无需为此调整第一行。

请注意,这\parshape仅适用于当前段落。如果您想要每一个要这样设置段落,请使用\everypar令牌寄存器。将上面的第 3 行替换为

\everypar{\parshape=2 0pt \hsize 2in \dimen0}

答案4

考虑到对原始问题的编辑,您可以使用两个minipages 或 a tabular(如果分页符不会出现在缩进的文本内);以下代码显示了这些选项:

\documentclass[12pt]{article}
\usepackage{lipsum}

\newlength\mylen
\setlength\mylen{\textwidth}
\addtolength\mylen{-2in}
\addtolength\mylen{-\parindent}

\begin{document}

some text before the minipages

\begin{minipage}[t]{2in}
first line of text
\end{minipage}%
\begin{minipage}[t]{\mylen}
some more text \lipsum[1]
\end{minipage}

\newpage

some text before the table

\noindent\begin{tabular}{@{\hspace*{\parindent}}p{2in}@{}p{\mylen}@{}}
first line of text & some more text \lipsum[1]
\end{tabular}

\end{document}

如果要允许分页符,您可以加载长桌包装并使用longtable代替tabular

使用 minipages 的结果图像:

在此处输入图片描述

相关内容