problema amsart com título de digitação

problema amsart com título de digitação

Tentei implementar um metanível para os comandos autor e título, porque a maioria dos arquivos de estilo deseja que eles sejam um pouco diferentes e quero poder alterar facilmente o arquivo de estilo.

Resumindo, observei que a amsartclasse se comporta de maneira estranha quando insiro uma macro no \title{}. Não gera um erro, mas não coloca o título em maiúscula. No entanto, ainda estará escrito em negrito.

Portanto, não há nenhum efeito nem todos os efeitos. Também tentei colocar \expandafterem todos os lugares que pude imaginar, mas aparentemente não entendi muito bem esse comando.

\documentclass[a4paper,reqno]{amsart}

\usepackage[utf8]{inputenc}

\begin{document}

\newtoks\mytitleA
\mytitleA={This is a title}

\newcommand{\mytitle}{This is a title}
\newcommand{\myauthor}{This is me}

% toggle the following commands to see that only the last version
% produceses the correct layout
%\title{\the\mytitleA}
%\title{\mytitle}
\title{This is a title}

% for the author I cannot spot a difference
\author{\myauthor}
\author{This is me}

\maketitle

\end{document}

Outros arquivos de estilo, como articlenão parecem compor o título de maneira diferente, se estiver aninhado em uma macro, pelo menos não consegui perceber a diferença. Portanto, talvez haja algo errado com a amsartimplementação de \title{}or \maketitle.

Existe uma maneira de corrigir isso ou pelo menos fazer uma macro aninhada funcionar?

Responder1

Você esqueceu um quefaztrabalho, nomeadamente

\expandafter\title\expandafter{\the\mytitleA}

Claro que nada evitar \thena frente \mytitleApode funcionar, pois \theé necessário para entregar o conteúdo do \tokscadastro.

Qual é o problema? Por padrão, amsartapenas usa \uppercase(não deveria, mas isso é outro problema).

Você pode evitar o problema carregando textcaseque força amsarto uso para que \MakeTextUppercasea expansão completa (protegida) seja feita antes de \uppercasefazer seu trabalho.

Com um \toksregistro

\documentclass[a4paper,reqno]{amsart}
\usepackage{textcase}

\newtoks\mytitleA
\mytitleA={This is a title}
\newcommand{\myauthor}{This is me}

\begin{document}

\title{\the\mytitleA}
\author{\myauthor}

\maketitle

\end{document}

Com um comando

\documentclass[a4paper,reqno]{amsart}
\usepackage{textcase}

\newcommand{\mytitle}{This is a title}
\newcommand{\myauthor}{This is me}

\begin{document}

\title{\mytitle}
\author{\myauthor}

\maketitle

\end{document}

Saída (o mesmo com ambos os exemplos)

insira a descrição da imagem aqui

informação relacionada