генерирует git commit информацию с резиной (для LaTeX, Debian)

Я использую резиновую программу (в Python, от Lauchpad), чтобы обрабатывать документ LaTeX (через pdflatex называемый rubber -d ) на Debian / Sid / Linux (документ представляет собой некоторое предложение R & D H2020 в Европе). У меня есть версия 1.4-2 этого rubber пакета.

Документ LaTeX и его каталог с использованием git .

Я хочу, чтобы там была команда LaTeX, которая дает текущий идентификатор git commit, чтобы показать этот идентификатор в сгенерированном PDF-файле.

Когда я запускаю следующую команду оболочки в моем терминале:

 printf '\\newcommand{\\cgitcommitid}{%s}\n' $(git log --format=oneline --abbrev=16 --abbrev-commit -q | cut '-d ' -f1 | head -1) 

Это дает мне ожидаемый результат:

 \newcommand{\cgitcommitid}{99ad2f058a5c06d8} 

поэтому я хотел бы сгенерировать это в каком cgit-gitcommitid.tex то cgit-gitcommitid.tex сгенерированном файле.

У меня есть следующий cgit-rubber-rules.ini :

 ; This is our extra rules cgit-rubber-rules.ini file for Rubber ; Rubber is a LaTeX driver in Python ; see https://launchpad.net/rubber ;; SVG figures produced by InkScape (see http://inkscape.org/ for more) ;; convert to PDF [cgit-inkscape-svg-to-pdf] target = (.*)\.pdf source = \1.svg cost = 4 rule = shell command = inkscape --without-gui --export-pdf=$target $source ;; convert to EPS [cgit-inkscape-svg-to-eps] target = (.*)\.eps source = \1.svg cost = 4 rule = shell command = inkscape --without-gui --export-eps=$target $source [cgit-gitcommitid-make] target = cgit-gitcommitid\.tex ;source = \.git cost = 3 rule = shell command = printf '\\newcommand{\\cgitcommitid}{%s}\n' $(git log --format=oneline --abbrev=16 --abbrev-commit -q | cut '-d ' -f1 | head -1) > cgit-gitcommitid.tex 

Мой основной файл LaTeX cgitprop.tex имеет:

  % file cgitprop.tex \documentclass[11pt]{article} \usepackage[utf8]{inputenc} \usepackage{array} \usepackage{geometry} \usepackage[pdftex]{graphicx} \usepackage[usenames,dvipsnames,svgnames]{xcolor} \usepackage{svg} \usepackage{ifpdf} \usepackage{wasysym} \usepackage{multirow} \usepackage{hyperref} \usepackage{float} \usepackage{eurosym} \usepackage{longtable} \usepackage{fancyhdr} \usepackage{relsize} \usepackage{textcomp} \usepackage{alltt} \usepackage{marginnote} % rubber: module pdftex % rubber: module graphics % rubber: rules cgit-rubber-rules.ini % rubber: clean cgit-gitcommitid.tex % rubber: make cgit-gitcommitid.tex with cgit-gitcommitid-make from .git % rubber: watch cgit-gitcommitid.tex \input{cgit-gitcommitid} 

Но когда я запускаю rubber -v -v -d cgitprop cgit-gitcommitid.tex файл cgit-gitcommitid.tex не генерируется:

  rubber -v -v -d cgitprop This is Rubber version 1.4. [latex] directive: module pdftex [latex] built-in module pdftex registered [latex] parsing /ssdhome/basile/CGIT2017FET/cgitprop.tex [latex] script module article registered [latex] built-in module graphicx registered [latex] directive: produce cgitprop.out cgitprop.brf [latex] directive: watch cgitprop.out [latex] script module hyperref registered [latex] directive: module pdftex [latex] directive: module graphics [latex] built-in module graphics registered [latex] directive: rules cgit-rubber-rules.ini [latex] directive: clean cgit-gitcommitid.tex [latex] directive: make cgit-gitcommitid.tex with cgit-gitcommitid-make from .git [latex] directive: watch cgit-gitcommitid.tex 

и позже

  [leaf] 'cgit-gitcommitid.tex' does not exist 

Что я делаю не так? Почему не cgit-gitcommitid.tex ? ;source = \.git строки ;source = \.git – при удалении начальной точки с запятой – в моем cgit-rubber-rules.ini ничего не меняется.

Или вы знаете какой-либо пакет LaTeX, доступный на Debian для генерации информации git – идентификатор фиксации?

также спросил на стартовой панели & quora

Linux и Unix - лучшая ОС в мире.