使用 unicode-math 字符和 pdfLaTex 编译器

使用 unicode-math 字符和 pdfLaTex 编译器

我想使用包\squareulblack中的符号(或其他符号)unicode-math,但我必须继续使用 pdfLaTex 进行编译(因为该文档一直使用此编译器进行开发,现在让它与 XeLaTex 一起工作会很费劲)。

我怎样才能做到这一点?

答案1

该符号由 提供stix2,但您可能不想将字体更改为基于 Times 的 STIX2 字体。

我们stix2.sty发现

\stix@MathSymbol{\squareulblack}{\mathord}{arrows3}{"88}
\stix@MathSymbol{\squarelrblack}{\mathord}{arrows3}{"89}

所以我们知道我们需要找到数学符号字体​​的定义arrows3

\DeclareSymbolFont{arrows3}{LS2}{stix2tt}{m}{n}

所以我们需要声明LS2编码

\DeclareFontEncoding{LS2}{}{\noaccents@}
\DeclareFontSubstitution{LS2}{stix2}{m}{n}

声明\noaccents@与我们的目的无关。现在我们可以导入符号了。但是,第一次尝试并没有真正混合在一起\square

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}

\DeclareFontEncoding{LS2}{}{}
\DeclareFontSubstitution{LS2}{stix2}{m}{n}

\newcommand{\stixtwottsymbol}[1]{%
  \text{\usefont{LS2}{stix2tt}{m}{n}\symbol{#1}}%
}

\DeclareRobustCommand{\squareulblack}{%
  \mathord{% or \mathrel or \mathbin
    \stixtwottsymbol{"88}%
  }%
}
\DeclareRobustCommand{\squarelrblack}{%
  \mathord{% or \mathrel or \mathbin
    \stixtwottsymbol{"89}%
  }%
}

\begin{document}

\vrule depth 0.1pt height 0.1pt width 3pt $\squareulblack \square \squarelrblack$

\end{document}

在此处输入图片描述

符号变大了,而且不在基线上。让我们来修复这个问题。

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{graphicx}

\DeclareFontEncoding{LS2}{}{}
\DeclareFontSubstitution{LS2}{stix2}{m}{n}

\newcommand{\stixtwottsymbol}[1]{%
  \text{%
    \settoheight{\dimen0}{$\square$}%
    \resizebox{!}{\dimen0}{%
      \raisebox{\depth}{\usefont{LS2}{stix2tt}{m}{n}\symbol{#1}}%
    }%
  }%
}

\DeclareRobustCommand{\squareulblack}{%
  \mathord{% or \mathrel or \mathbin
    \stixtwottsymbol{"88}%
  }%
}
\DeclareRobustCommand{\squarelrblack}{%
  \mathord{% or \mathrel or \mathbin
    \stixtwottsymbol{"89}%
  }%
}

\begin{document}

\vrule depth 0.1pt height 0.1pt width 3pt $\squareulblack \square \squarelrblack$

$\scriptstyle \squareulblack \square \squarelrblack$

$\scriptscriptstyle \squareulblack \square \squarelrblack$

\end{document}

结果好多了,不是吗?

在此处输入图片描述

先前版本也能够很好地适应其他数学风格。

答案2

stix2包或多或少包含unicode-mathpdflatex 的完整名称集

\documentclass{article}
\usepackage{stix2}
\begin{document}

$\squareulblack$

\end{document}

在此处输入图片描述

相关内容