从 mathabx 实现 \lefttorightarrow 而不导入其他符号

从 mathabx 实现 \lefttorightarrow 而不导入其他符号

我正在尝试实现取自https://mathoverflow.net/q/64544/101848

\usepackage{mathabx,epsfig}
\def\acts{\mathrel{\reflectbox{$\righttoleftarrow$}}}

这样就G\acts X可以得到

2

问题是,加载mathabx会产生从 mathabx 导入所有符号的副作用。例如,它会更改默认的 LaTeX \to,即在此处输入图片描述,符号在此处输入图片描述。类似的变化也发生在默认的 LaTeX 上\mapsto,并且它还改变了默认的 LaTeX \in

\acts如果不加载其余符号,我怎样才能执行该命令所做的事情mathabx

答案1

\acts可以改进导入代码,以便使用任意大小的字体。还可以改进的定义,以便制作一个可以正确缩放下标和上标的符号。

\documentclass{article}
\usepackage{amsmath,graphicx}

\DeclareFontFamily{U}{mathb}{}
\DeclareFontShape{U}{mathb}{m}{n}{
     <-5.5> mathb5
  <5.5-6.5> mathb6
  <6.5-7.5> mathb7
  <7.5-8.5> mathb8
  <8.5-9.5> mathb9
  <9.5-11>  mathb10
  <11->     mathb12
}{}
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}
\DeclareMathSymbol{\lefttorightarrow}{3}{mathb}{"FC}
\DeclareMathSymbol{\righttoleftarrow}{3}{mathb}{"FD}

\makeatletter
\DeclareRobustCommand{\looparrow}[1]{%
  \mathrel{\mathpalette\looparrow@{#1}}%
}
\newcommand{\looparrow@}[2]{\reflectbox{$\m@th#1#2$}}
\makeatother

\newcommand{\acts}{\looparrow{\righttoleftarrow}}
\newcommand{\foo}{\looparrow{\lefttorightarrow}}

\begin{document}

$G\acts X$

$X\foo G$

$A_{G\acts X}$

\end{document}

在此处输入图片描述

也许您不需要反向符号,但它几乎是免费的。

不要使用\def,你会更快乐。

答案2

⟳ 符号(顺时针有间隙的圆形箭头)也出现在unicode-math(以及旧包stixstix2)中\cwgapcirclearrow。因此,您可以使用:

\documentclass{article}
\usepackage{unicode-math}

\setmathfont{STIX Two Math}

\begin{document}
\[ G \cwgapcirclearrow X \]
\end{document}

STIX Two Math 示例

要从具有该符号的字体(例如 STIX Two Math、XITS Math 或 New Computer Modern Math)中仅导入这一个符号,您可以使用range=以下选项\setmathfont

\documentclass{article}
\usepackage{unicode-math}

\setmainfont{Erewhon}
\setmathfont{Erewhon Math}
\setmathfont{STIX Two Math}[ range = \cwgapcirclearrow,
                             Scale = MatchUppercase ]

\begin{document}
\[ G \cwgapcirclearrow X \]
\end{document}

Erewhon Math + STIX Two Math 示例

答案3

模仿https://tex.stackexchange.com/a/14388/150120,我给出了以下解决问题的序言代码:

\DeclareFontFamily{U}{mathb}{\hyphenchar\font45}
\DeclareFontShape{U}{mathb}{m}{n}{
      <5> <6> <7> <8> <9> <10> gen * mathb
      <10.95> mathb10 <12> <14.4> <17.28> <20.74> <24.88> mathb12
      }{}
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}

\DeclareMathSymbol{\righttoleftarrow}{3}{mathb}{"FD}

\def\acts{\mathrel{\reflectbox{$\righttoleftarrow$}}}

前六行代码取自mathabx.styCTAN 上的文件:https://www.ctan.org/tex-archive/fonts/mathabx/texinputs

在文件中寻找它时找到了"FD代码(最后一个链接中也可用)。\righttoleftarrowmathabx.dcl

我之所以发布此答案,是因为上面的前六行代码与引用的 TSE 答案中的代码并不完全相同。这里的代码是 ,mathb而其他 TSE 答案中的代码是matha。我最初复制了其他 TSE 答案中的代码,花了一段时间才意识到需要进行一些更改。

相关内容