I’ve found myself having to use LaTeX more often in the past couple of semesters. Over time, I discovered (what I think to be) a neat workflow for creating LaTeX documents. Now I find it easier to write a humanities essay with LaTeX than Pages. So, I thought I’d write about the tools and packages that I have found to be useful.

## 1. ShareLaTeX

If you’re looking to get started with LaTeX or want a quick introduction to LaTeX basics such as how to insert images or manage bibliography, ShareLaTeX’s guides have been simple and accessible.

## 2. Pandoc

I don’t write in LaTeX, well not exactly. Most of the time, I write in markdown, with some LaTeX inside, and use pandoc to convert that into a pdf file. It’s surprisingly simple to do this. Pandoc allows you to inline LaTeX commands in markdown and include LaTeX formatting options in a YAML metadata block.

``````---
title: Some Assignment
author: Stacey Tay
date: Mar 12, 2017
documentclass: article
paper-size: A4
- \usepackage{amsmath}
- \usepackage{amsthm}
- \usepackage{fullpage}
- \usepackage[utf8]{inputenc}
---

# Part 1

## Question 1

Erm, lorem ipsum.
``````

A template that I use for assignments.

## 3. Detexify

Super useful if you have to use a math symbol but don’t know the LaTeX command for that symbol. Instead of searching the name of the symbol (assuming you know its name), or looking through a list of mathematical symbols and its corresponding LaTeX command in O(n) time, Dextexify allows you to draw the symbol and returns with a list of matching symbols and commands.

The different triangles in LaTeX.

## 4. Emacs

This might be useful if you use emacs. Since I use emacs for everything that involves writing something, I had to find a reason an effective way to use emacs when creating LaTeX documents. Besides the usual useful text editing features, I also wanted to be able to preview my work as I typed it out. So, I wrote a save-hook that compiles and updates the resulting pdf on saving the file in emacs. This allows me to edit in emacs and see the updated pdf side-by-side.

``````(defun s/pandoc-markdown-to-pdf ()
"Compile pandoc markdown document and update pdf in Preview."
(shell-command (format-spec "pandoc %s.md -o %s.pdf && open %s.pdf && open -a Emacs.app"
(format-spec-make ?s (shell-quote-argument (file-name-base buffer-file-name))))))

(defun s/turn-on-pandoc-markdown-to-pdf-save-hook ()
(interactive)
``````

You don't need emacs to write LaTeX, but where's the fun in that?

## 5. Specific Resources for SoC Classes

For when you find yourself taking a logic class or having to do a research project.

### Packages for CS3234 Logic and Formal Systems

• bussproofs—for constructing proof trees, i.e. that logical rules thing with premises and a line separating them from the conclusion at the bottom.
• natded—for creating Jaśkowski-style box proofs.
• qtree—for drawing tree diagrams.