Markdown vs latex for thesis

I have to face the decision what markup I use for my thesis (mostly mathematical formulas). I dont want to start learning the chosen language while I should focus on my thesis. I dont know much latex, and I feel that I dont really need to touch it. Because, over the time I got plenty exposure to markdown here on math.stackexchange. And from what I have seen, it seems like a sufficient tool, to do the job.

But since I dont want to run into unpleasant surprises during that potentially stressful time, I want to know better beforehand.

Thanks!

• Read the "Not so short guide to LaTeX": ctan.org/tex-archive/info/lshort/english. If you find it difficult, choose another tool. Mar 7, 2018 at 18:44
• You can use LaTeX for high level document structure (TOC, abstract, dedication page, bibliography, etc.) and Markdown for basic formatting like sections and lists. It is possible to mix the two in the one document thanks to the Markdown package. I don't think Markdown on it's own is sufficient tool for anything larger than mail or forum post. Mar 7, 2018 at 18:52
• I think you can write a thesis in markdown, if you use the right tools, like pandoc and a nice template. Here is a list, to start with: github.com/jgm/pandoc/wiki/…
– DG'
Mar 7, 2018 at 19:14
• Check out the thesisdown package github.com/ismayc/thesisdown Dec 2, 2019 at 16:59
• I wrote a thesis with multiple published paper in markdown with pandoc. I adapted latex paper templates from a couple of different publishers to work with markdown. For the final thesis, there were a handful of annoying formatting problems, but they were fixed by exporting to latex and manually tweaking a few lines before final export to PDF. Still much less of a headache than managing latex code the whole time. Aug 20, 2021 at 0:19

Any markdown flavor is indeed a better option than LaTeX to focus on contents and format a document easily with a decent format, no doubt. But the paradise vanishes when you need more than standards sections and bulleted list. Simple formatting options such as centering an image or making two columns are not available.

This is not a criticism of markdown: the purpose of the markdown is to be a very lightweight markup language and perforce should be simple code to make a simple format. This is enough in many cases but not all, and this explain the why there are so many markdown flavors, adding this or that feature, with the result that it is no longer so easy to use (especially when you will need aware of the differences among markdown flavors).

Admittedly, even the most complex flavor is still far easier than LaTeX, but still is rather limited. With LaTeX you have a longer learning curve and it is not so handy, but you can make almost anything you can imagine with respect to document formatting, including drawing (diagrams, statistical graphs, chemical formulas, etc.) and there are no LaTeX flavors (Plain TeX or ContTeXt are distinct enough not to cause any confusion). Macros, which allow expressing complex formulas using readable LaTeX code entities, and modify them seamlessly if needed, are a game changer as well.

So the right decision depends on what you expect of each markup language. A Swiss knife is not the best knife to cut the steak but is better (safer) than a table knife for removing screws, cutting paper, and almost any other purpose.

That said, the good news is that you can use the two knifes at the same time, i.e., you could mix LaTeX with Markdown or Markdown with LaTeX even in the same plain text file.

As suggested in the comments, you can make a LaTeX document using the markdown package (see also the CTAN topic Markup) to simplify some parts as nested lists.

Or you can use one or the more powerful markdown flavors, as Rmarkdown, but write some LateX code inside when this is not enough, for instance, to include a minipage or a complex table that cannot be made in markdown. Pandoc will pass this LaTeX parts as unchanged code when producing the PDF (via LaTeX) or ignore it in another outputs as HTML.

Another part of this integration could be a custom LaTeX template for pandoc (for which you would need a basic knowledge of LaTeX) and/or YAML headers in the markdown file to have the control over the LaTeX preamble (pass macro definitions and packages to load).

Especially for theses or books, another interesting possibility using Rmarkdown (files with .Rmd extension) is the LaTeX and R integration (R is a statistical language) in a R-noweb document (files with .Rnw extension) via knitr (a R package) with child .Rmd files. The main .Rnw document could be basically a typical LaTeX document that includes, via \include, \input or another LaTeX method LaTeX (.tex, not .Rmd) subdocuments. The trick is that there is also an R chunk in the preamble that allows knitr to call to pandoc during the compilation, and this would make the markdown-LaTeX conversion of child files, so you only have to work with the .Rmd files and compile the .Rnw main file, without the risk of forgetting to update the .tex files

