当前位置: 首页 > news >正文

折腾笔记[53]-使用kimi转换latex到pdf

摘要

在macOS上使用kimi-cli的latex-to-pdf技能,通过Tectonic排版引擎将LaTeX文档编译为PDF,支持中文和数学公式混排.

声明

本文人类为第一作者, 龙虾为通讯作者.本文有AI生成内容.

latex-to-pdf技能

SKILL.md

<hr>
<p>name: latex-to-pdf</p>
<h2 id="description-compile-latex-documents-to-pdf-using-tectonic-use-when-the-user-needs-to-1-compile-tex-files-to-pdf-2-render-latex-math-formulas-3-create-documents-with-chinese-text-and-math-formulas-4-convert-latex-source-to-a-printable-pdf-supports-both-existing-tex-files-and-generating-latex-from-scratch-defaults-to-noto-sans-cjk-sc-for-chinese-and-noto-sans-for-latin-text-">description: Compile LaTeX documents to PDF using Tectonic. Use when the user needs to (1) compile .tex files to PDF, (2) render LaTeX math formulas, (3) create documents with Chinese text and math formulas, (4) convert LaTeX source to a printable PDF. Supports both existing .tex files and generating LaTeX from scratch. Defaults to Noto Sans CJK SC for Chinese and Noto Sans for Latin text.</h2>
<h1 id="latex-to-pdf-skill">LaTeX to PDF Skill</h1>
<p>Compile LaTeX documents to PDF using the Tectonic typesetting engine.</p>
<h2 id="prerequisites">Prerequisites</h2>
<p>Tectonic is installed at <code>/home/qsbye/bin/tectonic</code> (static musl build, no system dependencies).</p>
<p>System fonts available:</p>
<ul>
<li><strong>Noto Sans CJK SC</strong> — Chinese (Simplified) sans-serif at <code>~/.local/share/fonts/noto-cjk/NotoSansCJK.ttc</code></li>
<li><strong>Noto Sans</strong> — Latin sans-serif at <code>~/.local/share/fonts/noto/NotoSans-*.ttf</code></li>
<li><strong>Noto Sans Mono CJK SC</strong> — Chinese monospace</li>
</ul>
<h2 id="quick-start">Quick Start</h2>
<h3 id="compile-an-existing-tex-file">Compile an existing .tex file</h3>
<pre><code class="lang-bash"><span class="hljs-regexp">/home/</span>qsbye<span class="hljs-regexp">/bin/</span>tectonic <span class="hljs-regexp">/path/</span>to<span class="hljs-regexp">/document.tex</span>
</code></pre>
<p>Output <code>document.pdf</code> is written to the same directory.</p>
<h3 id="generate-chinese-math-document-from-scratch">Generate Chinese + math document from scratch</h3>
<pre><code class="lang-bash">cat &gt; /tmp/chinese_math.tex &lt;&lt; 'EOF'
<span class="hljs-tag">\<span class="hljs-name">documentclass</span><span class="hljs-string">{article}</span></span>
<span class="hljs-tag">\<span class="hljs-name">usepackage</span><span class="hljs-string">{amsmath}</span></span>
<span class="hljs-tag">\<span class="hljs-name">usepackage</span><span class="hljs-string">{amssymb}</span></span>
<span class="hljs-tag">\<span class="hljs-name">usepackage</span><span class="hljs-string">{geometry}</span></span>
<span class="hljs-tag">\<span class="hljs-name">usepackage</span><span class="hljs-string">{xeCJK}</span></span>
<span class="hljs-tag">\<span class="hljs-name">geometry</span><span class="hljs-string">{a4paper, margin=1in}</span></span><span class="hljs-comment">% Default Chinese font: Noto Sans CJK SC</span>
<span class="hljs-tag">\<span class="hljs-name">setCJKmainfont</span><span class="hljs-string">{Noto Sans CJK SC}</span></span>
<span class="hljs-tag">\<span class="hljs-name">setCJKsansfont</span><span class="hljs-string">{Noto Sans CJK SC}</span></span>
<span class="hljs-tag">\<span class="hljs-name">setCJKmonofont</span><span class="hljs-string">{Noto Sans Mono CJK SC}</span></span><span class="hljs-comment">% Default Latin font: Noto Sans</span>
<span class="hljs-tag">\<span class="hljs-name">setmainfont</span><span class="hljs-string">{Noto Sans}</span></span>
<span class="hljs-tag">\<span class="hljs-name">setsansfont</span><span class="hljs-string">{Noto Sans}</span></span>
<span class="hljs-tag">\<span class="hljs-name">setmonofont</span><span class="hljs-string">{Noto Sans Mono CJK SC}</span></span><span class="hljs-tag">\<span class="hljs-name">begin</span><span class="hljs-string">{document}</span></span>
<span class="hljs-tag">\<span class="hljs-name">section</span><span class="hljs-string">{中文与数学}</span></span>
中文文本与公式可以混排:
<span class="hljs-tag">\<span class="hljs-name">begin</span><span class="hljs-string">{equation}</span></span>E = mc^2
<span class="hljs-tag">\<span class="hljs-name">end</span><span class="hljs-string">{equation}</span></span>
<span class="hljs-tag">\<span class="hljs-name">end</span><span class="hljs-string">{document}</span></span>
EOF
/home/qsbye/bin/tectonic /tmp/chinese_math.tex
</code></pre>
<h2 id="default-font-setup">Default Font Setup</h2>
<p>When creating a new LaTeX document with Chinese content, always include:</p>
<pre><code class="lang-latex"><span class="hljs-tag">\<span class="hljs-name">usepackage</span><span class="hljs-string">{xeCJK}</span></span>
<span class="hljs-tag">\<span class="hljs-name">setCJKmainfont</span><span class="hljs-string">{Noto Sans CJK SC}</span></span>
<span class="hljs-tag">\<span class="hljs-name">setCJKsansfont</span><span class="hljs-string">{Noto Sans CJK SC}</span></span>
<span class="hljs-tag">\<span class="hljs-name">setCJKmonofont</span><span class="hljs-string">{Noto Sans Mono CJK SC}</span></span>
<span class="hljs-tag">\<span class="hljs-name">setmainfont</span><span class="hljs-string">{Noto Sans}</span></span>
<span class="hljs-tag">\<span class="hljs-name">setsansfont</span><span class="hljs-string">{Noto Sans}</span></span>
<span class="hljs-tag">\<span class="hljs-name">setmonofont</span><span class="hljs-string">{Noto Sans Mono CJK SC}</span></span>
</code></pre>
<h2 id="common-packages">Common Packages</h2>
<p>Tectonic downloads packages on first use. Commonly available:</p>
<ul>
<li><code>amsmath</code>, <code>amssymb</code> — math formulas</li>
<li><code>geometry</code> — page layout</li>
<li><code>xeCJK</code> — Chinese text support</li>
<li><code>fontspec</code> — OpenType font selection</li>
<li><code>graphicx</code> — images</li>
<li><code>hyperref</code> — links</li>
<li><code>listings</code> — code listings</li>
<li><code>booktabs</code>, <code>longtable</code> — tables</li>
</ul>
<h2 id="parameters">Parameters</h2>
<table>
<thead>
<tr>
<th>Flag</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--keep-intermediates</code></td>
<td>Keep .aux, .log, etc.</td>
</tr>
<tr>
<td><code>--outfmt pdf</code></td>
<td>Force PDF output (default)</td>
</tr>
<tr>
<td><code>-X compile</code></td>
<td>Explicit compile command</td>
</tr>
</tbody>
</table>
<h2 id="scripts">Scripts</h2>
<ul>
<li><code>scripts/compile.sh</code> — Wrapper to compile a .tex file and report success/failure.</li>
</ul>

