Pandoc의 신택스 하이라이트 색 구성표

6401 단어 PandocMarkdownLaTeX

소개



Pandoc에서 마크다운을 PDF로 변환할 때 --highlight-style 선택적으로 색 구성표를 지정할 수 있습니다. 지적할 수 있는 컬러 스킴은 이하와 같다.
  • pygments (기본값)
  • kate
  • monochrome
  • espresso
  • zenburn
  • haddock
  • tango

  • 이 색 구성표는 각각 같은 이름의 신택스 하이라이트 엔진에서 파생 된 것 같습니다.

    코드는 아래에 둡니다.

    공식 매뉴얼

    Markdown 으로 PDF



    우선 일상의 문서를 Markdown으로 쓰고, 뭔가 인쇄하거나 메일로 보낼 때 PDF로 한다는 사람은 많다고 생각한다. 나는 VSCode에서 Markdown Preview에서 미리보기하면서 쓰고 htps : // 기주 b. 코 m/카이쵸 256/판도 c_히 ghぃght에서 PDF로 변환하고있다. 그러나 기본적으로 수식은 변환되지 않습니다. 예를 들면 이런 마크다운을 썼다고 한다.
    # Fizz Buzzを書いてみる
    
    数式はこちら。
    
    $$
    \textrm{Print} \quad
    \begin{cases}
    \textrm{FizzBuzz!} & \textrm{if} \quad i \bmod 15 =0 \\
    \textrm{Fizz!} & \textrm{if} \quad i \bmod 3 =0 \\
    \textrm{Buzz!} & \textrm{if} \quad i \bmod 5 =0 \\
    i & \textrm{otherwise}
    \end{cases}
    $$
    
    Pythonによるコード例はこちら。
    
    ```py
    for i in range(1, 100):
        if i % 3 is 0 and i % 5 is 0:
            print("Fizz Buzz!")
        elif i % 3 is 0:
            print("Fizz!")
        elif i % 5 is 0:
            print("Buzz!")
        else:
            print(i)
    ``` 
    

    이것을 VSCode의 Markdown PDF로 변환하면 이런 식으로 수식을 변환해주지 않는다.

    Markdown PDF

    그래서 Pandoc을 사용하여 변환해 보겠습니다. 그 후에 여백 조정으로 일지모른다.
    pandoc test.md -s -o default.pdf --latex-engine=lualatex -V documentclass=ltjarticle -V geometry:margin=1in
    

    이것으로 변환한 PDF는 이런 느낌이 된다.



    수식도 좋은 느낌으로 신택스 하이라이트도 있지만 코드 블록에 배경색이 없기 때문에 어디에서 어디까지인지 알기 어렵습니다. 그래서 색 구성표를 바꾸기로 했는데, 어느 것이 어떤 느낌이 되는지 찾아보면

    Pandoc의 색 구성표



    Pandoc로 변환 할 때 --highlight-style=pygments 등으로하면 색 구성표를 지정할 수 있습니다. 이제 같은 마크다운 파일을 다른 방식으로 PDF로 변환해 보자.

    나는 낡은 인간이므로, 무엇이든 makefile로 하는 버릇이 있는데, 우선 이런 것을 써 본다.

    makefile
    PDF=pygments.pdf kate.pdf monochrome.pdf espresso.pdf zenburn.pdf haddock.pdf tango.pdf
    PANDOCOPT=--latex-engine=lualatex -V documentclass=ltjarticle -V geometry:margin=1in
    
    all: $(PDF)
    
    %.pdf: test.md
      pandoc $< -s -o $@ --highlight-style=$* $(PANDOCOPT)
    
    .PHONY: clean
    
    clean:
      rm -f $(PDF)
    

    입력이되는 test.md를 각 색상 구성표로 PDF로 변환하는 샘플입니다.

    pygments



    디폴트는 pygments 로, 이런 느낌이 된다.

    해외에 그런 블로그

    비교적 좋은 느낌이지만, 배경색이 없기 때문에 코드 블록의 단락을 알기 어렵다.

    케이트


    kate 그렇다면 이런 느낌이 된다.



    문자열이 붉게 눈에 띄는 대신, for 이나 if 등의 예약어가 검게 되어 있네요.

    monochrome


    monochrome 는 말 그대로 흑백.



    breezeDark


    breezeDark 는, 배경색이 검은색이 되어, 색도 독특한 느낌.



    espresso


    espresso 는 그 이름대로, 배경색이 커피 같은 색으로 되어 있다. 색도 조금 억제할까.



    zenburn


    zenburn 심지어 배경은 검은 색입니다. 색상은 창백한 느낌.



    haddock


    haddock 배경색은 흰색입니다. 예약어가 푸른다는 것은 어쩐지 익숙해져 있는 것 같다.



    tango


    tangohaddock와 비슷하지만 배경색이 밝은 회색으로되어 있습니다. 이에 따라 예약어의 색도 조금 겸손하게. 반대로 숫자 등의 리터럴이 조금 눈에 띈다.



    요약



    Pandoc에 의한 코드 블록의 색 구성표를 정리했다. 개인적으로는 tango를 좋아할까. 「문서를 무엇으로 쓸까」는 대단히 번거롭고, 그러한 의미에서는 다양한 포맷간의 변환을 할 수 있는 Pandoc는 편리하네요.

    좋은 웹페이지 즐겨찾기