我想寫一個\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}
請注意,我刪除了幾個空格(由於不受保護的行尾),因此必須更改字偶距。根據您的喜好修復它。