![我可以在同一行上从一个单词画一个小箭头指向一个空格吗?](https://linux22.com/image/240873/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%E5%90%8C%E4%B8%80%E8%A1%8C%E4%B8%8A%E4%BB%8E%E4%B8%80%E4%B8%AA%E5%8D%95%E8%AF%8D%E7%94%BB%E4%B8%80%E4%B8%AA%E5%B0%8F%E7%AE%AD%E5%A4%B4%E6%8C%87%E5%90%91%E4%B8%80%E4%B8%AA%E7%A9%BA%E6%A0%BC%E5%90%97%EF%BC%9F.png)
我想说明的是const
下面一行中的 也可以向右移动一个单词。也许我可以给 const 加下划线,并画一条细线指向下一个缺口的弧形箭头?
const int * val
-----___-^
TeX 源代码如下:
\begin{auflistung} % itemize
\itm{} % item
\mono{\fett{const int} * val}
%...
\end{auflistung}
其中auflistung
作为 itemize 环境、itm
作为项目、mono
作为打字机类型以及fett
作为粗体。
答案1
这可以很容易地使用pst-node
- 节点连接扩展pstricks
。下面是几个例子:
\documentclass{article}
\usepackage{pst-node}% http://ctan.org/pkg/pst-node
\begin{document}
\begin{itemize}
\item \texttt{\textbf{\rnode{A}{const} int}\rnode{B}{\strut\ }* val}
\ncbar[nodesep=2pt,linewidth=0.5pt,angle=90]{->}{A}{B}
\item \texttt{\textbf{\rnode{C}{const} int}\rnode{D}{\phantom{c}}* val}
\nccurve[nodesep=2pt,linewidth=0.5pt,angleA=60,angleB=120]{->}{C}{D}
\item \texttt{\textbf{\rnode{E}{const} int}\rlap{\rnode{F}{\phantom{oo}}} * val}
\ncarc[nodesep=2pt,linewidth=0.5pt,arcangle=45]{->}{E}{F}
\item \texttt{\textbf{\rnode{G}{const} int}\rnode{H}{\phantom{t}}* val}
\ncdiag[nodesep=2pt,linewidth=0.5pt,arm=.3,linearc=.2,angle=90]{->}{G}{H}
\end{itemize}
\end{document}
您的编译顺序是latex
-> dvips
(-> ps2pdf
) 或xelatex
。对上述代码的修改可能包括跨越代码下方(而不是上方)的箭头/弧线、颜色、线型和宽度更改等等。阅读pst-node
文档或者pstricks
文档(章节VII 节点和节点连接) 了解更多信息。
答案2
您可以为此使用 TikZ。
在文档开头的某个地方,问题
\tikzset{
every picture/.style={
remember picture, % Make nodes available to all TikZ pictures
inner xsep=0pt, % Remove horizontal padding
inner ysep=1pt, % Set small vertical padding
baseline, % Align TikZ pictures at the baseline
every node/.style={
anchor=base % Align all nodes at the baseline
}
}
}
const
然后,您可以用替换单词,并用替换和\tikz \node (a) {const};
之间的空格,从而创建两个节点,然后可以使用 进行链接,得到int
*
\tikz \node (b) {\hphantom{ }};
(a)
(b)
\tikz [overlay] \draw [red,->] (a.south) to [bend right=70] (b.south);
以下是完整文档:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\tikzset{
every picture/.style={
remember picture, % Make nodes available to all TikZ pictures
inner xsep=0pt, % Remove horizontal padding
inner ysep=1pt, % Set small vertical padding
baseline, % Align TikZ pictures at the baseline
every node/.style={
anchor=base % Align all nodes at the baseline
}
}
}
\begin{itemize} % itemize
\item{} % item
\texttt{\tikz \node [anchor=base] (a) {const}; int\tikz \node (b) {\hphantom{ }};* val}
\tikz [overlay] \draw [red,->] (a.south) to [bend right=70] (b.south);
\end{itemize}
\end{document}