我想写一个\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}
请注意,我删除了几个空格(由于未受保护的行尾),因此必须更改字距。请根据您的喜好进行修复。