15

私は、現実世界の状況で可能な限り少ないオーバーヘッドで単語テーブルを作成するための Tal のイントロで遊んでいます。(再現可能な例については、こちらを参照してください - ありがとう、Tal!) 実際のアプリケーションでは、テーブルを縦向きのページに印刷するには幅が広すぎますが、分割したくない場合があります。

pandoc または pander のドキュメントでこれを見落としていたら申し訳ありませんが、R から Word .docx ファイルに書き込むときにページの向き (縦/横) を制御するにはどうすればよいですか?

たぶん、knitr+markdown を使い始めたことを追加する必要があるかもしれませんが、LaTex 構文にはまだ慣れていません。しかし、私は自分の仕事をやり遂げながら、できるだけ多くのものを手に入れようとしています.

4

2 に答える 2

17

--reference-docxdocx ライターにはセクション区切りが実装されていないと確信しています。また、ページ レイアウトではなくスタイルをカスタマイズできることを理解している限り(ただし、ここでも間違っている可能性があります)、これは次の pandocs ガイドからのもの--reference-docxです。

--reference-docx=ファイル

docx ファイルを生成する際に、指定されたファイルをスタイル リファレンスとして使用します。最良の結果を得るために、リファレンス docx は、pandoc を使用して作成された docx ファイルの修正版である必要があります。リファレンス docx の内容は無視されますが、そのスタイルシートは新しい docx で使用されます。コマンド ラインで参照 docx が指定されていない場合、pandoc はユーザー データ ディレクトリでファイル reference.docx を探します (--data-dir を参照)。これも見つからない場合は、適切なデフォルトが使用されます。pandoc で使用されるスタイルは次のとおりです。[段落] 通常、タイトル、作成者、日付、見出し 1、見出し 2、見出し 3、見出し 4、見出し 5、ブロック引用、定義用語、定義、本文、表のキャプション、画像のキャプション; [文字] デフォルトの段落フォント、本文の文字、逐語的な文字、脚注の参照、リンク。

ドキュメントの/word/styles.xmlコンポーネントに保存されるスタイルです。docx一方、ページレイアウトはタグ内の/word/document.xmlコンポーネントに保存されます<w:sectPr>が、pandoc の docx ライターは、私が知る限り、この部分を無視しています。

docx ライターは、デフォルトで、ヘッダー、段落、単純な表などの要素を含む継続的なドキュメントを作成します... html 出力によく似ています。


オプション #1 (ページの向きの問題は解決しません):

スタイルで定義できる唯一のページ レイアウト オプションはpageBreakBefore、特定のスタイルの前に改ページを追加する です。

オプション#2(エレガントに見えますが、テストされていません):

最近、特定の Pandoc ブロックを出力ファイルに書き込む方法を定義できるカスタム スクリプトを可能にするカスタムライターが追加されましluaた。つまり、特定のブロックを挿入するためのセクション区切りとページ レイアウトを定義できる可能性があります。sectPrタグをドキュメントに挿入します。私はこれを試していませんが、調査する価値があります。pandoc github で、カスタム html 出力用のサンプル lua スクリプト ファイルを確認できます

ただし、これは、lua をインストールし、言語を学習する必要があることを意味します。時間を投資する価値があると考えるかどうかは、あなた次第です。

オプション #3 (Word で数回クリックするだけで十分です):

セクションを挿入する方法、適切なサイズ、余白、およびテーブルをそのようなレイアウトに合わせる方法の設定にかなりの時間を費やす可能性があるため、ドキュメントを書き込むには pandoc を使用することをお勧めします。 docx を Word で開き、手動でレイアウトを行います。

  • 横向きのページで必要なテーブルを選択します
  • [レイアウト] > [余白]に移動
    > [適用先: 選択したテキスト] を選択
    > [ページ設定] を選択 > [横向き] を選択

これで、横向きの新しいセクションがテーブルを囲むはずです。

とにかく、おそらくやりたいことは、テーブルとテーブルのキャプションを少しスタイリングして(フォントサイズなど)、最良の結果を達成することです(すべてのテキストスタイリングは、--reference-docx便利な pandoc ですでに適用できます)。

オプション #4 (docx の代わりに pdf を使用できる場合):

私が理解できる限り、pandoc を使用すると、md -> docx(配置、スタイルなど) のテーブルでうまく機能し、tex -> docx時々問題が発生することがありました。ただし、オプションでpdf出力が許可されている場合は、ラテックスがあなたの親友になります. たとえば、問題は使用するだけで簡単に解決されます

\usepackage{pdflscape}

これをテーブルの周りに追加します

\begin{landscape}
...
\end{landscape}

これは、これまでのところ私が考えることができるオプションです。

レポートには PDF 形式を使用することを常にお勧めします。これは、ラテックスを使用して好みに合わせてスタイルを設定でき、レイアウトが思いどおりになるためです。

しかし、さまざまな理由から、Word 文書が依然として多くの分野で原稿をレビューする主な方法であることも知っています... したがって、提案されたオプション 3 を使用する可能性が最も高いでしょう。通常、配置やスタイルがぎこちない大量の巨大なテーブルを含むドキュメントは多くありません。

幸運を ;-)

于 2013-04-26T12:17:12.380 に答える
4

ここでのタレブの回答といくつかのofficerパッケージ機能に基づいて、次のように使用できる小さな要点を作成しました。

---
title: "Example"
author: "Dan Chaltiel"
output: 
  word_document:
    pandoc_args:
     '--lua-filter=page-break.lua'
---

I'm in portrait

\endLandscape

I'm in landscape

\endPortrait

I'm in portrait again

ここでpage-breaks.luaホストされているファイル: https://gist.github.com/DanChaltiel/e7505e62341093cfdc489265963b6c8f

これは完璧とは言えません (たとえば、最後のポートレート セクションがないと機能しません) が、非常に役立つ場合があります。

于 2019-12-30T11:04:45.713 に答える