目次
マークダウン
jekyll
pandoc
latex
PandocとLaTexを使用して作成されたPDFSの外観をカスタマイズできますか?
ホームページ テクノロジー周辺機器 IT業界 PandocとLaTexを使用してMarkdownからPDFを作成します

PandocとLaTexを使用してMarkdownからPDFを作成します

Feb 19, 2025 am 09:48 AM

Creating PDFs from Markdown with Pandoc and LaTeX

コアポイント

この記事の著者であるChris Wardは、オープンソースボードゲームチップショップにPandocとLaTexを使用してMarkdownファイルをPDFに変換する方法を説明します。ゲームコンポーネントはMarkdownを使用して記述され、ゲームWebサイトもこれらのファイルによって生成されます。

Pandoc(オープンソースマークアップ変換ツール)とLaTex(ドキュメント宣言とレイアウトシステム)を使用して、MarkdownファイルからPDFを生成します。強力な機能にもかかわらず、複数のPDFを単一ページに結合することはできないため、WardはコマンドラインツールPDFJAMを使用してこの要件を満たしています。

著者は、必要な依存関係(Markdown、Jekyll、Pandoc、LaTex、PDFJAM)のインストール方法に関する詳細なガイドを提供し、マークダウンからPDFを生成し、ラテックスファイルの作成、PDFJAMを使用してカードを転送するなど、ビルドプロセスを徐々に導入します。 1つのページに組み合わせます。

著者の理想的なワークフローは、訪問者がそれを要求するときではなく、ウェブサイトを生成しながらPDFファイルを生成することです。また、このアプローチにより、PDFカードバージョンは、複雑なCSSルールを使用せずにHTMLページとは異なるように見えます。

Creating PDFs from Markdown with Pandoc and LaTeX プロジェクトの一環として、私はゲーム全体を可能な限りオープンしようとしました。数回の試みの後、私はほとんどのゲームコンポーネント(特にカードと指示)の基本的なフレームワークとしてMarkdownを使用することにしました。

ゲームWebサイトではJekyllを使用しているため、ゲームWebサイトはMarkdownファイルから生成されます。ゲームのプレミアムプレボックス付きの自己印刷バージョンを作成します。これにより、MarkdownファイルからPDFを生成する必要があります。

ターゲット

私の理想的なワークフローは、訪問者がそれを要求するときではなく、ウェブサイトを生成しながらPDFファイルを生成することです。これは、生成されたHTMLからPDFを生成しているため、私が通常PDF生成に使用するwkhtmltopdfを除外します。もう1つの理由は、PDFカードバージョンをHTMLページとは異なるように見せたいということです。Jekyllには、複雑なCSSルールを使用せずにこれを実現するための「ビューモード」機能がありません。

チップショップゲームのカードマークダウンテンプレートファイルには、ゲームメカニクス用の多くのマークダウン前情報フィールドが含まれています。すべてのカードがすべてのカードで使用されるわけではありません。簡単に印刷するには、A4ページにカードをできるだけ何度も配置する必要があります。この場合、3×3グリッドです。最終的に、ページは両側に印刷する必要がありますが、まだ実装していません。

pandocとlatex

MarkdownからPDFソリューションを生成するWeb検索は、Pandocのパスに導かれます。 Pandocは、さまざまな入力および出力マーク形式をサポートするオープンソースのスイスアーミーナイフマーク変換ツールです。

pandocを使用してPDFを生成するには、LaTexが必要です。ラテックスは科学研究コミュニティに由来し、文書宣言およびレイアウトシステムです。 PandocとLaTexと組み合わせて、変数を使用して一連のMarkdownファイルからPDFを生成し、マークダウンの情報をサポートできます。

強力なPandocとLaTexにもかかわらず、特にMarkdownファイルで変数を使用する場合、複数のPDF(カード)を単一ページに組み合わせる方法が見つかりません。多くの調査の後、私はこのニーズのための簡単なコマンドラインツールであるPDFJAMを選択しました。

依存関係のインストール

マークダウン

エディターが必要であることに加えて、追加のマークダウンソフトウェアは必要ありません。編集者がたくさんいます。選択するためにいくつかのSitePoint記事を読むことをお勧めします。

jekyll

