기사 클래스를 사용하여 maketitle 내부 및 외부에서 사용자 정의 명령을 어떻게 사용할 수 있습니까?

기사 클래스를 사용하여 maketitle 내부 및 외부에서 사용자 정의 명령을 어떻게 사용할 수 있습니까?

나는 한동안 LaTeX를 사용해왔지만 매크로나 클래스를 만든 경험이 전혀 없습니다.

기본적으로 내가 원하는 것은 와 같은 명령을 만들고 \subject기사 \major클래스 \college문서의 제목과 머리글/바닥글에 해당 명령을 사용할 수 있는 것입니다.

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}

다음과 같이 라벨을 채우는 것만으로도 좀 더 "자동"으로 만들고 싶습니다.

\major{Mechanical Engineering}

이것이 출력이다 여기에 이미지 설명을 입력하세요

어떻게 이를 달성할 수 있나요?

답변1

가장 쉬운 방법은 텍스트가 포함된 명령을 정의하고 필요할 때 사용하는 것입니다.

\newcommand\major{Mechanical Engineering}
...
\fancyhead[R]{\major}

정의와 사용이 이 텍스트 순서대로 이루어질 필요는 없습니다. \major사용하기 전에 정의해야 합니다.

명령 정의를 숨기고 와 유사하게 수행하려면 \author약간 \title의 추가 노력이 필요합니다.

\newcommand\major[1]{\newcommand\themajor{#1}}
...
\major{Mechanical Engineering}
...
\fancyhead[R]{\themajor}

\themajor이 코드는 가 이전에 사용되거나 가 두 번 사용된 \major경우 오류를 발생시킵니다 . \major제가 보기에는 이것이 기능처럼 보이지만 이를 피하고 싶다면 미리 정의할 수 있습니다 \themajor.

\newcommand\themajor{}
\newcommand\major[1]{\renewcommand\themajor{#1}}
...
\major{Mechanical Engineering}
...
\fancyhead[R]{\themajor}

\renewcommand대신에 를 사용하는 것에 주목하세요 \newcommand.

관련 정보