
Actualmente estoy usando el gitinfo2
paquete en mi documento para mostrar la revisión, rama y fecha actual de git. Sin embargo, sólo me gustaría mostrar la rama si no estoy en la rama maestra. Esto requerirá algunos ajustes condicionales, \gitBranch
pero no pude resolverlo.
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}
Hasta ahora he probado esto sin éxito:
\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}
Respuesta1
Hay dos cuestiones:
La prueba
\if
expande los siguientes tokens hasta que encuentra dos tokens no expandibles para comparar. Por lo tanto, no se puede utilizar para comparar definiciones de macros. El interruptor\ifx
es más adecuado aquí, porque compara los dos tokens siguientes sin expandirse.\gitBranch
no contiene el nombre de la rama directamente, sino que utiliza macros expandibles (espero que siempre) para obtener el nombre. También\detokenize
se utiliza para convertir los caracteres en tokens con el código de categoría 12 (otros), como dígitos y caracteres de puntuación.
Eso significa:
- Uso de
\ifx
en lugar de\if
. \edef\gitBranch{\gitBranch}
para obtener una macro con el nombre de la rama expandida.\edef\branchMaster{\detokenize{master}}
para obtener los códigos de categoría correctos.
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}