我正在使用来自的标记列表在两个列表之间绘制比较线。
\documentclass{article}
\usepackage{listings}% http://ctan.org/pkg/listings
\usepackage{tikz}% http://ctan.org/pkg/pgf
\usetikzlibrary{calc}
% https://tex.stackexchange.com/questions/1559/adding-a-large-brace-next-to-a-body-of-text/1570#1570
\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node (#1) {};}
\lstset{
frame=single,
mathescape % Allows escaping to (La)TeX mode within $..$
}
\begin{document}
\noindent\begin{minipage}{.45\textwidth}
\begin{lstlisting}[caption={Original code}]
1 $\tikzmark{L1line1}$
2
3
4 $\tikzmark{L1line4}$
\end{lstlisting}
\end{minipage}\hfill
\begin{minipage}{.5\textwidth}
\begin{lstlisting}[caption={Code after insertion of detour}]
$\tikzmark{L2line1}$ 86
$\tikzmark{L2line4}$ 4
\end{lstlisting}
\end{minipage}
\tikz[overlay,remember picture] \draw[color=red] ($(L1line1)+(0pt,0.7ex)$) -- ($(L2line1)+(0pt,0.7ex)$);
\tikz[overlay,remember picture] \draw[color=blue] ($(L1line4)+(0pt,0.7ex)$) -- ($(L2line4)+(0pt,0.7ex)$);
\end{document}
结果如下:
我想在每行末尾添加箭头 - 在本例中为 4。我尝试在以下工具的帮助下编辑标记:在表格中绘制箭头但进展不大。有人能告诉我在这种情况下如何绘制箭头吗?
答案1
@whlt3 在评论中提到,->
向 draw 命令添加选项将产生一个箭头。有不同的箭头选项可用,下面我使用了,-latex
因为我认为在这种情况下看起来更好。在链接的问题中在表格中绘制箭头箭头样式-triangle 45
可能不太明显。以下是一些箭头类型带箭头的图形,但还有更多可用选项——请参阅TikZ/PGF
文档以了解更多箭头选项。
但是,在这种情况下,我还建议您采用略有不同的语法,以便您可以指定线条的out
和in
角度,以便在直线与其他代码重叠时提供灵活性:
笔记:
- 这需要运行两次。第一次用于确定线条的起点和终点,第二次用于绘制线条。
代码:
\documentclass[border=5pt]{standalone}
\usepackage{listings}% http://ctan.org/pkg/listings
\usepackage{tikz}% http://ctan.org/pkg/pgf
\usetikzlibrary{calc}
% https://tex.stackexchange.com/questions/1559/adding-a-large-brace-next-to-a-body-of-text/1570#1570
\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node (#1) {};}
\lstset{
frame=single,
mathescape % Allows escaping to (La)TeX mode within $..$
}
\begin{document}
\noindent\begin{minipage}{.45\textwidth}
\begin{lstlisting}[caption={Original code}]
1 code $\tikzmark{L1line1}$
2 some longer code here
3 some longer code here
4 more code$\tikzmark{L1line4}$
\end{lstlisting}
\end{minipage}\hfill
\begin{minipage}{.5\textwidth}
\begin{lstlisting}[caption={Code after insertion of detour}]
$\tikzmark{L2line1}$ 86
$\tikzmark{L2line4}$ 4
\end{lstlisting}
\end{minipage}
\tikz[overlay,remember picture,-latex] \draw[color=red,thick,out=0,in=160] ($(L1line1)+(0pt,0.7ex)$) to ($(L2line1)+(0pt,0.7ex)$);
\tikz[overlay,remember picture,-latex] \draw[color=blue,thick,out=0,in=200] ($(L1line4)+(0pt,0.7ex)$) to ($(L2line4)+(0pt,0.7ex)$);
\end{document}