不存在于 arev 中?

不存在于 arev 中?

我想使用 arev 字体进行数学运算。我注意到符号\nexists无法正确显示。我可以使用这种字体,同时访问软件包中可能缺少的任何特殊符号吗?

答案1

这是 中的一个错误arev。包在某个时候会加载ams-mdbch.sty,我们发现,在第 160 行

\DeclareMathSymbol{\nexists}        {\mathord}{mathdesignA}{"40}

然而,符号字体没有在该位置有一个“不存在”符号,但有一个圆圈。加载的符号字体应该是镜像AMSbamssymb,但它肯定与它不同。

也可以看看https://tex.stackexchange.com/a/362735/4427以便修复更多符号。

无论如何,借用\nexists不是一个选择:这是在fromamssymb旁边带有借用符号的输出:\existsarev

在此处输入图片描述

一种解决方案可能是用斜线和 构造符号\exists,但仅仅将它们叠加是行不通的。所以我的策略是

  1. 将斜线垂直放大 10%;
  2. 将斜线水平缩小20%;
  3. 将缩放的斜线提升至相对于 垂直居中\exists
\documentclass{article} % or some other suitable document class

\usepackage{arev}
\usepackage{graphicx} % for '\scalebox' macro

\let\nexists\relax % undefine the existing macro

\makeatletter 
\DeclareRobustCommand{\nexists}{\mathord{\mathpalette\nexists@\relax}}

\newcommand{\nexists@}[2]{%
  \vphantom{\nexists@slash{#1}}% for the bounding box
  \ooalign{\hidewidth\nexists@slash{#1}\hidewidth\cr$\m@th#1\exists$\cr}%
}
\newcommand{\nexists@slash}[1]{\raisebox{0.02\height}{\scalebox{0.8}[1.1]{$#1/$}}}
\makeatletter

\begin{document}

$\exists\nexists$

$\scriptstyle\exists\nexists$

$\scriptscriptstyle\exists\nexists$

\medskip

{\Large$\nexists$}

\end{document}

在此处输入图片描述

答案2

(修改答案以使其\nexists适用于所有数学风格)

下面定义的宏\nexists可以在所有 TeX 的“数学样式”中使用—— \displaystyle、、和。\textstyle\scriptstyle\scriptscriptstyle

在此处输入图片描述

\documentclass{article} % or some other suitable document class

\usepackage{arev}
\let\nexists\relax % undefine the existing macro

% See https://tex.stackexchange.com/a/683452/5001 
% for the inspiration for the following code.
\usepackage{graphicx} % for '\scalebox' macro
\makeatletter 
\DeclareRobustCommand{\nexists}{%
   \mathchoice{\@nexists{\f@size}}{\@nexists{\f@size}}
              {\@nexists{\sf@size}}{\@nexists{\ssf@size}}%
}
\DeclareRobustCommand{\@nexists}[1]{%
   \scalebox{\fpeval{(#1)/(\f@size)}}{\@@nexists}}
\DeclareRobustCommand{\@@nexists}{%
   \ooalign{\kern1.15pt\raise0.5pt\hbox{/}\cr$\exists$}}
\makeatletter

\begin{document}
$\exists$ $\nexists$
\end{document}

答案3

@user94293 的回复确定了问题所在。我猜,正确的答案是手动定义 arev 中缺失的符号,包括nexists使用 @egreg 或 @Mico 的答案。我最终只是将字体更改为 newtxsf,据我所知,它没有缺失符号,而且看起来还不错。

相关内容