Zref 确实计算了 P1 西北的坐标(=“某些文本”的基线),在我的情况下约为(50 毫米,274 毫米)
因此,如果我在 Textblock 中用相同的坐标制作“uuuuuu”,它也会将“uuuuu”放在西北方向。那么基线就不一样了。结果似乎是偏移了。
我的简单问题:我如何强制 zref 和 textblock 与基线一起操作而不是西北?
\documentclass[12pt,oneside,german]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage[paperwidth=210 mm,paperheight=297 mm,left=50mm,top=20mm]{geometry}
\usepackage[absolute,overlay]{textpos}
\usepackage{zref-abspos}
\usepackage{tcolorbox}
%\tcbuselibrary{skins,breakable}
\topskip=0pt
\setlength{\parindent}{0pt} % = global \noindent
\renewcommand{\baselinestretch}{1.3}
\newcommand{\myfunction}[1]{%
\zsavepos{P1}% Store the current position as #1
#1%
}
\makeatletter
\newcommand\dimtomm[1]{%
\strip@pt\dimexpr 0.351459804\dimexpr#1\relax\relax
}
\makeatother
\textblockorigin{0mm}{297mm}
\begin{document}
some text
\myfunction{P1}
\vspace*{5mm}
The coordinate of P1 is: (\dimtomm{\the\dimexpr \zposx{P1}sp \relax} mm,\dimtomm{\the\dimexpr \zposy{P1}sp \relax} mm)
\begin{textblock*}{\the\textwidth}(49.9994mm,-274.40306mm)%
\textcolor{red}{uuuuuuu}
\end{textblock*}
\end{document}
答案1
我在定义\noindent
之前添加了一个,以便保存位置\zsavepos{P1}
\myfunction
P1
后开始一个新段落(这是通过代码中的第一个参数完成的\myfunction
,并导致保存的位置位于对应的排版文本的基线之上#1
)。
我还添加了[0,1]
after\begin{textblock*}{\the\textwidth}
以便垂直移动块继续uuuuuuu
的高度(否则,它的上左角位于P1
的基线,而不是其左下角)。
\documentclass{article}
\usepackage{xcolor}
\usepackage[paperwidth=210 mm,paperheight=297 mm,left=50mm,top=20mm]{geometry}
\usepackage[absolute,overlay]{textpos}
\usepackage[savepos]{zref}
\topskip=0pt
\setlength{\parindent}{0pt} % = global \noindent
\renewcommand{\baselinestretch}{1.3}
\newcommand{\myfunction}[1]{%
\noindent\zsavepos{P1}% Store the current position as #1
#1%
}
\textblockorigin{0mm}{297mm}
\begin{document}
some text
\myfunction{P1}
\begin{textblock*}{\textwidth}[0,1](\zposx{P1}sp,-\zposy{P1}sp)%
\textcolor{red}{uuuuuuu}
\end{textblock*}
% With multiline text
\begin{textblock*}{\textwidth}[0,1](\zposx{P1}sp,-\zposy{P1}sp)%
\begin{minipage}[t]{\textwidth}
\color{blue}... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
\end{minipage}
\end{textblock*}
\end{document}