Pandoc에서 LaTeX를 통해 PDF를 출력 할 때 코드 블록의 글꼴 크기를 밟습니다.

7060 단어 PandocLaTeX

TL;DR


  • 적절한 이름, 예를 들어 mytemplate.tex라는 파일에 다음 내용을 씁니다

  • 코드 블록에 배경색이 없는 경우

    mytemplate.tex
    \newenvironment{Shaded}{\Huge}{}
    

    코드 블록에 배경색을 붙이는 경우

    mytemplate.tex
    \renewenvironment{Shaded}{\begin{snugshade}\Huge}{\end{snugshade}}
    
  • 이전에 지정한 파일을 -H 옵션으로 지정합니다. 예를 들어
  • pandoc test.md -o test.pdf --latex-engine=lualatex -V documentclass=ltjarticle -H mytemplate.tex
    

    등으로 한다. \Huge\small로 설정하면 글꼴 크기를 좋아할 수 있습니다.

    해설



    이제 TL; DR만으로 이야기는 다하고 있지만, 일단 무슨 일이 일어나고 있는지 설명합니다.

    이런 마크다운 파일을 만듭니다.
    # コードブロックのテスト
    
    以下はコードブロックです。
    
    ```rb
    puts "Hello World!"
    ```
    

    이것을 이런 느낌으로 PDF로 합니다.
    pandoc test.md -o test.pdf --latex-engine=lualatex -V documentclass=ltjarticle
    

    완성된 PDF가 이쪽입니다.



    에서이 코드 블록의 글꼴 크기를 변경하기 위해 pandoc이 토하는 소스 코드를 살펴 보겠습니다.
    $ pandoc test.md -s -o test.tex --latex-engine=lualatex -V documentclass=ltjarticle
    

    그러면 코드 블록은 이런 느낌이 듭니다.
    以下はコードブロックです。
    
    \begin{Shaded}
    \begin{Highlighting}[]
    \NormalTok{puts }\StringTok{"Hello World!"}
    \end{Highlighting}
    \end{Shaded}
    

    Shaded 환경은 위쪽에 정의되어 있습니다.
    \newenvironment{Shaded}{}{}
    

    이것은 배경색을 붙이는 환경이므로, 디폴트에서는 아무것도 하지 않습니다. 여기에 폰트 사이즈를 변경하는 명령을 돌진합니다.
    \newenvironment{Shaded}{\Huge}{}
    

    에서 컴파일합니다.
    $ lualatex test.tex 
    

    할 수 있었던 PDF가 이쪽입니다.



    안전하게 코드 블록의 글꼴 크기가 커졌습니다.

    그래서, 일단 LaTeX 소스를 토하고 그것을 수정하는 것은 번거롭기 때문에, 수정 명령을 파일에 써 두고, 나중에 명령을 읽어들게 하기로 합니다. 한 번 \newenvironment 된 것을 다시 정의해야하므로 \renewenvironment를 사용해야합니다.

    mytemplate.tex
    \newenvironment{Shaded}{\Huge}{}
    

    이것을 -H 옵션으로 읽어들이지 않으면, 마크다운으로부터 PDF로 단번에 변환하면서, 폰트 사이즈도 변경할 수 있습니다.
    $ pandoc test.md -o test.pdf --latex-engine=lualatex -V documentclass=ltjarticle -H mytemplate.tex
    

    배경색 정보



    이전 방법을 사용하면 코드 블록에 배경색이있는 경우 배경색이 사라집니다.

    예를 들어, 하이라이트 방식으로 breezeDark를 사용하면 배경색이 검게 변합니다.
    $ pandoc test.md -o test.pdf --latex-engine=lualatex -V documentclass=ltjarticle --highlight-style=breezeDark
    



    그러나 방금 만든 템플릿을 읽으면 문자색은 breezeDark로 남아 있지만 배경색이 사라집니다.



    이것은, 배경색이 있는 경우의 Shaded 환경이 이렇게 정의되고 있기 (위해)때문에입니다.
    \newenvironment{Shaded}{\begin{snugshade}}{\end{snugshade}}
    

    snugshade 환경이 배경색을 붙이므로, 그 직후에 폰트 사이즈 변경 명령을 돌입합니다.

    mytemplate.tex
    \renewenvironment{Shaded}{\begin{snugshade}\Huge}{\end{snugshade}}
    



    배경색으로 글꼴 크기가 변경되었습니다.

    배경색 수정



    참고로 배경색은 \definecolor로 덮어쓸 수 있습니다.

    mytemplate
    \renewenvironment{Shaded}{\begin{snugshade}\Huge}{\end{snugshade}}
    \definecolor{shadecolor}{RGB}{255,200,200}
    



    요약



    Pandoc에서 LaTeX를 통해 PDF를 만들 때 코드 블록의 글꼴 크기를 괴롭히는 방법을 정리했습니다. 약간 애드혹입니다만, 원래의 마크다운 파일에 손을 넣지 않고 수정할 수 있으므로 아무튼 좋지 않을까요.

    참고



    StackOverflow How to set the font size for code blocks in pandoc markdown? 답변

    좋은 웹페이지 즐겨찾기