在 XeTeX 中,如何使抑扬符号更宽但仍保持固定大小?

在 XeTeX 中,如何使抑扬符号更宽但仍保持固定大小?

UTF-8抑扬符号看起来太小,而且它们与XeLaTeX 从源代码生成的 PDF 中的符号太接近了体位数学数学字体:

在此处输入图片描述

来源:

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage{fontspec}
\usepackage[math-style=ISO,bold-style=ISO,nabla=upright,partial=upright,vargreek-shape=unicode]{unicode-math}
\setmathfont{[Asana-Math]}

\newcommand*{\op}[1]{\hat{\mathup{#1}}}

\begin{document}

\begin{equation}
    \op{H} = \op{T} + \op{V} 
\end{equation}

\end{document}

我想让脱字符变宽,以便与下面的符号更清晰地区分开,但这\widehat不是一个选择,因为它会产生可变大小的脱字符。解决方案我如何手动选择宽重音的大小?(数学模式)对我来说不起作用。似乎accents包装和UTF-8编码。

我非常喜欢 Asana Math,所以我不想更改字体。

答案1

也许值得尝试通过xparse包引入两个命令:

\DeclareDocumentCommand{\operator}{ s m }{
    \IfBooleanTF{#1}{
                    \widehat{#2}
            }{
                    \hat{#2}}
            }
    }

然后\operator{H}给出“正常”输出并\operator*{H}拉长抑扬符。

或许你还想看看以下帖子:非常宽的帽子符号包的使用位置scalerel。您可能会想到定义一个包含两个输入的命令,第一个输入给出帽子的宽度,第二个输入给出角色

编辑:

我认为在看完之后我现在有一个解决方案source2e.pdfencguide.pdf

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{fontspec}
\usepackage[math-style=ISO,bold-style=ISO,nabla=upright,partial=upright,vargreek-shape=unicode]{unicode-math}
\setmathfont{[Asana-Math]}
\DeclareSymbolFont{mylargesymbols}{OMX}{cmex}{m}{n}
\DeclareMathAccent{\mywidehat}{\mathord}{mylargesymbols}{"62}
\begin{document}
$\hat{\mathrm{H}} = \hat{\mathrm{T}} + \hat{\mathrm{V}} +\hat{abcdefgh}$

$ \widehat{\mathrm{H}} = \widehat{\mathrm{T}} + \widehat{\mathrm{V}} +\widehat{abcdefgh}$

$ \mywidehat{\mathrm{H}} = \mywidehat{\mathrm{T}} + \mywidehat{\mathrm{V}} +\mywidehat{abcdefgh}$
\end{document}

将产生以下结果

在此处输入图片描述

帽子仍然会扩大,但不会像以前那么明显。

答案2

[注意:编辑 1 以获得更好的垂直定位;编辑 2 以获得“帽子”而不是“楔形”] 我无法访问您的特定字体,因此我针对默认 LaTeX 字体解决了该问题。您必须重新参数化我的解决方案。它涉及使用scalerel用于拉伸\hat符号的包 ( \char'136)。我展示了未修改的结果,然后展示了一组拉伸参数的结果。校准字体的三个参数后,将这些值锁定到定义中。 \Ht定义垂直拉伸;\Wd定义水平拉伸;并\Dp定义字母和帽子之间的垂直分离乘数。

\documentclass{article}
\usepackage{amsmath}
\usepackage{scalerel}
\usepackage{adjustbox}

\newlength\svarraycolsep
\newcommand\althat[1]{%
\renewcommand\arraystretch{\Dp}%
\setlength\svarraycolsep{\arraycolsep}%
\setlength\arraycolsep{0in}%
\begin{array}{c}%
  \vstretch{\Ht}{%
    \hstretch{\Wd}{%
      \trimbox{.15ex .75ex .15ex .2ex}{\scalerel*{\char'136}{\rule{1ex}{1ex}}}%
    }%
  }\\%
  #1\\%
\rule{1ex}{0ex}\\%
\end{array}%
\renewcommand\arraystretch{1.0}%
\setlength\arraycolsep{\svarraycolsep}%
}

\parindent 0in
\begin{document}

Hat:

\( \hat{\mathrm{H}} = \hat{\mathrm{T}} + \hat{\mathrm{V}} \)

Carat(char'136):


\def\Ht{1.8}
\def\Wd{4.5}
\def\Dp{.3}
\( \althat {\mathrm{H}} = \althat {\mathrm{T}} + \althat {\mathrm{V}} \)

\end{document}

在此处输入图片描述

相关内容