Textpos:让文本结束,而不是从指定坐标开始。

Textpos:让文本结束,而不是从指定坐标开始。

我正在尝试使用带有 pdfoverlay 和 textpos 包的 LaTeX 来填写 pdf 表格。 问题 当我用 textpos 指定一个坐标并给它一些文本时,文本将从该坐标开始,但我希望文本的末尾也在该坐标结束(你可以在图片上看到我指定了表单结束的坐标,但文本不是从那里结束,而是从那里开始)

我曾就此事询问过其他人,但遇到了一些困惑,有人以为我试图创建表格,但其实不是,下划线和所有内容都已经是我正在填写的 pdf 的一部分了。

答案1

你没有展示你到底在做什么,但如果文本的左边缘被放置在你想要的右边缘的位置,那么使用\llap{AAAA}将把右边缘放在那里。这可能看起来像

\begin{textblock*}{some_width}(\hsize,vert_pos)
 \llap{AAAA}
\end{textblock*}

有点烦人的是,textpos 包只定位文本包含在 \parbox 的等效项中。如果还有一种像 \makebox 一样打包的类型就好了。

\llap 命令(左重叠)来自纯 TeX,它不遵循文本块的段落参数,因此宽度参数无关紧要,就像文本块执行的默认居中一样。(\llap 是一个裸的 \hbox,并且进入垂直列表而不是开始段落。)

或者,要使用文本块的定位参数来完成这项工作,您必须获取文本右边缘的句柄,最简单的方法是将其推到文本块的右边缘。那么

\begin{textblock*}{\textwidth}[1,1](\hsize,42mm)
  \raggedleft AAAAA
\end{textblock*}

宽度 ( \textwidth) 必须比文本宽。[1,表示定位在文本的右边缘,并将\raggedleft文本推到右边缘。

我可能会这么做

\newcommand\fillin[2]{% #1 = position, #2 = text
  \begin{textblock*}{\textwidth}[1,1](\hsize,#1)
     \raggedleft #2
  \end{textblock*}}

答案2

参见 textpos 手册,第 1.3.3 节选择文本块参考点

您可以为 {textblock} 环境提供一个可选参数,指定要将框中的哪个点放置在指定点:

\begin{textblock}{⟨hsize⟩}[⟨ho⟩,⟨vo⟩](⟨hpos⟩,⟨vpos⟩)
text...
\end{textblock}

坐标⟨ho⟩⟨vo⟩分别是文本框宽度和高度的分数,并表明框的放置位置,以便(⟨ho⟩,⟨vo⟩)框内的参考点位于(⟨hpos⟩,⟨vpos⟩)页面上的点。默认规范为[0,0],表示框的左上角;参数[0,1](例如)将指定左下角和[0.5,0.5]中间。

本节后面有更多详细信息,包括如何将其默认。

相关内容