Systematic diagnostic workflow for resolving pandoc PDF conversion errors
59
67%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Medium
Suggest reviewing before use
Fix and improve this skill with Tessl
tessl review fix ./benchmarks/gdpval/skills/pandoc-pdf-error-diagnosis/SKILL.mdWhen pandoc reports an "unknown error" during PDF conversion, follow this systematic diagnostic workflow to identify and resolve the issue.
First, confirm pandoc is installed and check its version:
pandoc --versionThis verifies pandoc is available and shows which version and features are supported.
Identify which PDF rendering engines are installed on the system:
which pdflatex xelatex lualatex wkhtmltopdfCommon engines and their characteristics:
Try conversion with an explicit engine specification, starting with xelatex (most forgiving):
pandoc input.md -o output.pdf --pdf-engine=xelatexImportant: Capture the full stderr output for diagnosis:
pandoc input.md -o output.pdf --pdf-engine=xelatex 2>&1 | tee conversion.logExamine the captured stderr for common issues:
| Error Pattern | Likely Cause | Solution |
|---|---|---|
xelatex not found | Engine not installed | Install TeX Live or try different engine |
Package xyz not found | Missing LaTeX package | Install missing package or remove feature |
Font xyz not found | Missing font | Install font or change document fonts |
LaTeX Error: File xyz.sty not found | Missing style file | Install texlive-extra or simplify document |
If the primary engine fails, try alternatives in order:
# Try pdflatex (most basic)
pandoc input.md -o output.pdf --pdf-engine=pdflatex 2>&1
# Try lualatex (if xelatex failed)
pandoc input.md -o output.pdf --pdf-engine=lualatex 2>&1
# Try wkhtmltopdf (for HTML-heavy content)
pandoc input.md -o output.pdf --pdf-engine=wkhtmltopdf 2>&1If a specific engine is needed but missing:
# Debian/Ubuntu
sudo apt-get install texlive-xetex texlive-fonts-recommended
# macOS with Homebrew
brew install --cask mactex-no-gui
# Check what's available
tlmgr install <package-name>If all engines fail, simplify the source document:
#!/bin/bash
# pandoc-pdf-diagnose.sh
INPUT="${1:-input.md}"
OUTPUT="${2:-output.pdf}"
echo "=== Pandoc PDF Conversion Diagnosis ==="
echo "Input: $INPUT"
echo "Output: $OUTPUT"
echo ""
echo "1. Pandoc version:"
pandoc --version | head -1
echo ""
echo "2. Available engines:"
for engine in pdflatex xelatex lualatex wkhtmltopdf; do
if which $engine > /dev/null 2>&1; then
echo " ✓ $engine: $(which $engine)"
else
echo " ✗ $engine: not found"
fi
done
echo ""
echo "3. Attempting conversion with xelatex:"
pandoc "$INPUT" -o "$OUTPUT" --pdf-engine=xelatex 2>&1
if [ $? -eq 0 ]; then
echo "✓ Conversion successful!"
else
echo "✗ Conversion failed. Try alternative engines."
fic5a9c4b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.