Jadual Kandungan
Markdown
Jekyll
Pandoc
Saya menggunakan
Untuk memasang Pandoc, anda boleh menggunakannya dari laman web rasmi (
Bolehkah saya menyesuaikan penampilan PDF yang dibuat menggunakan pandoc dan lateks?
Bagaimana untuk menukar fail markdown ke PDF menggunakan pandoc dan lateks?
Rumah Peranti teknologi industri IT Membuat PDF dari Markdown dengan Pandoc dan LaTeX

Membuat PDF dari Markdown dengan Pandoc dan LaTeX

Feb 19, 2025 am 09:48 AM

Creating PDFs from Markdown with Pandoc and LaTeX

mata teras

Pengarang artikel ini Chris Ward menerangkan cara menukar fail markdown ke PDF menggunakan Pandoc dan LaTeX untuk kedai cip permainan papan sumber terbuka mereka. Komponen permainan ditulis menggunakan Markdown, dan laman web permainan juga dihasilkan oleh fail -fail ini.

Pandoc (alat penukaran markup sumber terbuka) dan lateks (sistem pengisytiharan dan susun atur dokumen) digunakan untuk menjana PDF dari fail markdown. Walaupun keupayaan mereka yang kuat, mereka tidak dapat menggabungkan pelbagai PDF ke satu halaman, jadi Ward menggunakan alat perintah PDFJAM untuk memenuhi keperluan ini.

Penulis memberikan panduan terperinci tentang cara memasang kebergantungan yang diperlukan (Markdown, Jekyll, Pandoc, LaTeX, Pdfjam), dan secara beransur -ansur memperkenalkan proses membina, termasuk menjana PDF dari markdown, membuat fail lateks, dan menggunakan pdfjam untuk memindahkan kad untuk memindahkan kad untuk memindahkan kad untuk memindahkan kad untuk memindahkan kad untuk memindahkan kad untuk memindahkan kad untuk memindahkan kad Gabungkan pada satu halaman.

aliran kerja yang ideal penulis adalah untuk menghasilkan fail PDF semasa menjana laman web, dan bukannya apabila pelawat memintanya. Pendekatan ini juga membolehkan versi kad PDF kelihatan berbeza dari halaman HTML tanpa menggunakan peraturan CSS kompleks.

Jika anda telah membaca beberapa catatan saya di SitePoint atau di tempat lain, anda mungkin tahu saya sedang mengerjakan permainan papan. Permainan ini, yang dipanggil Chip Shop, membolehkan anda menjalankan syarikat komputer pada tahun 1980 -an Amerika.

Creating PDFs from Markdown with Pandoc and LaTeX Sebagai sebahagian daripada projek, saya cuba membuka sumber keseluruhan permainan sebanyak mungkin. Selepas beberapa percubaan, saya memutuskan untuk menggunakan Markdown sebagai rangka asas untuk kebanyakan komponen permainan (terutamanya kad dan arahan).

Sejak laman web permainan menggunakan Jekyll, laman web permainan dihasilkan dari fail markdown. Saya akan membuat versi pra-kotak premium dan dicetak sendiri dari permainan, yang saya perlukan untuk menghasilkan PDF dari fail markdown.

Target

aliran kerja yang ideal saya adalah untuk menjana fail PDF semasa menjana laman web, bukan apabila pelawat memintanya. Ini tidak termasuk pilihan wkhtmltopdf yang biasanya saya gunakan untuk generasi PDF, kerana ia menghasilkan PDF dari HTML yang dihasilkan. Sebab lain ialah saya mahu versi kad PDF kelihatan berbeza dari halaman HTML, dan Jekyll tidak mempunyai sebarang fungsi "mod view" untuk mencapai ini tanpa menggunakan peraturan CSS yang kompleks.

Fail templat kad permainan Chip Shop Game mengandungi banyak medan pra-maklumat markdown untuk mekanik permainan, tidak semua bidang digunakan pada setiap kad. Untuk percetakan mudah, saya perlu meletakkan kad pada halaman A4 sebanyak mungkin -dalam kes ini, grid 3 × 3. Akhirnya, halaman perlu dicetak di kedua -dua belah pihak, tetapi saya belum melaksanakannya.

Pandoc dan latex

Mana -mana carian web yang menghasilkan penyelesaian PDF dari Markdown akan membawa anda ke jalan Pandoc. Pandoc adalah alat penukaran tanda pisau Swiss Swiss Tentera Swiss yang menyokong pelbagai format input dan output.

Untuk menjana PDF menggunakan Pandoc, lateks diperlukan. Latex berasal dari komuniti penyelidikan saintifik dan merupakan sistem pengisytiharan dan susun atur dokumen. Digabungkan dengan Pandoc dan LaTeX, kita boleh menggunakan pembolehubah untuk menjana PDF dari satu siri fail markdown dan pra-maklumat sokongan markdown.

Walaupun Pandoc dan Latex yang kuat, saya tidak dapat mencari cara untuk menggabungkan pelbagai PDF (kad) ke satu halaman, terutamanya apabila menggunakan pembolehubah dalam fail markdown. Selepas banyak penyelidikan, saya memilih PDFJam, alat baris arahan mudah untuk keperluan ini.

Memasang Dependencies

Markdown

Anda tidak memerlukan perisian markdown tambahan selain mungkin memerlukan editor, terdapat banyak editor, dan saya cadangkan anda membaca beberapa artikel SitePoint untuk membuat pilihan anda.

Jekyll

Saya akan terus menggunakan Jekyll untuk menggambarkan proses binaan dalam contoh -contoh yang diambil dari permainan saya, tetapi jika anda tidak memerlukan laman web, ia bukan sebahagian daripada generasi PDF yang diperlukan.

Pandoc

Pada Mac saya, saya memasang Pandoc menggunakan homebrew, tetapi semua sistem operasi mempunyai pilihan yang sepadan.

LaTeX

Terdapat banyak perkataan mengenai cara terbaik untuk memasang lateks, bergantung kepada keperluan anda atau bagaimana anda berhasrat menggunakannya. Pemasangan penuh alat dan perpustakaannya mungkin hampir dengan 2GB, tetapi untuk kebanyakan tujuan pemasangan minimum adalah mencukupi. Baca halaman muat turun projek untuk mencari pilihan yang paling sesuai untuk anda.

Dalam tutorial ini, kami akan menggunakan enjin Xelatex kerana saya menggunakan fon tersuai. Walau bagaimanapun, anda boleh memilih mana -mana enjin yang menyediakan ciri -ciri khusus yang anda perlukan.

pdfjam

Bergantung pada cara anda memasang lateks, anda mungkin memasang pdfjam. (Jenis pdfjam yang mana di terminal untuk memeriksa.) Jika anda tidak memasangnya, cari butiran pemasangan di sini.

Proses bangunan

Selepas beberapa pertimbangan, saya menjalankan skrip bash yang berjalan secara tempatan nampaknya menjadi pilihan terbaik pada masa ini. Terdapat cara yang lebih baik, tetapi ia berfungsi, dan saya dapat memperbaiki proses kemudian, memindahkannya ke sistem integrasi berterusan atau cangkuk git.

Lihat skrip bash pada GitHub.

mari memperkenalkan langkah skrip ini dengan langkah sekarang.

Tetapan

bundle install
bundle update

rm -dfr _site
rm -dfr pod
Perintah ini memastikan bahawa kebergantungan ruby ​​yang diperlukan oleh Jekyll untuk membina laman web adalah terkini, dan kami memadamkan mana -mana laman web dan folder cetak yang sedia ada.

Bina laman web

jekyll build
mkdir -p pod/pdf/cards
Seterusnya, kami membina laman web dan membuat folder untuk versi cetak kad.

menjana pdf dari markdown

mari buat folder yang mengandungi setiap versi markdown versi 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
Skrip ini mengendalikan setiap fail markdown dalam direktori _cards, pastikan untuk memerhatikan medan pra-maklumat markdown. Menggunakan templat kad.LATEX (yang akan kami sampaikan kemudian), enjin lateks yang betul mengeluarkan PDF dengan nama yang sesuai.

fail lateks

Kebanyakan sihir menjana fail kad dari Pandoc berlaku dalam templat lateks.

Lihat templat lateks pada github.

lateks baru kepada saya, tetapi ia tidak terlalu rumit. Saya akan menerangkan apa yang saya ubah dari fail lateks lalai (terletak di Pandoc_install_dir/data/templat/default.latex) untuk mendapatkan kad berfungsi dengan betul. Saya cadangkan ShareLateX.com untuk pratonton mereka semasa mengedit fail lateks.

bundle install
bundle update

rm -dfr _site
rm -dfr pod

Kami memerlukan saiz halaman tertentu dan kami akan menggunakan lajur untuk menunjukkan kos dan skor kad kemudian. Kami menggunakan grafik dan fon tersuai, jadi kami memerlukan pakej ini.

Kami cuba membuat susun atur yang jelas dan ringkas. Inilah cara kami melaksanakannya:

jekyll build
mkdir -p pod/pdf/cards

Saya fikir banyak perkara di atas agak mudah difahami untuk sesiapa yang digunakan untuk kod atau penandaan. Kami mencipta unsur -unsur kad, menjajarkannya, menetapkan saiz fon dan memeriksa jika terdapat nilai, dan kemudian mengeluarkannya supaya kad itu tidak berakhir dengan medan kosong.

kami mengubah saiz imej ke saiz tertentu dan memusatkannya. Nilai kos dan skor disusun dalam dua lajur, ditetapkan menggunakan perintah permulaan {tabular}, dan bilangan lajur ditetapkan menggunakan bilangan l.

Creating PDFs from Markdown with Pandoc and LaTeX

menggabungkan kad pada satu halaman

kami menggunakan pdfjam untuk membuat fail pdf besar dengan setiap kad PDF individu:

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
Gunakan arahan ini, kami menentukan yang berikut:

    orientasi halaman harus selalu menegak
  • setiap pdf individu harus dibingkai
  • saiz grid
  • Suffix Nama Fail
  • Nama fail
pdfjam boleh memberikan ralat jika anda tidak mengeluarkan ke direktori kerja, jadi saya memindahkan fail ke tempat yang saya mahukan (mudah -mudahan ia akan diselesaikan pada masa akan datang). Di sini kita juga boleh memadam satu fail PDF jika kita tidak memerlukannya.

Itu sahaja - kami mempunyai PDF laman web dan kad permainan yang boleh dicetak.

Creating PDFs from Markdown with Pandoc and LaTeX Jalankan skrip

Saya menggunakan

untuk menjalankan skrip binaan. Oleh kerana terdapat banyak imej dan pemprosesan PDF, ia mengambil masa kira -kira lima hingga sepuluh minit. Kemudian saya mempunyai skrip berasingan untuk menggunakan folder ini ke pelayan web.

./build.sh

Langkah seterusnya

Proses ini membawa saya sedikit masa untuk mendapatkannya dengan betul, tetapi cukup baik sekarang untuk terus memperbaiki proses dan susun atur selepas ujian permainan.

Saya harap anda dapati penyelidikan dan eksperimen saya berguna untuk projek anda. Sekiranya anda mempunyai komen atau cadangan, sila beritahu saya.

FAQs (FAQs) tentang membuat PDF dari Markdown menggunakan Pandoc dan LaTeX

bagaimana memasang pandoc dan lateks pada sistem saya?

Untuk memasang Pandoc, anda boleh menggunakannya dari laman web rasmi (

//m.sbmmt.com/link/8f1dd6e7a88b9cf615c146330c591ba9

.

Bolehkah saya menyesuaikan penampilan PDF yang dibuat menggunakan pandoc dan lateks?

Ya, anda boleh menggunakan templat lateks untuk menyesuaikan penampilan PDF. Pandoc menggunakan templat lalai untuk menjana PDF, tetapi anda boleh menentukan templat anda sendiri menggunakan pilihan --template. Anda boleh membuat templat anda sendiri atau menggunakan salah satu daripada banyak templat yang terdapat dalam talian, seperti yang terdapat di Repositori GitHub Template Wandmalfarbe Pandoc.

Bagaimana untuk menukar fail markdown ke PDF menggunakan pandoc dan lateks?

3 Ganti

dengan nama fail markdown anda dan pandoc yourfile.md -o yourfile.pdf dengan nama yang dikehendaki dari fail pdf anda. Perintah ini memberitahu Pandoc untuk menukar fail markdown ke PDF menggunakan templat lateks lalai. yourfile.md yourfile.pdf (seluruh kandungan FAQ adalah sama dengan teks asal, ditinggalkan di sini untuk mengelakkan pertindihan)

Atas ialah kandungan terperinci Membuat PDF dari Markdown dengan Pandoc dan LaTeX. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1582
276
Majoriti jurutera memintas kawalan keselamatan untuk melakukan pekerjaan mereka & ndash; Sebagai cita -cita amanah sifar tidak dipenuhi Majoriti jurutera memintas kawalan keselamatan untuk melakukan pekerjaan mereka & ndash; Sebagai cita -cita amanah sifar tidak dipenuhi Jul 25, 2025 am 02:31 AM

Bilangan jurutera yang mengejutkan menghalang protokol keselamatan hanya untuk melaksanakan tugas harian mereka -dan ramai yang terus memegang akses walaupun selepas keluar dari syarikat itu. Menerima kaji selidik baru -baru ini yang dijalankan bagi pihak Tailscale, 83% dari IT dan Eng

Bagaimana untuk mendapatkan kebencian secara percuma di Airtel? Bagaimana untuk mendapatkan kebencian secara percuma di Airtel? Jul 30, 2025 am 12:28 AM

Bosan menghadapi sekatan semasa menggunakan chatgpt? Atau adakah anda merancang untuk membeli akaun premium untuk membuka lebih banyak ciri? Mengapa tidak mendapatkannya secara percuma! Baru-baru ini, pengendali telekom yang terkenal Airtel mengumumkan bahawa ia akan menyediakan perkhidmatan langganan Pro Pro Pro kepada semua pengguna, yang telah menarik perhatian yang meluas. Langkah ini bukan sahaja menarik sejumlah besar pengguna untuk menyertai Airtel, tetapi juga membawa perkhidmatan langganan Perlplexity Pro ke penglihatan orang ramai. Anda mungkin tertanya -tanya sama ada Perbecahan Pro patut dipertimbangkan di kalangan banyak model besar seperti chatgpt dan Gemini? Artikel ini akan menjawab soalan ini untuk anda. Kami akan memperkenalkan kebingungan apa,

Mengajar bertanggungjawab dengan AI, Webinar #2: Literasi Media dan AI Mengajar bertanggungjawab dengan AI, Webinar #2: Literasi Media dan AI Jul 26, 2025 am 12:22 AM

Ini menandakan ansuran kedua pengajaran kami secara bertanggungjawab dengan siri Webinar AI. Untuk sesi bertajuk Bot atau tidak? MEDIA MEDIA DAN AI LEACEACY ke dalam strategi pengajaran pendidikan tinggi, kami diberi penghormatan untuk menjadi tuan rumah Stephanie Speicher, Digital F

Rancangan AMD untuk NPU berdedikasi yang kuat boleh menjadi berita hebat bukan hanya untuk peminat AI - tetapi untuk pemain PC juga Rancangan AMD untuk NPU berdedikasi yang kuat boleh menjadi berita hebat bukan hanya untuk peminat AI - tetapi untuk pemain PC juga Aug 02, 2025 am 02:03 AM

Ketua CPU klien AMD mengatakan ia melihat ke arah accelerator NPU yang berdedikasi akan menjadi bersamaan dengan GPU yang diskret, tetapi untuk papan-tugas AI akan mengurangkan permintaan pada GPU yang lebih tinggi, kerana mereka tidak lagi dibeli untuk kerja AI, kerana mereka berada di

Organisasi menghadapi timebomb yang berdetik atas tadbir urus AI Organisasi menghadapi timebomb yang berdetik atas tadbir urus AI Jul 29, 2025 am 01:07 AM

Laporan baru-baru ini oleh Trustmarque mendedahkan bahawa banyak organisasi gagal menangani risiko khusus AI semasa pembangunan dan penggunaan sistem kecerdasan buatan.

Eksperimen AI ini mendedahkan bagaimana chatgpt, kebingungan, claude, dan banyak lagi berfikir Eksperimen AI ini mendedahkan bagaimana chatgpt, kebingungan, claude, dan banyak lagi berfikir Jul 26, 2025 am 01:35 AM

Bolehkah AI membantu kita berfikir dengan lebih jelas? Kami sering bercakap tentang AI sebagai alat untuk menulis, produktiviti, atau terapi. Tetapi akhir -akhir ini, saya telah bereksperimen dengan sesuatu yang berbeza. Bagaimana jika kita merawat AI kurang seperti pencipta kandungan dan lebih seperti berfikir

Usahawan Serial Simon Squibb bertindak balas kepada 3 padang permulaan AI dari Chatgpt, dan ia tidak pergi seperti yang diharapkan Usahawan Serial Simon Squibb bertindak balas kepada 3 padang permulaan AI dari Chatgpt, dan ia tidak pergi seperti yang diharapkan Jul 25, 2025 am 02:15 AM

Anda mungkin sudah tahu Simon Squibb - dia mengumpulkan lebih dari 17 juta pengikut di seluruh platform sosial dan menulis apa impian anda?, Yang paling baik pada Sunday Times No.

Orang ramai meminta chatgpt bagaimana menghilangkan ayam mati 73kg dan hasilnya lucu Orang ramai meminta chatgpt bagaimana menghilangkan ayam mati 73kg dan hasilnya lucu Aug 06, 2025 am 05:39 AM

Setiap hari, saya melihat chatgpt prompt sehingga tidak masuk akal ia membuat saya hampir tercekik pada teh saya -dan menghantar saya berlari ke papan kekunci saya untuk menulis tentangnya. Hari ini sama sekali tidak terkecuali.

See all articles