2012-10-22 13 views
10

Các ô thông thường được tạo bởi R chunks trong các tệp đánh dấu R chính xác ở đó khi được chuyển đổi sang trang trình bày html hoặc pdf. Tuy nhiên, khi chúng được chuyển đổi thành các trang trình bày beamer theo số pandoc -t beamer ex.md -V theme:Warsaw -o beamer.pdf , các ô trở nên cực kỳ lớn, đặc biệt đối với những trang được tạo bởi par(mfrow=c(n,m)), trong trường hợp này chỉ một phần nhỏ của ô được hiển thị.Các ô trong các beamer slide được chuyển đổi từ .md by pandoc là cực lớn

Tôi đã cố gắng khắc phục bằng cách đặt tùy chọn đoạn dev='pdf' nhưng không hoạt động.

Cốt truyện trong html là enter image description here

Cốt truyện trong máy chiếu là enter image description here

+2

không đáng ngạc nhiên; LaTeX khá tệ khi thiết lập chiều rộng mặc định hợp lý cho hình ảnh PNG (trình duyệt web tốt hơn nhiều); nhìn vào '\ maxwidth' trong trang này http://yihui.name/knitr/demo/framed/ và kết hợp với thủ thuật' \ setkeys {Gin} {width = \ maxwidth} '; Tôi hiểu mọi người có xu hướng tham lam, nhưng LaTeX thực sự là giải pháp tốt nhất cho đầu ra PDF (có một mức giá để trả cho sự đơn giản của Markdown). –

+0

@Yihui Cảm ơn. Hoàn toàn chấp nhận giá. – Elaine

Trả lời

12

Các phiên bản phát triển của pandoc bao gồm một số mã trong các mẫu máy chiếu mà nên mở rộng hình ảnh với độ rộng của các slide. Điều đó có thể hữu ích trong trường hợp của bạn.

Bạn không cần cài đặt phần mềm phát triển để sử dụng, bởi vì thay đổi chỉ là một mẫu. Chỉ cần tạo một bản sao của mẫu beamer mặc định bằng cách sử dụng pandoc -D beamer > my.beamer. Chèn các dòng sau vào my.beamer sau dòng \usepackage{graphicx}:

\makeatletter 
\def\ScaleIfNeeded{% 
    \ifdim\[email protected]@width>\linewidth 
    \linewidth 
    \else 
    \[email protected]@width 
    \fi 
} 
\makeatother 
\setkeys{Gin}{width=\ScaleIfNeeded} 

Sau đó sử dụng pandoc với các tùy chọn --template=my.beamer.

+0

Nó được giải quyết gọn gàng bằng cách sử dụng giải pháp này. Cảm ơn. – Elaine