矢印形のテキスト ボックス (ipe ベクター グラフィック エディターで使用)?

矢印形のテキスト ボックス (ipe ベクター グラフィック エディターで使用)?

Ipe ベクターグラフィックエディタ

私は現在、ipeベクターグラフィックエディタ非常に魅力的な特徴はテキストオブジェクト内でLaTeXコマンドを使用できる\makeboxこれらは、(ラベルの場合) またはミニページの場合、内部で合法である限り、使用できます。ただし、ハイパーリンクを生成するコマンドや外部画像を含めるコマンドなど、PDF への非線形変換を伴うコマンドは使用できません。ただし、追加の LaTeX パッケージで定義されている LaTeX コマンドは、メニューで\usepackage設定できる LaTeX プリアンブルのコマンドに含めることができます。Document propertiesEdit

質問

私が探しているのは、LaTeXコマンドを使用して、左または右の矢印型のボックス内にテキストを囲む方法です。およびのipeテキストボックスを作成する単純なLaTeXパッケージです。rarrowlarrowBoxStyleクラス内matplotlib(以下のサンプルを参照) で十分です。他のテクニックも歓迎します。LibreOffice Impress と PowerPoint では、テキストにこのような矢印図形 (曲線のものも含む) も用意されています。

試み

  1. \fboxテキストオブジェクトの周囲に描画すると、ipe問題なく動作します。回転した図形でも、プリアンブルで\ovalboxは問題ありません。矢印はありません。\usepackage{rotating, fancybox}fancybox、 けれど。
  2. 私は矢印型のボックスを提供するLaTeXパッケージを探しました。CTANの「ボクシング」にリストされているパッケージおそらく私はそれを見ていますが、そのようなパッケージはリストされていないようです。
  3. ここではみんなTikZの矢印を使っているようなので、試してみましたこの例そしてこの例内部ipe。これらの失敗した TikZ 実験の結果は、下の画像に示されています。これは、ipe前述の LaTeX テキスト オブジェクトの制限のために失敗します。

matplotlib ボックススタイル標本

matplotlib ボックススタイル標本

イペの回転楕円ボックス

イペの回転楕円ボックス

TikZ矢印は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}

傾いたテキスト矢印

関連情報