![如何将两个符号叠加在一起?](https://linux22.com/image/238315/%E5%A6%82%E4%BD%95%E5%B0%86%E4%B8%A4%E4%B8%AA%E7%AC%A6%E5%8F%B7%E5%8F%A0%E5%8A%A0%E5%9C%A8%E4%B8%80%E8%B5%B7%EF%BC%9F.png)
我想叠加两个符号,例如,我想将\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}