Me gustaría escribir una \newcommand
para definir una palabra elegante, como \LaTeX
.
Tomemos este ejemplo:
\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}
}
}
El problema es que cuando \mystyle
se coloca dentro \title{}
o \section{}
los tamaños de fuente definidos por fuerza bruta (primeras 4 letras) se vuelven demasiado pequeños ya que no escalan proporcionalmente con las letras restantes. Si escribo \LaTeX
dentro \title{}
no hay problema.
¿Cómo hacer que mi comando funcione sin problemas de esa manera?
Respuesta1
Puedes usar el relsize
paquete para esto.
\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}
Respuesta2
Este problema realmente no se puede resolver con relsize
.
Puede utilizar el hecho de \check@mathfonts
configurar los tamaños de fuente para subíndices y superíndices según el tamaño de fuente actual, guardándolo en formato \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}
Tenga en cuenta que tenía varios espacios (debido a finales de línea desprotegidos) que eliminé, por lo que se tuvo que cambiar el interletraje. Arreglalo a tu gusto.