Latex에서 긴 매크로/바로가기 만들기

Latex에서 긴 매크로/바로가기 만들기

숫자를 삽입하는 큰 매크로를 만드는 것이 가능한지 궁금합니다. 나는 그것이 포함되기를 원했습니다 :

\begin{figure} [H]

\centering

\includegraphics[scale=0.8]{#FILENAME}

\caption{#FIGURECAPTION \label{#LABELREF}}

\end{figure}

너무 길어서 이렇게 긴 "코드"를 삽입하기 쉽게 만들고 싶었습니다. 서문에 환경으로 만들어야 할까요? 아니면 새로운 명령으로?

제가 받을 수 있는 어떤 종류의 도움이라도 감사하겠습니다!

답변1

시도해 보셨나요:

\newcommand\Figure[3]{%
  \begin{figure} [H]
    \centering
    \includegraphics[scale=0.8]{#1}
    \caption{#2}\label{#3}
  \end{figure}
}

당신은 이것을 다음과 같이 사용할 것입니다.

\Figure{filename}{caption}{label}

실제로 다음이 더 좋습니다.

\newcommand\Figure[4][scale=0.8]{%
  \begin{figure} [H]
    \centering
    \includegraphics[#1]{#2}
    \caption{#3}\label{#4}
  \end{figure}
}

scale=0.8두 번째 변형은 에 인수를 전달하기 위한 선택적 인수(기본값은 )를 정의합니다 \includegraphics. 예를 들어 \Figure[width=3cm]{filename}{caption}{label}.

편집: 선택적 짧은 캡션

Sigur는 댓글에서 선택적 짧은 캡션을 요청했습니다. 이는 실제로 다음이 작동하지 않는다는 점에서 약간 까다롭습니다.

\newcommand\Figure[4][]{%
  \begin{figure} [H]
    \centering
    \includegraphics[scale=0.8]{#2}
    \caption[#1]{#3}\label{#4}
  \end{figure}
}

선택적 인수가 없으면 #1비어 있고 매크로가 삽입되므로 \caption[]{...long caption...}짧은 캡션이 비어 있습니다! 이 문제를 해결하려면 예를 들어 기본값을 #1와 동일하게 만든 \relax다음 매크로에서 다음을 사용할 수 있습니다.

\ifx#1\relax\relax\caption{#3}\else\caption[#1]{#3}\fi

이제 매크로가 예상대로 작동합니다.

그러나 더 나은 솔루션은 \NewDocumentCommand다음에서 사용하는 것입니다.xparse패키지를 사용하면 두 개의 선택적 인수를 가질 수 있기 때문입니다. 이를 수행하는 한 가지 방법은 다음과 같습니다.

\documentclass{article}
\usepackage{mwe}
\usepackage{xparse}
\usepackage{float}
\NewDocumentCommand\Figure{o D<>{scale=0.8} m m m}{%
  % [optional short caption]<optional includegraphics options>{image}{caption}{label}
  \begin{figure}[H]
    \centering
    \includegraphics[#2]{#3}
    \IfNoValueTF{#1}{\caption{#4}}{\caption[#1]{#4}}
    \label{#5}
  \end{figure}
}
\begin{document}

  \Figure{example-image-a}{Normal figure}{f:normal}

  \Figure<width=20mm>{example-image-a}{Width 20mm }{f:20mm}

  \Figure[Short caption]<width=20mm>{example-image-a}{With 20mm with short caption}{f:20mm}

  \Figure[Short caption]{example-image-a}{Short caption}{f:20mm}

\end{document}

사이에 있는 선택적 인수는 [...]짧은 캡션이 되고, 사이에 있는 선택적 인수는 <...>에 제공되며 \includegraphics기본값은 입니다 scale=0.8.

관련 정보