Mearman

md-to-latex

Convert Markdown to LaTeX format. Use when the user asks to convert, transform, or change Markdown files to LaTeX, or mentions converting .md files to .tex files.

Mearman 3 Updated 9mo ago
GitHub

Install

npx skillscat add mearman/marketplace/md-to-latex

Install via the SkillsCat registry.

SKILL.md

Markdown to LaTeX Converter

Convert Markdown documents to LaTeX format with comprehensive support for common Markdown syntax.

Usage

npx tsx plugins/tex/scripts/md-to-latex.ts <text>
npx tsx plugins/tex/scripts/md-to-latex.ts --file <input.md>
npx tsx plugins/tex/scripts/md-to-latex.ts --file <input.md> --output <output.tex>

Supported Conversions

Headers

  • # Heading → \chapter{Heading}
  • ## Heading → \section{Heading}
  • ### Heading → \subsection{Heading}
  • #### Heading → \subsubsection{Heading}
  • ##### Heading → \paragraph{Heading}
  • ###### Heading → \subparagraph{Heading}

Text Formatting

  • **bold** or __bold__ → \textbf{bold}
  • *italic* or _italic_ → \emph{italic}
  • `code` → \texttt{code}

Code Blocks

```python
def hello():
    print("world")
```

→

\begin{verbatim}
def hello():
    print("world")
\end{verbatim}

Lists

Unordered lists:

- Item 1
- Item 2
  - Nested item

→

\begin{itemize}
\item Item 1
\item Item 2
  \item Nested item
\end{itemize}

Ordered lists:

1. First
2. Second
3. Third

→

\begin{enumerate}
\item First
\item Second
\item Third
\end{enumerate}

Links

  • [text](url) → \href{url}{text}

Images

  • ![alt](path) → \begin{figure}[h]\n\centering\n\includegraphics{path}\n\caption{alt}\n\end{figure}
  • ![](path) → \includegraphics{path} (no caption)

Blockquotes

> This is a quote
> spanning multiple lines

→

\begin{quote}
This is a quote
spanning multiple lines
\end{quote}

Horizontal Rules

  • --- → \hrulefill

Special Character Handling

LaTeX special characters (&, %, $, #, _, {, }) are automatically escaped in text content (but not in code blocks).

Arguments

  • Positional arguments: Text to convert (if no --file flag)
  • --file: Read input from file
  • --output <file>: Write output to file (default: stdout)

Examples

Convert inline text

npx tsx plugins/tex/scripts/md-to-latex.ts "# Hello World\n\nThis is **bold** text."

Convert file

npx tsx plugins/tex/scripts/md-to-latex.ts --file document.md --output document.tex

Use in pipeline

echo "## Section\n\nParagraph with *italic*" | npx tsx plugins/tex/scripts/md-to-latex.ts

Limitations

  • Does not handle complex nested structures beyond simple cases
  • Tables are not automatically converted (Markdown tables have no direct LaTeX equivalent without packages)
  • Math notation is preserved as-is (both Markdown and LaTeX use $...$ for inline math and $$...$$ for display math)
  • HTML tags in Markdown are not converted

Related Skills

  • latex-to-md: Convert LaTeX back to Markdown
  • tex-encode: Encode Unicode characters to LaTeX commands
  • tex-decode: Decode LaTeX commands to Unicode
  • tex-strip: Remove all LaTeX formatting for plain text