我想在我的 latex 文档中显示一些类似于附图中的文本内箭头。我知道\leftrightarrow
和\updownarrow
命令,但我不知道如何组合它们,也不知道如何旋转它们。tikz 是否是实现此目的所必需的?
任何帮助都感激不尽。
编辑:我澄清得更清楚了,如果我的问题不清楚,我很抱歉。我想避免使用数学模式(但这并不重要)和 tikz(以避免加载太多包),但环顾四周似乎 tikz 是必要的。最后,我想要一些类似的东西,A \to B
但带有我描述的符号。
为了将来参考,我的问题类似于这个。
答案1
叠加箭头
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\newcommand{\arrowtimes}{\mathrel{\mathpalette\enzo@arrowtimes\relax}}
\newcommand{\enzo@arrowtimes}[2]{%
\ooalign{%
$\m@th#1\nwarrow$\cr
$\m@th#1\swarrow$\cr
$\m@th#1\nearrow$\cr
$\m@th#1\searrow$\cr
}%
}
\newcommand{\arrowplus}{\mathrel{\mathpalette\enzo@arrowplus\relax}}
\newcommand{\enzo@arrowplus}[2]{%
\ooalign{%
$\m@th#1\leftarrow\mathrel{\mspace{-9mu}}\rightarrow$\cr
\hidewidth$\m@th#1\text{$\m@th\big\uparrow$}$\hidewidth\cr
\hidewidth$\m@th#1\text{$\m@th\big\downarrow$}$\hidewidth\cr
}%
}
\makeatother
\begin{document}
\[
A \arrowtimes B_{x\arrowtimes y}
\qquad
A \arrowplus B_{x\arrowplus y}
\]
\end{document}
箭头不太突出,仅用于文本模式,带有mathabx
箭头。
\documentclass{article}
\DeclareFontFamily{U}{abxarrows}{}
\DeclareFontShape{U}{abxarrows}{m}{n}{
<-5.5> matha5
<5.5-6.5> matha6
<6.5-7.5> matha7
<7.5-8.5> matha8
<8.5-9.5> matha9
<9.5-11> matha10
<11-> matha12
}{}
% left="D0
% right="D1
% up="D2
% down="D3
% nw="D4
% ne="D5
% sw="D6
% se="D7
\newcommand{\timesarrows}{%
\raisebox{0.5\depth}{%
\usefont{U}{abxarrows}{m}{n}%
\ooalign{%
\symbol{"D4}\cr
\symbol{"D5}\cr
\symbol{"D6}\cr
\symbol{"D7}\cr
}%
}%
}
\newcommand{\plusarrows}{%
\raisebox{0.5\depth}{%
\usefont{U}{abxarrows}{m}{n}%
\ooalign{%
\hidewidth\symbol{"D2}\hidewidth\cr
\symbol{"D0}\cr
\symbol{"D1}\cr
\hidewidth\symbol{"D3}\hidewidth\cr
}%
}%
}
\begin{document}
X\timesarrows Y\plusarrows Z
\end{document}
答案2
如果问题能提供更多关于上下文以及如何使用的信息,那就太好了。正如\leftrightarrow
和\updownarrow
明确提到的,我假设这些箭头是你在数学模式中使用的类似二元关系。一种选择是使用蒂克兹如下:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\tikzset{
% define default style for the arrows
myarrows/.style={scale=0.25,
baseline=(current bounding box.south),
>={Latex[length=2pt]},
<->
}
}
\newcommand\biarrow[1][]{\mathbin{\tikz[myarrows,#1]{
\draw(0,0.5)--++(1,0);\draw(0.5,0)--++(0,1);
}}}
\newcommand\diarrow[1][]{\mathbin{\tikz[myarrows,#1]{
\draw(0,0)--(1,1);\draw(0,1)--(1,0);
}}}
\begin{document}
$A \biarrow B$
$A \diarrow[blue] B$
$A \diarrow[densely dotted, xscale=3] B$
\end{document}
此代码产生:
代码定义了两个宏,\biarrow
和\diarrow
,用于\tikz{...}
绘制箭头。这两个宏接受一个可选参数,可用于应用tikz
样式,如上面的第二和第三个示例所示。我使用来\tikzset
为这两个宏定义通用样式。
如果要将其用于上标和下标等,则应使用来定义\mathpalette
;参见\mathpalette 的奥秘
编辑
如果您不想在数学模式中使用这些,那么宏就会变得更简单,因为您可以删除\mathbin
:
\newcommand\biarrow[1][]{\tikz[myarrows,#1]{
\draw(0,0.5)--++(1,0);\draw(0.5,0)--++(0,1);
}}
\newcommand\diarrow[1][]{\tikz[myarrows,#1]{
\draw(0,0)--(1,1);\draw(0,1)--(1,0);
}}