如何在 XeTeX 中使抑揚符變寬但仍具有固定大小?

如何在 XeTeX 中使抑揚符變寬但仍具有固定大小?

Circumflexes 看起來太小,而且它們與 XeLaTeX 產生的 PDF 中的符號太接近UTF-8Circumflexes 看起來太小,它們與體式數學數學字體:

在此輸入影像描述

來源:

\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}

在此輸入影像描述

相關內容