我正在寻找解决方案向下虚线箭头。已经尝试过像lucidabr
和这样的软件包MnSymbol
,但是这些软件包把我的东西搞得一团糟,产生了很多错误,比如
“XY 线上有些不对劲“。
我也尝试过\rotatebox
(\dashrightarrow
可在 中使用ams
),但它既没有旋转也没有放置。
我在想,如果我能自己制作它,那也许是最好的。
有什么帮助吗?
答案1
基本解决方案:
现在确定您在使用时遇到了什么问题\rotatebox
,但如果用作以下方式似乎有效\rotatebox{-90}{$\dashrightarrow$}
:
笔记:
根据实际应用,可能需要垂直升高,也可以通过以下方式降低
\raisebox
:\newcommand{\dashdownarrow}{\raisebox{2.0ex}{\rotatebox{-90}{$\dashrightarrow$}}}
如果它是二进制/关系运算符,那么您可以将符号括在
\mathbin{}/\mathrel{}
:\newcommand{\dashdownarrow}{\mathbin{\raisebox{2.0ex}{\rotatebox{-90}{$\dashrightarrow$}}}}
用于\mathchoice
自动调整大小:
根据 Gonzalo Medina 的建议,为了能够将其用于不同的数学大小(例如下标),您可以使用它\mathchoice
来确保符号的大小也根据周围的数学环境进行调整:
代码:
\documentclass{article}
\usepackage{amssymb}
\usepackage{graphicx}
\newcommand\dashdownarrowi{\mathchoice%
{\rotatebox[origin=c]{-90}{$\displaystyle\dashrightarrow$}}%
{\rotatebox[origin=c]{-90}{$\displaystyle\dashrightarrow$}}%
{\rotatebox[origin=c]{-90}{$\scriptstyle\dashrightarrow$}}%
{\rotatebox[origin=c]{-90}{$\scriptscriptstyle\dashrightarrow$}}%
}
\newcommand{\dashdownarrow}{\mathrel{\dashdownarrowi}}
\begin{document}
$A\dashdownarrow B\quad M_{A\dashdownarrow B}\quad L_{M_{A\dashdownarrow B}}$
\end{document}
用于\text{}
自动调整大小(并改变大小):
egreg 提供了一种更简单的方法来获得相同的效果,那就是将符号括在内\text{}
,允许它适当地调整大小:
笔记:
- 在这个版本中我添加了,
\scalebox
以便您可以使符号变小——调整比例因子以适应。 - 如果您希望垂直移动它,可以使用
\raisebox{<length>}{}
。
代码:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{graphicx}
\newcommand\ddaaux{\rotatebox[origin=c]{-90}{\scalebox{0.70}{$\dashrightarrow$}}}
\newcommand\dashdownarrow{\mathrel{\text{\ddaaux}}}
\begin{document}
$A\dashdownarrow B\quad M_{A\dashdownarrow B}\quad L_{M_{A\dashdownarrow B}}$
\end{document}
答案2
使用以下方法创建缺失符号的解决方案\rotatebox
:
\documentclass{article}
\usepackage{amssymb}
\usepackage{graphicx}
\makeatletter
\newcommand*{\dashdownarrow}{%
\mathrel{%
\mathpalette\dasharrow@vert{-90}%
}%
}
\newcommand*{\dashuparrow}{%
\mathrel{%
\mathpalette\dasharrow@vert{90}%
}%
}
\newcommand*{\dasharrow@vert}[2]{%
\sbox0{$#1\vcenter{}$}%
\sbox2{$#1\dashrightarrow\m@th$}%
\dimen@=1.2\dimexpr\ht2-\ht0\relax
% 1/2 width of the new symbol with side bearing
\sbox2{\raisebox{-\ht0}{\unhcopy2}}%
\ht2=\z@
\dp2=\z@
\vcenter{\hbox to 2\dimen@{\hfill\rotatebox{#2}{\box2}\hfill}}%
}
\makeatother
\begin{document}
\[
A \dashrightarrow B \dashdownarrow C \dashuparrow D \dashleftarrow E
\]
\setlength{\fboxsep}{0pt}%
\setlength{\fboxrule}{.1pt}%
\[
A \mathrel{\fbox{$\dashrightarrow$}}
B \mathrel{\fbox{$\dashdownarrow$}}
C \mathrel{\fbox{$\dashuparrow$}}
D \mathrel{\fbox{$\dashleftarrow$}}
E
\]
\[
A\dashdownarrow B % \displaystyle and \textstyle have same size
\qquad
\scriptstyle A \dashdownarrow B
\qquad
\scriptscriptstyle A \dashdownarrow B
\]
\end{document}
评论:
- 新的符号在宏的帮助下适应当前的数学风格
\mathpalette
。 \m@th
集合\mathsurround=0pt
,仅当 `\mathsurround(数学公式周围的额外空间)不同于零(零是默认值)时才需要。\dashrightarrow
以数学轴为中心。数学轴的高度可以通过空的 来测量\vcenter{}
。
答案3
% arara: lualatex
\documentclass{article}
\usepackage{unicode-math}
\begin{document}
\setmathfont{xits-math}
\[
a\downdasharrow b
\]
%\setmathfont{cambria math} % not available on my system
%\[
%a\downdasharrow b
%\]
\setmathfont{asana-math}
\[
a\downdasharrow b
\]
\end{document}
并听取这个答案,您可以根据需要定义任何其他箭头:
% arara: lualatex
\documentclass{article}
\usepackage{graphicx}
\usepackage{mathtools}
\usepackage{unicode-math}
\newcommand\ddaaux{\rotatebox[origin=c]{-90}{\scalebox{1}{$\rightdotarrow$}}}
\newcommand\downdotarrow{\mathrel{\text{\ddaaux}}}
\newcommand\bkaux{\rotatebox[origin=c]{-90}{\scalebox{1}{$\rightbkarrow$}}}
\newcommand\downbkarrow{\mathrel{\text{\bkaux}}}
\newcommand\dbkaux{\rotatebox[origin=c]{-90}{\scalebox{1}{$\dbkarow$}}}
\newcommand\downdbkarrow{\mathrel{\text{\dbkaux}}}
\begin{document}
\setmathfont{xits-math}
\[
a\downdotarrow b; a\downbkarrow b; a\downdbkarrow b
\]
\setmathfont{asana-math}
\[
a\downdotarrow b; a\downbkarrow b; a\downdbkarrow b
\]
\end{document}
您可能需要微调缩放。