재사용 가능한 콘텐츠를 정의하세요. --- 가급적이면 본문이나 헤더에 정의하세요.

재사용 가능한 콘텐츠를 정의하세요. --- 가급적이면 본문이나 헤더에 정의하세요.

A라는 사람의 이름이 섹션 A의 여러 위치에 표시되는 문서를 작성 중입니다. 마찬가지로 B라는 사람의 이름이 섹션 B의 여러 위치에 표시됩니다.

섹션 A 바로 앞에 PersonName이라는 변수를 정의하고 여기에 Person A와 관련된 값을 할당한 다음 섹션 A에서 사용할 수 있는 방법이 있나요? 그런 다음 섹션 B의 시작 부분에서 PersonName을 다시 정의하고 다음을 사용하세요. 섹션 B 등에 있습니다.

PersonName을 본문에 정의할 수 없는 경우 이를 서문에서 선언하고 본문에서 계속 다른 값을 할당할 수 있나요?

답변1

이것이 바로 매크로의 목적입니다. 를 사용하여 자신만의 매크로를 정의 \newcommand{\command}{<actions>}하고 을 사용하여 재정의할 수 있습니다 \renewcommand. 두 명령 모두 문서의 어느 위치에나 지정할 수 있으므로 다음과 같이 할 수 있습니다.

\documentclass{article}
\begin{document}
\section{Section A}
\newcommand{\PersonName}{Person A}
Some text written by \PersonName.

\section{Section B}
\renewcommand{\PersonName}{Person B}
Some text written by \PersonName.
\end{document}

답변2

와 더불어scontentspackage 당신이 찾고있는 것을 할만큼 쉽습니다. 물론 모두 메모리에 저장됩니다. 외부 파일을 선호하는 경우 환경 버전과 키를 사용할 수 write-env=file.tex있으며 메모리에 저장하는 것 외에도 콘텐츠를 별도의 파일에 저장한 다음 \input. 메모리에 저장하는 것을 선호합니다 :)

\documentclass{article}
\usepackage{scontents}
\setupsc{store-cmd=person}
\Scontents{Person A}
\Scontents{Person B}
\begin{document}
\section{Section A}
Some text written by \getstored[1]{person}

\section{Section B}
Some text written by \getstored[2]{person}
\end{document}

관련 정보