Najnowsze wersje rmarkdown i pandoc
W nowszych wersjach rmarkdown ustawienia marginesów można wykonać w nagłówku YAML za pośrednictwem elementu najwyższego poziomu geometry
. To, co określisz w geometry
tagu, zostanie przesłane do szablonu LaTeX, który jest dostarczany z Pandocem za pośrednictwem następującego fragmentu kodu LaTeX
$if(geometry)$
\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
$endif$
Na przykład, aby określić marginesy o szerokości 2 cm, należy uwzględnić
---
title: "Habits"
author: John Doe
date: March 22, 2005
geometry: margin=2cm
output: pdf_document
---
Aby uzyskać bardziej złożone specyfikacje, które mają być przekazane do pakietu Geometry LaTeX, opcje łańcuchowe razem, tak jak w przypadku LaTeX:
---
title: "Habits"
author: John Doe
date: March 22, 2005
geometry: "left=3cm,right=3cm,top=2cm,bottom=2cm"
output: pdf_document
---
Oryginalna odpowiedź
To jest pytanie LaTeX, ponieważ Pandoc renderuje do pliku PDF za pośrednictwem LaTeX - to, z czym łączysz się, reprezentuje domyślne marginesy w dokumencie LaTeX.
Na przykład pakiet geometry LaTeX może służyć do zmiany marginesów strony. Będziesz jednak potrzebował sposobu, aby powiedzieć Pandocowi, aby użył tego, włączając go do nagłówka LaTeX zastosowanego do przekonwertowanego pliku md.
Sposób, w jaki to robisz, jest udokumentowany w Podręczniku użytkownika Pandoc . Zobacz w szczególności --template=FILE
argument wiersza poleceń i sekcję Szablony . Zasadniczo albo znajdź i zmodyfikuj domyślny szablon, aby zawierał instrukcje LaTeX, których chcesz użyć, lub uruchom własny szablon od zera i umieść go w odpowiedniej lokalizacji; zobacz --data-dir
argument wiersza poleceń.
Inną alternatywą, jeśli używasz najnowszej wersji Pandoc, jest użycie argumentu zmiennej (ustawionego za pomocą -V KEY[=VAL]
lub --variable=KEY[:VAL]
). geometry
Pakiet został dodany do domyślnego szablonu LaTeX w maju 2012 roku (patrz tę dyskusję ). W związku z tym, jeśli chcesz zmienić marginesy strony, możesz użyć:
pandoc -V geometry:margin=1in -o output.pdf input.md
Możesz także określić wiele wartości zmiennych. Na przykład, jeśli chcesz utworzyć plik PDF o wymiarach 4 na 6 cali z półcalowymi marginesami, możesz użyć:
pandoc -V geometry:paperwidth=4in -V geometry:paperheight=6in -V geometry:margin=.5in -o output.pdf input.md
variable
polecenia, zamiast tworzyć szablon od podstaw lub zakodować marginesy w domyślnym szablonie. Na przykład w przypadku marginesów 1-calowych możesz użyćpandoc -V geometry:margin=1in -o output.pdf input.md
.-V geometry:margin=1in
opcja nie daje żadnego efektu. Poprzez googlowanie znalazłem gdzieś (przepraszam, zgubiłem link) dokumentację mówiącą, że ta opcja nie ma wpływu, jeśli używam domyślnego szablonu. Chcę tylko przekonwertować jednostronicowy plik przeceny na plik PDF, aby wysłać go komuś jako ulotkę. Moje szybkie rozwiązanie: Edytuj plik szablonu bezpośrednio i dodaj wiersz\usepackage[margin=1.0in]{geometry}
. Podczas mojej instalacji plik znajduje się w:/usr/share/pandoc-1.9.1.1/templates
W nowszych wersjach pandoc możesz ustawić szereg parametrów w nagłówku YAML . Możesz tutaj ustawić geometrię, na przykład:
Kiedy pandoc konwertuje go do formatu PDF, powinien mieć prawidłowe marginesy.
źródło
Kile
lub,Sublime Text 2/3
a zmiana argumentów wiersza poleceń byłaby uciążliwa.