Циркумфлексы выглядят слишком маленькими и слишком близки к символу в PDF-файле, сгенерированном XeLaTeX из UTF-8
источника сАсана Матхшрифт для математики:
Источник:
\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.pdf
иencguide.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}