팬독 생성 PDF에서 새 페이지로 시작하는 장 얻기


20
%Title
%Author

#Header 1

Lots of words.

#Header 2

More words.

##Level 2 header

위의 텍스트는을 (를) 사용하는 e- 리더를 위해 EPUB 파일 pandoc -o output.epub input.mkd로 변환 할 수 있으며을 사용하여 PDF로 변환 할 수 있습니다 pandoc -o output.pdf input.mkd. 후자는 라텍스 엔진을 설치해야하며, 이는 질문에 대한 답변과 관련이있을 수 있습니다.

EPUB를 사용하면 각 수준 1 헤더가 자동으로 새 페이지의 맨 위에 설정됩니다 (더 적은 헤더는 사용되지 않음). PDF의 경우에는 그렇지 않습니다. 마크 다운의 주요 목표에 위배되기 때문에 기본적으로는 그렇게 기대하지 않습니다. 그러나이 동작을 가능하게하는 pandoc 옵션을 찾는 데 문제가 있습니다.

누구든지 pandoc 으로이 동작을 가능하게하는 방법을 알고 있습니까? 구성 파일을 편집하는 것은 용인 할 수 있지만 구문이 라텍스 기반 인 경우 구성에 대한 설명 (라텍스에 대한 포괄적 인 설명이 아니라 구성 파일의 의미에 대한 설명)에 감사하겠습니다!

pandoc의 --chapters옵션은 내가 원하는 것을 해야하는 것처럼 보이지만 ...

  • 챕터를 홀수 페이지에만 표시하고 필요에 따라 빈 페이지를 삽입합니다. 여기에 긍정적 인 미학은 종이 낭비로 상쇄됩니다)
  • Chapter x실제 헤더 앞에 삽입 하면 다음과 같은 어리석은 것들이 발생합니다.

제 1 장

프롤로그

--chapters옵션 을 길들이는 것이 가능하다면 적절한 답변이 될 것입니다.

답변:


28

/tex/9497/start-new-page-with-each-section을 참조 하십시오 .

pandoc에서이 작업을 수행하려면 PDF로가는 동안 pandoc이 생성하는 LaTeX 문서의 프리앰블에 다음을 삽입해야합니다.

\usepackage{titlesec}
\newcommand{\sectionbreak}{\clearpage}

몇 가지 방법이 있습니다. 하나는 프리앰블에서 이러한 라인을 사용하여 사용자 정의 LaTeX 템플릿을 생성하는 것입니다. 그런 다음이 옵션 --template mytemplate.latex을 사용하여 pandoc에게이 템플릿을 사용하도록 지시 할 수 있습니다. 수정할 수있는 기본 LaTeX 템플릿을 얻으려면을 수행하십시오 pandoc -D latex > mytemplate.latex.

다른 옵션은이 titlesec.tex두 줄로 작은 파일을 만드는 것 입니다. 그런 다음 옵션과 함께 pandoc을 호출 --include-in-header titlesec.tex하여 헤더에 포함하십시오.

pandoc --toc --include-in-header titlesec.tex -o output.pdf input1.mkd input2.mkd

고마워요. 대단합니다. 이것은 PDF 내의 링크를 끊고 모든 책갈피 (올바른 단어인지 확실하지 않음)를 1 페이지로 설정하는 단점이 있지만, 주로 실제 인쇄에 사용하지 않기 때문에 크게 중요하지 않습니다. 그것이하지 않는 유일한 것은 목차를 제목과 같은 페이지에 두는 것입니다. 그러나 그것은 전혀 중요하지 않습니다.
evilsoup 2016 년

2
BTW, 당신이 판독을 만든 존 맥팔레인 (John MacFarlane)이라면,이 기회에 감사의 말씀을 전하고 싶습니다. 발견 한 이후, 귀하의 프로그램은 저의 작문 워크 플로우에서 중요한 부분이되었습니다. 또한 LaTeX에 대해 배우기 위해 권장 할만한 자료가 있습니까?
evilsoup 2016 년

4
천만에요. Lamport의 저서 LaTeX : A Document Preparation System으로 시작했습니다.
John MacFarlane

1
titlesec이 현재 pandoc 라텍스 템플릿과 호환되지 않는 것 같습니다. 제안 된 답변으로 라텍스 오류가 발생합니다. sectsty를 사용할 수 있습니다 : \usepackage{sectsty} \sectionfont{\clearpage}.
Merlijn Sebrechts

위의 방법을 사용할 때 오류가 있습니다. 해결책은 여기에 있습니다 .
jdhao

11

내가 끝낸 것은 이것입니다.

pandoc --toc -V documentclass=report -o output.pdf inputs*.mkd

이로 인해 LaTeX 'report'문서 클래스가 사용됩니다 (기본적으로 --chapters, pandoc은 책을 위해 설계된 'book'또는 'memoir'클래스를 사용하는 것 같습니다-책 바인딩을 용이하게하기 위해 각면마다 다른 크기의 여백) , 챕터는 홀수 페이지 등으로 시작합니다.)를 사용하면 레벨 1 헤더를 페이지 상단에 배치 하지만 홀수 페이지 상단 에만 배치 하지는 않습니다 .

이것은 여전히 ​​각 장 앞에 'Chapter X'를 삽입하는데 여전히 성가시다. 또한 목차와 제목이 같은 페이지에서 시작되도록하고 싶습니다 ( '문서'문서 클래스에서 발생하지만 장은 새 페이지의 시작 부분으로 분류되지 않으며 어디에서나 시작됩니다). 그러나 나는 그것을 얻는 것이 내가 가진 것보다 LaTeX에 대한 더 많은 지식을 필요로 할 것이라고 생각 합니다. 이상적인 대답은이 두 가지 문제를 해결하는 방법을 설명하기 때문에 이것을 허용 된 답변으로 표시하지 않을 것입니다.


1

또한 2 년이 지난 후에도이 문제가 계속 발생했습니다. 그래서이 문제를 겪는 다른 사람들을 위해 이것을 찾으십시오 ...

John 의 답변 과 포함 된 다른 링크 덕분에 pandoc -H옵션 으로 파일에 다음을 사용하고 제대로 작동하는 것 같습니다.

% /superuser/601469/getting-chapters-to-start-on-a-new-page-in-a-pandoc-generated-pdf
% http://tex.stackexchange.com/questions/120740/how-do-i-remove-chapter-n-from-the-chapter-titles-of-a-book
\usepackage{titlesec}
\usepackage{fancyhdr}

\newcommand{\sectionbreak}{\clearpage}
\titleformat{\chapter}[display]{\normalfont\bfseries}{}{0pt}{\Large}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[RE]{\leftmark}
\fancyhead[LO]{\rightmark}
\fancyhead[LE,RO]{\thepage}
\renewcommand\headrulewidth{0pt}
\renewcommand\chaptermark[1]{\markboth{#1}{}} 
\renewcommand\sectionmark[1]{\markright{\thesection.\ #1}}

이를 통해 --chapters옵션을 사용하여 페이지 제목 pandoc이없는 새 페이지에서 PDF 챕터를 생성 Chapter XX:합니다. 를 사용 -V documentclass=report하면 book문서 클래스에서 생성 된 페이지 건너 뛰기 및 새 장에서 홀수 페이지 번호 현상없이 원하는 결과를 얻을 수 있습니다.


0

같은 문제가 있었고 YAML 메타 데이터 필드 만 사용하여 솔루션을 게시한다는 것을 알았습니다.

documentclass: report
header-includes:
- \renewcommand{\chaptername}{}
- \renewcommand{\thechapter}{}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.