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}
---




r-markdown