我使用这个mathptmx
包来输入数学公式。在尝试过许多字体包之后,除了无穷大符号,我最喜欢这个。这个包产生的无穷大符号非常小而且窄,我尝试了以下方法进行修复,但无法得到想要的符号。
\documentclass[12pt,fleqn]{book}
\usepackage{exscale,relsize,tikz,avant,microtype,titletoc,fancyhdr}
\usepackage{amsmath,mathrsfs,amsfonts,bm,amssymb,mathtools,amsthm,,mathptmx}
\newcommand{\inftyy}{\mathlarger{\infty}}
\newcommand{\inftyyy}{\Large{\text{$\infty$}}}
\begin{document}
\begin{equation}
x \in (-\inftyyy,+\infty), y\in (-\inftyy,+\infty)
\end{equation}
\end{document}
在这两种情况下(\inftyyy
和\inftyy
),符号都会偏离正常的水平线对齐,看起来很别扭。我可以尝试的另一种可能性是定义一个新命令,以便amsfonts
覆盖 的mathptmx
无穷大符号,但我不确定如何实现。有人来帮忙吗?如果有新的想法,我将不胜感激。
PS 请不要建议使用其他包,因为我已经尝试了很多。
先感谢您
答案1
由于字体是可扩展的,因此您不需要relsize
。主要问题在于强制符号处于正确的高度,特别是在下标中。
\documentclass{article}
\usepackage{amsmath}
\usepackage{mathptmx,graphicx}
\makeatletter
\let\original@infty\infty
\DeclareRobustCommand{\infty}{\mathord{\mathpalette\scale@infty\relax}}
\newcommand\scale@infty[2]{%
\vcenter{\m@th\hbox{\scalebox{1.3}{$\lower@infty{#1}$}}}%
}
\newcommand\lower@infty[1]{%
\sbox\z@{$\original@infty$}%
\dimen0=\dimexpr\ht\z@-2\fontdimen22\style@font{#1}2\relax
\dimen2=\dimexpr\ht\z@+\dimen0\relax
\raisebox{\dimen0}[\dimen2][0pt]{$#1\original@infty$}%
}
\def\style@font#1{%
\ifx#1\displaystyle\textfont\else\ifx#1\textstyle\textfont
\else\ifx#1\scriptstyle\scriptfont\else\scriptscriptfont\fi\fi\fi
}
\makeatother
\begin{document}
\begin{equation}
x \in (-\infty,+\infty)\quad \infty_{+\infty_{+\infty}}
\end{equation}
\end{document}
另一方面,您可以使用 获得适当大小的符号newtx
。
\documentclass{article}
\usepackage{amsmath}
\usepackage{newtxtext,newtxmath}
\begin{document}
$x\in(-\infty,+\infty)\quad \infty_{+\infty_{+\infty}}}$
\end{document}
答案2
我希望能够通过非常好的用户@egreg 的一个老问题来理解你的问题:使 \infty 符号与 8 水平对齐。这是我对您的问题所做的改进。我增加了无穷大符号的大小,您可以使用比例参数将其调大或调小-0.1
(使符号变小)或+0.1
调大。
\documentclass[12pt,fleqn]{book}
\usepackage[T1]{fontenc}
\usepackage{exscale,relsize,tikz,avant,microtype,titletoc,fancyhdr}
\usepackage{mathrsfs,bm,amssymb,mathtools,amsthm,,mathptmx}
\newcommand{\inftyy}{\mbox{\larger$\infty$}}
\newcommand{\inftyyy}{\mbox{\larger$\inftyy$}}
\makeatletter
\newcommand{\hinfty}{\raisebox{-0.1\height}{$\m@th\inftyy$}}
\newcommand{\hinftyy}{\raisebox{-0.22\height}{$\m@th\inftyyy$}}
\makeatother
\begin{document}
\begin{equation}
x \in (-\hinfty,+\hinfty), y\in (-\hinftyy,+\hinftyy)
\end{equation}
\end{document}