注意:在原帖之后,有人向我指出我的问题与 textpos 包无关。我编辑了标题,但保留了原帖以供后人参考(或者说,每次看到它我都会觉得自己很傻)。
我希望能够使用 textpos 包将文本放置在页面上的任意位置。但是,有一次,我想在一个框中放置多行,并且第一行之后的所有行都缩进。我尝试使用 \addtolength{\leftskip}{18pt},但它缩进了所有行,包括第一行。经过一番思考,我得出结论,这可能不是一个错误,它只是这样。无论如何,有人有解决这个问题的方法吗?(显然,我可以将内容分解成许多小的垂直模块,但这似乎会带来很大的麻烦)。这是一个小例子。在第一个文本框中,我使用了 \addtolength 构造;第二个文本框没有它,所以你可以看到区别。谢谢。
\documentclass{article}
\usepackage[absolute,showboxes]{textpos}
\pagestyle{empty}
\TPGrid[1in,1in]{2}{20}
\TPMargin{4pt}
\setlength{\parindent}{0pt}
\begin{document}
\begin{textblock}{1}(0,2)
{\scshape\large Name}
\newline
{\addtolength{\leftskip}{12pt}
Address 1\\
Address 2
\par
}
\end{textblock}
\begin{textblock}{1}(0,4)
{\scshape\large Name}
\newline
Address 1\\
Address 2
\end{textblock}
\end{document}
答案1
使用\hangindent=13pt
(使用任何你想要的尺寸,而不是 13pt,例如 1em 或 0.3cm)
\documentclass{article}
\usepackage[absolute,showboxes]{textpos}
\pagestyle{empty}
\TPGrid[1in,1in]{2}{20}
\TPMargin{4pt}
\setlength{\parindent}{0pt}
\begin{document}
\begin{textblock}{1}(0,2)
{\scshape\large Name}
\newline
{\addtolength{\leftskip}{12pt}
Address 1\\
Address 2
\par
}
\end{textblock}
\begin{textblock}{1}(0,4)
{\scshape\large Name}
\newline
\hangindent=13pt
Address 1\\
Address 2
\end{textblock}
\end{document}
您还可以 \hangafter=2
结合使用以hangindent
仅从第二行开始缩进等等。
OP 还询问为什么调整\leftskip
不起作用,这是因为它应用了within
一个段落,如果我们通过留下一个空白行将文本分成两个段落,OP 的示例也将按照以下示例起作用:
\begin{textblock}{1}(0,2)
{\scshape\large Name}
\newline
{\addtolength{\leftskip}{30pt}
Address 1\\
Address 2
\par
}