如何使用 textblock* 环境在下一页上书写?

如何使用 textblock* 环境在下一页上书写?

作为对此的后续问题: 如何排版类似《我的奋斗》评论版的批判性工具?

由于出现的软件包没有完全满足我的要求,因此我想出了以下代码:

\documentclass{article}

\newlength{\commentlength}
\newlength{\thiscommentxstart}
\newlength{\thiscommentxend}
\newlength{\commentstartx}
\newlength{\commentstarty}
\newlength{\thisboxstartx}
\newlength{\thisboxendx}
\newlength{\thisboxstarty}
\newlength{\thisboxendy}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{xcolor}

\newcounter{comments}
\setcounter{comments}{1}

\usepackage{lengthconvert}
\usepackage{zref-savepos}
\usepackage[absolute,overlay]{textpos}
\usepackage{calc}

\setlength{\TPHorizModule}{\textwidth}
\setlength{\TPVertModule}{\textheight}

\textblockorigin{0mm}{0mm}

\newcommand*{\currpos}[1]{%
        \zsavepos{#1}%
}

\newcommand{\mycomment}[4]{%
        \currpos{#1}%
        %
        \setlength{\thisboxstartx}{\zposx{#1}sp}%
        \setlength{\thisboxstarty}{\zposy{#1}sp}%
        \setlength{\thisboxendx}{\zposx{#2}sp}%
        \setlength{\thisboxendy}{\zposy{#2}sp}%
        %
        \setlength{\thiscommentxstart}{\thisboxstartx}%
        \setlength{\thiscommentxend}{\thisboxendx}%
        \setlength{\commentlength}{\thisboxendx-\thisboxstartx-\marginparwidth}%
        \if\ifnum\thiscommentxstart<\thiscommentxend%
                \setlength{\commentlength}{\thisboxstartx-\marginparwidth}%
        \fi%
        \setlength{\commentstartx}{\thisboxstartx}%
        \setlength{\commentstarty}{(\paperheight-\thisboxstarty)+\voffset-0.1in}%
        \textbf{#3}\currpos{#2}%
        \vadjust{\begin{textblock*}{\commentlength}(\commentstartx,\commentstarty)\noindent%
                \textcolor{red}{#4}%
        \end{textblock*}}%
}

\begin{document}

das hier ist fließtext um \mycomment{label}{labelende}{einen relativ kurzen text und seine textbox}{kommentare können durchau auch mal länger sein als der kommentierte text, müssen sie aber nicht} herum. danach folgt weiterer unkommentierter text.

\vspace{10em}

das hier ist weiterer fließtext um \mycomment{labelzwei}{labelzweiende}{einen kurzen und seine textbox}{kommentar 2 ist kürzer als kommentar 1} herum. danach folgt weiterer unkommentierter text.

\end{document}

这将创建一个如下的文档:

结果

这和我想要的有点相似。我现在只需要做两件事:

  • 每页后自动创建一个空白页
  • 将文本块*移动到该页面。

我找不到任何方法让 LaTeX 在第 n + 1 页上写入文本,而文本仍位于第 n 页。我必须以某种方式将其写入辅助文件中吗?或者还有其他方法可以实现这一点吗?

如果这样做了,我的目标就实现了。这里有人能帮我吗?正如我所说,我找不到这两个问题的信息。

答案1

Textpos 并非设计用于将textblock环境放置在当前页面以外的其他页面上,因此我认为这对于您的特定问题来说不起作用。

我添加了对您链接问题的答案,这可能会有所帮助。

相关内容