web-dev-qa-db-ja.com

knitr / Rmd:n行/ n距離後の改ページ

これはhtml/cssの質問としてより適しているかもしれないと言って警告させてください、しかし(a)私はそれらのテクニックにあまり精通していませんそして(b)できれば全部家族(R家族)に入れておきたかったです。

knitrを使用して、Rmarkdownを使用してアカデミックスタイルのレポート(APA 6タイプのガイドライン)を作成したいと思います。私はほとんどの側面を解決しましたが、ページを壊すことはありません。次のような方法で改ページを手動で設定できます。

# report

```{r setup, include=FALSE}
# set global chunk options
opts_chunk$set(cache=TRUE)
```
------
## Page 1

```{r plot1}
plot(1:10, 1:10)
```
------
## Page 2

次の.Rmdでは、n行/ n距離の後にこれらのブレークをプログラムで設定したいと思います。それで、8インチまたは140行の後としましょう。

# report

```{r setup, include=FALSE}
# set global chunk options
opts_chunk$set(cache=TRUE)
```
Initial Text. Yay!

```{r plot1}
plot(1:10, 1:10)
```

More Text.  Outstanding.  What Hadley's not calling it plyr2?

```{r plot2, fig.width=4, fig.height=4}
plot(1:10, 1:10)
```

`r paste(rep("So much text so little time!", 10000))`

N距離後に改ページをプログラムで設定するにはどうすればよいですか。これは、LaTeXがファイルをページに分割する方法と似ているため、図のスペースが大きすぎると、次のページに移動します。

[〜#〜]編集[〜#〜]これを友人から見つけました: http://www.w3.org/TR/css3-page / 役立つ場合があります。

70
Tyler Rinker

プログラム的に。 HTMLdivを作成します。このdivの幅と高さを固定量に設定し、オーバーフローをスクロールに設定します。

<div style="height:1000px; width: 500px; overflow-y: scroll;">
    ...
</div>

マークダウンをHTML要素に処理します。私は5つ持っていますh1それぞれ300pxの高さのタグ。

<h1 style="height:300px;">First</h1>
<h1 style="height:300px;">Second</h1>
<h1 style="height:300px;">Third</h1>
<h1 style="height:300px;">Fourth</h1>
<h1 style="height:300px;">Fifth</h1>

これらの5h1すべてが同じページに収まるわけではありません。ページの高さはわずか1,000ピクセルです。たった3h1タグはこのページに収まります。 3番目の要素の後に改ページを挿入する必要があります。

新しいアイテムを1つずつDOMに追加します。各アイテムを挿入した後、ブラウザのスクロールバーが存在するかどうかを確認してください。そうである場合は、挿入したばかりのアイテムがこのページには大きすぎることがわかります。アイテムを削除し、改ページを挿入します。

前:

### First
### Second
### Third
### Fourth
### Fifth

後:

### First
### Second
### Third
------
### Fourth
### Fifth

これはどの要素でも機能し、アイテムの高さを気にする必要はありません。なぜなら、挿入したばかりのアイテムがHTML divをスクロールさせた場合は、改ページが必要だからです。画像、ビデオ、h1、h2、p、カスタム/動的CSS、その他。

[〜#〜]更新[〜#〜]

各div要素の高さを計算することもできます。 http://api.jquery.com/height/ そうすれば、54ページのドキュメントの再計算がはるかに簡単になります。

1
Travis