Quero criar um atalho para
\textsubscriptARGS
Sendo ARGS
qualquer número.
Quero digitar algo como 123\a33332
e ter a mesma saída que123\textsubscript{33332}
Tentei com \def
e \newcommand
sem sucesso Obrigado!
Eu tentei \def\aa #1#2#3{\textsubscript{#1#2#3}} e funciona, mas somente se houver 3 argumentos, você sabe como definir os argumentos como opcionais ou incluir todos os caracteres antes de um espaço como um argumento?
Responder1
Isso tem todos os tipos de erros escritos sobre ele:
\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}
Por que?
\aa
já está definido (como a letra sueca å).Não há consistência no uso de
\aa
no final de uma frase, já que\def
o parâmetro textrequerum espaço como delimitador final para seu argumento. Condicionar em a.
seria bom, mas o que acontece com,
, ou!
, ou?
, ou ...
Responder2
Se você quiser apenas números inteiros, vocêpoderfaça o seguinte:
\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}
Se eu recomendo fazer isso deve ficar claro pelo nome da macro que escolhi.
Não faça assim!É propenso a erros e tem várias limitações.