2017-09-01 5 views
1

Ich möchte sowohl PDF-und PNG-Bilddateien erstellen, wenn ich ein (Latex-) Dokument mit Knitr erstellen. Dies kann mit dev = c ("pdf", "png") erfolgen. Allerdings scheint ich nicht in der Lage zu sein (auf einer Zahlenbasis) zu wählen, welche der beiden in meiner Latexfigur-Umgebung ausgewählt wird. Derzeit ist die einzige Möglichkeit, eine png-Eingabedatei für Bild 1 und eine pdf-Eingabedatei für Bild 2 zu erhalten, nur das benötigte Format zu generieren (mit dev = "png", fig.ext = " png ").Wählen Sie entweder PNG oder PDF in Knitr, wenn beide verfügbar sind

Gibt es einen Weg, auf dem ich noch beides erzeugen kann, aber auf der Latex-Ebene auswählen kann, welcher angezeigt wird? Es könnte leicht gelöst werden, indem ich eine Erweiterung im \ includegraphics-Befehl zulasse, nehme ich an.

Jede Eingabe geschätzt ...

Ron

Minimal Beispiel:

\documentclass[a4paper,12pt]{article} 
%\VignetteEngine{knitr::knitr} 

\DeclareGraphicsExtensions{.pdf,.png} 

\begin{document} 

%\maketitle 
<<knitrInitialization,echo=FALSE>>= 
require("knitr", quietly=TRUE) 
opts_chunk$set(comment=NA,background='transparent',size='small',fig.width=6,fig.height=6,out.width='\\textwidth',dev=c('pdf','png')) 
@ 

%% this one generates two figures, and the pdf version is shown 
%% because of the order in DeclareGraphicsExtensions 
\begin{figure}[tb] 
\centering 
<<testPDF,echo=FALSE>>= 
plot(1:10) 
@ 
\caption{PDF figure} 
\label{fig:pdf} 
\end{figure} 

%% if I want to show a png (e.g., because the pdf is too large) I can 
%% only do that by not generating a pdf in the first place 
\begin{figure}[tb] 
\centering 
<<testPNG,echo=FALSE,dev='png',fig.ext='png'>>= 
plot(1:10) 
@ 
\caption{PNG figure} 
\label{fig:png} 
\end{figure} 


\end{document} 

Antwort

0

Sie einfach

setzen können
\DeclareGraphicsExtensions{.png,.pdf} 

in Ihrem Dokument, wenn Sie PNG Vorrang haben wollen und dann

\DeclareGraphicsExtensions{.pdf,.png} 

später, wenn Sie zurück zur PDF-Präferenz gehen möchten. Dies funktioniert im Body eines LaTeX-Dokuments, nicht nur im Header.

Verwandte Themen