作曲・指導・C言語・Linux

金沢音楽制作

金沢音楽制作では、楽曲・楽譜の制作と、作曲や写譜などレッスンを行っています。

tex-open

LaTeXで書かれたファイルをpdfに変換して、pdfが関連付けられたGUIアプリで開きます。ついでにaux、log、dviといった不要なファイルも削除します。

環境:TeX Live、bash 5.1.16

実行画面

対象のTeXファイルを引数に指定します。問題がなければコンパイルされて、自動的にpdfが開きます。Linuxのxdg-openかmacOSのopenかを自動で判別してくれます。

$ ./tex-open.sh profile.tex
$

tex-openのコード

#!/bin/bash

declare -ri argc="$#"
declare -r  file_name="$1"
declare -r  base_name="${1%.*}"

fn_main()
{
  fn_is_argment 

  ptex2pdf -l ${file_name} > /dev/null 2>&1 

  fn_delete_files

  fn_open_file
}

fn_is_argment()
{
  if [ ${argc} -ne 1 ]; then
    echo "Error: There are many arguments"
    echo "Usage: $ ./$0 file.tex"
    exit 1
  fi
}

fn_delete_files()
{
  local -ra delete_files=(aux log div)

  for extension in ${delete_files[@]}; do
    rm "${base_name}.${extension}" > /dev/null 2>&1 
  done
}

fn_open_file() {
  local open_command=$(which xdg-open || which open)
  local -r target="${base_name}.pdf"

  eval "${open_command} ${target}"
}

fn_main 

#<hase@psipsina.jp>

もともとはワンラナイナーでしたが、可読性が低すぎるので、普通の(?)プログラムにしました。

[ $# = 1 ] && ptex2pdf -l ${1%} && ls | egrep "${1%.*}.(aux|log|dvi)" | xargs rm 2&gt;/dev/null && open ${1%.*}.pdf || open ${1%.*}.pdf

更新情報

  • 作成日:2020-07-03
  • 作成日:2022-02-11
  • 作成日:2022-05-02