Tracejado \ seta para cima

Tracejado \ seta para cima

Estou tentando definir um tracejado \Uparrow: minha primeira tentativa, usando tikz, consiste simplesmente em desenhar dois retângulos brancos sobre o normal \Uparrow, tentando manualmente encontrar um bom posicionamento dos retângulos.

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

Digitando agora

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

Eu entendi isso

1

e estou bastante satisfeito com o resultado. No entanto, tenho três perguntas:

  1. Como obter o mesmo alinhamento do normal \Downarrowe \Uparrow? Meu novo símbolo está alinhado com a linha de base do texto, enquanto os dois símbolos padrão estão um pouco deslocados para baixo.
  2. Como tornar este novo símbolo corretamente extensível? Ao fazer isso, \LARGE Text $\Dasheduparrow$ $\Downarrow$ $\Uparrow$ text.a saída é 2 onde fica evidente que o subjacente \Uparrowfoi ampliado, enquanto os retângulos brancos não.
  3. Existe uma solução melhor do que a que propus?

Responder1

RESPOSTA REVISADA

O OP comenta que, com minha resposta original, as lacunas não são dimensionadas em diferentes tamanhos de fonte (e estilos matemáticos). Isso pode ser remediado dispensando tikze empregando meu stackenginepacote, enquanto dimensiona o tamanho da lacuna com o estilo matemático (usando o [Local-Mathstyle ex] scalereldo pacote \LMexem vez de cmou ptcomo a dimensão das sobreposições de retângulo branco).

Para responder a outra questão do OP, a \ThisStyle{...\SavedStyle...}sintaxe permite que o estilo matemático atual seja transportado para uma construção onde normalmente seria perdido, neste caso, no \hboxque está sendo \vcentereditado e empilhado. É equivalente a um glorificado \mathchoice, mas frequentemente diminuirá significativamente a quantidade de digitação necessária.

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

insira a descrição da imagem aqui

RESPOSTA ORIGINAL

Aqui, começo com as definições do OP.

No entanto, eu uso \vcenterpara centralizá-lo no eixo matemático e também uso scalerelrecursos para preservar o estilo matemático.

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

insira a descrição da imagem aqui

Responder2

Uma solução rápida (pode ser um pouco suja):

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

insira a descrição da imagem aqui

Onde usei um parboxpara centralizar seu conteúdo.

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

Outra possibilidade é usar o comando de centralização matemática:

\vcenter{\hbox{\Dasheduparrow}}

informação relacionada