検索
ホームページテクノロジー周辺機器IT業界PandocとLaTexを使用してMarkdownからPDFを作成します

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 までご連絡ください。
GOでネットワークの脆弱性スキャナーを構築しますGOでネットワークの脆弱性スキャナーを構築しますApr 01, 2025 am 08:27 AM

このGOベースのネットワーク脆弱性スキャナーは、潜在的なセキュリティの弱点を効率的に識別します。 Goの同時機能機能を速度で活用し、サービスの検出と脆弱性のマッチングが含まれます。その能力と倫理を探りましょう

2025年のトップ10のベスト無料バックリンクチェッカーツール2025年のトップ10のベスト無料バックリンクチェッカーツールMar 21, 2025 am 08:28 AM

ウェブサイトの構築は最初のステップに過ぎません:SEOとバックリンクの重要性 ウェブサイトを構築することは、それを貴重なマーケティング資産に変換するための最初のステップにすぎません。検索エンジンでのWebサイトの可視性を向上させ、潜在的な顧客を引き付けるために、SEO最適化を行う必要があります。バックリンクは、ウェブサイトのランキングを改善するための鍵であり、Googleや他の検索エンジンにWebサイトの権限と信頼性を示しています。 すべてのバックリンクが有益であるわけではありません:有害なリンクを特定して回避する すべてのバックリンクが有益であるわけではありません。有害なリンクはあなたのランキングに害を及ぼす可能性があります。優れた無料のバックリンクチェックツールは、ウェブサイトへのリンクのソースを監視し、有害なリンクを思い出させます。さらに、競合他社のリンク戦略を分析し、それらから学ぶこともできます。 無料のバックリンクチェックツール:SEOインテリジェンスオフィサー

Baiduの別の国の製品は、Deepseekに接続されていますか?Baiduの別の国の製品は、Deepseekに接続されていますか?Mar 12, 2025 pm 01:48 PM

DeepSeek-R1はBaidu LibraryとNetDiskを支援します。深い思考と行動の完璧な統合は、わずか1か月で多くのプラットフォームに迅速に統合されました。大胆な戦略的レイアウトにより、BaiduはDeepSeekをサードパーティモデルのパートナーとして統合し、それをそのエコシステムに統合します。これは、「ビッグモデル検索」の生態学的戦略の大きな進歩を示しています。 Baidu SearchとWenxin Intelligent Intelligent Platformは、DeepSeekおよびWenxin Bigモデルの深い検索関数に最初に接続し、ユーザーに無料のAI検索エクスペリエンスを提供します。同時に、「Baiduに行くときにあなたが知っている」という古典的なスローガンとBaiduアプリの新しいバージョンは、WenxinのBig ModelとDeepseekの機能も統合し、「AI検索」と「ワイドネットワーク情報の改良」を起動します。

Deepseekへの最初のAndroidアクセスの背後:女性の力を見るDeepseekへの最初のAndroidアクセスの背後:女性の力を見るMar 12, 2025 pm 12:27 PM

AIの分野での中国の女性の技術力の台頭:Deepseekの女性の技術分野への貢献とのコラボレーションの背後にある物語は、ますます重要になっています。中国の科学技術省からのデータは、女性科学技術労働者の数が巨大であり、AIアルゴリズムの開発においてユニークな社会的価値感度を示していることを示しています。この記事では、携帯電話の名誉に焦点を当て、その背後にある女性チームの強さを探り、Deepseek Bigモデルに最初に接続し、技術の進歩を促進し、技術開発の価値座標系を再構築する方法を示します。 2024年2月8日、Honorは、Deepseek-R1 FullbloodバージョンのBig Modelを正式に立ち上げ、Android Campで最初のメーカーになり、Deepseekに接続し、ユーザーから熱狂的な反応を喚起しました。この成功の背後にある女性チームメンバーは、製品の決定、技術的なブレークスルー、ユーザーを行っています

Deepseekの「驚くべき」利益:理論的利益率は545%です!Deepseekの「驚くべき」利益:理論的利益率は545%です!Mar 12, 2025 pm 12:21 PM

DeepseekはZhihuに関する技術記事をリリースし、Deepseek-V3/R1推論システムを詳細に導入し、初めて主要な財務データを開示し、業界の注目を集めました。この記事は、システムの毎日のコストの利益率が545%に高いことを示しており、グローバルなAIビッグモデルの利益の新たな高値を設定しています。 Deepseekの低コスト戦略は、市場競争において有利になります。モデルトレーニングのコストは同様の製品の1%から5%であり、V3モデルトレーニングのコストはわずか5576百万米ドルであり、競合他社のコストよりもはるかに低くなっています。一方、R1のAPI価格設定は、Openaio3-Miniの1/7〜1/2です。これらのデータは、DeepSeekテクノロジールートの商業的実現可能性を証明し、AIモデルの効率的な収益性も確立します。

Mideaは、最初のDeepSeekエアコンを起動します。AIVoiceInteractionは400,000コマンドを達成できます!Mideaは、最初のDeepSeekエアコンを起動します。AIVoiceInteractionは400,000コマンドを達成できます!Mar 12, 2025 pm 12:18 PM

Mideaは、Deepseek Big Model -Midea Fresh and Clean Air Machine T6を装備した最初のエアコンをリリースします。このエアコンには、環境に応じて温度、湿度、風速などのパラメーターをインテリジェントに調整できる、高度な空気インテリジェントな駆動システムが装備されています。さらに重要なことは、DeepSeek Big Modelを統合し、400,000を超えるAI Voiceコマンドをサポートすることです。 Mideaの動きは、業界での激しい議論を引き起こし、特に白物と大規模なモデルを組み合わせることの重要性を懸念しています。従来のエアコンの単純な温度設定とは異なり、Midea Fresh and Clean Air Machine T6は、より複雑で曖昧な指示を理解し、家庭環境に従って湿度をインテリジェントに調整し、ユーザーエクスペリエンスを大幅に改善します。

See all articles

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境