如何将两个符号叠加在一起?

如何将两个符号叠加在一起?

我想叠加两个符号,例如,我想将\vee\wedge><符号叠加在一起(而不是像 那样一个在另一个上面stackrel),并Q在其上画一条水平删除线。我使用的是 LyX 2.0。

答案1

\rlap\llap可用于打印无宽度的符号。类似地,mathtools package提供命令\mathrlap\mathclap\mathllap。这些命令提供了一种快速重叠符号的方法。

例如,重叠\vee\wedge并且 Q 就像您的问题中所期望的那样:

\documentclass{article}
\usepackage{mathtools}
\begin{document}
$\mathrlap{\vee}\wedge$
\rlap{Q}---
\end{document}

产生\rlap一个零宽度框,其中内容突出到右侧,\llap执行相同的操作但突出到左侧,\mathclap以当前位置为中心。

在此处输入图片描述

答案2

您可以定义通用\superimpose宏,然后将其用于各种目的。还可以为构建的符号添加所需的数学原子类。

但请注意,这\superimpose只有在的上下文中才有意义\mathpalette

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\newcommand{\superimpose}[2]{{%
  \ooalign{%
    \hfil$\m@th#1\@firstoftwo#2$\hfil\cr
    \hfil$\m@th#1\@secondoftwo#2$\hfil\cr
  }%
}}
\makeatother

\newcommand{\veewedge}{\mathbin{\mathpalette\superimpose{{\vee}{\wedge}}}}
\newcommand{\lessgreater}{\mathrel{\mathpalette\superimpose{{<}{>}}}}
\newcommand{\strikeQ}{\mathpalette\superimpose{{\textnormal{---}}{Q}}}

\newcommand{\dotineq}{\mathrel{\mathpalette\superimpose{{=}{\cdot}}}}

\begin{document}

$\veewedge_{\veewedge}\lessgreater_{\lessgreater}\strikeQ_{\strikeQ}$

$A\dotineq B$ $\scriptstyle A\dotineq B$

\end{document}

在此处输入图片描述

使用不同的、也许更直观的语法:

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\newcommand{\superimpose}[3][\mathord]{#1{\mathpalette\superimpose@{{#2}{#3}}}}
\newcommand{\superimpose@}[2]{\superimpose@@{#1}#2}
\newcommand{\superimpose@@}[3]{%
  \ooalign{%
    \hfil$\m@th#1#2$\hfil\cr
    \hfil$\m@th#1#3$\hfil\cr
  }%
}
\makeatother

\newcommand{\veewedge}{\superimpose[\mathbin]{\vee}{\wedge}}
\newcommand{\lessgreater}{\superimpose[\mathrel]{<}{>}}
\newcommand{\strikeQ}{\superimpose{\textnormal{---}}{Q}}

\newcommand{\dotineq}{\superimpose[\mathrel]{=}{\cdot}}

\begin{document}

$\veewedge_{\veewedge}\lessgreater_{\lessgreater}\strikeQ_{\strikeQ}$

$A\dotineq B$ $\scriptstyle A\dotineq B$

\end{document}

相关内容