如何输入双边交点

如何输入双边交点

我想要一个双正方形交叉口符号在我的 Overleaf 文档中而无需更改主字体(我使用的是 AMS 包和标准 Latin Modern)。

虽然超链接中给出的答案表明\usepackage{mathabx}(产生了所需的结果),但它让我改变了整个字体类。我如何从这个包中提取符号并确保它与其他符号(例如\cap, \cup等)的大小相同?

谢谢!

答案1

以下是 的程序mathabx

  1. 请参阅手册中的mathabx符号名称:它是\sqdoublecap

  2. 查找mathabx.dcl命令以查找

    \DeclareMathSymbol{\sqdoublecap} {2}{mathb}{"5E}

  3. 查找mathabx.sty符号mathb字体

    \DeclareFontFamily{U}{mathb}{\hyphenchar\font45}
    \DeclareFontShape{U}{mathb}{m}{n}{
          <5> <6> <7> <8> <9> <10> gen * mathb
          <10.95> mathb10 <12> <14.4> <17.28> <20.74> <24.88> mathb12
          }{}
    \DeclareSymbolFont{mathb}{U}{mathb}{m}{n}
    \DeclareFontSubstitution{U}{mathb}{m}{n}
    

我们拥有所有的原料。

添加到文档序言中

\DeclareFontFamily{U}{mathb}{}
\DeclareFontShape{U}{mathb}{m}{n}{
  <-5.5> mathb5
  <5.5-6.5> mathb6
  <6.5-7.5> mathb7
  <7.5-8.5> mathb8
  <8.5-9.5> mathb9
  <9.5-11> mathb10
  <11-> mathb12
}{}
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}
\DeclareFontSubstitution{U}{mathb}{m}{n}

\DeclareMathSymbol{\sqdoublecap}{2}{mathb}{"5E}
\DeclareMathSymbol{\sqdoublecup}{2}{mathb}{"5F}

为何会有这些改变?

  • \hyphenchar\font对于符号字体来说没有意义;
  • 字体采用 Type1 格式,因此我们可以将其定义为任意大小,而不仅仅是传统的固定大小。

我还添加了\sqdoublecup对称性。

完整示例。

\documentclass{article}
\usepackage{amsmath}

% import from mathabx
\DeclareFontFamily{U}{mathb}{}
\DeclareFontShape{U}{mathb}{m}{n}{
  <-5.5> mathb5
  <5.5-6.5> mathb6
  <6.5-7.5> mathb7
  <7.5-8.5> mathb8
  <8.5-9.5> mathb9
  <9.5-11> mathb10
  <11-> mathb12
}{}
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}
\DeclareFontSubstitution{U}{mathb}{m}{n}

\DeclareMathSymbol{\sqdoublecap}{2}{mathb}{"5E}
\DeclareMathSymbol{\sqdoublecup}{2}{mathb}{"5F}
% end import

\begin{document}

$A\sqcap B\sqdoublecap C$

$A\sqcup B\sqdoublecup C$

\end{document}

在此处输入图片描述

噢,那么,它的尺寸和 不一样\sqcap,是吗?

好的,让我们测量符号:添加

\sbox0{$\sqcap$}\the\ht0

\sbox0{$\sqdoublecap$}\the\ht0

前者为 5.55557pt,后者为 6.83167pt。如果我们除以它,我们得到的结果约为 0.8132。因此我们可以应用这个放大倍数,改变

<-5.5> mathb5

进入

<-5.5> s*[0.8132] mathb5

其余线条也类似。我们现在得到

在此处输入图片描述

该死!太小了!显然是边界框的问题。现在我们必须用眼睛来判断。让我们试试0.87

\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}% just for the final comparison

% import from mathabx
\DeclareFontFamily{U}{mathb}{}
\DeclareFontShape{U}{mathb}{m}{n}{
  <-5.5> s*[0.87] mathb5
  <5.5-6.5> s*[0.87] mathb6
  <6.5-7.5> s*[0.87] mathb7
  <7.5-8.5> s*[0.87] mathb8
  <8.5-9.5> s*[0.87] mathb9
  <9.5-11> s*[0.87] mathb10
  <11-> s*[0.87] mathb12
}{}
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}
\DeclareFontSubstitution{U}{mathb}{m}{n}

\DeclareMathSymbol{\sqdoublecap}{2}{mathb}{"5E}
\DeclareMathSymbol{\sqdoublecup}{2}{mathb}{"5F}
% end import

\begin{document}

$A\sqcap B\sqdoublecap C$

$A\sqcup B\sqdoublecup C$

{\ooalign{\color{red}$\sqcap$\cr$\sqdoublecap$\cr}}

\end{document}

最后一行叠加了两个符号,其中一个是红色的。

在此处输入图片描述

不是确切地高度和宽度相同,但差异可以忽略不计。

重要的

如果你缺少符号字体(只有 16 个可用的系列,pdftex其中一些已经被占用),你可以删除\DeclareSymbolFont\DeclareMathSymbol行,用

\DeclareRobustCommand{\sqdoublecap}{\mathbin{\text{\usefont{U}{mathb}{m}{n}\symbol{"5E}}}}
\DeclareRobustCommand{\sqdoublecup}{\mathbin{\text{\usefont{U}{mathb}{m}{n}\symbol{"5F}}}}

不会因为几个符号而浪费符号字体。

相关内容