![使用 ocgx2 原地切换图片](https://linux22.com/image/435087/%E4%BD%BF%E7%94%A8%20ocgx2%20%E5%8E%9F%E5%9C%B0%E5%88%87%E6%8D%A2%E5%9B%BE%E7%89%87.png)
使用 ocgx2 和 pdflatex,我想在两个大小相同的 tikzpicture 之间切换。如果我这样做
\switchocg{ocg23a ocg23b}{Lösung}
\begin{ocg}{OCG 1}{ocg1}{1}
\begin{tikzpicture}
\draw[draw=black] (0, 0) rectangle (2, 2);
\end{tikzpicture}
\end{ocg}
\begin{ocg}{OCG 2}{ocg2}{0}
\begin{tikzpicture}
\draw[draw=blue] (0, 0) rectangle (2, 2);
\end{tikzpicture}
它确实会在图像之间切换。但是,被替换的图像并不在页面上的同一位置,而是一个在另一个之上。
如何才能使图像放置在页面上的相同位置?
答案1
环境ocg
不会阻止其内容占用输出空间并将后续内容(第二个tikzpicture
)向前推。因此,您必须将第一个放在tikzpicture
零宽度、左对齐的 LR 框中。
此外,未受保护的行尾和空行会在输出中分别产生空格和段落。
修复后的代码可能看起来像这样(ocg
切换命令中的引用也必须更正):
\documentclass{article}
\usepackage{ocgx2}
\usepackage{tikz}
\begin{document}
\switchocg{ocg1,ocg2}{Lösung}
\begin{ocg}{OCG 1}{ocg1}{on}
\makebox[0pt][l]{\begin{tikzpicture} %<== make tikzpicture zero-width
\draw[draw=black] (0, 0) rectangle (2, 2);
\end{tikzpicture}}
\end{ocg}% <== protected line ending
% <== commented paragraph
\begin{ocg}{OCG 2}{ocg2}{off}
\begin{tikzpicture}
\draw[draw=blue] (0, 0) rectangle (2, 2);
\end{tikzpicture}
\end{ocg}
\end{document}