私はしたいと思います右Sublime Text 3 でテキストを列に揃えます (Win 8.1 上、FWIW)。
つまり、これを変換したいのです
Time Cash Flow
0 -500
1 100
2 200
3 300
この中に
Time Cash Flow
0 -500
1 100
2 200
3 300
この究極の目標は
Time Cash Flow
----- ----------
0 -500
1 100
2 200
3 300
これはシンプルなテーブルでパンドックalignment
およびパッケージを試しましたAlignTab
が、これらは、必要な列の位置合わせではなく、一部の区切り文字の位置合わせに特化しているようです。
これを実行するには何かコツがありますか? vi または Excel を必要とするソリューションも検討します。
答え1
さて、ここでは、Excel または CVS をエクスポートできるその他のスプレッドシート プログラムを使用するソリューションを紹介します。
インストールする必要があります新しくリリースされた「csv2table」というサードパーティのフィルター(<- GitHub リポジトリ) Pandoc 用。
以下でも入手可能スタンドアロンフィルター。
スタンドアロン フィルターを次のようにインストールします。
mkdir ${HOME}/bin wget https://gist.githubusercontent.com/baig/b69e3146251bd90d12e7/raw/d8c8171fbe0ad5543f8aaf0a134250b29c689e57/csv2table.hs \ -O ${HOME}/bin/pandoc-csv2table.hs chmod a+x ${HOME}/bin/pandoc-csv2table.hs export PATH=${HOME}/bin:${PATH}
しかし、私が好むインストール方法は
cabal
:cabal update export PATH=${HOME}/.cabal/bin:${PATH} cabal install cabal-install cabal install pandoc-csv2table
このフィルターで何ができるのでしょうか?
外部 CSV ファイルを Markdown に含めるには、次の操作を行います...
...悪用するか構文を含む画像このような:
![](/path/to/file.csv)
...または悪用することでフェンスで囲まれたコードブロック構文は次のようになります:
```` {.table source="/path/to/file.csv" <list-of-attributes>} ````
...または、次のように CSV 行を「フェンス テーブル セクション」に直接挿入します。
```` {.table <list-of-attributes>} one,two,three 1,2,3 100,2000,55555 ````
Pandoc コマンドライン内でフィルターを呼び出すと、
--filter=pandoc-csv2table
CSV はすべての出力形式のテーブルに変換されます。さらに、Pandoc でサポートされているほぼすべての書式設定をテーブルに適用できます。
- 属性を使用し
type="multiline"
て を作成しますmultiline_table
。 type="pipe"
を作成するために使用しますpipe_table
。type="simple"
を作成するために使用しますsimple_table
。caption="My ***important*** caption for this table"
表のキャプションを追加するために使用します。(マークダウン形式を含めることができます。)header="no"
列ヘッダーのないテーブルが必要な場合に使用します(指定されていない場合は、デフォルト値が使用されますheader="yes"
)。- 今、あなたが望む機能は次のとおりです:
aligns=LRCDR
列の配置 (左から右) を左、右、中央、デフォルト、右の順に並べ替える場合に使用します。
- 属性を使用し
例
次の
my.csv
ファイルを考えてみましょう:Time,"*Cash* Flow","Third column" 0,-500,loooooooooooong data field with many words 1,*100*, ***2***,`2000`,shorte **3**,30000,(second line is empty)
(ご覧のとおり、CSV 行の一部のデータ フィールドには Markdown マークアップも使用しています)
次の Markdown を考えてみましょう
my.md
。# 見出し ```` {.table source="./my.csv" aligns="LRCR" type="multiline" caption="いくつかの***キャプション***"} 「」
このコマンドを実行して、CSV 入力から Markdown の複数行テーブル出力を生成します。
pandoc my.md --filter=pandoc-csv2table -t マークダウン
次の出力を参照してください。
このコマンドを実行して、CSV 入力から複数行のテーブルを含む PDF 出力を生成します。
pandoc my.md --filter=pandoc-csv2table -o my.pdf
この出力(スクリーンショット)をご覧ください:
生成したい場合「パイプテーブル」配置を示すコロン構文を使用する場合は、Markdown とコマンドラインを少し変更する必要があります。
マークダウンの変更
type="pipe"
表の書式設定オプションに含めるもの:# 見出し ```` {.table source="./my.csv" aligns="LRCR" type="pipe" caption="いくつかの***キャプション***"} 「」
コマンドラインを変更する出力を要求するには
markdown_phpextra+table_captions
:pandoc my.md --filter=pandoc-csv2table -t markdown_phpextra+table_captions
出力を見てみましょう:
もちろん、他のすべての出力形式でも機能します。
答え2
別の解決策があります。Pandoc ではpipe_tables
次の形式が必要であり、左揃え、中央揃え、右揃えを処理できます。
| Right | Left | Default | Center |
|------:|:-----|---------|:------:|
| 12 | 12 | 12 | 12 |
| 123 | 123 | 123 | 123 |
| 1 | 1 | 1 | 1 |
: Demonstration of pipe table syntax.
列をパイプで区切ると|
、終わったら
alignment
まずSublime Text 3のパッケージにパイプを揃えます- 次に、コロンを手動で追加し直して
:
、目的の位置合わせを実現します。
これは @Kurt のフィルターほど簡単ではありませんが (堅牢性もまったくありません :) )、かなり簡単です。