web-dev-qa-db-ja.com

PDFレポートのR Markdownでの画像とテキストのセンタリング

R Markdownを使用して画像やテキストを中央に配置し、PDFレポートを作成します。

私は使用してみました:

->Text<-

->![](image1.jpg)<-

それはトリックをしません!これを行う他の方法はありますか?

26

Rコードチャンクの出力(プロットなど)を中央に配置する場合は、fig.alignknitrのオプション

```{r fig.align="center"}
plot(mtcars)
```
34
Lincoln Mullen

同じ質問がありました。上記で提供されたすべてのソリューションを試しましたが、どれも機能しませんでした...しかし、私はうまくいくソリューションを見つけました。

<center>

![your image caption](image.png)

</center>

このコードは、画像とキャプションの両方を中央に配置します。 <center>(画像コード)と</center>の間に線を残すことが不可欠です。そうしないと、画像は中央に配置されますが、キャプションは消えます。

画像にクリック可能なリンクが必要な場合は、次のようなものを埋め込むことができます

[![your image caption](image.png)](www.link_to_image.com)

ただし、キャプションは表示されなくなります。

したがって、クリック可能なキャプションが必要な場合は、次の2つの手順で行う必要があります。

<center>

![](image.png)

[your image caption](www.link_to_image.com)

</center>

ここでも同じです。各コマンドの間に空の行があることを確認してください。画像とキャプションの両方をクリック可能にする場合は、上記の中間コードと最後のコードを組み合わせます。これが少し役立つことを願っています。

33

Jonathanからの回答を使用して、LaTeXに画像を挿入し、image1.jpgという名前の画像を挿入して中央に配置したい場合、Rmarkdownのコードは次のようになります。

\begin{center}
\includegraphics{image1}
\end{center}

LaTexはファイルの拡張子(.jpg)を要求していないことに注意してください。この質問は私の答えを得るのに役立ちました。ありがとう。

10
cylondude

R Markdownで生のLaTeXを使用できます。これを試して:

\begin{center}
Text
\end{center}

もちろん、キャッチがあります。begin{...}および\end{...}はPandocによって未加工のLaTeXとして解釈されるため、この手法を使用してRコードチャンクまたはマークダウンコンテンツの出力を中央に配置することはできません。

9
Jonathan

以下を使用して、ドキュメント全体の中央(またはその他)の配置をKnitrオプションとして設定できます。

knitr::opts_chunk$set(echo = TRUE, fig.align="center")
8
Antonio Canepa

あなたのフォーマットがPDFであることがわかっている場合、HTMLタグがどのように役立つかわかりません...それは間違いなく私には機能しないようです。他の純粋なLaTeXソリューションは明らかに問題なく動作します。しかし、Markdownの重要なポイントは、LaTeXを行うことではなく、HTMLを含む複数の形式のコンパイルを可能にすることです。

したがって、これを念頭に置いて、私のために働くのは、 Color Text Stackoverflow question に対するNicolas Hamiltonの答えのバリエーションです

#############
## 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!")`
2
tchevrier

Jonathanが提供する簡単なソリューションは、Pandocをごまかすための修正を加えて機能します。次のような直接のラテックスコマンドの代わりに

\begin{center}
Text
\end{center}

yAMLヘッダーで独自のコマンドを定義できます。

header-includes:
- \newcommand{\bcenter}{\begin{center}}
- \newcommand{\ecenter}{\end{center}}

そして次に使用します:

\bcenter
Text and more
\ecenter

これは、多くのコードチャンクとマークダウンコマンドの間にあるドキュメント全体を中央に配置するのに役立ちます。

2
JuergenL