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
→\begin{figure}[h]\n\centering\n\includegraphics{path}\n\caption{alt}\n\end{figure}→\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
--fileflag) --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
微信扫一扫