非限制水平模式下排版的文本背景中存在 tikzpicture 吗?

非限制水平模式下排版的文本背景中存在 tikzpicture 吗?

我想将 tikzpicture 放入由 LaTeX 在非限制水平模式下排版的文本背景中。

目前我通过 atbegshi 包来做这些事情。

与此类似:

\documentclass{article}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{atbegshi}

\colorlet{MYcolor}{green}%

\begin{document}

\begin{minipage}{\textwidth}%
\noindent\lower-\ht\strutbox\hbox{%
  \begin{tikzpicture}[overlay, remember picture]
  \coordinate (begin the line) at (0,0) ;
  \end{tikzpicture}%
}%
\lipsum[1]\hfill
\begin{tikzpicture}[overlay, remember picture]
\coordinate (end the line) at (0,0) ;
\end{tikzpicture}
\AtBeginShipoutNext{%
  \AtBeginShipoutAddToBox {%
    \hbox{%
    \begin{tikzpicture}[overlay, remember picture]
    \draw[solid, MYcolor,line width=1cm ,opacity=1] (begin the line) -- (end the line);
    \end{tikzpicture}%
    }%
  }%
}%
\end{minipage}%

\end{document}

在此处输入图片描述

我说“类似的东西”是因为现实生活中使用的代码更加复杂,因为你需要考虑输出例程的时间异步性,因此不能确保所讨论的小页面最终会出现在下一个发出的页面上。

我的问题是:

有没有不那么麻烦的方法可以将整个 tikzpictures 放入由 LaTeX 在非限制水平模式下排版的文本背景中?

没有 atbegshi 你能做到吗不带测量箱将排版段落留给 LaTeX 不受限制的水平模式?

答案1

假设问题

您能在不使用 atbegshi 和测量框的情况下,将排版段落留给 LaTeX 不受限制的水平模式来做到这一点吗?

翻译为

我们可以不再害怕\hfill吗?

答案是

是的当然。

tikzmark甚至可以通过添加健全性检查\iftikzmarkoncurrentpage

\documentclass{article}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{atbegshi}
\usetikzlibrary{tikzmark}
\colorlet{MYcolor}{green}%

\begin{document}

\begin{minipage}{\textwidth}%
\tikzmark{start}
\lipsum[1]\tikzmark{end}
\AtBeginShipoutNext{%
  \iftikzmarkoncurrentpage{after}%
  \AtBeginShipoutAddToBox {%
    \hbox{%
    \begin{tikzpicture}[overlay, remember picture]
    \path (pic cs:after) coordinate (aux1)
     (pic cs:end) coordinate (aux2);
    \draw[solid, MYcolor,line width=1cm ,opacity=1]
     (pic cs:start) -- (aux1|-aux2);
    \end{tikzpicture}%
    }%
  }%
 \fi
}%
\end{minipage}\tikzmark{after}%

\end{document}

在此处输入图片描述

相关内容