正如标题所述,我正在寻找一个能\nmid
提供更长、更明显的斜线的版本。原因是我使用 OneNote 将结果投影到屏幕上,这会使生成的 .pdf 有点模糊,而且标准中的小斜线\nmid
对我的学生来说很难阅读。
我一直在寻找解决方案,并且尝试了一些方法:
\not\mid
:结果与\nmid
\centernot\mid
(使用centernot
包):完美,除了我还想用它unicode-math
来加载 Libertinus Math 字体,而这看起来\centernot
很奇怪。
\notdivides
来自mathabx
包:很好,但是将包添加到我的序言中会引发很多“已定义”错误,我猜这意味着它与我正在加载的其他包发生冲突。我想我可以解决\let\relax
这些问题,但如果可以的话,我想要一个更干净、更现代的解决方案。
答案1
基本成分:
我们
mathabx.dcl
发现\DeclareMathSymbol{\notdivides}{3}{matha}{"1F}
我们
mathabx.sty
发现\DeclareFontFamily{U}{matha}{\hyphenchar\font45} \DeclareFontShape{U}{matha}{m}{n}{ <5> <6> <7> <8> <9> <10> gen * matha <10.95> matha10 <12> <14.4> <17.28> <20.74> <24.88> matha12 }{} \DeclareSymbolFont{matha}{U}{matha}{m}{n} \DeclareFontSubstitution{U}{matha}{m}{n}
如今,字体形状声明可以更好,但更改很容易。
但是,您还需要导入\divides
,如以下示例所示。
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
%%% import \notdivides
\DeclareFontFamily{U}{matha}{}
\DeclareFontShape{U}{matha}{m}{n}{
<-5.5> matha5
<5.5-6.5> matha6
<6.5-7.5> matha7
<7.5-8.5> matha8
<8.5-9.5> matha9
<9.5-11> matha10
<11-> matha12
}{}
\DeclareSymbolFont{matha}{U}{matha}{m}{n}
\DeclareFontSubstitution{U}{matha}{m}{n}
\DeclareMathSymbol{\divides}{3}{matha}{"17}
\DeclareMathSymbol{\notdivides}{3}{matha}{"1F}
\begin{document}
$a\mid b \nmid c$ (CM and amssymb)
$a\mid b \notdivides c$ (CM and mathabx)
$a\divides b \notdivides c$ (both mathabx)
\end{document}
我不确定它是否真的能解决投影仪模糊的问题。
答案2
您可以通过叠加旋转的 来制作一个新-
符号\mid
。
\documentclass{article}
\usepackage{graphicx, amssymb}
\makeatletter
\newcommand{\Nmid}{\mathrel{\mathpalette\N@mid\relax}}
\newcommand{\N@mid}[2]{%
\ooalign{%
\negthickspace\rotatebox{42}{$\m@th#1-$}\negthickspace\cr
\hfil$\m@th#1\mid$\hfil\cr
}%
}
\makeatother
\begin{document}
$a\Nmid b\nmid c$
\end{document}