latex-to-quarto
Converts LaTeX article-class .tex documents to Quarto .qmd format for multi-format publishing (HTML, PDF, Word). Use when asked to convert, port, mi…
它会碰到什么
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
LaTeX to Quarto Conversion
Convert a full LaTeX .tex article to a Quarto .qmd document that renders correctly
to HTML, PDF (Typst or LaTeX), and Word.
This skill handles the entire conversion pipeline: preamble extraction, document structure,
and all inline/block transformations.
This skill writes the output file (overwriting the input or writing to a second path).
Before writing, tell the user what file will be changed and remind them that git diff or
file history can recover the original.
Input Arguments
| Position | Required | Description |
|----------|----------|-------------|
| 1 | Yes | Path to the input .tex file (e.g., paper/paper.tex) |
| 2 | No | Output .qmd path. Defaults to same directory, .qmd extension. |
Example invocations:
/latex-to-quarto paper/paper.tex
/latex-to-quarto paper/paper.tex paper/paper.qmd
Quick Navigation: Use Which Reference
| Task | Reference File |
|------|----------------|
| \documentclass, \usepackage, \title, \author → YAML | [01-preamble-yaml.md](references/01-preamble-yaml.md) |
| \begin{document}, \maketitle, \begin{abstract}, \appendix | [02-document-structure.md](references/02-document-structure.md) |
| \textbf, \emph, \texttt, \footnote, \href | [03-text-formatting.md](references/03-text-formatting.md) |
| equation, align, gather, inline math delimiters | [04-math.md](references/04-math.md) |
| \cite, \citep, \citet, natbib/biblatex commands | [05-citations.md](references/05-citations.md) |
| \label, \ref, \autoref, \eqref, prefix mapping | [06-cross-references.md](references/06-cross-references.md) |
| \includegraphics, figure environment, subfigures | [07-figures.md](references/07-figures.md) |
| tabular, table, booktabs, \multicolumn | [08-tables.md](references/08-tables.md) |
| \section, \subsection, itemize, enumerate | [09-sections-lists.md](references/09-sections-lists.md) |
| Special characters, \newpage, verbatim, \input | [10-misc.md](references/10-misc.md) |
Step-by-Step Workflow
1. Parse Arguments
Identify the input .tex path (arg 1) and output path (arg 2).
If arg 2 is omitted, replace the .tex extension with .qmd in the same directory.
2. Read the File
Use the Read tool to load the full .tex file.
Hold the entire content in memory — you will produce one complete .qmd file at the end.
3. Extract and Convert the Preamble
Everything before \begin{document} is the preamble. Extract:
\documentclassoptions → YAMLformat:settings\title{},\author{},\date{}→ YAMLtitle:,author:,date:\bibliography{file}/\addbibresource{file}→ YAMLbibliography:- Package hints (
geometry,setspace,natbib,biblatex) → YAML format options
See [01-preamble-yaml.md](references/01-preamble-yaml.md) for the full mapping table.
4. Strip Document Wrapper
Remove \begin{document} and \end{document}.
Remove \maketitle (title is rendered from YAML automatically).
Convert \begin{abstract}...\end{abstract} to YAML abstract:.
See [02-document-structure.md](references/02-document-structure.md).
5. Apply All Body Transformations
Work through the full document body and apply every applicable rule. Key principles:
- Preserve math regions: Never alter content inside
$...$or$$...$$except to
move \label{} outside display math and convert delimiters (\(...\) → $...$).
- Handle nesting:
\textbf{\emph{text}}→text. Process inner commands first. - Be complete: Scan the entire file. Fix every instance of each pattern, not just the first.
- Apply all categories: Work through every reference file. A single paragraph may
require rules from multiple categories.
Apply reference files in this order (structural → inline):
- [09-sections-lists.md](references/09-sections-lists.md) — headings and lists
- [05-citations.md](references/05-citations.md) — citations
- [06-cross-references.md](references/06-cross-references.md) — labels and references
- [07-figures.md](references/07-figures.md) — figures
- [08-tables.md](references/08-tables.md) — tables
- [04-math.md](references/04-math.md) — math environments and delimiters
- [03-text-formatting.md](references/03-text-formatting.md) — inline formatting
- [10-misc.md](references/10-misc.md) — special characters and remaining patterns
6. Assemble the QMD File
Combine:
- YAML front matter (between
---delimiters) - Converted document body (blank line after closing
---)
7. Write the Output File
Use the Write tool to write the complete .qmd file in one pass.
Do not use Edit for individual substitutions — a single full write ensures nothing is missed.
8. Report to the User
Tell the user:
- Output path written
- Summary of conversions by category (citation count, figure count, table count, etc.)
- Items requiring manual review with approximate line numbers
- Reminder to run
quarto renderto verify the output
Key Conceptual Differences: LaTeX vs. Quarto
Preamble → YAML Front Matter
LaTeX uses a \documentclass preamble; Quarto uses YAML front matter between ---.
% LaTeX preamble
\documentclass[12pt,a4paper]{article}
\usepackage[margin=1in]{geometry}
\title{My Paper}
\author{Jane Doe}
\date{\today}
\bibliography{refs}
# Quarto YAML front matter
---
title: "My Paper"
author: "Jane Doe"
date: today
bibliography: refs.bib
format:
html: default
pdf:
documentclass: article
papersize: a4
fontsize: 12pt
geometry: margin=1in
---
Math Content Is Preserved as LaTeX
Unlike conversion to Typst, Quarto uses LaTeX math directly.
Inline \(...\) → $...$; display \[...\] → $$...$$.
Math content (operators, symbols, matrices) stays unchanged.
Citations Use Pandoc Bracket Syntax
\citep{key} → [@key]; \citet{key} → @key.
The .bib file is referenced in YAML and left unchanged.
Cross-References Use @label Not \ref{}
\ref{fig:map} → @fig-map. Labels move from standalone \label{} commands
into element attribute blocks {#fig-map}.
Minimal Conversion Example
Input (paper.tex):
\documentclass[12pt]{article}
\usepackage{natbib}
\title{My Study}
\author{Jane Doe}
\date{2025}
\begin{document}
\maketitle
\begin{abstract}
We examine the effect of X on Y.
\end{abstract}
\section{Introduction}
Prior work \citep{smith2020} shows that $x > 0$.
See Figure~\ref{fig:map} for an overview.
\begin{figure}[h]
\centering
\includegraphics[width=0.8\textwidth]{figs/map.pdf}
\caption{Study region.}
\label{fig:map}
\end{figure}
\bibliography{refs}
\end{document}
Output (paper.qmd):
---
title: "My Study"
author: "Jane Doe"
date: 2025
bibliography: refs.bib
---
## Abstract
We examine the effect of X on Y.
# Introduction
Prior work [@smith2020] shows that $x > 0$.
See @fig-map for an overview.
{#fig-map width=80% fig-align="center"}
Patterns Requiring Manual Review
Flag these in your report with a suggested fix but no automatic conversion:
| Pattern | Suggested Quarto Equivalent |
|---------|------------------------------|
| \begin{theorem}, \begin{proof}, \begin{lemma} | ::: {.callout-note} div, or install a theorem extension |
| \newcommand{}{} / \renewcommand{}{} | Inline the macro expansion throughout; flag remaining uses |
| \input{file} / \include{file} | Inline contents or use {{< include file.qmd >}} shortcode |
| \vspace{} / \hspace{} | Remove or replace with CSS; no direct Quarto equivalent |
| \multicolumn{}{}{} in tables | Requires manual table restructuring |
| TikZ / PGF diagrams | Remove or replace with Mermaid/Observable JS |
| Beamer \begin{frame} | Switch to format: revealjs with ## slide headings |
| \bibliographystyle{} | Remove; use csl: in YAML if a specific citation style is needed |
| Multiple \label in one align block | Each labeled row may need its own equation block |
What to Preserve Unchanged
- LaTeX math content inside
$...$and$$...$$ - File paths in
\includegraphicsand\bibliography(adjust extension if needed) - Existing
@refand[@citation]patterns already in correct Quarto form - Content inside
\begin{verbatim}...\end{verbatim}(convert to fenced block, keep content)
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
skills/22-christopherkenny-skills/skills/latex-to-quarto/SKILL.md同一个仓库里的其他技能
- Full-empirical-analysis-skill
- Full-empirical-analysis-skill-R
- Full-empirical-analysis-skill-Stata
- auto-empirical-research-skills
- StatsPAI_skill
- Full-empirical-analysis-skill
- Full-empirical-analysis-skill-Stata
- Full-empirical-analysis-skill-R
- academic-paper-composer
- academic-paper-strategist
- medical-imaging-review
- paper-slide-deck