Knitr के pdf आउटपुट में फिगर कैप्शन के साथ फिगर पोजिशन कैसे रखें?
r-markdown (6)
जैसा कि एंड्रयू ने बताया, यह
fig.pos
काम नहीं करता है, लेकिन अगर यह वैश्विक विकल्पों में डाला जाता है तो यह काम करता है:
```{r global_options, include=FALSE}
knitr::opts_chunk$set(fig.pos = 'H')
```
संपादित करें:
ऊपर स्पष्ट रूप से काम करने के लिए इस्तेमाल किया गया था और प्रस्तावना में
\usepackage{float}
थी:
header-includes:
\usepackage{float}
here भी देखें
मैं knitr (1.9.5 और 1.9.17) और रेकॉर्डडाउन (0.5.3.1) का उपयोग कर रहा हूं, और पीडीएफ आउटपुट में फिगर पोजिशन रखना चाहूंगा।
जब chunk विकल्प
fig.pos="H"
का उपयोग किया जाता है, तो उत्पन्न पीडीएफ फाइल ठीक काम कर रही है।
हालाँकि, अंजीर की स्थिति पकड़ में नहीं
fig_caption: yes
जब
fig_caption: yes
यमल शीर्षक में सेट है।
मुझे इस समस्या को कैसे ठीक करना चाहिए? किसी भी सुझाव के लिए धन्यवाद।
संपादित करें:
लेटेक्स के फ्लोट वातावरण सीखने के बाद।
मैं हेडर में
float
पैकेज जोड़ता हूं।
\usepackage{float}
लेकिन उत्पन्न टेक्स फ़ाइल हमेशा
htbp
में
htbp
का उपयोग
htbp
है किसी भी
fig.pos
संबंध में। विकल्प का उपयोग किया जाता है।
htbp
को
H
मैन्युअल रूप से बदलने के बाद, सभी आंकड़ों की स्थिति पकड़ में है।
यह rmd फ़ाइल का मेरा उदाहरण है:
---
title: "Untitled"
output:
pdf_document:
fig_caption: yes
includes:
in_header: mystyles.sty
---
# Section 1
Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.
Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.
Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.
Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.
```{r fig1, echo=FALSE, fig.height=8.5, fig.pos="H"}
plot(cars)
```
# Section 2
More test
```{r fig2, echo=FALSE, fig.height=8.5, fig.pos="H"}
plot(cars)
```
# Section 3
```{r fig3, echo=FALSE, fig.height=8.5, fig.pos="H"}
plot(cars)
```
More test
जैसा कि यिहुई ने अपने उत्तर में उल्लेख किया है (
चित्रा स्थिति में चित्रात्मक स्थिति जब पीडीएफ को निट और पंडोक के साथ परिवर्तित किया जाता है
), हम मार्डाउन से प्रारूपण के बारे में बहुत अधिक उम्मीद नहीं कर सकते हैं।
इस समस्या को हल करने के लिए,
htbp
को
H
से बदलने के लिए बस कुछ R स्क्रिप्ट
htbp
।
knit
हुआ पैकेज से
knit
तुलना में, मैंने पाया कि रेकॉर्ड से
render
एक
tex
फ़ाइल को निर्यात करने के लिए बेहतर है।
बस
keep_tex: yes
को जोड़ना याद रखें
keep_tex: yes
आपकी रेकॉर्ड फ़ाइल के yaml हेडर में
keep_tex: yes
।
library(rmarkdown)
render('filepath.Rmd')
x <- readLines('filepath.tex')
pos <- grep('begin\\{figure\\}\\[htbp\\]', x)
x[pos] <- gsub('htbp', 'H', x[pos])
writeLines(x, 'filepath.tex')
tools::texi2pdf('filepath.tex', clean = TRUE) # gives foo.pdf
file.remove('filepath.tex')
मेरे लिए काम करने वाला विकल्प:
शुरुआत में
\usepackage{float}
शुरू में:
\usepackage{float}
।
Rmd की शुरुआत में:
knitr::opts_chunk$set(fig.pos = 'H')
।
द
H
ने ऊपरी स्थिति में)।
और एक छवि के साथ हर चंक में:
fig.cap="lorem blabla"
और
out.extra=''
(पैरामीटर मान = खाली स्ट्रिंग)।
परिभाषित करने की आवश्यकता
नहीं
है:
fig_caption: yes
और
keep_tex: yes
में यमल।
ये विकल्प अपनी स्थिति को बनाए रखने के लिए छवि बनाते हैं, या तो
include_graphics
और आर कोड द्वारा उत्पन्न भूखंडों के लिए।
मैंने उन्हें
bookdown
में इस्तेमाल किया, पीडीएफ और एचटीएमएल को उम्मीद के मुताबिक पैदा किया :)
यदि कोई व्यक्ति इस धागे के पार आता है, तो मुझे छोटे केस 'एच' का उपयोग करना पड़ता है और यह आर संस्करण 3.5.3 और लेटेक्स 2018 में काम करता है।
```{r, echo=FALSE, fig.pos="h"}
plot(cars)
```
मार्कडाउन में चित्रा स्थिति से कोड जब knitr और pandoc के साथ पीडीएफ में कनवर्ट करने से मुझे मदद मिलती है, किसी और को इसे उपयोगी खोजने में मदद करें।
---
title: "Example"
author: "Martin"
output: pdf_document
---
```{r}
knitr::knit_hooks$set(plot = function(x, options) {
knitr::hook_plot_tex(x, options)
})
```
```{r myplot, echo=FALSE, results='hide', fig.cap='Test', fig.pos='h'}
library(ggplot2)
ggplot(mtcars, aes(mpg, drat)) + geom_point()
```
अपडेट here इस बेहतर समाधान को देखें। (नीचे दी गई समस्या का सारांश अभी भी अच्छा है, लेकिन बेहतर समाधान के लिए लिंक का अनुसरण करें)।
RStudio में कुछ परीक्षण को संक्षेप में प्रस्तुत करने के लिए
Knitr chunk तर्क fig.pos = "H" लंबे समय तक
fig_caption: yes
रूप में काम करता है
fig_caption: yes
yll हेडर में नहीं है।
उत्पन्न .tex में प्रत्येक आंकड़ा इस तरह दिखता है
\subsection{my_section}\label{my_section}
\begin{figure}[htbp]
\centering
\includegraphics{path_to_fig.pdf}
\caption{}
\end{figure}
लेकिन अगर
fig_caption: yes
yaml हैडर में है तो .tex ऐसा दिखता है
fig_caption: yes
keep_tex: yes
fig.pos = "H"
का उपयोग नहीं किया गया है,
"htbp"
इसके बजाय है।
RStudio का उपयोग करते हुए इसके लिए वर्कअराउंड:
रखना
header-includes: \usepackage{float}
याम्ल में भी
---
title: "Testing fig placement with captions"
author: "Andrew Dolman"
date: "1 September 2015"
output:
pdf_document:
fig_caption: yes
keep_tex: yes
header-includes: \usepackage{float}
---
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.
When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
```{r}
summary(cars)
```
You can also embed plots, for example:
```{r, echo=FALSE, fig.pos="H"}
plot(cars)
```
Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.
```{r, echo=FALSE, fig.pos="H"}
plot(cars)
```
फिर उत्पन्न
[H]
फ़ाइल में
[H]
साथ
[htbp]
को खोजें और बदलें
फिर RStudio में .tex फ़ाइल खोलें और "कंपाइल पीडीएफ" बटन का उपयोग करें।
उदाहरण .Rmd
---
title: "test"
date: "`r Sys.Date()`"
output:
pdf_document :
keep_tex: true
number_sections: true
header-includes:
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{array}
\usepackage{multirow}
\usepackage[table]{xcolor}
\usepackage{wrapfig}
\usepackage{float}
\floatplacement{figure}{H}
---