Pfeilförmige Textfelder (zur Verwendung im IPE-Vektorgrafik-Editor)?

Pfeilförmige Textfelder (zur Verwendung im IPE-Vektorgrafik-Editor)?

Ipe-Vektorgrafikeditor

Ich bewerte derzeit dieipeVektorgrafik-EditorEin sehr attraktives Merkmal ist, dassman kann LaTeX-Befehle innerhalb seiner Textobjekte verwendensolange diese innerhalb einer \makebox(für Labels) oder innerhalb einer Minipage (für Minipages) zulässig sind. Allerdings können keine Befehle verwendet werden, die eine nichtlineare Übersetzung ins PDF erfordern, wie etwa Befehle zum Erzeugen von Hyperlinks oder zum Einbinden externer Bilder. LaTeX-Befehle, die in zusätzlichen LaTeX-Paketen definiert sind, können jedoch mit einem Befehl in der LaTeX-Präambel eingebunden werden , der im Menü \usepackageeingestellt werden kann .Document propertiesEdit

Frage

Ich suche nach einer Möglichkeit, Text in ein linkes oder rechtes pfeilförmiges Feld mit LaTeX-Befehlen einzuschließen. ipeEin einfaches LaTeX-Paket, das Textfelder ähnlich rarrowund larrowvon dem erstelltBoxStyleKlasse inmatplotlib(siehe Beispiel unten) würde gut funktionieren. Andere Techniken sind ebenfalls willkommen. LibreOffice Impress und PowerPoint bieten solche Pfeilformen mit Text ebenfalls an, sogar gebogene.

Versuche

  1. Das Zeichnen eines \fboxum ein Textobjekt ipefunktioniert einwandfrei. Auch eine Drehung \ovalboxmit Mathematik stellt kein Problem mit \usepackage{rotating, fancybox}in der Präambel dar. Es gibt keine Pfeile infancybox, obwohl.
  2. Ich suchte nach einem LaTeX-Paket, das pfeilförmige Kästen unterdie unter "Boxing" auf CTAN aufgelisteten Pakete. Vielleicht schaue ich darüber nach, aber ein solches Paket scheint nicht aufgeführt zu sein.
  3. Jeder hier scheint TikZ-Pfeile zu verwenden, also habe ich versuchtdieses BeispielUnddieses Beispielinnen ipe. Das Ergebnis dieser fehlgeschlagenen TikZ-Experimente wird im unteren Bild angezeigt. Es schlägt aufgrund der ipezuvor erwähnten Einschränkungen des LaTeX-Textobjekts fehl.

matplotlib Boxstyle-Beispiel

matplotlib Boxstyle-Beispiel

Gedrehte Ovalbox aus Ipe

gedrehte ovale Box aus Ipe

TikZ-Pfeile funktionieren nicht in Ipe

TikZ-Pfeile funktionieren nicht in Ipe

Antwort1

Hier ist ein „Pfeilfeld“-Makro basierend auf dem LaTeX-Bildmodus. Vielleicht funktioniert das für Sie?

\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}

Ausgabe:

Beispielausgabe

BEARBEITEN

Wie OP habe ich die obige Präambel zu hinzugefügt ipe, zusammen mit einem zusätzlichen \usepackage{rotating}. Das ipeTextobjekt enthält nur Folgendes, um den geneigten Textpfeil zu erzeugen:

\begin{turn}{56}
  \rightarrowbox{\Large\textbf{yahoo!}}
\end{turn}

geneigter Textpfeil

verwandte Informationen