Jekyllを使用して、ゲームから取得した例でビルドプロセスを説明し続けますが、Webサイトが必要ない場合は、PDF世代の必要な部分ではありません。

pandoc

Macでは、HomeBrewを使用してPandocをインストールしましたが、すべてのオペレーティングシステムには対応するオプションがあります。

latex

ニーズや使用方法に応じて、ラテックスをインストールする最良の方法については多くの言葉があります。その一般的なツールとライブラリの完全な設置は2GBに近い場合がありますが、ほとんどの目的では、最小限のインストールで十分です。プロジェクトのダウンロードページを読んで、最適なオプションを見つけてください。

このチュートリアルでは、カスタムフォントを使用するため、Xelatexエンジンを使用します。ただし、必要な特定の機能を提供するエンジンを選択できます。

pdfjam

LaTexのインストール方法によっては、PDFJAMをインストールした可能性があります。 (ターミナルのPDFJAMを入力して確認してください。)インストールがない場合は、こちらのインストールの詳細を探してください。

ビルディングプロセス

ある程度検討した後、私は地元で実行されているBashスクリプトを実行しています。現時点では最良の選択肢のようです。より良い方法がありますが、それは機能し、後でプロセスを改善し、連続統合システムまたはGitフックに転送することができます。

githubでbashスクリプトを表示します。

このスクリプトを段階的に紹介しましょう。

設定

bundle install
bundle update

rm -dfr _site
rm -dfr pod
ログイン後にコピー
ログイン後にコピー
これらのコマンドにより、JekyllがWebサイトを構築するために必要なRubyの依存関係が最新であり、既存のWebサイトと印刷フォルダーを削除しました。

Webサイトを作成します

jekyll build
mkdir -p pod/pdf/cards
ログイン後にコピー
ログイン後にコピー
次に、Webサイトを構築し、カードの印刷バージョン用のフォルダーを作成します。

Markdown

からPDFを生成します

各マークダウンファイルPDFバージョンを含むフォルダーを作成しましょう。

このスクリプトは、_Cardsディレクトリ内の各マークダウンファイルを処理し、マークダウンプレフォーメーションフィールドを必ず監視します。 Cards.Latexテンプレート(後でカバーします)を使用して、正しいLaTexエンジンは適切な名前でPDFを出力します。

