如何在较长的 \mid 上添加横线

如何在较长的 \mid 上添加横线

这就是我要的:

在此处输入图片描述

我知道如何制作更长的\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}

在此处输入图片描述

相关内容