Usar :exe
para expandir a variável antes de executar o restante do comando deve funcionar:
autocmd BufWritePost *.txt exe '!~/scripts/latex_update.sh %' g:page_num
Observe que você não precisa concatenar (o operador .
) ou colocar um espaço antes de g:page_num
, pois :exe
faz isso como parte de sua expansão de argumento.