for filename in _cards/*.md; do
  echo $filename
  pandoc --from=markdown+yaml_metadata_block --template _layouts/cards.latex -o pod/pdf/cards/"$(basename "$filename" .md)".pdf --latex-engine=xelatex $filename
done
ログイン後にコピー
ログイン後にコピー
latexファイル

Pandocからカードファイルを生成する魔法のほとんどは、LaTexテンプレートで発生します。

Githubでラテックステンプレートを表示します。

ラテックスは私にとって新しいものですが、それほど複雑ではありません。デフォルトのLATEXファイル(pandoc_install_dir/data/templates/default.latex)から変更したものを説明して、カードを適切に動作させます。 LaTexファイルを編集するときにプレビューするために、shareLatex.comをお勧めします。

bundle install
bundle update

rm -dfr _site
rm -dfr pod
ログイン後にコピー
ログイン後にコピー

特定のページサイズが必要であり、列を使用して後でカードのコストとスコアを表示します。グラフィックとカスタムフォントを使用しているため、これらのパッケージが必要です。

明確で簡潔なシンプルなレイアウトを作成しようとしています。実装方法は次のとおりです

jekyll build
mkdir -p pod/pdf/cards
ログイン後にコピー
ログイン後にコピー
上記の多くは、コードやタグ付けに慣れている人にとっては非常に簡単に理解できると思います。カードの要素を作成し、それらを調整し、フォントサイズを設定し、値があるかどうかを確認し、カードが空のフィールドにならないように出力します。

画像を特定のサイズにサイズ変更し、中央に配置します。コストとスコアの値は2つの列に配置され、begin {tabular}コマンドを使用して設定され、列の数はlの数を使用して設定されます。

Creating PDFs from Markdown with Pandoc and LaTeX 1ページにカードを組み合わせる

PDFJAMを使用して、個々のPDFカードで大きなPDFファイルを作成します。

このコマンドを使用して、以下を指定します

ページの向きは常に垂直
for filename in _cards/*.md; do
  echo $filename
  pandoc --from=markdown+yaml_metadata_block --template _layouts/cards.latex -o pod/pdf/cards/"$(basename "$filename" .md)".pdf --latex-engine=xelatex $filename
done
ログイン後にコピー
ログイン後にコピー
でなければなりません

個々のPDFはフレーム化する必要があります

    グリッドサイズ
  • ファイル名接尾辞
  • ファイル名
  • PDFJAMは、作業ディレクトリに出力していない場合、エラーを発生させる可能性があるため、ファイルを実際に望む場所に移動します(将来解決されることを願っています)。ここでは、単一のPDFファイルを必要としない場合は削除することもできます。
  • それだけです - 私たちはウェブサイトとゲームカードの印刷可能なPDFを持っています。

スクリプトを実行

Creating PDFs from Markdown with Pandoc and LaTeX を使用してビルドスクリプトを実行します。多くの画像とPDF処理があるため、約5〜10分かかります。次に、これらのフォルダーをWebサーバーに展開するための個別のスクリプトがあります。

次のステップ

./build.sh

このプロセスは、それを正しくするのに少し時間がかかりましたが、ゲームテスト後もプロセスとレイアウトを改善し続けるのに十分です。

私の研究と実験があなたのプロジェクトに役立つと思うことを願っています。コメントや提案がある場合は、お知らせください。

PandocとLaTexを使用してMarkdownからPDFを作成することについての

FAQ(FAQS)私のシステムにPandocとLaTexをインストールする方法は?

Pandocをインストールするには、公式Webサイト(

https://www.php.cn/link/8f1dd6e7a88b9cf615c146330c591ba9

PandocとLaTexを使用して作成されたPDFSの外観をカスタマイズできますか?

はい、LaTexテンプレートを使用して、PDFの外観をカスタマイズできます。 Pandocはデフォルトのテンプレートを使用してPDFSを生成しますが、オプションを使用して独自のテンプレートを指定できます。独自のテンプレートを作成したり、Wandmalfarbe Pandoc LaTexテンプレートGitHubリポジトリにあるなど、オンラインで利用可能な多くのテンプレートのいずれかを使用できます。 --template

PandocとLaTexを使用してMarkdownファイルをPDFに変換する方法は?

マークダウンファイルをPDFに変換するには、端末またはコマンドプロンプトで次のコマンドを使用できます:

。 Markdownファイルの名前にpandoc yourfile.md -o yourfile.pdfを置き、yourfile.mdをPDFファイルの目的の名前に置き換えます。このコマンドは、Pandocに、デフォルトのLatexテンプレートを使用してMarkdownファイルをPDFに変換するように指示します。 yourfile.pdf

(FAQコンテンツの残りの部分は元のテキストと同じです。ここでは、複製を避けるために省略しています)

以上がPandocとLaTexを使用してMarkdownからPDFを作成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CNCF ARM64パイロット:インパクトと洞察 CNCF ARM64パイロット:インパクトと洞察 Apr 15, 2025 am 08:27 AM

このパイロットプログラム、CNCF(クラウドネイティブコンピューティングファンデーション)、アンペアコンピューティング、Equinix Metal、およびActuatedのコラボレーションであるCNCF GithubプロジェクトのARM64 CI/CDが合理化されます。 このイニシアチブは、セキュリティの懸念とパフォーマンスリムに対処します

AWS ECSとLambdaを備えたサーバーレス画像処理パイプライン AWS ECSとLambdaを備えたサーバーレス画像処理パイプライン Apr 18, 2025 am 08:28 AM

このチュートリアルは、AWSサービスを使用してサーバーレスイメージ処理パイプラインを構築することをガイドします。 APIゲートウェイ、Lambda関数、S3バケット、およびDynamoDBと対話するECS Fargateクラスターに展開されたnext.jsフロントエンドを作成します。 th

2025年に購読する上位21の開発者ニュースレター 2025年に購読する上位21の開発者ニュースレター Apr 24, 2025 am 08:28 AM

これらのトップ開発者ニュースレターを使用して、最新のハイテクトレンドについてお知らせください! このキュレーションされたリストは、AI愛好家からベテランのバックエンドやフロントエンド開発者まで、すべての人に何かを提供します。 お気に入りを選択し、Relを検索する時間を節約してください

See all articles