TeX로 쓰는 귀찮은 부분은 markdown으로 쓰면 최강이 아닐까? 【Vim + pandoc】

3582 단어 PandocVimMarkdownTeX

상황



당신은 TeX로 자료를 만드는 곳입니다.
( Beamer 에서 슬라이드를 만들고 있다고 바꿀 수 있습니다)

글머리를 쓰고 쓰는 것이 귀찮지 않습니까?
\begin{itemize}
  \item
    hoge
  \item
    huga
  \item
    piyo
\end{itemize}

하물며 로마 숫자( I , II , ...)로 번호를 흔들고 싶으면
\begin{enumerate}
  \def\labelenumi{\Roman{enumi})}
  \item
    hoge
  \item
    huga
  \item
    piyo
\end{enumerate}

쓰고 싶은 것은 hoge, huga, piyo라든지.

Vim의 format 기능 + pandoc을 사용하여 해결



gq 명령과 formatprg


:help formatting 또는 :help gq의 항을 보면,gq (+ 모션 명령)을 사용하면
  • formatexpr가 비어 있지 않으면 내용을 실행합니다
  • formatprg가 비어 있지 않으면 외부 프로그램이 사용됩니다.
  • 위의 내용이 적용되지 않으면 내부적으로 포맷팅이 수행됩니다

  • 같은 것이 쓰여 있다고 생각합니다.

    주목하는 것은 2번째의 formatprg (을)를 지정해 포맷을 실시하는 방법입니다.

    문서 변환 도구 pandoc



    pandoc이라는 도구를 사용하면 markdown에서 LaTeX로 변환하는 것도 쉽습니다.

    따라서, tex 형식의 파일에 있어서. gq
    augroup texfile
      autocmd BufRead,BufNewFile *.tex set filetype=tex
      let md_to_latex  = "pandoc --from=markdown --to=latex"
      autocmd Filetype tex let &formatprg=md_to_latex
    augroup END
    

    같이 써 둡니다.

    사용법



    tex 파일을 편집하는 도중에, 「markdown으로 쓰면 바로인데」라고 하는 사안이 발생하면, 우선 그 자리에서 markdown으로 써, 범위 선택해, ~/.vimrc 를 누르면, 그 부분이 TeX 형식으로 변환되어 편집 종료입니다.

    (markdown에서 우선 쓴 리스트를 범위 지정)


    ( gq 를 누르면 순식간에 출력된다)


    (pdf로 하면 이런 느낌.)


    요약



    pandoc 만능. Vim 확장성이 너무 높습니다.
    스니펫 삽입 기능을 사용해도 좋을지도 모르지만, 그 명령을 기억할 정도라면 markdown으로 쓰는 것이 빠르다고 이야기.

    그리고, 이전은 markdown에서 전부 써서 pandoc를 통해 TeX로 변환하고 있었지만, 변환 후에 TeX측을 세세하게 수정해 버려, 재조정하려고 하면 결국 TeX파일을 직접 만지게 되므로, 반대로, 기본은 tex 파일을 직접 편집하고, 쓰기 어려운 곳만 markdown으로 쓰도록 하면 좋을까라고 생각했습니다.

    예에서는 TeX의 리스트 밖에 들고 있지 않습니다만, 이미지의 붙여넣기등에서도 위력을 발휘하므로, TeX 쓰지 않으면 안 되는 사람은 꼭 시험해 봐.

    (추기: 2016/07/20)
    gq 를 활용하는 예
  • bibclean으로 bib 파일 정형

  • (추기 여기까지)

    좋은 웹페이지 즐겨찾기