Growl notificações com TeXShop

TeXShop é o meu * editor TeX preferido, no entanto, falta um recurso importante – notificações Growl acionadas por sucesso ou falha de compilação de arquivo.

Os comandos individuais usados ​​para compilação são definidos nos motores específicos fornecidos pelo TeXShop, que são na realidade scripts de shell simples. Ao editar um “mecanismo” TeXShop (neste caso XeLaTeX), tal notificação pode ser facilmente adicionada sem modificar o próprio aplicativo.

Os motores estão localizados em ~ / Library / TeXShop / Engines /. Como eu uso principalmente o XeLaTeX, dupliquei o arquivo XeLaTeX.engine e o editei para conter várias notificações Growl acionadas usando o cliente CLI growlnotify.

O núcleo do novo mecanismo, denominado XeLaTeX-custom.engine, tem a seguinte aparência:

growlnotify -s -d $IDENT --image "$IMAGE_RUN" -m "${DATE}"$'\n'"${MSG_RUN}" $BANNER
xelatex
-halt-on-error -file-line-error -synctex=1 "$1"

if [[ $? -gt 0 ]]; then
growlnotify
-d $IDENT -s --image "$IMAGE_FAIL" -m ${DATE}"$'\n'"${MSG_FAIL}" $BANNER
else

PAGES=`cat ${BASENAME}.log | grep "
Output written" | grep -o -E "\([^\)]*\)"`
growlnotify -d $IDENT -s --image "
$IMAGE_OK" -m "${DATE}"$'\n'"${MSG_OK}"$'\n'"$PAGES" $BANNER
fi

Todo o arquivo está disponível como um resumo. As notificações Growl são exibidas como fixas e, como compartilham um ID, são atualizadas, de modo que não ocupam mais espaço na tela. Para evitar o “travamento”, o XeLaTeX é executado no modo “interromper em caso de erro”, o que significa que a compilação é abortada após a detecção de um erro. A mensagem de erro específica fica então disponível no console.

O mecanismo personalizado pode ser acionado manualmente a partir do menu de composição do TeXShop ou pode ser selecionado usando a diretiva %! TEX TS-program = xelatex-custom no início de um arquivo raiz.

Cenário