scripts/compile.sh

#!/bin/bash
# Compile a LaTeX file to PDF using Tectonic
# Usage: ./compile.sh <input.tex> [output_dir]set -eTECTONIC="/home/qsbye/bin/tectonic"if [ $# -lt 1 ]; thenecho "Usage: $0 <input.tex> [output_dir]"exit 1
fiINPUT="$1"
OUTDIR="${2:-$(dirname "$INPUT")}"if [ ! -f "$INPUT" ]; thenecho "Error: File not found: $INPUT"exit 1
fimkdir -p "$OUTDIR"
$TECTONIC "$INPUT"BASENAME=$(basename "$INPUT" .tex)
PDF="$OUTDIR/${BASENAME}.pdf"# If tectonic outputs to the input's directory, move it
INPUT_DIR=$(dirname "$INPUT")
INPUT_PDF="$INPUT_DIR/${BASENAME}.pdf"
if [ "$INPUT_PDF" != "$PDF" ] && [ -f "$INPUT_PDF" ]; thenmv "$INPUT_PDF" "$PDF"
fiif [ -f "$PDF" ]; thenecho "✓ PDF generated: $PDF ($(stat -c%s "$PDF") bytes)"
elseecho "✗ PDF generation failed"exit 1
fi

运行效果

  1. 运行./scripts/compile.sh document.tex编译LaTeX文件为PDF
  2. Tectonic自动下载所需宏包,无需手动配置TeX Live
  3. 支持中文与数学公式混排,输出高质量PDF文档
http://www.jsqmd.com/news/740284/

相关文章:

  • 如何快速掌握抖音下载器:面向新手的完整批量下载指南
  • 别再死记50欧姆了!从PCB走线到同轴线,一文搞懂特征阻抗的底层逻辑
  • 别再死记硬背了!用Python和PyTorch亲手画一遍Sigmoid、Tanh、ReLU激活函数,理解立马不一样
  • 折腾笔记[55]-使用kimi转换markdown为pdf
  • CF1608F MEX counting
  • Virtuoso ADE XL参数扫描实战:用gmid曲线指导MOS管尺寸优化(以IC618为例)
  • OTA校验失败、CRC对不上、版本号错乱——C语言固件升级链路11个关键断点调试技巧,工程师私藏手册
  • 折腾笔记[52]-使用kimi发送消息到matrix房间
  • 为内容创作平台集成 Taotoken 提供多样化的文本生成风格
  • 为什么你的Horovod训练总OOM?20年HPC架构师首次公开:4层内存泄漏配置链路与实时诊断脚本
  • MultiTimer vs. FreeRTOS软件定时器:在资源受限的STM32F4上,我为什么选择了它?
  • WorkshopDL:无需Steam客户端,轻松下载Steam创意工坊模组的终极方案
  • 别再死磕YOLOv5了!用CLIP+CRIS结构,手把手教你实现文本驱动的目标检测
  • 2026届学术党必备的十大AI辅助论文方案横评
  • 20260430
  • DataChain:构建面向对象存储的数据上下文层,实现AI时代数据处理革命
  • Stata数据合并保姆级避坑指南:从CSV导入到merge命令的完整流程
  • Windows 11 24H2 LTSC 微软商店一键安装完整指南:如何3分钟恢复完整应用生态
  • 杭州萧山区在职提升学历哪家好?萧山箭金学堂等五大机构深度测评榜 - 浙江行业评测
  • 3分钟搞定Android Studio中文界面:新手必备的完整免费汉化指南
  • 别再到处找了!电气AI项目数据集保姆级导航(含无人机巡检、负荷预测等60+资源)
  • 模型部署前必看:用Netron快速检查ONNX、TensorFlow模型结构,避开这些坑
  • FPGA新手避坑指南:用Verilog写自己的‘软’ROM存储波形,真的比用IP核好吗?
  • AI_10_Coze_Multi-Agent多智能体
  • python sanic
  • Taotoken模型广场如何帮助开发者根据场景选择合适大模型
  • python fastapi
  • 别再死记硬背命令了!用CREO 8.0参数化设计,一个矿泉水瓶模型搞定阵列、扫描、骨架模型三大核心
  • 超越基础UNet:在DRIVE数据集上尝试改进,聊聊我的损失函数调优与数据增强心得
  • Windows平台风扇控制技术深度解析:FanControl架构与实战配置指南