我正在尝试这个包采用自由字体的 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}
答案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}
),或者可以在可选参数中使用已知参数(因此使用B
forA
的定义移位\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 编码(包含拉丁字母和希腊字母)。