让命令内的字体大小按比例调整大小

让命令内的字体大小按比例调整大小

我想写一个\newcommand来定义一个时尚的词,比如\LaTeX

让我们来看这个例子:

\newcommand{\mystyle}{
     \textit{\raisebox{+0.2ex}{M}
     \kern-0.66em\raise-0.3ex\hbox{\scriptsize y}
     \kern-0.3em\raise0.4ex\hbox{\scriptsize s}
     \kern-0.75em\raise-0.3ex\hbox{\scriptsize t}
     \kern-0.3em\hbox{yle}
     }
     }

问题是,当\mystyle放入里面时\title{},或者\section{}通过蛮力定义的字体大小(前 4 个字母)会变得太小,因为它们与其余字母不成比例缩放。如果我\LaTeX在里面写\title{},则没有问题。

如何让我的命令能够像那样顺利运行?

答案1

您可以relsize为此使用该包。

在此处输入图片描述

\documentclass{article}

\usepackage{relsize}

\newcommand{\mystyle}{
     \textit{\raisebox{+0.2ex}{M}
     \kern-0.66em\raise-0.3ex\hbox{\relsize{-1}y}
     \kern-0.3em\raise0.4ex\hbox{\relsize{-1}s}
     \kern-0.75em\raise-0.3ex\hbox{\relsize{-1}t}
     \kern-0.3em\hbox{yle}
     }
     }

\begin{document}

\section{\mystyle}

Text talking about \mystyle

\end{document}

答案2

这个问题实际上无法解决relsize

您可以\check@mathfonts根据当前字体大小设置下标和上标的字体大小,并将其保存在 中\sf@size

\documentclass{article}

\makeatletter
\newcommand{\mystyle}{%
  \textit{%
    \check@mathfonts
    \itshape
    \raisebox{0.2ex}{M}%
    \kern-0.1em
    \raisebox{-0.3ex}{\fontsize\sf@size\z@\selectfont y}%
    \kern-0.1em
    \raisebox{0.4ex}{\fontsize\sf@size\z@\selectfont s}%
    \kern-0.2em
    \raisebox{-0.3ex}{\fontsize\sf@size\z@\selectfont t}%
    yle%
  }%
}
\makeatother

\begin{document}

\mystyle

\bigskip

\Large\mystyle

\bigskip

\footnotesize\mystyle

\end{document}

请注意,我删除了几个空格(由于未受保护的行尾),因此必须更改字距。请根据您的喜好进行修复。

在此处输入图片描述

相关内容