Я хотел бы написать, \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}
Обратите внимание, что у вас было несколько пробелов (из-за незащищенных концов строк), которые я удалил, поэтому кернинг пришлось изменить. Исправьте по своему вкусу.