![箭头形的文本框(用于 ipe 矢量图形编辑器)?](https://linux22.com/image/290091/%E7%AE%AD%E5%A4%B4%E5%BD%A2%E7%9A%84%E6%96%87%E6%9C%AC%E6%A1%86%EF%BC%88%E7%94%A8%E4%BA%8E%20ipe%20%E7%9F%A2%E9%87%8F%E5%9B%BE%E5%BD%A2%E7%BC%96%E8%BE%91%E5%99%A8%EF%BC%89%EF%BC%9F.png)
Ipe矢量图形编辑器
我目前正在评估ipe
矢量图形编辑器. 一个非常有吸引力的特点是可以在文本对象中使用 LaTeX 命令只要这些命令在\makebox
(标签) 或 minipage (minipage) 中合法即可。但是,不能使用涉及非线性转换为 PDF 的命令,例如生成超链接或包含外部图像的命令。尽管如此,在附加 LaTeX 包中定义的 LaTeX 命令可以包含在 LaTeX 前言中的命令中,该命令可以在菜单下\usepackage
设置。Document properties
Edit
问题
我正在寻找一种方法,使用 LaTeX 命令将文本括在左或右箭头形框内ipe
?一个简单的 LaTeX 包,可以创建类似于rarrow
和larrow
的文本框BoxStyle
上课matplotlib
(见下面的样本)就很好了。其他技术也欢迎。LibreOffice Impress 和 PowerPoint 也提供了带有文本的箭头形状,甚至是弯曲的箭头形状。
尝试
\fbox
在文本对象周围绘制一个ipe
可以完美运行。即使\ovalbox
是旋转的 也不会在序言中造成任何问题\usepackage{rotating, fancybox}
。没有箭头fancybox
, 尽管。- 我寻找一个 LaTeX 包,其中提供了箭头形的框CTAN 上“装箱”中列出的软件包。我可能仔细看过了,但似乎没有列出这样的包。
- 这里的每个人似乎都使用 TikZ 箭头,所以我尝试了这个例子和这个例子里面
ipe
。这些失败的 TikZ 实验的结果显示在下图中。它失败是因为ipe
前面提到的 LaTeX 文本对象限制。
matplotlib Boxstyle 标本
ipe 中的旋转椭圆框
TikZ 箭头在 ipe 中不起作用
答案1
这是基于 LaTeX 图片模式的“箭头框”宏。也许这对您有用?
\documentclass{article}
\makeatletter
\newdimen\ab@texttotalheight
\newdimen\ab@arrowstemwidth
\newdimen\ab@arrowheadwidth
\newdimen\ab@arrowwidth
\newdimen\ab@arrowstemheight
\newdimen\ab@arrowheight
\newcommand\rightarrowbox{\@arrowbox+}
\newcommand\leftarrowbox{\@arrowbox-}
\newcommand\@arrowbox[2]
{%
\begingroup
\setbox\@tempboxa=\hbox{#2}%
\ab@texttotalheight\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax
\ab@arrowstemwidth\dimexpr\wd\@tempboxa\relax
\ab@arrowheadwidth\dimexpr2\fboxsep+.5\ab@texttotalheight\relax
\ab@arrowwidth\dimexpr\ab@arrowstemwidth+\ab@arrowheadwidth\relax
\ab@arrowstemheight\dimexpr2\fboxsep+\ab@texttotalheight\relax
\ab@arrowheight\dimexpr4\fboxsep+\ab@texttotalheight\relax
\thicklines
\unitlength\p@
\edef\@temp{{picture}(\strip@pt\ab@arrowwidth,\strip@pt\ab@arrowheight)\if#1-(-\strip@pt\ab@arrowwidth,0)\fi}%
\expandafter\raisebox\expandafter{\the\dimexpr-\dp\@tempboxa-2\fboxsep\relax}
{%
\expandafter\begin\@temp
\put(#1\strip@pt\@halfwidth,\strip@pt\fboxsep){\line(0,1){\strip@pt\ab@arrowstemheight}}
\@tempdima\dimexpr2\fboxsep+\dp\@tempboxa\relax
\@tempdimb\if#1-\dimexpr\fboxsep+\wd\@tempboxa\relax\else\fboxsep\fi\relax
\put(#1\strip@pt\@tempdimb,\strip@pt\@tempdima){\box\@tempboxa}
\@tempdima\dimexpr3\fboxsep+\ab@texttotalheight\relax
\@tempdimb\dimexpr\ab@arrowstemwidth+\@halfwidth\relax
\put(0,\strip@pt\@tempdima){\line(#11,0){\strip@pt\@tempdimb}}
\put(0,\strip@pt\fboxsep){\line(#11,0){\strip@pt\@tempdimb}}
\put(#1\strip@pt\ab@arrowstemwidth,\strip@pt\@tempdima){\line(0,1){\strip@pt\fboxsep}}
\put(#1\strip@pt\ab@arrowstemwidth,0){\line(0,1){\strip@pt\fboxsep}}
\advance\@tempdima\fboxsep
\put(#1\strip@pt\ab@arrowstemwidth,\strip@pt\@tempdima){\line(#11,-1){\strip@pt\ab@arrowheadwidth}}
\put(#1\strip@pt\ab@arrowstemwidth,0){\line(#11,1){\strip@pt\ab@arrowheadwidth}}
\end{picture}%
}%
\endgroup
}
\begin{document}
\leftarrowbox{\Large\textsf{foo}} \rightarrowbox{\Large\textsf{foo}}
\fbox{\Large\textsf{foo}}
\bigskip
\leftarrowbox{\Large\textsf{goo}} \rightarrowbox{\Large\textsf{goo}}
\fbox{\Large\textsf{goo}}
\bigskip
\leftarrowbox{\Large\textsf{\strut foo}} \rightarrowbox{\Large\textsf{\strut goo}}
\bigskip
\leftarrowbox{\Large\textsf{\begin{tabular}{l}foo\\goo\end{tabular}}}
\rightarrowbox{\Large\textsf{\begin{tabular}{l}foo\\goo\end{tabular}}}
\fbox{\Large\textsf{\begin{tabular}{l}foo\\goo\end{tabular}}}
\end{document}
输出:
编辑
作为 OP,我已将上述序言添加到ipe
,并附加了\usepackage{rotating}
。ipe
文本对象仅包含以下内容以生成倾斜的文本箭头:
\begin{turn}{56}
\rightarrowbox{\Large\textbf{yahoo!}}
\end{turn}