現在の *.tex ファイルをコンパイルし、pdf ビューアーに表示する新しいコマンドを作成したいと思います (これにより、プレビューを使用するために OSX を使用しています)。これが私の試みです:
autocmd BufReadPost,BufWritePost *.tex nmap <Leader>b :!TEMP=% && PDF=${TEMP:0: ${#TEMP}-4 } && echo $TEMP && "/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode % && open $PDF && unset TEMP PDF<CR>
TEMP は mit *.tex ファイルのファイル名です。
PDF は私の *.pdf のファイル名です。
ただし、これを実行すると、次のエラー メッセージが表示されます。
499: Empty file name for '%' or '#', only works with ":p:h"
「#」を使用せずに文字列を短縮する別の方法はありますか?
解決:
autocmd BufReadPost,BufWritePost *.tex nmap <Leader>b :!PDF="%<.pdf" && "/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode "%" && open "$PDF" && unset PDF<CR>