左 \mapsto 箭头

左 \mapsto 箭头

我正在寻找一种方法来使用 (AMS)TeX 制作左箭头版本的命令\mapsto。这是我尝试做的:

\mathchardef\mapstochar="322F 
\def\leftmapsto{\leftarrow\mapstochar}
\def\longleftmapsto{\longleftarrow\mapstochar}

它“几乎”可以工作,如果不是我得到的是 3/4 无穷符号而不是需要放置在左箭头底部的预期小竖线(这个竖线的 1/3:|)。所以我需要那个小竖线的代码,因为“322F 给了我一个错误的符号。

答案1

这个怎么样?不过,恐怕它使用了一个包,因为字体仍然需要以某种方式加载。字体有文档记录这里以及它的纯 TeX 版本这里

\input stmary %
$a \mapsfrom b$

$a \longmapsfrom b$
\bye

代码输出

答案2

这些字符是 Unicode U+21A4 ( ) 和 U+27FB ( ),通常映射到\mapsto\longmapsto(与 HTML 实体名称匹配),或者您可以像这里一样直接输入它们。

在此处输入图片描述

自然,您需要一种具有这些字符的字体,该字体以所有合理的 tex 格式设置,也许您更喜欢 optex,因为它更接近简单的语法。

\fontfam[lm]

$ A ↤ B ⟻ C $

\bye

或者你当然可以直接使用纯 tex 和 luatex 或 xetex 并设置合适的字体(这是使用拉丁现代数学,用命令处理optex

答案3

从逻辑上讲,由于\mapsto\longmapsto可用,因此它们的反射也可用。

从排版角度来说,这可以通过低级 PDF 代码完成。方便的是,该graphics包已经完成了所有繁重的工作,将大量代码打包成一个省时易用的命令:\reflectbox{...}

因此,不需要特殊字体,因此:

巨人的肩膀

简单的任务可以或多或少直接地完成,但包装函数和随之而来的复杂性很快就会从代码中演变出来。

“巨人的肩膀”,诸如此类。

平均能量损失

\documentclass{article}
\usepackage{graphicx}
\begin{document}

uiop $\mapsto$ \reflectbox{uiop}

uiop \reflectbox{$\mapsto$} \reflectbox{uiop}

\bigskip
qwerty $\longmapsto$ \reflectbox{qwerty}

qwerty \reflectbox{$\longmapsto$} \reflectbox{qwerty}
\end{document}

附录

基于独立于发动机的解决方案在 Plain TeX/XeTeX 中缩放文本(\scalebox)使其变窄,一个简单的版本(pdftex,xetex,luatex)是:

平均能量损失

\input graphicx.tex

uiop $\mapsto$ \reflectbox{uiop}
\par uiop \reflectbox{$\mapsto$} \reflectbox{uiop}
\par\bigskip
qwerty $\longmapsto$ \reflectbox{qwerty}
\par qwerty \reflectbox{$\longmapsto$} \reflectbox{qwerty}

\bye

清楚的

链接的问题还提供了一个特定于驱动程序的版本(graphics.styplus dvipdfmx.def),手动编码\Gscale@start\Gscale@end(插入 PDF 文字),因此input不需要。


作为参考,这里是 的 pdftex 普通版本reflect,使用其\pdf...原语:

pdftex

平均能量损失

pdftex

\protected\def\rbox#1{%
  \setbox0\hbox{{#1}}%
  \setbox2\hbox{%
  \pdfsave%
  \pdfsetmatrix{-1 0 0 1}\rlap{\copy0}\pdfrestore}%
    \hbox to --1\wd0{\kern--1\wd0\box2\hss}%
}

\rbox{abc $\mapsto $ xyz}

Text text text, $abc\mathbin{\rbox{$\mapsto$}} xyz$, text text text.

\bye

Xetex/Luatex:

西特克斯

平均能量损失

xetex

\protected\def\rbox#1{%
  \setbox0\hbox{{#1}}%
  \setbox2\hbox{%
  \special{pdf:literal q}%
  \special{pdf:literal -1 0 0 1 0 0 cm}\rlap{\copy0}
\special{pdf:literal Q}}%
    \hbox to --1\wd0{\kern--1\wd0\box2\hss}%
}

\rbox{abc $\mapsto $ xyz}

Text text text, $abc\mathbin{\rbox{ $\mapsto$}}xyz$, text text text.
% note the space: >>\rbox{ $<<
\bye

相关内容