我想将 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}