
Atualmente, estou usando o gitinfo2
pacote em meu documento para exibir a revisão, ramificação e data atuais do git. No entanto, eu só gostaria de exibir o branch se não estiver no branch master. Isso exigirá algum envolvimento condicional, \gitBranch
mas não consegui descobrir isso.
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}
Até agora, tentei isso, sem sucesso:
\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}
Responder1
Existem dois problemas:
O teste
\if
expande os próximos tokens até encontrar dois tokens não expansíveis para comparação. Portanto, não pode ser usado para comparar definições de macro. A opção\ifx
é mais adequada aqui, porque compara os próximos dois tokens sem expandir.\gitBranch
não contém o nome da ramificação diretamente; em vez disso, usa macros expansíveis (espero que sempre) para obter o nome. Também\detokenize
é usado para converter caracteres em tokens com código de categoria 12 (outros), como dígitos e caracteres de pontuação.
Que significa:
- Uso de
\ifx
em vez de\if
. \edef\gitBranch{\gitBranch}
para obter uma macro com o nome do branch expandido.\edef\branchMaster{\detokenize{master}}
para obter os códigos de categoria corretos.
Resultado:
\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}