我正在尝试实现类似于 html 图像映射的功能,即将图像的某些区域链接到文档中的不同标签。
我面临的问题:
- 图片对于页面来说太大,因此缩小了。如何确保覆盖图缩放比例相同?
- 我希望覆盖层本身不可见并填充一个区域。我能够使用带有不透明图像的 TikZ 节点实现此目的。有没有更好的方法,例如 TikZ 命令使整个节点成为引用而不仅仅是其内容?
- 代码将自动生成,因此手动设置位置不是一种选择。所做的任何计算都应适用于每种(或至少是各种)图片尺寸/比例。
我看了这个帖子:
是否可以将图像的不同区域链接到不同的标签?
但我认为我无法使用实现地图坐标所需的准确性和灵活性\rule
。
我尝试了这里建议的: 使用自己的坐标系在 TikZ 上绘制图像 但覆盖层的坐标系存在问题。
这是一些示例代码:
\documentclass[10pt,twoside,a4paper,openany]{report}
\usepackage{tikz}
\usepackage{pdflscape}
\usepackage[pdftex]{hyperref}
\newlength\iwidth
\newlength\iheight
\begin{document}
\begin{landscape}
\begin{figure}[h]\centering
\settoheight\iheight{\includegraphics[width=1.414\textheight, totalheight=\textheight, keepaspectratio]{fig_2}}
\settowidth\iwidth{\includegraphics[width=1.414\textheight, totalheight=\textheight, keepaspectratio]{fig_2}}
\begin{tikzpicture}[x=\iwidth/1320,y=\iheight/864]
\node[anchor=south west,inner sep=0] (image) at (0,0) {\includegraphics[width=1.414\textheight, totalheight=\textheight, keepaspectratio]{fig_2}};
\node[anchor=south west,inner sep=0,minimum height = 5mm, minimum width = 5mm, opacity=0.1] (block1) at (50,100) {\hyperref[TEM_TExMnfldMdl/TEM_TExMnfldMdl/EfficiencyCalculation]{\includegraphics[width=20pt, height=10pt]{dummyPicture}}};
\end{tikzpicture}
\caption[TEM\_TExMnfldMdl]{TEM\_TExMnfldMdl}\label{fig_2}
\end{figure}
\end{landscape}
\newpage
\subsection[EfficiencyCalculation]{TEM\_TExMnfldMdl\_EfficiencyCalculation} \label{TEM_TExMnfldMdl/TEM_TExMnfldMdl/EfficiencyCalculation}
\end{document}
与此相关的未解决问题是需要一张虚拟图片,而且我无法设法从未缩放图像中框的位置计算出覆盖层的位置。
感谢与此相关的任何帮助或提示!
答案1
好的,我想我已经弄清楚了有关覆盖定位的大部分内容:
\documentclass[10pt,twoside,a4paper,openany]{report}
\usepackage{tikz}
\usepackage{pdflscape}
\usepackage{etex}
\usepackage[pdftex]{hyperref}
\newlength\iwidth
\newlength\iheight
\begin{document}
\begin{landscape}
\begin{figure}[h]\centering
\settoheight\iheight{\includegraphics[width=1.414\textheight, totalheight=\textheight, keepaspectratio]{fig_2}}
\settowidth\iwidth{\includegraphics[width=1.414\textheight, totalheight=\textheight, keepaspectratio]{fig_2}}
\begin{tikzpicture}[x=\iwidth/1320,y=\iheight/864]
\node[anchor=south west,inner sep=0] (image) at (0,0) {\includegraphics[width=1.414\textheight, totalheight=\textheight, keepaspectratio]{fig_2}};
\node[anchor=south west,inner sep=0,minimum height = 5mm, minimum width = 5mm, opacity=0] (block1) at (175,279) {\hyperref[TEM_TExMnfldMdl/TEM_TExMnfldMdl/EfficiencyCalculation]{\includegraphics[width=\dimexpr\iwidth*210/1320, height=\dimexpr\iheight*220/864]{dummyPicture}}};
\end{tikzpicture}
\caption[TEM\_TExMnfldMdl]{TEM\_TExMnfldMdl}\label{fig_2}
\end{figure}
\end{landscape}
\newpage
\subsection[EfficiencyCalculation]{TEM\_TExMnfldMdl\_EfficiencyCalculation} \label{TEM_TExMnfldMdl/TEM_TExMnfldMdl/EfficiencyCalculation}
\end{document}
其中 1320 和 864 是未缩放图片的尺寸,175 和 279 是覆盖层的左下角,210 和 220 是未缩放图片的覆盖层的尺寸。
如果我能让它工作的话,仍然会尝试以某种方式绕过虚拟图片并在这里进行编辑。