TeX를 컴파일하는 ShellScript 만들기

6578 단어 ShellScriptTeX

만들기 동기



TeX로 문서를 쓸 필요가 있었다. 그러나 컴파일마다 명령을 치는 것이 귀찮았기 때문에

구조





개요 설명


  • 파일 정보 얻기
  • 이후 tex 파일의 경우에만 실행
  • 디렉토리로 이동
  • pdf 파일 만들기
  • 작업을 계속할지 묻습니다
  • 4로 돌아 가기 (무한 루프) 또는 종료

  • 코드


    #!/bin/bash#
    
    echo "texファイルをドラッグ&ドロップ"
    read -p "filepath: " filepath
    
    base=`basename ${filepath}`
    dir=`dirname ${filepath}`
    filename=${base%.*}
    expanded=${base##*.}
    
    if [ ${expanded} = "tex" ];then
        ad=`pwd`
        cd; cd ${dir}
    
        while :
        do
            echo "コンパイルを開始します";echo
            platex ${filename}.tex;echo;echo
    
            dvips ${filename}.dvi;echo;echo
            ps2pdf ${filename}.ps;
            echo "コンパイルが完了しました"
            open ${filename}.pdf
    
    
            read -p "終了する場合はqを入力してください" res
            if [ $res = q ];then
              break
            fi
        done
    
        cd; cd ${ad}
    
    else
        echo "error: texファイルではありません"
    fi
    

    설명



    파일 정보를 얻는 부분


  • 파일의 경로를 가져옵니다
  • read -p "filepath: " filepath
    
  • tex 파일 부분과 path 부분 얻기
  • # ファイル名(hoge.tex)
    base=`basename ${filepath}`
    # path(/user/name/huga/)
    dir=`dirname ${filepath}`
    
  • 파일 이름과 확장자 가져 오기
  • # ファイル名
    filename=${base%.*}
    # 拡張子
    expanded=${base##*.}
    

    디렉토리 이동 부분


    # 現在のディレクトリパスを保存
    ad=`pwd`
    #texファイルのディレクトリに移動
    cd;cd ${dir}
    ・
    ・
    ・
    # もとのディレクトリに戻る
    cd;cd ${ad}
    
    

    무한 루프 부분


    while:
    do
        ・
        ・
        ・
        # ユーザーから入力を受け付け
        read -p "終了する場合はqを入力してください" res
        # 入力内容が"q"ならループを抜ける
        if [ $res = q ];then
            break
        fi
    done
    

    컴파일 부분


        # texファイルからdviファイルの作成
        platex ${filename}.tex
    
        # dviファイルからpostScriptファイルの作成
        dvips ${filename}.dvi
        #psファイルからpdfファイルの作成
        ps2pdf ${filename}.ps
    

    좋은 웹페이지 즐겨찾기