Example:

Chapter1.Rmd:

# My first Chapter
This is a {\huge first} chapter $E=mc^2$


Thesis.Rnw:

\documentclass{book}
<<calltopandoc, echo=F,include=F, engine='sh'>>=
pandoc Chapter1.Rmd --chapters -f markdown -t latex -o Chapter1.tex
@
\begin{document}
\include{Chapter1}
\end{document}


Being a mathematician, for sure you will appreciate also that this allows you to include R outputs (as plots or results of a linear regression) inserting another R chunks (now with the default R engine) in the .Rmd files:

{r test, echo=FALSE}
2+3



as well as in the .tex parts:

<<test,  echo=FALSE>>=
2+3
@


Edit

To manage books projects, however, it should be cited bookdown and projects inspired by bookdown as the commented thesisdown.

Briefly, the difference of bookdown with a main.Rnw (LaTeX+R) plus child .Rmd (Markdown) files, is that there are only several .Rmd files that are merged before to parsing R code and export to LaTeX or whatever ("merge and knitr" approach) or first run the R code of every .Rmd file and then are merged and exported to LaTeX or whatever ("knitr and merge" approach).

To install bookdown, construct a book project, configure it properly (in the YAML header of index.Rmd, _bookdown.yml and _output.yml) and compile it the first time is not as trivial as compile a single .Rmd file, but worth take the time to understand how it works, if you need to build large books.

Moreover, bookdown add a few rmarkdown extensions, as (ref:label). As in any rmarkdown you can write also directly \ref{label}, but it will be omitted except for LaTeX output, while (ref:label) will work in any output.

• One think you might want to add to your (nice +1) answer is a link to the thesisdown template github.com/ismayc/thesisdown Dec 2, 2019 at 16:58
• Personal taste, but going through a complete R install (plus knitr has so many dependencies) seems like a huge overhead to me, when in the end it's just calling Pandoc. Pandoc alone is sufficiently flexible, and you can add yourself relevant extensions for a thesis, such as the pandoc-fignos filter for numbering figures, etc. Apr 17, 2020 at 13:15
• With respect the "problem" of a R/knitr install, It seems to me irrelevant considering the benefits and simplicity of install R or R packages. Markdown alone cannot do scatter plots from some data, or a complex LaTeX tables showing the results of a general lineal model, or execute external program, or download and use a reference by the DOI or a PMID code, or make a word cloud, or simply sum 2+3. But if do not need any of this (for example to make a novel) of course markdown alone is fine, although even without any R code, Rmarkdown and bookdown are more complete that other markdown flavors.
– Fran
Apr 17, 2020 at 15:20

I wrote my PhD thesis in the field of software engineering. So my comments are influenced by the requirements of that field.

The learning curve for LaTeX is steep and the payback is terrific. It is worth making the effort.

For a start, you should locate and start with an existing thesis .tex file. There are many available. Check within your own faculty and with peer institutions. It is always easier to start with something that almost works.

You will probably be required to write and submit several papers during your candidature. Most journals provide templates to suit their publications. Typically you only need to change a line or two in your files to re-generate your paper for a different publication.

When you hit stumbling blocks, check this site. Most problems have been encountered by others before you and have already been solved. No need to struggle alone.

Having said the above, I use markdown to generate documentation and other material that I publish on the web. LaTeX is too heavy duty for that purpose. The key takeaway is that when writing a thesis, the bulk of the effort is in thinking and rewriting, not in futzing with formatting issues.

@Fran's response is excellent. I'm in the position of writing my thesis right now, and I've decided to use the Bookdown package, which allows you to stitch together multiple .Rmd files into a final PDF document using pandoc.

https://bookdown.org/yihui/bookdown/

There are also some dedicated R packages such as thesisdown that is specifically designed to facilitate this exact process.

https://github.com/ismayc/thesisdown

I've written 2 theses, 1 with latex and 1 with markdown (both were about cognitive psychology, and required tables, figures, & math equations, all in APA style). Here's my take:

Markdown is the better approach. Pros:

• much simpler syntax; not only is it easier to learn, but it makes the actual typing much more smooth and efficient (especially in regards to citations, in-text formatting, links, figures)
• the easier syntax also makes collaboration easier; people can learn markdown in about 40 seconds (collaborating with people who don't know latex is pretty much a non-starter)
• wider usage; I don't see latex used much beyond academic documents -- in contrast, markdown has become widely adopted in many domains (academic and non-academic)

Latex is obviously much more powerful and customizable than markdown is. However, with pandoc, this is no longer an issue. Anytime you need to do something markdown can't accomplish, you just include a small snippet of latex and pandoc will just integrate all your markdown and latex code together. It's magic

I think the best move is: markdown as the base format with tiny bits of latex (or even html) for any specialized needs. With pandoc, it doesn't seem necessary to use latex as the base when you only need it for a small number of things (i.e., formatting figures or tables).

I have a deep respect for the latex project, but I think markdown is the clear best successor for academic writing. Some similar opinions can be found here:

Stuart M. Shieber article

Jake Zimmerman blog post

• Welcome to TeX.se. It might be useful for people to know what area of research your theses were in. I suspect that the suitability of markdown as a solution varies quite dramatically depending on subject area. If you need to learn LaTeX to do the complicated stuff then the gains from markdown are somewhat limited. I use markdown to create beamer slides, and for lots of administrative tasks, but for my regular work and the packages I need, markdown is not a wise choice. Dec 31, 2021 at 18:50
• @AlanMunn good point; there may be use cases I'm not considering Dec 31, 2021 at 19:01

I was wondering the same thing, read Fran's Answer and decided to give RMarkdown a go, in order to do the simple things in Markdown and embed LaTex whenever neccessary.

After 4 hours until finally installing RStudio and friends correctly and another 30mins trying to find out how to reference figures in RMarkdown only to find that it seems to be not possible for code blocks (not even with injecting latex), I'll definitely use LaTex for my thesis. It took me 30 mins there to get three different, customizable versions instead.
Note that maybe it is possible, but as an RMarkdown beginner, I didn't figure that out within reasonable time.

Of course, LaTex took me probably the same time initially to get it to run, so here's how I see the decision: Markdown makes it very easy to do very easy things, but getting something more complicated done (like referencing code blocks) can be frustrating and seem impossible. On the other hand, LaTex takes more getting used to until the easy stuff works, but anything is possible with it.

Personally, I prefer taking 30 minutes to find out so many ways that I cannot decide in which way I want to do it over spending 30 minutes to be 90% sure I won't find out how to do it, but that it partly because I usually want to do somewhat uncommon things.

It may be worth finding out whether there's somebody at your university which you can ask when you stumble upon an issue with LaTex. At my university, there was an optional course on LaTex, and the teacher clearly stated that if we ever have an issue that takes longer than half an hour to solve, we should send him an e-mail.

• Without any clue (mwe) I cannot guess your problem, but remember that markdown parts simply will produce a LaTeX document according a template and the LaTeX parts like \emph{text} will be added unchanged if they can be recognized as LaTeX code, i.e., they are complete commands and complete environments (e.g. \begin{centre} alone will be not regarded as LaTeX code). So, at the end you will have only LaTeX+LaTeX. If that mix does not work well for some reason, you have the option to save the generated .tex file and discover what is wrong in your source.
– Fran
Nov 20, 2018 at 11:05

I use an array of markup languages, Markdown, Asciidoc, Org-mode, & LaTeX. I tend to use Org-mode for taking notes, documentation, and presentations via beamer. I would use Markdown for note taking, README, help files, if Org-mode is not available on a computer that I am working at, and I work on Asciidoc if I need something more complex that is required that cannot be done via Markdown, when Org-mode is not available on another computer.

Markdown was simply not designed for writing academic papers, they were designed for documentation, their support for cross-references, bibliography, tables, footnotes, creating table of contents, list of figures, centered text, right aligned text, 1.5 line spacing is not there by default. This is not critique of Markdown, it was simply not designed for these purposes. The other option would be to try one of the Markdown flavours, however, it is not guaranteed one would find every requirement in it.

In contrast, LaTeX was specifically designed for these purposes, and it does them elegantly. I do agree it comes with a learning curve, but, it is worth spending a few hours learning and trying, knowing that the barrier to achieving the desired result is finding the right command, without wondering if it this option is available in the markup lanuage. Especially, with mathematical formulae, this is the field where LaTeX shines.