我想使用R Markdown将图像和/或文本居中,然后用它编写PDF报告。
我尝试过使用:
->Text<-
->![](image1.jpg)<-
这不是诀窍!完成这项任务的其他任何方式?
答案 0 :(得分:34)
我有同样的问题。我已经尝试了上面提供的所有解决方案,但没有一个能够工作......但我找到了一个适合我的解决方案,并希望其他人能够使用。
<center>
![your image caption](image.png)
</center>
此代码将以图像和标题为中心。您必须在<center>
,图片代码和</center>
之间留下线条,否则图片将居中但标题将会消失。
如果您希望图片具有可点击链接,则可以嵌入
之类的内容[![your image caption](image.png)](www.link_to_image.com)
但是,标题将不再出现。
因此,如果您想要一个可点击的标题,则必须分两步完成:
<center>
![](image.png)
[your image caption](www.link_to_image.com)
</center>
同样,确保每个命令之间都有空行。如果您希望图像和标题都可以单击,则将上面的中间和最后一个代码组合在一起。我希望这有点帮助。
答案 1 :(得分:32)
如果您将R代码块的输出居中,例如情节,则可以使用fig.align
option in knitr。
```{r fig.align="center"}
plot(mtcars)
```
答案 2 :(得分:10)
我使用Jonathan的答案谷歌将图像插入到LaTeX中,如果你想插入一个名为image1.jpg的图像并让它居中,你的代码可能在Rmarkdown中看起来像这样
\begin{center}
\includegraphics{image1}
\end{center}
请记住,LaTex并未要求提供文件扩展名(.jpg)。这个问题帮助我得到答案。谢谢。
答案 3 :(得分:8)
您可以在R Markdown中使用原始LaTeX。试试这个:
\begin{center}
Text
\end{center}
当然有一个问题:begin{...}
和\end{...}
之间的所有内容都被Pandoc解释为原始LaTeX,所以你不能使用这种技术来集中R代码块的输出,或Markdown内容。
答案 4 :(得分:7)
您可以使用以下方法将整个文档的中心(或其他)对齐设置为Knitr选项:
knitr::opts_chunk$set(echo = TRUE, fig.align="center")
答案 5 :(得分:2)
如果您知道您的格式是PDF,那么我看不到HTML标记如何 可能会有用...它似乎绝对不适合我。其他纯LaTeX解决方案显然可以正常工作。但是Markdown的全部目的不是做LaTeX,而是允许我相信包括HTML在内的多种格式的编译。
因此,考虑到这一点,对我有用的是Nicolas Hamilton对Color Text Stackoverflow question的回答的一种变体:
#############
## CENTER TXT
ctrFmt = function(x){
if(out_type == 'latex' || out_type == 'beamer')
paste0("\\begin{center}\n", x, "\n\\end{center}")
else if(out_type == 'html')
paste0("<center>\n", x, "\n</center>")
else
x
}
我将其放入我的初始设置块中。
然后,我很容易在我的.rmd
文件中使用它:
`r ctrFmt("Centered text in html and pdf!")`
答案 6 :(得分:2)
乔纳森(Jonathan)给出的简单解决方案是对作弊者潘多克(欺诈)的修改。代替直接的乳胶命令,例如
\begin{center}
Text
\end{center}
您可以在YAML标头中定义自己的命令:
header-includes:
- \newcommand{\bcenter}{\begin{center}}
- \newcommand{\ecenter}{\end{center}}
然后您使用:
\bcenter
Text and more
\ecenter
这对我来说很有效,它使整个文档居中,中间有许多代码块和markdown命令。
答案 7 :(得分:2)
基于fenced div
,现在有一个更好的解决方案,更加优雅,已在pandoc
中实现,如here所述:
::: {.center data-latex=""}
Some text here...
:::
您需要做的就是相应地更改css
文件。例如,以下块完成了该工作:
```{cat, engine.opts = list(file = "style.css")}
.center {
text-align: center;
}
```
(显然,您也可以直接将块的内容键入到.css
文件中...)。
tex
文件包含正确的居中命令。
此方法的关键优势在于,它允许在块内编写markdown
代码。
在我之前的回答中,r ctrFmt("Centered **text** in html and pdf!")
不会为“文本”一词加粗,但如果在fenced div
内则会加粗。
对于图像等,lua
过滤器可用here
答案 8 :(得分:2)
我正在使用 beamer 从 Rmarkdown 编织 pdf,对我有用的是:
\centering
![](image1.jpg)
答案 9 :(得分:0)
所有输出类型的答案都不能以相同的方式起作用,其他答案都集中在代码块内的图形绘图而不是外部图像上。
include_graphics()
函数提供了一种简单的解决方案。唯一的参数是文件名(如果位于子文件夹中,则具有相对路径)。通过将echo
设置为FALSE
和fig.align=center
,可以得到理想的结果。
```{r, echo=FALSE, fig.align='center'}
include_graphics("image.jpg")
```
答案 10 :(得分:0)
没有一个答案有效,但这个
\newcommand{\bcenter}{\begin{center}}
\newcommand{\ecenter}{\end{center}}
但是接下来的问题是它只适用于一个数字,然后不适用于任何其他数字。
我刚开始学习 R 我知道这会很困难,但最糟糕的是,我可以参考的信息很少甚至没有。