![tikz - 如何重新定义锚点?](https://linux22.com/image/464425/tikz%20-%20%E5%A6%82%E4%BD%95%E9%87%8D%E6%96%B0%E5%AE%9A%E4%B9%89%E9%94%9A%E7%82%B9%EF%BC%9F.png)
如何在 tikz 中重新定义图像锚点?例如,我希望将文本“左上”放置在图像的西北角,将“右上”放置在东北角。以下代码将它们都放置在西北角。
\documentclass{article}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{tikz}% loads graphicx
\begin{document}
\begin{tikzpicture}
\node[anchor=north west,inner sep=0] (image) at (0,0) {\includegraphics{example-image-a}};
\begin{scope}[anchor=north west]
\node[draw,fill=white] at (0,0) {Top Left};
\end{scope}
\begin{scope}[anchor=image.north east]
\node[anchor=north east,draw,fill=white] at (0,0) {Top Right};
\end{scope}
\end{tikzpicture}
\end{document}
但我希望它固定在图片的东北部
答案1
像这样?
为此,您不需要使用scope
图形上角的节点,您可以在没有它们的情况下插入:
\documentclass{article}
\usepackage{tikz}% loads graphicx
\begin{document}
\begin{tikzpicture}[
lbl/.style = {draw, outer sep=2\pgflinewidth, fill=white}
]
\node[anchor=north west,inner sep=0] (image) {\includegraphics{example-image-a}};
%
\node[lbl,below right] at (image.north west) {Top Left};
\node[lbl,below left] at (image.north east) {Top Right};
\end{tikzpicture}
\end{document}
编辑: 或者定义标签锚点:
\documentclass{article}
\usepackage{tikz}% loads graphicx
\begin{tikzpicture}[
lbl/.style = {draw, outer sep=2\pgflinewidth, fill=white, anchor=#1}
]
\node[anchor=north west, inner sep=0] (image) {\includegraphics{example-image-a}};
%
\node[lbl=north west] at (image.north west) {Top Left};
\node[lbl=north east] at (image.north east) {Top Right};
\end{tikzpicture}
\end{document}
结果和以前一样。