MATHASTEXT 中的重音未对齐

MATHASTEXT 中的重音未对齐

我正在尝试这个包采用自由字体的 MATHASTEXT。使用“斜体”选项。

输出看起来不错,但有一个例外:重音符号——我使用 \tilde 和 \bar——水平方向未对齐(太靠左)。

以下是 MWE:

\documentclass[10pt, a4paper]{amsart}
\usepackage{libertine}
\usepackage[italic]{mathastext}
\begin{document}
The trouble is with $\backslash$\verb|tilde| and $\backslash$\verb|bar|. The 
position is not centered correctly above the letters:
\[ \tilde{A} \tilde{B} \bar{A} \bar{B} \]
\end{document}

谢谢你的帮助,

阿姆嫩

答案1

警告(2018 年 11 月)

请注意,这个答案有点无意义,因为它使用 mathastext 机制来添加额外的间距(例如,可以很好地解决字母与字母f碰撞的(问题),这里必然是负间距,只能修复重音的位置,但显然这会破坏二元运算符等的定位。

正如@Skillmon 所说回答更加严肃地处理这个问题,请不要关注这个问题。


使用版本1.3a of 2013/09/04或更高版本数学文本, 你可以这样做:

\documentclass[12pt, a4paper]{amsart}
\usepackage{libertine}
\usepackage[italic]{mathastext}
\begin{document}
The trouble is with $\backslash$\verb|tilde| and $\backslash$\verb|bar|. The 
position is not centered correctly above the letters:
\[ \tilde{A} \tilde{B} \bar{A} \bar{B} \]

Try the following:

\makeatletter
\@for\@tempa:=A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z\do{%
\MTsetmathskips{\@tempa}{-2mu}{2mu}}%
\makeatother


\[ \tilde{A} \tilde{B} \bar{A} \bar{B} \]


\[ \tilde{A}_{ij}^C + \bar{U}\bar{V}\cdot\tilde{B}^{\bar{A}*\bar{B} }\]

\[ \sum_{i=0}^\infty \tilde{A}_i^2\bar{C}^3\]

Read the \texttt{mathastext} documentation for more about
\texttt{\textbackslash MTsetmathskips}.

\end{document}

mathastext 的输出

答案2

我最初为我撰写学士论文的主席创建的模板编写了一个包。该包通过重新定义 来加载和amsmath工作,它在宏、、、、、、、和中\mathaccentV内部使用。amsmath\hat\check\tilde\acute\grave\dot\ddot\breve\bar\vec\mathring

它有两种模式,您可以在加载时选择。第一种模式根据所用框的高度移动重音。第二种模式有一个参数列表,其中定义了移位宽度。第一种模式快速而粗糙,结果总是对所有情况都进行最佳拟合,而第二种模式需要更多工作(您必须为每次使用的字符定义一次移位)。对于列表方法,有一个字体组合的定义列表\usepackage{helvet}\renewcommand\familydefault{\sfdefault}\usepackage[italic,defaultmathsizes]{mathastext}

两个版本都有强制或阻止置换的方法。如果您正在使用,height您可以在后面使用 a 来强制执行,*例如\hat, a!确实会阻止它。height只有当参数是类别代码为 11 的单个标记时,才会自动应用置换。

如果您使用list选项,则可以在可选参数中指定 mu 中使用的位移(例如\hat[4mu]{a}),或者可以在可选参数中使用已知参数(因此使用BforA的定义移位\hat[B]{A})。

不幸的是,该软件包未发布到 CTAN,因此不包含在任何 TeX 发行版中。您可以在这里找到它:https://gitlass.de/jonathan/MRTbundle/src/branch/master/MRTsfacc(你还需要磁共振成像MRT实用程序)。

文档包含在第 8 章的以下 PDF 中(该包中包含的每个类和包都有一个 PDF 文档):https://gitlass.de/jonathan/MRTbundle/src/branch/master/Doc/doc_MRTbundle.pdf

使用该模式的使用示例height

\documentclass[10pt, a4paper]{amsart}
\usepackage{libertine}
\usepackage[italic]{mathastext}
% move based on height, the horizontal displacement is <share>*<height>, <share> defaults to 0.25
\usepackage[height]{MRTsfacc}
\begin{document}
The trouble is with $\backslash$\verb|tilde| and $\backslash$\verb|bar|. The 
position is not centered correctly above the letters:
\[ \tilde{A} \tilde{B} \bar{A} \bar{B} \]

Every character in a-zA-Z with {\textbackslash\verb|hat|}:

\parbox{.4\linewidth}
  {%
    $\hat{a}$$\hat{A}$
    $\hat{b}$$\hat{B}$
    $\hat{c}$$\hat{C}$
    $\hat{d}$$\hat{D}$
    $\hat{e}$$\hat{E}$
    $\hat{f}$$\hat{F}$
    $\hat{g}$$\hat{G}$
    $\hat{h}$$\hat{H}$
    $\hat{i}$$\hat{I}$
    $\hat{j}$$\hat{J}$
    $\hat{k}$$\hat{K}$
    $\hat{l}$$\hat{L}$
    $\hat{m}$$\hat{M}$
    $\hat{n}$$\hat{N}$
    $\hat{o}$$\hat{O}$
    $\hat{p}$$\hat{P}$
    $\hat{q}$$\hat{Q}$
    $\hat{r}$$\hat{R}$
    $\hat{s}$$\hat{S}$
    $\hat{t}$$\hat{T}$
    $\hat{u}$$\hat{U}$
    $\hat{v}$$\hat{V}$
    $\hat{w}$$\hat{W}$
    $\hat{x}$$\hat{X}$
    $\hat{y}$$\hat{Y}$
    $\hat{z}$$\hat{Z}$
  }
\end{document}

在此处输入图片描述

使用该模式的使用示例list

\documentclass[10pt, a4paper]{amsart}
\usepackage{libertine}
\usepackage[italic]{mathastext}
\usepackage[list]{MRTsfacc}
% I'm lazy so I only define shifts for `A` and `B`
\MRTsfaccShift{A}{4mu}
\MRTsfaccShift{B}{2.5mu}
\begin{document}
The trouble is with $\backslash$\verb|tilde| and $\backslash$\verb|bar|. The 
position is not centered correctly above the letters:
\[ \tilde{A} \tilde{B} \bar{A} \bar{B} \]

Every character in a-zA-Z with {\textbackslash\verb|hat|}:

\parbox{.4\linewidth}
  {%
    $\hat{a}$$\hat{A}$
    $\hat{b}$$\hat{B}$
    $\hat{c}$$\hat{C}$
    $\hat{d}$$\hat{D}$
    $\hat{e}$$\hat{E}$
    $\hat{f}$$\hat{F}$
    $\hat{g}$$\hat{G}$
    $\hat{h}$$\hat{H}$
    $\hat{i}$$\hat{I}$
    $\hat{j}$$\hat{J}$
    $\hat{k}$$\hat{K}$
    $\hat{l}$$\hat{L}$
    $\hat{m}$$\hat{M}$
    $\hat{n}$$\hat{N}$
    $\hat{o}$$\hat{O}$
    $\hat{p}$$\hat{P}$
    $\hat{q}$$\hat{Q}$
    $\hat{r}$$\hat{R}$
    $\hat{s}$$\hat{S}$
    $\hat{t}$$\hat{T}$
    $\hat{u}$$\hat{U}$
    $\hat{v}$$\hat{V}$
    $\hat{w}$$\hat{W}$
    $\hat{x}$$\hat{X}$
    $\hat{y}$$\hat{Y}$
    $\hat{z}$$\hat{Z}$
  }
\end{document}

在此处输入图片描述

答案3

这里。我使用堆栈定义了\bar和的替代版本\tilde,它们适用于各种数学风格。在 MWE 中,我在每对的左侧显示原始版本,在每对的右侧显示替代版本。

\documentclass[10pt, a4paper]{amsart}
\usepackage{libertine}
\usepackage[italic]{mathastext}
\usepackage{stackengine,scalerel}
\stackMath
\newcommand\alttilde[1]{\ThisStyle{\setbox0=\hbox{$\SavedStyle#1$}%
  \stackon[\dimexpr-.5pt-4\LMpt]{\SavedStyle#1}{%
  \SavedStyle\kern.30\ht0\tilde{}}}}
\newcommand\altbar[1]{\ThisStyle{\setbox0=\hbox{$\SavedStyle#1$}%
  \stackon[\dimexpr-1.0pt-3.3\LMpt]{\SavedStyle#1}{%
  \SavedStyle\kern.30\ht0\bar{}}}}
\begin{document}
\def\tmp{\tilde{A} \alttilde{A} \quad
 \tilde{B} \alttilde{B}\quad
 \tilde{c} \alttilde{c}\quad
 \bar{A} \altbar{A}\quad
 \bar{B} \altbar{B}\quad
  \bar{c} \altbar{c}}
\[ \tmp \]
\[ \scriptstyle \tmp \]
\[ \scriptscriptstyle \tmp \]
\end{document}

在此处输入图片描述

答案4

mathastext作为LuaLaTeX 或 XeLaTeX的替代方案,您可以使用 加载 Libertinus Math unicode-math(或通过\usepackage{libertinus}\usepackage[libertinus]{fontsetup},两者都可以为您执行此操作)。

在 PDFLaTeX 中,您可以\usepackage[libertine]{newtxmath}

\DeclareMathAlphabet最后,您可以使用或包从上面加载基于 Libertine 的传统数学字体isomath。它是系列nxlmi,具有 OML 编码(包含拉丁字母和希腊字母)。

相关内容