![Como posso usar comandos personalizados dentro e fora do maketitle com a classe de artigo](https://rvso.com/image/348605/Como%20posso%20usar%20comandos%20personalizados%20dentro%20e%20fora%20do%20maketitle%20com%20a%20classe%20de%20artigo.png)
Já uso LaTeX há algum tempo, mas não tenho experiência na criação de macros ou classes.
Basicamente, o que eu quero fazer é criar comandos como \subject
e \major
poder \college
usar esses comandos no título e nos cabeçalhos/rodapés de um documento de classe de artigo.
Consegui fazer o trabalho "manualmente", conforme mostrado no meu MWE.
\documentclass[12pt,a4paper,twocolumn]{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish,mexico]{babel}
\usepackage{blindtext}
\title{A title}
\author{ an Author\\{\small a subject}\\\begin{footnotesize}
\textit{a College}
\end{footnotesize}}
\date{\today}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[R]{a Major}
\fancyhead[L]{an Author}
\fancyfoot[C]{Página \textbar \thepage}
\fancyfoot[R]{a Subject}
\fancyfoot[L]{a Title}
\fancypagestyle{plain}{%
\fancyhf{}
\fancyfoot[CE,CO]{Página \textbar \thepage}
\renewcommand{\headrulewidth}{0pt}}
\begin{document}
\maketitle
\blindtext
\blindlist{itemize}[5]
\blindmathpaper
\end{document}
Quero tornar isso um pouco mais "automático" apenas preenchendo os rótulos assim:
\major{Mechanical Engineering}
Como posso conseguir isso?
Responder1
A maneira mais fácil é definir um comando contendo o texto e utilizá-lo quando necessário.
\newcommand\major{Mechanical Engineering}
...
\fancyhead[R]{\major}
A definição e o uso não precisam estar nesta ordem textual; \major
só precisa ser definido antes de ser usado.
Se você quiser ocultar a definição dos comandos e fazer isso de forma semelhante a \author
, \title
etc, você precisará de um pouco de esforço extra.
\newcommand\major[1]{\newcommand\themajor{#1}}
...
\major{Mechanical Engineering}
...
\fancyhead[R]{\themajor}
Este código apresentará um erro quando \themajor
for usado antes \major
ou se \major
for usado duas vezes. Isso me parece um recurso, mas se quiser evitar isso, você pode predefinir \themajor
.
\newcommand\themajor{}
\newcommand\major[1]{\renewcommand\themajor{#1}}
...
\major{Mechanical Engineering}
...
\fancyhead[R]{\themajor}
Observe o uso de \renewcommand
em vez de \newcommand
.