有人可以在 LateX 中重现以下内容吗:
我广泛研究了各种软件包和技术,但似乎没有一个能够完全重现所需的行为。我本质上希望可以毫无顾忌地从 A 画到 B:无论页面上有什么(LateX 表格、图像、方程式)。
这是生成所示表格和内容的 MWE:
\documentclass{article}
\usepackage{array}
\usepackage{graphicx}
\usepackage{cellspace}
\begin{document}
\begingroup
\setlength\cellspacetoplimit{3pt}
\setlength\cellspacebottomlimit{3pt}
\begin{table*}[h!]
\begin{tabular}{| S{p{0.5\linewidth}} | S{p{0.7\linewidth}} |}
\hline
\begin{minipage}[t]{0.5\textwidth}
\vspace{0pt}
\includegraphics[width=0.7\linewidth]{gadget1a} \newline
Set the leftmost control to equal the point 3 value \newline
\end{minipage}
&
\begin{minipage}[t]{0.9\textwidth}
\vspace{0pt}
\includegraphics[width=0.75\linewidth]{gadget1b}
\end{minipage} \\
\hline
\end{tabular}
\end{table*}
\endgroup
\end{document}
答案1
您可以使用tikzmark
库轻松地将事物放置在任意位置。通常,您希望尝试避免直接计算页面上的位置,并且该\tikzmark
命令允许您将节点放置在任何类型的文本中,然后可以在叠加中引用该节点tikzpicture
。对于图像顶部的任意点,最简单的方法是使用命令将图像作为 TikZ 节点插入\tikzmarknode
,然后根据实际图像手动进行绝对定位。这是您的文档的一个版本(我从您的示例中复制了图像,因此箭头的剩余部分仍然存在。)
您必须使用 TikZ 编译文档[overlay, remember picture]
两次才能正确看到效果,因此如果第一次编译出现覆盖材料放置错误,请不要惊慌。
\documentclass[]{article}
\usepackage{array}
\usepackage{graphicx}
\usepackage{cellspace}
\usepackage{tikz}
\usetikzlibrary{tikzmark,calc}
\begin{document}
\begingroup
\setlength\cellspacetoplimit{3pt}
\setlength\cellspacebottomlimit{3pt}
\begin{table*}[h!]
\begin{tabular}{| S{p{0.5\linewidth}} | S{p{0.7\linewidth}} |}
\hline
\begin{minipage}[t]{0.5\textwidth}
\vspace{0pt}
\includegraphics[width=0.7\linewidth]{gadget1a} \newline
Set the leftmost control to equal the point 3 \tikzmarknode[draw=red,very thick, inner sep=2pt]{value}{value} \newline
\end{minipage}
&
\begin{minipage}[t]{0.9\textwidth}
\vspace{0pt}
\tikzmarknode{gadget1b}{\includegraphics[width=0.75\linewidth]{gadget1b}}
\end{minipage} \\
\hline
\end{tabular}
\end{table*}
\endgroup
\begin{tikzpicture}[remember picture,overlay]
\node[draw=red,very thick,minimum width=.5in,minimum height=.15in] at ($(gadget1b.center)-(1in,.175in)$) (c) {};
\draw[->,red,very thick] (value.east) [in=-90,out=-10] to (c);
\end{tikzpicture}
\end{document}
答案2
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,
positioning,
quotes, shapes}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}[
node distance = 2mm,
image/.style = {scale=0.4,},
arr/.style = {-Triangle, semithick}
]
\node[image] (A) {\includegraphics[height=8in, width=3in]{example-image-a}};
\node[image,above right=of A] (B) {\includegraphics{example-image-b}};
\draw[blue, dashed, arr, ]
(A.south)++(0,16pt)node[red,circle,draw,inner sep=6pt]{} to[out=-60,in=-90, looseness=1.2]
(B.south)++(0,12pt)
;
\end{tikzpicture}
\caption{a caption}
\label{fig12}
\end{figure}
\end{document}