New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@adrianjost/md2tex

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@adrianjost/md2tex

bachelor thesis basic Markdown to Latex converter

1.3.0
latest
npm
Version published
Weekly downloads
2
-77.78%
Maintainers
1
Weekly downloads
 
Created
Source

An opinionated Markdown to Latex Converter

Build Status codecov

npm (scoped) npm npm bundle size (scoped)

Warning: This Code is a total mess! I am sorry for that. But it has 100% test coverage so whenever someone introduces a new hack to get it working, we can be confident that nothing unexpectedly breaks.

All features were developed for compatibility with the modernthesis template.

How to use it

As a standalone converter

Install
# yarn
yarn global add @adrianjost/md2tex

# or npm
npm i -g @adrianjost/md2tex
Usage
md2tex "pathToSrcMdFile" "pathToTargetTexFile"
  • The pathToSrcMdFile default to ./in.md.
  • The pathToTargetTexFile default to ./out.tex.

If you provide a directory path instead of a file for both paths, all .md files will get converted to the output directory. The Filestructure will remain the same.

As a regular dependency

Install
# yarn
yarn add -D @adrianjost/md2tex

# or npm
npm i -D @adrianjost/md2tex
Usage
import md2tex from "@adrianjost/md2tex";
// or
// const { convert: md2tex } = require("@adrianjost/md2tex")

const md = `# Hello World`;
const tex = md2tex(md);
console.log(tex);

Features

You can use a codeblock with the language latex to write latex code directly in your markdown files. This Code is getting directly copied into the output without any further conversion.

Headlines

Input:

# H1
## H2
### H3
#### H4
##### H5
###### H6

Output:

%************************************************
\chapter{H1}
\label{ch:0-h1}
%************************************************
\hypertarget{1-h2}{
\section{H2}\label{1-h2}}
\hypertarget{2-h3}{
\subsection{H3}\label{2-h3}}
\hypertarget{3-h4}{
\subsubsection{H4}\label{3-h4}}
\hypertarget{4-h5}{
\paragraph{H5}\label{4-h5}}
\hypertarget{5-h6}{
\subparagraph{H6}\label{5-h6}}

Text Styles

Input:

**bold** or **bold**
_italic_ or _italic_
`inline code`

Output:

\textbf{bold} or \textbf{bold} \\
\textit{italic} or \textit{italic} \\
\colorbox{gray-light!}{\texttt{inline code}}

Links get converted to footnotes or BibLatex Source References

Input:

[descrition](footnote)

[source](`reference`)

Output:

description\\footnote{footnote}

description\\cite{reference}

Images

Input:

![description](path)

Output:

\begin{figure}[H]
	\centering
	\includegraphics[width=\textwidth]{path}
	\caption[description]{description}
	\label{fig:description}
\end{figure}

Codeblocks

🌟 Please note the special syntax for captions.

Input:

```js [some caption]
console.log("Hi");
```[description]

Output:

\begin{listing}[H]
	\begin{minted}{js}
console.log("Hi");
	\end{minted}
	\caption{some caption}
	\label{lst:code-snipped-undefined}
\end{listing}

Lists

Input:

- list item 1
	- indentation 1
- list item 2

1. first
2. second

Output:

\begin{itemize}
	\item list item 1
	\begin{itemize}
		\item indentation 1
	\end{itemize}
	\item list item 2
\end{itemize}

\begin{enumerate}
	\item first

	\item second
\end{enumerate}

Known Limitations

  • Currently, this code can't convert tables
  • It is also not possible to use inline styles in headlines like # _italic_ headline
  • Not all characters get escaped correctly. It's not working inside headlines and normal text without any formatting.

Contribute

You wan't to contribute? Feel free to do so!

If you have found a bug, just add a snapshot test to the tests located at __tests__/md2tex.test.js and open a pull request.

Keywords

Markdown

FAQs

Package last updated on 22 Jul 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts