[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HXNF0NSK4KXAV5VBYG95M9":3,"skill-same:01M6HXNF0NSK4KXAV5VBYG95M9":69},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":47,"ownerDescription":6,"updatedAt":48,"install":49,"resources":62},"01M6HXNF0NSK4KXAV5VBYG95M9","pandoc-pdf-error-resolution",null,"Systematic debugging workflow for pandoc PDF conversion errors","HKUDS\u002FAgentPilot","HKUDS","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F118165258?v=4","01M6HW8VRNZP64G0P4MVJW2KKQ","✨Data Intelligence Lab@HKU✨","01M6HW8VWZVHBRHYH3T330PFWV",8029,"MIT","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fgdpval_bench\u002Fskills\u002Fpandoc-pdf-error-resolution\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35],"PDF","resolution","pandoc","error","pandoc pdf error resolution","workflow","systematic debugging","debugging","conversion","systematic","errors","for","2026-11-10 10:12:30",false,"---\nname: pandoc-pdf-error-resolution\ndescription: Systematic debugging workflow for pandoc PDF conversion errors\n---\n\n# Pandoc PDF Error Resolution\n\nThis skill provides a step-by-step workflow for diagnosing and resolving \"unknown error\" messages when using pandoc to generate PDFs.\n\n## When to Use\n\nUse this skill when:\n- Pandoc returns an \"unknown error\" during PDF conversion\n- The conversion succeeds for other formats (e.g., markdown, HTML) but fails for PDF\n- You need to identify which PDF engine is available and working\n\n## Step-by-Step Procedure\n\n### Step 1: Verify Pandoc Installation\n\nFirst, confirm pandoc is installed and check its version:\n\n```bash\npandoc --version\n```\n\nThis confirms pandoc is available and shows the version number. Note that pandoc itself doesn't generate PDFs directly—it delegates to external PDF engines.\n\n### Step 2: Check Available PDF Engines\n\nIdentify which PDF engines are installed on the system:\n\n```bash\nwhich pdflatex xelatex lualatex wkhtmltopdf pdfroff 2>\u002Fdev\u002Fnull || echo \"Checking individual engines...\"\nwhich pdflatex\nwhich xelatex\nwhich lualatex\nwhich wkhtmltopdf\n```\n\nCommon engines and their characteristics:\n- **pdflatex**: Fast, widely available, good for basic documents\n- **xelatex**: Better Unicode\u002Ffont support, recommended for complex documents\n- **lualatex**: Advanced typography, Lua scripting support\n- **wkhtmltopdf**: HTML-to-PDF conversion, good for web-style documents\n\n### Step 3: Attempt Conversion with Explicit Engine\n\nRetry the conversion with an explicit `--pdf-engine` flag:\n\n```bash\npandoc input.md -o output.pdf --pdf-engine=xelatex\n```\n\nTry engines in this order:\n1. `xelatex` (best Unicode support)\n2. `pdflatex` (most widely available)\n3. `lualatex` (if xelatex fails)\n4. `wkhtmltopdf` (for HTML-heavy content)\n\n### Step 4: Capture Full stderr Output\n\nAlways capture the complete error output before falling back:\n\n```bash\npandoc input.md -o output.pdf --pdf-engine=xelatex 2>&1 | tee pandoc_error.log\n```\n\nThis preserves the full error message for analysis. Common error patterns:\n- **Font errors**: Missing LaTeX packages or fonts\n- **Package errors**: Missing LaTeX packages (use `tlmgr install \u003Cpackage>`)\n- **Syntax errors**: Issues in the source document\n\n### Step 5: Install Missing Dependencies (if needed)\n\nIf errors indicate missing LaTeX packages:\n\n```bash\n# For TeX Live\ntlmgr install \u003Cpackage-name>\n\n# For Debian\u002FUbuntu\napt-get install texlive-latex-extra texlive-fonts-recommended\n\n# For macOS with Homebrew\nbrew install --cask mactex\n```\n\n### Step 6: Fallback Strategies\n\nIf all engines fail, consider:\n1. Convert to HTML first, then use wkhtmltopdf\n2. Simplify the document (remove complex formatting)\n3. Use an online conversion service\n4. Generate PDF from a different format (e.g., DOCX via LibreOffice)\n\n## Example Complete Workflow\n\n```bash\n#!\u002Fbin\u002Fbash\n# pandoc-pdf-debug.sh\n\nINPUT_FILE=\"$1\"\nOUTPUT_FILE=\"${INPUT_FILE%.md}.pdf\"\n\necho \"=== Pandoc PDF Conversion Debug ===\"\necho \"Input: $INPUT_FILE\"\necho \"Output: $OUTPUT_FILE\"\n\n# Step 1: Verify pandoc\necho -e \"\\n[1] Checking pandoc version...\"\npandoc --version | head -1\n\n# Step 2: Check engines\necho -e \"\\n[2] Checking available PDF engines...\"\nfor engine in pdflatex xelatex lualatex wkhtmltopdf; do\n    if which \"$engine\" &>\u002Fdev\u002Fnull; then\n        echo \"  ✓ $engine: $(which $engine)\"\n    else\n        echo \"  ✗ $engine: not found\"\n    fi\ndone\n\n# Step 3: Try conversion with xelatex\necho -e \"\\n[3] Attempting conversion with xelatex...\"\npandoc \"$INPUT_FILE\" -o \"$OUTPUT_FILE\" --pdf-engine=xelatex 2>&1 | tee \u002Ftmp\u002Fpandoc_error.log\n\nif [ $? -eq 0 ]; then\n    echo \"✓ Conversion successful!\"\nelse\n    echo \"✗ Conversion failed. Check \u002Ftmp\u002Fpandoc_error.log for details\"\n    echo \"Attempting fallback with pdflatex...\"\n    pandoc \"$INPUT_FILE\" -o \"$OUTPUT_FILE\" --pdf-engine=pdflatex 2>&1\nfi\n```\n\n## Quick Reference\n\n| Command | Purpose |\n|---------|---------|\n| `pandoc --version` | Verify pandoc installation |\n| `which xelatex` | Check if xelatex engine exists |\n| `pandoc file.md -o file.pdf --pdf-engine=xelatex` | Convert with explicit engine |\n| `... 2>&1 \\| tee error.log` | Capture full stderr output |\n| `tlmgr install \u003Cpkg>` | Install missing LaTeX package |","# Pandoc PDF Error Resolution\n\nThis skill provides a step-by-step workflow for diagnosing and resolving \"unknown error\" messages when using pandoc to generate PDFs.\n\n## When to Use\n\nUse this skill when:\n- Pandoc returns an \"unknown error\" during PDF conversion\n- The conversion succeeds for other formats (e.g., markdown, HTML) but fails for PDF\n- You need to identify which PDF engine is available and working\n\n## Step-by-Step Procedure\n\n### Step 1: Verify Pandoc Installation\n\nFirst, confirm pandoc is installed and check its version:\n\n```bash\npandoc --version\n```\n\nThis confirms pandoc is available and shows the version number. Note that pandoc itself doesn't generate PDFs directly—it delegates to external PDF engines.\n\n### Step 2: Check Available PDF Engines\n\nIdentify which PDF engines are installed on the system:\n\n```bash\nwhich pdflatex xelatex lualatex wkhtmltopdf pdfroff 2>\u002Fdev\u002Fnull || echo \"Checking individual engines...\"\nwhich pdflatex\nwhich xelatex\nwhich lualatex\nwhich wkhtmltopdf\n```\n\nCommon engines and their characteristics:\n- **pdflatex**: Fast, widely available, good for basic documents\n- **xelatex**: Better Unicode\u002Ffont support, recommended for complex documents\n- **lualatex**: Advanced typography, Lua scripting support\n- **wkhtmltopdf**: HTML-to-PDF conversion, good for web-style documents\n\n### Step 3: Attempt Conversion with Explicit Engine\n\nRetry the conversion with an explicit `--pdf-engine` flag:\n\n```bash\npandoc input.md -o output.pdf --pdf-engine=xelatex\n```\n\nTry engines in this order:\n1. `xelatex` (best Unicode support)\n2. `pdflatex` (most widely available)\n3. `lualatex` (if xelatex fails)\n4. `wkhtmltopdf` (for HTML-heavy content)\n\n### Step 4: Capture Full stderr Output\n\nAlways capture the complete error output before falling back:\n\n```bash\npandoc input.md -o output.pdf --pdf-engine=xelatex 2>&1 | tee pandoc_error.log\n```\n\nThis preserves the full error message for analysis. Common error patterns:\n- **Font errors**: Missing LaTeX packages or fonts\n- **Package errors**: Missing LaTeX packages (use `tlmgr install \u003Cpackage>`)\n- **Syntax errors**: Issues in the source document\n\n### Step 5: Install Missing Dependencies (if needed)\n\nIf errors indicate missing LaTeX packages:\n\n```bash\n# For TeX Live\ntlmgr install \u003Cpackage-name>\n\n# For Debian\u002FUbuntu\napt-get install texlive-latex-extra texlive-fonts-recommended\n\n# For macOS with Homebrew\nbrew install --cask mactex\n```\n\n### Step 6: Fallback Strategies\n\nIf all engines fail, consider:\n1. Convert to HTML first, then use wkhtmltopdf\n2. Simplify the document (remove complex formatting)\n3. Use an online conversion service\n4. Generate PDF from a different format (e.g., DOCX via LibreOffice)\n\n## Example Complete Workflow\n\n```bash\n#!\u002Fbin\u002Fbash\n# pandoc-pdf-debug.sh\n\nINPUT_FILE=\"$1\"\nOUTPUT_FILE=\"${INPUT_FILE%.md}.pdf\"\n\necho \"=== Pandoc PDF Conversion Debug ===\"\necho \"Input: $INPUT_FILE\"\necho \"Output: $OUTPUT_FILE\"\n\n# Step 1: Verify pandoc\necho -e \"\\n[1] Checking pandoc version...\"\npandoc --version | head -1\n\n# Step 2: Check engines\necho -e \"\\n[2] Checking available PDF engines...\"\nfor engine in pdflatex xelatex lualatex wkhtmltopdf; do\n    if which \"$engine\" &>\u002Fdev\u002Fnull; then\n        echo \"  ✓ $engine: $(which $engine)\"\n    else\n        echo \"  ✗ $engine: not found\"\n    fi\ndone\n\n# Step 3: Try conversion with xelatex\necho -e \"\\n[3] Attempting conversion with xelatex...\"\npandoc \"$INPUT_FILE\" -o \"$OUTPUT_FILE\" --pdf-engine=xelatex 2>&1 | tee \u002Ftmp\u002Fpandoc_error.log\n\nif [ $? -eq 0 ]; then\n    echo \"✓ Conversion successful!\"\nelse\n    echo \"✗ Conversion failed. Check \u002Ftmp\u002Fpandoc_error.log for details\"\n    echo \"Attempting fallback with pdflatex...\"\n    pandoc \"$INPUT_FILE\" -o \"$OUTPUT_FILE\" --pdf-engine=pdflatex 2>&1\nfi\n```\n\n## Quick Reference\n\n| Command | Purpose |\n|---------|---------|\n| `pandoc --version` | Verify pandoc installation |\n| `which xelatex` | Check if xelatex engine exists |\n| `pandoc file.md -o file.pdf --pdf-engine=xelatex` | Convert with explicit engine |\n| `... 2>&1 \\| tee error.log` | Capture full stderr output |\n| `tlmgr install \u003Cpkg>` | Install missing LaTeX package |",{"name":5,"description":7},"main","6b84b0689ca0d9e7b1e4061188ff6b60758e0f8a","openspace\u002Flegacy\u002Fv1\u002Fgdpval_bench\u002Fskills\u002Fpandoc-pdf-error-resolution",944,"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot","https:\u002F\u002Fgithub.com\u002FHKUDS","https:\u002F\u002Fsites.google.com\u002Fview\u002Fchaoh","2026-11-12 22:26:39",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add HKUDS\u002FAgentPilot --skill pandoc-pdf-error-resolution",{"tool":55,"command":56},"bunx","bunx skills add HKUDS\u002FAgentPilot --skill pandoc-pdf-error-resolution",{"tool":58,"command":59},"pnpm","pnpm dlx skills add HKUDS\u002FAgentPilot --skill pandoc-pdf-error-resolution","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fgdpval_bench\u002Fskills\u002Fpandoc-pdf-error-resolution\u002FSKILL.md",true,[63],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},".skill_id","OTHER","其他",41,"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fgdpval_bench\u002Fskills\u002Fpandoc-pdf-error-resolution\u002F.skill_id",[70,90,109,132,155,177],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":36},"01M6HYB297NDABRERJRVG0K8R0","agentpilot","Set up AgentPilot and use its single entry to prepare missing inputs and run configured RSI experiments. Use when the user requests AgentPilot installation or work with AgentPilot.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fplugins\u002Fagentpilot\u002Fskills\u002Fagentpilot\u002FSKILL.md",[],[72,77,78,79,80,81,82,83,84,85,86,87,88,89],"prepare","requests","with","missing","installation","rsi","up","use","user","work","SET","run","experiments",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":36},"01M6HYAYWXTTE1J7DJM0MFNQ4H","remember","Review auto-memory entries and propose promotions to OPENSPACE.md, OPENSPACE.local.md, or retained auto-memory topics; detect duplicates, stale facts, conflicts, and ambiguous entries before making changes.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fopenspace\u002Fskills\u002Fremember\u002FSKILL.md",[],[92,97,98,99,100,101,102,103,104,105,106,107,108],"memory","review","auto","openspace","changes","facts","detect","entries","local","conflicts","stale","duplicates",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":118,"publishedAt":36},"01M6HYAVMPM4SBDV60R2B5HPV8","skill-discovery","Search reusable OpenSpace skills locally, and browse cloud packages step by step when a cloud skill may help. Reusing proven skills saves tokens, improves reliability, and extends your capabilities beyond built-in tools.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fopenspace\u002Fhost_skills\u002Fskill-discovery\u002FSKILL.md",[115],{"categoryNo":116,"categoryName":117,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[119,120,121,100,122,123,124,125,126,127,128,129,130,131],"skill discovery","discovery","reusable","step by step","tokens","packages","help","cloud","reliability","capabilities","browse","search","Tools",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":139,"publishedAt":36},"01M6HYAR811B3RB0M50RBEDGN6","delegate-task","Delegate tasks to OpenSpace — a full-stack autonomous worker for coding, DevOps, web research, and desktop automation, backed by an extensive MCP tool and skill library. Skills auto-improve through use, reducing token consumption over time. A cloud community lets agents share and collectively evolve reusable skills.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fopenspace\u002Fhost_skills\u002Fdelegate-task\u002FSKILL.md",[138],{"categoryNo":116,"categoryName":117,"taxonomyType":21,"taxonomyTypeDesc":22},[140,141,142,100,143,144,145,146,147,121,99,84,148,149,150,35,151,152,153,154],"delegate","task","delegate task","time","improve","desktop automation","worker","community","autonomous","tool","stack","share","tasks","automation","MCP",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":161,"publishedAt":36},"01M6HYAM9FSGV6E52AYENDQXYH","write-special-chars-ts-check","Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, plus a reliable TypeScript type-checking step that filters output to only the newly-written files to avoid being misled by pre-existing errors.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-ts-check\u002FSKILL.md",[],[162,163,164,165,166,167,168,169,170,171,172,173,174,175,35,34,176],"write special chars ts check","write","check","type","files","filters","only","template","file","python","typescript","output","Existing","type-checking","script",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":183,"publishedAt":36},"01M6HYAH05HGV7SVWSVR8PJRQD","write-special-chars-readback","Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, with mandatory post-write verification via read_file and cleanup of \u002Ftmp helper scripts.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-readback\u002FSKILL.md",[],[184,185,163,79,35,176,186,187,188,189,190,169,170,191,192,171],"write special chars readback","readback","helper","post","via","scripts","read","verification","cleanup"]