Некоторое время назад я написал команду, которую использовал много раз, сегодня я понимаю, что ее можно было бы написать правильно. В частности, команда выбрана как «не в математической среде». Я искалдругие решенияно они мне не нравятся.
Я вижу, что писать приятно, но может ли эта команда создать проблемы? Не могли бы вы дать мне совет, как написать ее правильно? Спасибо
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel}
\usepackage{amsmath}
\usepackage{mwe}
\usepackage{scalerel}
\newcommand\scale[2]{\vstretch{#1}{\hstretch{#1}{#2}}}
\newcommand\ssp[1]{#1^{\scale{.8}{\scriptstyle{\prime}}}}
\newcommand\sspp[1]{#1^{\scale{.8}{\scriptstyle{\prime\prime}}}}
\begin{document}
\begin{minipage}[t]{.5\textwidth}
\begin{align}
\ssp{z_G}\\
\sspp{z_{G}}
\end{align}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}
\begin{align}
\ssp{G}\\
\sspp{G}
\end{align}
\end{minipage}\\
\end{document}
решение1
Я спросил в комментарии: «Не проще ли было бы просто переопределить ваш математический алфавит с помощью более мелких скриптов, чем пытаться масштабировать каждый вызов скрипта?» Автор вопроса спросил, как это сделать.
\DeclareMathSizes
— это команда, с помощью которой можно определять размеры математических скриптов и т. д. Возьмите этот базовый код и посмотрите на вывод:
\documentclass{article}
\usepackage{lmodern}
\begin{document}
\centering
\[
z'_G\quad z''_{G_G}\quad G'\quad G''
\]
Inline: $\frac{x}{y}$
\end{document}
Теперь (я не уверен, что правильно задаю все параметры) сравните:
\documentclass{article}
\usepackage{lmodern}
\makeatletter
\DeclareMathSizes{\@xpt}{\@xpt}{5}{4}
\DeclareMathSizes{\@xipt}{\@xipt}{6}{5}
\DeclareMathSizes{\@xiipt}{\@xiipt}{6}{5}
\DeclareMathSizes{\@xivpt}{\@xivpt}{\@xpt}{6}
\makeatother
\begin{document}
\centering
\[
z'_G\quad z''_{G_G}\quad G'\quad G''
\]
Inline: $\frac{x}{y}$
\end{document}
Размеры скриптов меньше. Также lmodern
пакет позволяет рендерить очень маленькие размеры математики, так что вам это понадобится.