cari
RumahPeranti teknologiindustri ITMembuat PDF dari Markdown dengan Pandoc dan LaTeX

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 (

https://www.php.cn/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
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
Di belakang akses Android pertama ke DeepSeek: Melihat Kekuatan WanitaDi belakang akses Android pertama ke DeepSeek: Melihat Kekuatan WanitaMar 12, 2025 pm 12:27 PM

Kebangkitan kuasa teknologi wanita Cina dalam bidang AI: kisah di sebalik kerjasama Honor dengan sumbangan wanita DeepSeek ke bidang teknologi menjadi semakin penting. Data dari Kementerian Sains dan Teknologi China menunjukkan bahawa bilangan pekerja sains wanita dan teknologi sangat besar dan menunjukkan kepekaan nilai sosial yang unik dalam pembangunan algoritma AI. Artikel ini akan memberi tumpuan kepada telefon bimbit menghormati dan meneroka kekuatan pasukan wanita di belakangnya menjadi yang pertama untuk menyambung ke model besar DeepSeek, menunjukkan bagaimana mereka dapat mempromosikan kemajuan teknologi dan membentuk semula sistem koordinat nilai pembangunan teknologi. Pada 8 Februari 2024, Honor secara rasmi melancarkan model besar versi penuh darah DeepSeek-R1, menjadi pengeluar pertama di kem Android untuk menyambung ke Deepseek, membangkitkan sambutan bersemangat dari pengguna. Di sebalik kejayaan ini, ahli pasukan wanita membuat keputusan produk, penemuan teknikal dan pengguna

Keuntungan 'menakjubkan' Deepseek: Margin keuntungan teoritis adalah setinggi 545%!Keuntungan 'menakjubkan' Deepseek: Margin keuntungan teoritis adalah setinggi 545%!Mar 12, 2025 pm 12:21 PM

DeepSeek mengeluarkan artikel teknikal mengenai Zhihu, memperkenalkan sistem inferensi DeepSeek-V3/R1 secara terperinci, dan mendedahkan data kewangan utama untuk kali pertama, yang menarik perhatian industri. Artikel ini menunjukkan bahawa margin keuntungan kos harian sistem adalah setinggi 545%, menetapkan keuntungan model AI besar global yang tinggi. Strategi kos rendah DeepSeek memberikan kelebihan dalam persaingan pasaran. Kos latihan modelnya hanya 1% -5% daripada produk yang serupa, dan kos latihan model V3 hanya AS $ 5.576 juta, jauh lebih rendah daripada pesaingnya. Sementara itu, harga API R1 hanya 1/7 hingga 1/2 OpenAIO3-Mini. Data -data ini membuktikan kelayakan komersil laluan teknologi DeepSeek dan juga mewujudkan keuntungan yang cekap model AI.

Midea melancarkan penghawa dingin DeepSeek yang pertama: Interaksi Suara AI boleh mencapai 400,000 arahan!Midea melancarkan penghawa dingin DeepSeek yang pertama: Interaksi Suara AI boleh mencapai 400,000 arahan!Mar 12, 2025 pm 12:18 PM

Midea tidak lama lagi akan melepaskan penghawa dingin pertama yang dilengkapi dengan model besar DeepSeek - Midea Fresh and Clean Air Machine T6. Penghawa dingin ini dilengkapi dengan sistem memandu pintar udara maju, yang boleh menyesuaikan parameter dengan bijak seperti suhu, kelembapan dan kelajuan angin mengikut alam sekitar. Lebih penting lagi, ia mengintegrasikan model besar DeepSeek dan menyokong lebih daripada 400,000 arahan suara AI. Langkah Midea telah menyebabkan perbincangan yang hangat dalam industri, dan sangat prihatin terhadap kepentingan menggabungkan barangan putih dan model besar. Tidak seperti tetapan suhu mudah penghawa dingin tradisional, mesin udara segar dan bersih T6 dapat memahami arahan yang lebih kompleks dan samar -samar dan secara bijak menyesuaikan kelembapan mengikut persekitaran rumah, dengan ketara meningkatkan pengalaman pengguna.

Top 10 alat pemeriksa backlink terbaik terbaik pada tahun 2025Top 10 alat pemeriksa backlink terbaik terbaik pada tahun 2025Mar 21, 2025 am 08:28 AM

Pembinaan laman web hanyalah langkah pertama: kepentingan SEO dan backlinks Membina laman web hanyalah langkah pertama untuk mengubahnya menjadi aset pemasaran yang berharga. Anda perlu melakukan pengoptimuman SEO untuk meningkatkan keterlihatan laman web anda di enjin carian dan menarik pelanggan yang berpotensi. Backlinks adalah kunci untuk meningkatkan kedudukan laman web anda, dan ia menunjukkan Google dan enjin carian lain kuasa dan kredibiliti laman web anda. Tidak semua pautan balik bermanfaat: mengenal pasti dan mengelakkan pautan yang berbahaya Tidak semua pautan balik bermanfaat. Pautan yang berbahaya boleh membahayakan kedudukan anda. Pemeriksaan backlink percuma yang sangat baik memantau sumber pautan ke laman web anda dan mengingatkan anda tentang pautan yang berbahaya. Di samping itu, anda juga boleh menganalisis strategi pautan pesaing anda dan belajar dari mereka. Alat Pemeriksaan Backlink Percuma: Pegawai Perisikan SEO anda

Satu lagi produk kebangsaan dari Baidu disambungkan ke Deepseek.Satu lagi produk kebangsaan dari Baidu disambungkan ke Deepseek.Mar 12, 2025 pm 01:48 PM

DeepSeek-R1 memberi kuasa kepada Perpustakaan Baidu dan Netdisk: Integrasi Perfaikan dan Tindakan yang sempurna telah diintegrasikan dengan cepat ke dalam banyak platform dalam masa satu bulan sahaja. Dengan susun atur strategik yang berani, Baidu mengintegrasikan Deepseek sebagai rakan model pihak ketiga dan mengintegrasikannya ke dalam ekosistemnya, yang menandakan kemajuan besar dalam strategi ekologi "carian model besar". Platform Pintar Pintar Wenxin dan Wenxin adalah yang pertama menyambung ke fungsi carian Deep dari model besar DeepSeek dan Wenxin, yang menyediakan pengguna dengan pengalaman carian AI percuma. Pada masa yang sama, slogan klasik "Anda Akan Tahu Apabila Anda Pergi ke Baidu", dan versi baru aplikasi Baidu juga mengintegrasikan keupayaan model besar Wenxin dan Deepseek, melancarkan "AI Search" dan "Refinement Rangkaian Wide Rangkaian"

Membina pengimbas kelemahan rangkaian dengan pergiMembina pengimbas kelemahan rangkaian dengan pergiApr 01, 2025 am 08:27 AM

Pengimbas kelemahan rangkaian berasaskan GO ini dengan cekap mengenal pasti kelemahan keselamatan yang berpotensi. Ia memanfaatkan ciri konkurensi Go untuk kelajuan dan termasuk pengesanan perkhidmatan dan pemadanan kelemahan. Mari kita meneroka keupayaan dan etika

Kejuruteraan segera untuk pembangunan webKejuruteraan segera untuk pembangunan webMar 09, 2025 am 08:27 AM

AI Prompt Engineering untuk Generasi Kod: Panduan Pemaju Landskap pembangunan kod bersedia untuk peralihan yang ketara. Menguasai model bahasa yang besar (LLM) dan kejuruteraan segera akan menjadi penting bagi pemaju pada tahun -tahun akan datang. Th

See all articles

Alat AI Hot

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.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa