Gestrichelter \Uparrow

Gestrichelter \Uparrow

Ich versuche, ein gestricheltes zu definieren \Uparrow: Mein erster Versuch mit tikzbesteht einfach darin, zwei weiße Rechtecke über das normale zu zeichnen \Uparrowund manuell zu versuchen, eine gute Positionierung der Rechtecke zu finden.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}

\newcommand{\Dasheduparrow}{
\begin{tikzpicture}[x=1, y=1]
\node (0,0) [inner sep=0] {$\Uparrow$};
\fill[fill=white] (-3,0.5) rectangle (2,-1);
\fill[fill=white] (-3,-2) rectangle (2,-3.5);
\end{tikzpicture}}

Tippen Sie jetzt

\begin{document}
Text $\Dasheduparrow$ $\Downarrow$ $\Uparrow$ text.
\end{document}

Ich verstehe das

1

und ich bin mit dem Ergebnis ziemlich zufrieden. Allerdings habe ich drei Fragen:

  1. Wie erreiche ich die gleiche Ausrichtung des normalen \Downarrowund des \Uparrow? Mein neues Symbol ist an der Grundlinie des Textes ausgerichtet, während die beiden Standardsymbole etwas nach unten verschoben sind.
  2. Wie kann man dieses neue Symbol richtig dehnbar machen? Wenn man das tut, \LARGE Text $\Dasheduparrow$ $\Downarrow$ $\Uparrow$ text.ist die Ausgabe 2 so, dass das darunterliegende Symbol \Uparrowvergrößert wurde, die weißen Rechtecke jedoch nicht.
  3. Gibt es eine bessere Lösung als die von mir vorgeschlagene?

Antwort1

ÜBERARBEITETE ANTWORT

Der OP kommentiert, dass bei meiner ursprünglichen Antwort die Lücken bei unterschiedlichen Schriftgrößen (und mathematischen Stilen) nicht skaliert werden. Dies kann behoben werden, indem man auf tikzmein stackenginePaket verzichtet und es verwendet, während man die Lückengröße mit dem mathematischen Stil skaliert (unter Verwendung des [Local-Mathstyle ex] scalereldes Pakets \LMexanstelle cmoder ptals Dimension der weißen Rechtecküberlagerungen).

Um eine weitere Frage des OP zu beantworten: Die \ThisStyle{...\SavedStyle...}Syntax ermöglicht es, den aktuellen mathematischen Stil in eine Konstruktion zu übertragen, in der er normalerweise verloren gehen würde, in diesem Fall in das , \hboxdas bearbeitet und gestapelt wird \vcenter. Es entspricht einem verherrlichten \mathchoice, verringert jedoch häufig den erforderlichen Tippaufwand erheblich.

\documentclass{article}
\usepackage[utf8]{inputenc}
%\usepackage[T1]{fontenc}
\usepackage{scalerel,stackengine,xcolor}
\newcommand{\Dasheduparrow}{\ThisStyle{\vcenter{\hbox{$%
\stackengine{0.45\LMex}{\stackengine{-.15\LMex}{$\SavedStyle\Uparrow$}
  {\textcolor{white}{\rule{1.1\LMex}{0.3\LMex}}}{O}{c}{F}{T}{L}%
 }{\textcolor{white}{\rule{1.1\LMex}{0.3\LMex}}}{O}{c}{F}{T}{L}%
$}}}}
\begin{document}
Text $\Dasheduparrow$ $\Downarrow$ $\Uparrow$ text.

$\Dasheduparrow \scriptstyle \Dasheduparrow \scriptscriptstyle \Dasheduparrow$

\LARGE
Text $\Dasheduparrow$ $\Downarrow$ $\Uparrow$ text.

\end{document}

Bildbeschreibung hier eingeben

URSPRÜNGLICHE ANTWORT

Hier beginne ich mit den Definitionen des OP.

Ich zentriere es dann jedoch \vcenterauf der mathematischen Achse und verwende auch scalerelFunktionen, um den mathematischen Stil beizubehalten.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usepackage{scalerel}
\newcommand{\Dasheduparrow}{\ThisStyle{\vcenter{\hbox{$
\begin{tikzpicture}[x=1, y=1]
\node (0,0) [inner sep=0] {$\SavedStyle\Uparrow$};
\fill[fill=white] (-3,0.5) rectangle (2,-1);
\fill[fill=white] (-3,-2) rectangle (2,-3.5);
\end{tikzpicture}$}}}}
\begin{document}
Text $\Dasheduparrow$ $\Downarrow$ $\Uparrow$ text.

$\Dasheduparrow \scriptstyle \Dasheduparrow \scriptscriptstyle \Dasheduparrow$
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Eine schnelle Problemumgehung (vielleicht etwas unsauber):

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz,calc}

\newcommand{\Dasheduparrow}{
\begin{tikzpicture}[x=1, y=1]
\node (0,0) [inner sep=0] {$\Uparrow$};
\fill[fill=white] (-3,0.5) rectangle (2,-1);
\fill[fill=white] (-3,-2) rectangle (2,-3.5);
\end{tikzpicture}}

\begin{document}
Text \parbox{\widthof{$\Dasheduparrow$}}{$\Dasheduparrow$} $\Downarrow$ $\Uparrow$ text.
\end{document}

Bildbeschreibung hier eingeben

Wobei ich ein verwendet habe, parboxum den Inhalt zu zentrieren.

\parbox{\widthof{$\Dasheduparrow$}}{$\Dasheduparrow$}

Eine andere Möglichkeit besteht darin, den Befehl zur mathematischen Zentrierung zu verwenden:

\vcenter{\hbox{\Dasheduparrow}}

verwandte Informationen