这就是我要的:
我知道如何制作更长的\mid
,但我不知道如何在其上添加横线。这是我的更长的代码\mid
:
\documentclass{article}
\usepackage{amsmath}
\usepackage[frak=pxtx]{mathalfa}
\makeatletter
\def\localbig#1#2{%
\sbox\z@{$\m@th#1
\sbox\tw@{$#1()$}%
\dimen@=\ht\tw@\advance\dimen@\dp\tw@
\nulldelimiterspace\z@\left#2\vcenter to1.2\dimen@{}\right.
$}\box\z@}
\newcommand{\divides}{\mathrel{\mathpalette\dividesaux\relax}}
\newcommand{\ndivides}{\mathrel{\mathpalette\ndividesaux\relax}}
\newcommand{\dividesaux}[2]{\mbox{$\m@th#1\localbig{#1}|$}}
\newcommand{\ndividesaux}[2]{%
\mkern.5mu
\ooalign{%
\hidewidth$\m@th#1\localbig{#1}|$\hidewidth\cr
$\m@th#1\nmid$\cr% }%}
\begin{document}
$p^{n_i}\divides|\mathfrak{G}_{i+1}/\mathfrak{G}_i|$
\end{document}
答案1
这\top
与相叠加\mid
;前者升高,而后者降低。
它改变下标/上标的大小。
更新已添加否定关系
\documentclass{article}
\usepackage{amsmath,amssymb}
\makeatletter
\newcommand{\topmid}{\mathrel{\mathpalette\topmid@\relax}}
\newcommand{\ntopmid}{\mathrel{\mathpalette\topmid@\nmid}}
\newcommand{\topmid@}[2]{%
\begingroup
\sbox\z@{$\m@th#1\mspace{1.5mu}\nonscript\mspace{1.5mu}$}%
\ooalign{%
\hfil\raisebox{\wd\z@}{$\m@th#1\top$}\hfil\cr
\ifx#2\relax\else\hfil$\m@th#1#2$\hfil\cr\fi
\hfil\raisebox{-0.3\wd\z@}{$\m@th#1|$}\hfil\cr
}%
\endgroup
}
\makeatother
\begin{document}
$p^{n_i}\topmid |\mathfrak{G}_{i+1}/\mathfrak{G}_{i}|$
$\scriptstyle a\topmid b\mid c$
$p^{n_i}\ntopmid |\mathfrak{G}_{i+1}/\mathfrak{G}_{i}|$
$\scriptstyle a\ntopmid b\mid c$
\end{document}