
현재 gitinfo2
내 문서의 패키지를 사용하여 현재 Git 개정판, 분기 및 날짜를 표시하고 있습니다. 하지만 마스터 브랜치가 아닌 경우에만 브랜치를 표시하고 싶습니다. 이를 위해서는 조건부 래핑이 필요 \gitBranch
하지만 이를 파악할 수 없습니다.
MWE:
\documentclass{scrbook}
\usepackage{gitinfo2}
% additional install is required. See package documentation for details.
\begin{document}
\begin{titlepage}
\centering
\ \\
\vspace{5cm}
{\Huge Document title}
\vspace{5cm}
Revision: \gitAbbrevHash on branch \gitBranch \ \gitCommitterDate
\end{titlepage}
Some text.
\end{document}
지금까지 나는 이것을 시도했지만 성공하지 못했습니다.
\documentclass{scrbook}
\usepackage{gitinfo2}
% additional install is required. See package documentation for details.
\newcommand{\masterBranch}{master}
\begin{document}
\begin{titlepage}
\centering
\ \\
\vspace{5cm}
{\Huge Document title}
\vspace{5cm}
Revision: \gitAbbrevHash
\if\gitBranch\masterBranch
\else
on branch \gitBranch
\fi
\ \gitCommitterDate
\end{titlepage}
Some text.
\end{document}
답변1
두 가지 문제가 있습니다.
테스트에서는
\if
비교를 위해 확장할 수 없는 두 개의 토큰을 찾을 때까지 다음 토큰을 확장합니다. 따라서 매크로 정의를 비교하는 데 사용할 수 없습니다. 스위치는\ifx
확장하지 않고 다음 두 토큰을 비교하기 때문에 여기에 더 적합합니다.\gitBranch
브랜치 이름을 직접 포함하지 않고 대신 확장 가능한(항상 희망함) 매크로를 사용하여 이름을 가져옵니다. 또한\detokenize
문자를 숫자 및 구두점 문자와 같은 범주 코드 12(기타)의 토큰으로 변환하는 데 사용됩니다.
그 의미는:
\ifx
대신 에 를 사용하십시오\if
.\edef\gitBranch{\gitBranch}
확장된 지점 이름을 가진 매크로를 얻으려면.\edef\branchMaster{\detokenize{master}}
올바른 카테고리 코드를 얻으려면.
결과:
\documentclass{scrbook}
\usepackage{gitinfo2}
\edef\masterBranch{\detokenize{master}}
\edef\gitBranch{\gitBranch}
\begin{document}
Revision: \gitAbbrevHash\ %
%
\ifx\gitBranch\masterBranch
\else
on branch \gitBranch\ %
\fi
%
\gitCommitterDate
\end{document}