Linux コマンドラインでファイルを変換するための pandoc の使い方
Linuxではpandocを使用して40以上のファイル形式に変換できます。また、Markdownで書き、保存することによってシンプルなドキュメント・アズ・コードシステムを作成することもできます。
git, およびサポートされている形式での出版。
ドキュメント変換とコードとしてのドキュメント
もしあなたがどのような文書をお持ちの場合は
pandoc's多くのサポートされているファイル形式があり、他の形式への変換は簡単です。これは便利なツールです!
しかし、pandocの真の力は、シンプルなドキュメントとしてのコードシステムの基盤としてそれを使用する時に明らかになります。ドキュメントとしてのコードの前提は、ソフトウェア開発のいくつかの技術や原則を採用し、特にソフトウェア開発プロジェクトのための文書作成に適用することです。それは、いかなる種類の文書の開発にも適用できます。
ソフトウェア開発者は、お気に入りのエディタや統合開発環境(IDE)を使用してプログラムを作成します。彼らが入力するコードはテキストファイルに保存されます。これらはプログラムのソースコードを含んでいます。
彼らはバージョン管理システム、またはVCS(最も人気のあるのはGit)を使用して、ソースコードの変更を開発および強化の過程でキャッチします。これは、プログラマーがソースコードファイルのすべてのバージョンの完全な履歴を持つことを意味します。彼または彼女は、ファイルの以前のバージョンに迅速にアクセスできます。Gitはファイルをリポジトリに保存します。各開発者のコンピュータにはローカルリポジトリがあり、中央の共有リモートリポジトリはしばしばクラウド上でホストされています。
プログラムの動作するバージョンを作成する準備ができたとき、彼らはコンパイラを使用してソースコードを読み取り、バイナリ実行可能ファイルを生成します。
軽量でテキストベースのマークアップ言語で文書を書くことにより、VCSを使用して執筆のバージョン管理を行うことができます。文書を配布または公開する準備が整ったら、pandoc を使用して必要な数だけの異なるバージョンの文書を生成できます。これには、ウェブベース(HTML)、ワードプロセッサまたは組版(LibreOffice、Microsoft Word、TeX)、ポータブルドキュメントフォーマット(PDF)、電子書籍(ePub)などが含まれます。
これらすべてを、一組のバージョン管理された軽量テキストファイルから行うことができます。
pandocをインストールする
Ubuntuにpandocをインストールするには、このコマンドを使用します:
sudo apt-get install pandocFedoraでは、必要なコマンドは以下の通りです:
sudo dnf install pandoc
Manjaroでは、次のように入力する必要があります:
sudo pacman -Syu pandocインストールされているバージョンは、--versionオプションを使用して確認できます。
pandoc --versionファイルを使用せずにpandocを使う
もしコマンドラインオプションなしでpandocを使用すると、タイプした入力も受け付けます。入力が完了したら、Ctrl+Dを押してください。pandocはMarkdown形式での入力を期待しており、HTML出力を生成します。
例を見てみましょう:
pandoc私たちはいくつかのMarkdownの行を入力し、Ctrl+Dを押そうとしています。
私たちがそれを行うとすぐに、pandocは同等のHTML出力を生成します。
pandocを使って何か有用なことをするためには、ファイルを使用する必要があります。
マークダウンの基本
Markdownは軽量マークアップ言語であり、特定の文字に特別な意味が与えられています。Markdownファイルを作成するには、プレーンテキストエディタを使用できます。
Markdownは簡単に読めます。視覚的に煩わしいタグがないため、テキストから気を散らすことがありません。Markdownドキュメントのフォーマットは、それが表現するフォーマットに似ています。以下は基本的な内容のいくつかです:
- テキストをイタリックで強調するには、アスタリスクで囲みます。
*これが強調されます* - 太字テキストには、2つのアスタリスクを使用します。
**これが太字になります** - 見出しは、ナンバーサイン/ ハッシュマーク (
#) で表されます。テキストはハッシュからスペースで区切られます。トップレベルの見出しには1つのハッシュ、2番目のレベルの見出しには2つのハッシュを使用します。 - 箇条書きを作成するには、リストの各行の先頭にアスタリスクを付け、その前にスペースを挿入します。
- 番号付きリストを作成するには、各行を数字の後にピリオドを付けて始め、テキストの前にスペースを挿入します。
- ハイパーリンクを作成するには、サイトの名前を角かっこ(
[])で囲み、URLを丸かっこ(())で囲みます。例えば、次のようにします:[How to Geekへのリンク](https://linux-console.net/). - 画像を挿入するには、角括弧の直前に感嘆符を入力します(
![])。ブラケット内に画像の代替テキストを入力します。それから、画像のパスをカッコで囲みます [()]. 例として、があります。
次のセクションでは、これらすべての例をさらに紹介します。
ファイルを変換する
ファイル変換は簡単です。pandocは通常、ファイル名からどのファイル形式を使用しているかを判断できます。ここでは、MarkdownファイルからHTMLファイルを生成します。-o(出力)オプションは、pandocに作成したいファイルの名前を知らせます。
pandoc -o sample.html sample.md私たちのサンプルMarkdownファイル、sample.mdには、以下の画像に示された短いMarkdownのセクションが含まれています。
sample.htmlというファイルが作成されます。ファイルをダブルクリックすると、デフォルトのブラウザがそれを開きます。
では、LibreOffice Writerで開くことができるOpen Document Formatのテキストドキュメントを生成しましょう。
pandoc -o sample.odt sample.mdODTファイルはHTMLファイルと同じ内容です。
画像の代替テキストが、図のキャプションを自動的に生成するためにも使用されるという素晴らしい工夫があります。
ファイル形式の指定
-f(from)および-t(to)オプションは、pandocに変換したいファイル形式を指定するために使用されます。これは、他の関連フォーマットとファイル拡張子を共有しているファイル形式で作業している場合に便利です。たとえば、TeXとLaTeXはどちらも「.tex」拡張子を使用します。
私たちはまた、-s(スタンドアロン)オプションを使用しているので、pandoc は、文書が完全で、自己完結型で、きちんとした LaTeX 文書になるために必要なすべての LaTeX プレアンブルを生成します。-s(スタンドアロン)オプションがない場合でも、出力は他の LaTeX 文書にスロットできるきちんとした LaTeX ですが、スタンドアロンの LaTeX 文書としては正しく解析されません。
私たちは次のように入力します:
pandoc -f markdown -t latex -s -o sample.tex sample.mdテキストエディタで「sample.tex」ファイルを開くと、生成されたLaTeXを見ることができます。LaTeXエディタがある場合は、TEXファイルを開いて、LaTeX組版コマンドがどのように解釈されるかのプレビューを見ることができます。ウィンドウを下の画像に合わせて小さくすると、表示が窮屈に見えましたが、実際には問題ありませんでした。
私たちはTexmakerというLaTeXエディタを使用しました。Ubuntuにインストールしたい場合は、次のコマンドを入力してください:
sudo apt-get install texmakerFedoraでは、コマンドは次のとおりです:
sudo dnf install texmakerManjaroでは、次のように使用します:
sudo pacman -Syu texmakerテンプレートを使用したファイルの変換
あなたはおそらく、pandocが提供する柔軟性を理解し始めているでしょう。一度書けば、ほとんどすべてのフォーマットで公開できます。それは素晴らしい偉業ですが、文書は少し平凡に見えます。
テンプレートを使用することで、ドキュメントを生成する際に使用するスタイルを pandoc に指示することができます。例えば、--css オプションを使って、Cascading Style Sheets (CSS) ファイルに定義されたスタイルを pandoc に使用させることができます。
以下のテキストを含む小さなCSSファイルを作成しました。レベルヘッダー1のスタイルの上下の間隔を変更します。また、テキストの色を白に、背景色を青の色合いに変更します:
h1 {
color: #FFFFFF;
background-color: #3C33FF;
margin-top: 0px;
margin-bottom: 1px;
}
完全なコマンドは以下の通りです---スタンドアロンオプション(-s)も使用したことに注意してください。
pandoc -o sample.html -s --css sample.css sample.mdpandoc は私たちのミニマリスト CSS ファイルからの単一のスタイルを使用し、それをレベル 1 ヘッダーに適用します。
HTMLファイルを扱う際に利用できる別のファインチューニングオプションは、MarkdownファイルにHTMLマークアップを含めることです。これは生成されたHTMLファイルに標準のHTMLマークアップとして渡されます。
この技術は、HTML出力を生成している場合にのみ使用すべきです。複数のファイル形式で作業している場合、pandocは非HTMLファイルのHTMLマークアップを無視し、それらはテキストとして渡されます。
ODTファイルが生成されるときに使用されるスタイルを指定することもできます。空のLibreOffice Writer文書を開き、見出しとフォントスタイルをニーズに合わせて調整します。私たちの例では、ヘッダーとフッターも追加しました。「odt-template.odt」として文書を保存してください。
これをテンプレートとして、--reference-docオプションを使用できます:
pandoc -o sample.odt --reference-doc=odt-template.odt sample.mdこれを先程のODTの例と比較してください。この文書は異なるフォントを使用しており、色付きの見出しがあり、ヘッダーとフッターが含まれています。ただし、これは全く同じ「sample.md」Markdownファイルから生成されました。
参照文書テンプレートは、文書の制作のさまざまな段階を示すために使用できます。たとえば、「ドラフト」や「レビュー用」といった透かしがあるテンプレートを持っているかもしれません。透かしのないテンプレートは、完成した文書に使用されます。
PDFを生成する
デフォルトでは、pandocはPDFファイルを生成するためにLaTeX PDFエンジンを使用します。適切なLaTeX依存関係を満たすための最も簡単な方法は、TexmakerのようなLaTeXエディタをインストールすることです。
それはかなり大きなインストールですが、TeXとLaTeXの両方はかなり重いです。ハードドライブの空き容量が限られている場合や、TeXまたはLaTeXを使用することがないと分かっている場合は、ODTファイルを生成する方が良いかもしれません。その後、LibreOffice Writerで開いてPDFとして保存することができます。
コードとしてのドキュメント
Markdownをライティング言語として使用することには、以下のようないくつかの利点があります:
- プレーンテキストファイルで作業するのは速い:それらは同じサイズのワードプロセッサファイルよりも早く読み込まれ、ドキュメント内を移動するのも早くなります。
gedit、Vim、Emacsを含む多くのエディタは、Markdownテキストに対して構文ハイライトを使用します。 - ドキュメントのすべてのバージョンのタイムラインが得られます: ドキュメントをGitなどのVCSに保存すると、同じファイルの任意の2つのバージョン間の違いを簡単に見ることができます。ただし、これはファイルがプレーンテキストである場合にのみ実際に機能します。なぜなら、VCSはプレーンテキストで作業することを期待しているからです。
- VCSは誰がどのような変更をいつ行ったかを記録できます:これは、大規模なプロジェクトで他の人と頻繁に協力する場合に特に役立ちます。また、文書自体のための中央リポジトリも提供します。GitHub、GitLab、BitBucketなどの多くのクラウドホスティングされたGitサービスは、料金モデルに無料プランを提供しています。
- ドキュメントを複数の形式で生成できます: 簡単なシェルスクリプトをいくつか使うことで、CSSからスタイルを取り込み、参考文献を参照することができます。ソフトウェアがビルドされるたびに自動的に生成されるように、ドキュメントを継続的インテグレーションおよび継続的デプロイメント(CI/CD)プラットフォームと統合されたVCSリポジトリに保存すると良いでしょう。
最後の考え
ここで取り上げた以上に、pandocにはさらに多くのオプションや機能があります。ほとんどのファイルタイプの変換プロセスは微調整が可能です。もっと学ぶには、公式の(非常に詳細な)pandocウェブページにある優れた例をチェックしてください。
Linuxコマンド | ||
ファイル | t | |
プロセス | A | |
ネットワーキング | netstat |
関連: 開発者と愛好者のための最高のLinuxノートパソコン


















