Я хочу создать ярлык для
\textsubscriptARGS
С ARGS
любым числом.
Я хочу ввести что-то вроде 123\a33332
и получить тот же результат, что и123\textsubscript{33332}
Я пробовал \def
, но \newcommand
безуспешно. Спасибо!
Я попробовал \def\aa #1#2#3{\textsubscript{#1#2#3}}, и это работает, но только если есть 3 аргумента. Знаете ли вы, как сделать аргументы необязательными или включить все символы перед пробелом как один аргумент?
решение1
На этом месте написано много всякого рода неправды:
\documentclass{article}
\usepackage{xspace}
\def\aa#1 {\textsubscript{#1}\xspace}
\begin{document}
Here is some 123\aa4 text together with
some 123\aa45 text together with
some 123\aa456 text together with
some 123\aa4567 text together with
some 123\aa45678 text together with
some 123\aa456789 text together with
some 123\textsubscript{4567890}.
\end{document}
Почему?
\aa
уже определена (как шведская буква å).Нет никакой последовательности в использовании
\aa
в конце предложения, так как\def
параметр textтребуетпробел как конечный разделитель для его аргумента. Условие на a.
было бы нормально, но что происходит с,
, или!
, или?
, или ...ВидетьНедостатки
xspace
.
решение2
Если вам нужны только целые числа, вымощьсделайте следующее:
\documentclass{article}
\usepackage{xspace}
\newcommand{\wrongwaytodosubscripts}{%
\afterassignment\wwtdss\count255=
}
\def\wwtdss{\textsubscript{\the\count255}\xspace}
\begin{document}
123\wrongwaytodosubscripts123 followed by whatever.
123\wrongwaytodosubscripts123.
\end{document}
Рекомендую ли я это делать, должно быть ясно из выбранного мной названия макроса.
Не делай так!Он подвержен ошибкам и имеет ряд ограничений.