如何创建这些优秀的运算符?

如何创建这些优秀的运算符?

我正在尝试用 Haskell 排版一篇论文,并且我想排版这些运算符:

enter image description here

我说的是<*><$><$

  1. 我以前在有关 Haskell 的文章中见过这些。有它们的包吗?可能是 lhs2tex 样式文件?

  2. 我正在尝试手动重新创建它们。这是我尝试过的方法:

    • $<\mathclap{\$}>$(空间太大)

    • $<\!\!\mathclap{\$}\!\!>$(非常不规范,垂直间距错误)

我是否必须使用 TikZ 来实现这一点,或者有没有更好的方法来实现这一点?

答案1

我认为你的第二种“非常黑客”的方法一点也不坏。\!我没有使用固定宽度的负空间,而是\hspace使用了负大小参数。此外,我不得不使用来\scalebox缩小美元符号,因为它比角括号高。以下是代码:

\documentclass[border=10pt]{standalone}

\usepackage{mathtools}

\begin{document}

$<\hspace{-3.6pt}\mathclap{*}\hspace{-3.6pt}>$
$<\hspace{-3.6pt}\mathclap{\scalebox{.71}{\$}}\hspace{-3.6pt}>$
$<\hspace{-3.6pt}\mathclap{\scalebox{.71}{\$}}$

\end{document}

结果如下:

enter image description here

请注意,美元符号的字体与您使用的字体并不完全相同。此外,若要在文本中使用,您可能需要在其后<$添加水平空格(例如),以使所有内容看起来美观。\

答案2

鼓励为这些类型的事物定义宏:

enter image description here

\documentclass{article}
\usepackage[export]{adjustbox}

\newcommand{\dstar}{\mathbin{{\ooalign{${<}\mkern-3.5mu{>}$\cr\hidewidth\adjustbox{raise=-.4ex,scale=.75}{*}\hidewidth}}}}
\newcommand{\ddollar}{\mathbin{{\ooalign{${<}\mkern-2mu{>}$\cr\hidewidth\adjustbox{scale=.7}{\$}\hidewidth}}}}
\newcommand{\ddollarl}{\mathbin{{<}\mkern-4mu\adjustbox{scale=.7}{\$}}}
\newcommand{\ddollarr}{\mathbin{\adjustbox{scale=.7}{\$}\mkern-4mu{>}}}

\begin{document}

$f \dstar x$

$f \ddollar x$

$f \ddollarl x$

$f \ddollarr x$

\end{document}

请注意,上述宏对于内联\displaystyle\teststyle使用来说已经足够,但对于下标/上标(\scriptstyle及更小)来说则不够。

答案3

选择更好的名称。根据使用的字体,可能需要进行一些调整。

\documentclass{article}
\usepackage{amsmath}

\newcommand{\rstar}{
  \mathbin{
    <
    \mathrel{
      \mspace{-1.7mu}
      \vcenter{
        \hbox to 0pt{\hss$\scriptstyle*$\hss}
      }
      \mspace{-1.7mu}
    }
    >
  }
}
\newcommand{\rdollar}{
  \mathbin{
    <
    \mathrel{
      \mspace{-1mu}
      \vcenter{
        \hbox to 0pt{\hss$\scriptstyle\$$\hss}
        \kern0.005ex
      }
      \mspace{-1mu}
    }
    >
  }
}
\newcommand{\ldollar}{
  \mathbin{
    <
    \mathrel{
      \mspace{-1mu}
      \vcenter{
        \sbox0{$\scriptstyle\$$}
        \hbox to .5\wd0{\hss\box0}
        \kern0.005ex
      }
    }
  }
}
\newcommand{\gdollar}{
  \mathbin{
    \mathrel{
      \vcenter{
        \sbox0{$\scriptstyle\$$}
        \hbox to .5\wd0{\box0\hss}
        \kern0.005ex
      }
      \mspace{-1mu}%
    }
    >
  }
}

\begin{document}

$f\rstar x$

$f\rdollar x$

$f\ldollar x$

$f\gdollar x$

\end{document}

瞧,妈妈!没有百分之百!

enter image description here

相关内容