我怎样才能构建一个更好的 veebar?

我怎样才能构建一个更好的 veebar?

我非常喜欢这种符号的总体风格mathabx,但我对“V”和“Bar”之间缺少垂直空间感到有点反感\veebar(见下图左侧)。我如何才能构造一个相同风格的替代符号,使两者之间有一些分隔(见下图右侧)?

左图:mathabx 的标准 veebar;右图:建议的带分隔的 veebar

答案1

以下是其中之一:

\documentclass{article}
\usepackage{mathtools, amssymb}

\DeclareFontFamily{U}{matha}{\hyphenchar\font45}
\DeclareFontShape{U}{matha}{m}{n}{ <-6> matha5 <6-7> matha6 <7-8>
matha7 <8-9> matha8 <9-10> matha9 <10-12> matha10 <12-> matha12 }{}
\DeclareSymbolFont{matha}{U}{matha}{m}{n}
\DeclareMathSymbol{\myvee}{\mathbin}{matha}{"5F}
\newcommand{\myveebar}{\mathbin{\vcenter{\hbox{$ \underline{\mkern-2.4mu{\myvee}\mkern-2.4mu} $}}}}

\begin{document}

\[ K \myveebar A\]

\end{document} 

在此处输入图片描述

答案2

这是另一个(上标未缩放):

\documentclass[border=1pt]{standalone} 
\usepackage{stackengine,mathabx}

% \newcommand{\veebaralt}{\:\stackanchor[-.22em]{$\vee$}{$-$}\:}

\newcommand{\veebaralt}{\mathrel{\ensurestackMath{\renewcommand\stacktype{S}\stackanchor[-.22em]{\vee}{-}}}}

\begin{document} 

$123 \veebaralt 123$

$123 \veebar 123$

\end{document}

在此处输入图片描述

编辑:\:在旧命令之前和之后添加;添加史蒂文·B·塞格莱特斯' 有帮助的答案。

答案3

我自己刚刚盲目地想出了一个可能的解决方案,所有的功劳都归于egreg 的回答不等号下的虚线下划线,改编自:

\documentclass{article}
\usepackage{pict2e,picture}
\usepackage{mathabx}

\makeatletter
\newcommand{\barredeq}[1]{\mathrel{\vphantom{\veebar}\mathpalette\barred@eq{#1}}}
\newcommand{\barred@eq}[2]{%
  \vcenter{%
    \offinterlineskip
    \roundcap
    \linethickness{0.6\dimexpr\variable@rule{#1}\relax}%
    \sbox\z@{$\m@th#1#2$}%
    \setlength{\unitlength}{\dimexpr(\wd\z@-2\dimexpr\barred@eq@kern{#1})/10}%
    \sbox\tw@{\begin{picture}(1,0)\Line(0,0)(10,0)\end{picture}}%
    \ialign{%
      ##\cr
      \copy\z@\cr
      \noalign{\vskip 0.25\ht\z@}
      \kern\barred@eq@kern{#1}%
      \copy\tw@
      \kern\barred@eq@kern{#1}%
      \cr
    }%
  }%
}
\newcommand{\barred@eq@kern}[1]{%
  \ifx#1\displaystyle 0.12\wd\z@\else
    \ifx#1\textstyle 0.12\wd\z@\else
      \ifx#1\scriptstyle 0.18\wd\z@\else
        \ifx#1\scriptscriptstyle 0.22\wd\z@\else
          0.16\wd\z@
  \fi\fi\fi\fi
}
\newcommand{\variable@rule}[1]{%
  \fontdimen8  
  \ifx#1\displaystyle\textfont3\else
    \ifx#1\textstyle\textfont3\else
      \ifx#1\scriptstyle\scriptfont3\else
        \scriptscriptfont3\relax
  \fi\fi\fi
}
\makeatother

\DeclareRobustCommand{\nveebar}{\barredeq{\vee}}

\begin{document}

$A\vee A \veebar A\nveebar A$

$\scriptstyle A\vee A \veebar A \nveebar A$

$\scriptscriptstyle A \vee A \veebar A \nveebar A$

\end{document}

\vee、\veebar 和新创建的 \nveebar 的演示

相关内容