Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Post History

75%
+4 −0
Q&A How to convert a markdown file to PDF?

It feels like it has become a bit trickier to do so, but pandoc should do most of the work, here. For example, on a Debian-like system for installation commands: sudo apt install pandoc pandoc -...

posted 1d ago by John C‭

Answer
#1: Initial revision by user avatar John C‭ · 2024-11-25T22:49:48Z (1 day ago)
It feels like it has become a bit trickier to do so, but [`pandoc`](https://pandoc.org/) should do most of the work, here.  For example, on a Debian-like system for installation commands:

```
sudo apt install pandoc
pandoc --from=markdown --to=pdf in.md --output out.pdf
```

You *probably* don't need to specify the file types, but it seems better to get in the habit of over-specifying things.

I say that it'll do "most of the work," because `pandoc` actually farms out the final PDF conversion by producing an intermediate step, LaTeX by default.  My machine, for example, doesn't have the LaTeX engine that it expects and I couldn't figure out what to install quickly enough for this response, so I needed to find an alternative and specify it, settling on [`weasyprint`](https://weasyprint.org/), which takes its side-trip through HTML instead of LaTeX.

```
sudo apt install weasyprint
pandoc --from=markdown --to=pdf in.md --output out.pdf --pdf-engine=weasyprint
```

This *does* preserve the emoji, which comes as a pleasant surprise to me, too.

In any case, this gets you a fairly boring PDF, looking a lot like a web page, which might do the trick.  From there, though, you can go in more sophisticated directions.  If, for example, you install `texlive-latex-base`, that will (should?) serve as the default LaTeX-to-PDF converter.  You don't want to start there, because you'll need to configure all the LaTeX templates and stylesheets to get a valid conversion, which becomes an annoying tradeoff of how much effort you want to put in versus how much you want to change the look of the PDF.

I haven't seen any GUI interfaces that save you from the command-line, but they must exist, even if they only issue the `pandoc` command on selected files.