在水平线末端添加符号

在水平线末端添加符号

我正在寻找符号的变体\relbar,或者任何其他与标准长度箭头一样长的水平线。

特别是,我希望能够添加箭头,如\leftarrow,,\rightarrow\leftrightarrow

我还希望能够添加垂直条,就像\leftfootlineMnSymbol包中添加一样。

以上所有符号都有,但问题在于能否以任意组合添加它们。例如,右侧带有垂直条的右箭头。这总共产生 16 个可能的符号。

有人有想法吗?

答案1

可以使用 TikZ;这是一个原型,具有可能方便的语法,其中的参数\erelbar由两个数字(0、1、2 或 3)组成:

  • 0 代表无箭头
  • 1 代表普通箭头
  • 2 代表一栏
  • 3 代表条形和箭头

第一位数字代表左侧,第二位数字代表右侧。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows}

\makeatletter
\newcommand\@erelb@r[1]{%
  \mathrel{\tikz[baseline=-.5ex]\draw[#1] (0,0)--(0.3,0);}
}
% 0 is for nothing
% 1 is for arrowhead
% 2 is for bar
% 3 is for both
\newcommand{\erelbar}[1]{\@erelbar#1}
\def\@erelbar#1#2{%
  \ifcase\numexpr#1*4+#2\relax
    \@erelb@r{-}\or     % 00
    \@erelb@r{->}\or    % 01
    \@erelb@r{-|}\or    % 02
    \@erelb@r{->|}\or   % 03
    \@erelb@r{<-}\or    % 10
    \@erelb@r{<->}\or   % 11
    \@erelb@r{<-|}\or   % 12
    \@erelb@r{<->}\or   % 13
    \@erelb@r{|-}\or    % 20
    \@erelb@r{|->}\or   % 21
    \@erelb@r{|-|}\or   % 22
    \@erelb@r{|<->|}\or % 23
    \@erelb@r{|<-}\or   % 30
    \@erelb@r{|<->}\or  % 31
    \@erelb@r{|<-|}\or  % 32
    \@erelb@r{|<->|}    % 33
  \else
    \@wrong
  \fi
}
\makeatother
\begin{document}

$a\erelbar{11}b$

$\begin{array}{cccc}
\erelbar{00} & \erelbar{10} & \erelbar{20} & \erelbar{30} \\
\erelbar{01} & \erelbar{11} & \erelbar{21} & \erelbar{31} \\
\erelbar{02} & \erelbar{12} & \erelbar{22} & \erelbar{32} \\
\erelbar{03} & \erelbar{13} & \erelbar{23} & \erelbar{33} \\
\end{array}$
\end{document}

在此处输入图片描述

答案2

我不是使用方面的专家TikZ(我猜想它提供了更多用于创建新符号的工具),因此我向您展示了我自己的\mapsto命令作为如何组合现有LaTeX符号的示例。首先是 MWE:

\documentclass{minimal}

\usepackage{graphicx}

\newcommand\mymapsto{\mathrel{\ooalign{$\rightarrow$\cr%
  \kern-.15ex\raise.275ex\hbox{\scalebox{1}[0.522]{$\mid$}}\cr}}}

\begin{document}
    $\mymapsto$
\end{document}  

以及由此产生的符号:

结果

显然,垂直条比原来的要长,\mapsto但从你所说的情况来看,我假设你希望垂直条与箭头共享高度。

现在再看一下 MWE,在命令的定义中,\mymapsto我叠加了一个\rightarrow\mid使用\ooalign参见答案是速成课程。显然,确定和\ooalign的正确尺寸需要做大量工作,但是,使用我的代码作为基础,您应该能够自己构建剩余的 15 个符号 [别忘了,它会很有用!]。我想强调的是,您应该在构建符号时使用单位或,因为这样做时,符号对于不同的字体大小仍然正确(或者我被告知如此)。 \kern\raise\rotateboxemex

与使用这种解决方案相比,TikZ它可能耗费的时间更少,但我想你不会在这个过程中学到新的东西......

相关内容