pandoc을 사용하여 Markdown에서 PDF로 변환 할 때 여백 크기 설정


179

RStudio에서 RMarkdown 파일을 만들고 knitr를 사용하여 HTML 및 .md 파일로 파일을 편성했습니다. 다음으로 pandoc을 사용하여 .md 파일을 PDF 파일로 변환했습니다 (.html 파일에서 변환하려고하면 오류가 발생 함). 그러나 생성 된 PDF는 http://johnmacfarlane.net/pandoc/demo/example13.pdf 와 같이 막대한 마진을 갖습니다 . 팬독을 통해 작은 여백을 가진 제품을 만들려면 어떻게해야합니까? pandoc 사용자 안내서를 살펴 보았지만 유용한 것을 찾지 못했습니다.

답변:


241

rmarkdown 및 pandoc의 최신 버전

rmarkdown의 최신 버전에서는 최상위 요소를 통해 YAML 헤더에서 여백 설정을 수행 할 수 있습니다 geometry. geometry태그에 지정한 내용 은 다음 LaTeX 스 니펫을 통해 Pandoc과 함께 제공되는 LaTeX 템플릿으로 파이프됩니다.

$if(geometry)$
\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
$endif$

예를 들어, 너비가 2cm 인 여백을 지정하려면

---
title: "Habits"
author: John Doe
date: March 22, 2005
geometry: margin=2cm
output: pdf_document
---

LaTeX와 같이 보다 복잡한 사양을 형상 LaTeX 패키지, 문자열 옵션과 함께 전달하려면 다음을 수행하십시오 .

---
title: "Habits"
author: John Doe
date: March 22, 2005
geometry: "left=3cm,right=3cm,top=2cm,bottom=2cm"
output: pdf_document
---

원래 답변

Pandoc이 LaTeX를 통해 PDF로 렌더링 할 때 LaTeX 질문입니다. 링크 한 것은 LaTeX 문서의 기본 여백을 나타냅니다.

형상 , 예를 들어 LaTeX의 패키지는 페이지의 여백을 변경하는 데 사용할 수 있습니다. 그러나 Pandoc에게 변환 된 md 파일에 적용된 LaTeX 헤더에 포함시켜이를 사용하도록 지시하는 방법이 필요합니다.

이 작업을 수행하는 방법은 Pandoc 사용 설명서에 설명되어 있습니다. 특히 --template=FILE명령 행 인수 및 템플리트 섹션을 참조하십시오 . 기본적으로 사용하려는 LaTeX 명령어를 포함하도록 기본 템플릿을 찾아 수정하거나 고유 한 템플릿을 처음부터 시작하여 적절한 위치에 배치하십시오. --data-dir명령 행 인수를 참조하십시오 .


Pandoc의 최신 버전을 사용하는 경우 또 다른 대안은 변수 인수 ( -V KEY[=VAL]또는로 설정)를 사용하는 것 --variable=KEY[:VAL]입니다. geometry패키지가 2012 년 5 월 기본 LaTeX의 템플릿에 추가합니다 ( 이 토론을 ). 따라서 페이지 여백을 변경하려면 다음을 사용할 수 있습니다.

pandoc -V geometry:margin=1in -o output.pdf input.md

여러 변수 값도 지정할 수 있습니다. 예를 들어, 0.5 인치 여백을 가진 4 x 6 인치 pdf를 만들려면 다음을 사용할 수 있습니다.

pandoc -V geometry:paperwidth=4in -V geometry:paperheight=6in -V geometry:margin=.5in -o output.pdf input.md

34
최신 버전의 Pandoc variable을 사용하는 경우 템플릿을 처음부터 만들거나 기본 템플릿의 여백을 하드 코딩하는 대신 명령을 사용하여이를 설정할 수도 있습니다 . 예를 들어 1 인치 여백의 경우을 사용할 수 있습니다 pandoc -V geometry:margin=1in -o output.pdf input.md.
A5C1D2H2I1M1N2O1R2T1 1

@mrdwab 정확히 내가 필요한 것입니다. 고마워 수락 할 수 있도록 답변으로 게시하고 싶습니까?
mchangun

8
@mchangun, Gavin의 답변은 기본 Pandoc 템플릿에 포함되지 않은 다른 사용자 정의 LaTeX 패키지를 사용하려는 사용자에게 유용 할 수 있으므로 내 의견을 포함하도록 편집했습니다.
A5C1D2H2I1M1N2O1R2T1

1
판독에 아주 새로운. -V geometry:margin=1in옵션이 효과가 없다는 것을 알았 습니다. 인터넷 검색을 통해 기본 템플릿을 사용하는 경우이 옵션이 적용되지 않는다는 문서가 발견되었습니다 (죄송합니다). 한 페이지 마크 다운 파일을 PDF로 변환하여 다른 사람에게 전단지로 보내려고합니다. 내 빠른 해결책 : 템플릿 파일을 직접 편집하고 줄을 추가하십시오 \usepackage[margin=1.0in]{geometry}. 설치시 파일은 다음과 같습니다./usr/share/pandoc-1.9.1.1/templates
Steve Koch

명령 줄에서 여백 중 하나에 만 영향을 줄 수있는 방법이 있습니까? 저의 책 전체가 맨 아래에 큰 차이가 있으며 그 여백에 영향을 미치고 싶습니다. -V geometry : margin : bottom이 작동하지 않는 것 같습니다.
Austin Fatheree 2012

105

보다 최신 버전의 pandoc에서는 YAML 헤더 에서 여러 매개 변수를 설정할 수 있습니다 . 여기에서 지오메트리를 설정할 수 있습니다.

---
title:  Pandoc nice margins example
author: naught101
geometry: margin=3cm
---

body text of document

pandoc가 pdf로 변환 할 때 올바른 여백이 있어야합니다.


이것은 훨씬 더 나은 솔루션입니다! 편집기에서 문서를 자동으로 작성 Kile하거나 Sublime Text 2/3명령 줄 인수를 변경하는 것이 어려울 때 매우 유용합니다 .
Abhinav
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.