A good practice in math, especially when studying a type of mathematical objects, is by considering what doesn’t fit the definition.
There are many benefits to using LaTeX as an academic. This post aims to giving you resources on how to setup your coding environment. The aim is not a comprehensive review of LaTeX editors, but to give a starting point for novices, so apologies if your favorite editor is not included here.
Choosing a Starting Point: Online vs. Offline
There are many ways to setup your environment, and here I’ll layout the two major ways – desktop and cloud. and their pros and cons:
|Cloud||+ Does not require disk space or significant time to setup|
+ Easily access your files from multiple operating systems with any reasonably modern browser
+ Many templates exists
+ Great for novices to get a feel for LaTeX
+ Great for creating simpler documents or singular images
+ Some blend features of WYSIWYG document creators, which is a nice scaffold for novices.
|– Requires internet access for the entire duration of editing|
– Sharing editing power with others requires a paid account, on a subscription basis.
– On the very rare occasions when the servers are down, you will not have access to your files
– Handling and breaking your document into multiple files can be a bit messy
– Privacy: Trusting sometimes sensitive text to be handled by a server not owned by you.
– Code version control: compiling offline allows for you to update distributions of each component yourself, whereas the server sometimes gives minor bugs due to distribution bugs.
|Desktop||+ Entirely free and full control over your own files|
+ Does not require internet access to create files unless you use a new package that requires download. (Likely by citing a new package you were looking on the internet and found out about it anyway.)
+ Custom libraries and style files “easy” to manage
+ Can set up your files on a cloud, and have full control over your backups
+ Can handle as many subfiles as you need to.
|– Steeper learning curve in setup.|
– Compiling time depends on the power of your machine. However, unless you’re running unix on a toaster, there’s not really an issue with modern machines now.
– Working with multiple editors will likely require GitHub, unless there’s one person who is in charge of translating more basic document files into LaTeX.
– Unforgiving in syntax during compile time
Based on what you’re building, you’d likely switch between cloud and desktop environments. Thus, I’ll recommend some specific ones below.
Notable Online LaTeX Editors: Overleaf, Authorea and CoCalc
- Overleaf v2: Great document editor site, one of the most popular. Overleaf hosts many templates as well as gives fairly comprehensive customer support. Result of the merger of Overleaf and ShareLaTeX, the site unfortunately is freemium. This popular website is used at the University of Illinois of Chicago, in the department of mathematics to handle creation of exams and exam keys. Also used extensively by my cohort at San Francisco State University for homework. Highly recommended to use their free solo accounts for learning LaTeX.
- Authorea: “a platform to read, write, and publish research.” Mainly a good platform for collaboration between researchers who already know latex and those who are using other text editors. Main plus: they use Git for version control, which makes this very attractive for bigger teams working on long projects. They also have a stated goal of helping bring the power of professional typesetting using LaTeX to social sciences.
- CoCalc: This is a great site for mathematicians and statisticians who enjoy open source programming philosophy. Aside from a full LaTeX compiler, they also handle SageMath worksheets, Jupyter notebooks, R and scientific Python. From my personal experience, this is a great place for learning all these formats. before beginning my master’s thesis, I wrote prototypical code here until dealing with lattice polytopes in dimensions higher than 3 made the server eventually hate me.
- Codecogs: Basic editor for creating images of mathematical equations, useful for super quick creation, no more, no less.
Notable Offline LaTeX Editors
First, depending on your operating system, you should install a LaTeX compiler:
- Windows: MikTeX
- MacOS: MacTeX
- Linux: Often a TeX distribution is already installed, but if not: TeX Live distribution
Then, choose a LaTeX editor. I’ve only included dependable editors that are usable across Windows, Mac as well as Linux, as that is important to me personally because I switch between Ubuntu and Windows depending on the task often.
- TeXmaker: Install this and start coding! Texmaker is considered to be one of the best LaTeX editors for GNOME desktop environment. It presents a great user interface which results in a good user experience. It is also crowned to be one among the most useful LaTeX editor there is.
- TeXstudio: A fork of TeXmaker, with more open philosophy to modification. This program allows for more customizability than TeXmaker. The learning curve is slightly higher, due to having more features.
Other notable editors (harder to use, but with great potential for power-users)
- Sublime Text: Great tool if you’re using already familiar with sublime text as an editor for Python and other languages. Simply add on LaTeX plugin and set up autocomplete and snippets and you’re good to go. See: LaTeX Tools
- Visual Studio Code: Similar remark to above. See: LaTeX Workshop.
- VIM: Learning this editor is HARD, but the payoffs are great if you plan on being a high-functioning code producer one day. This is likely the most powerful editor on this list, and it’s my personal goal to integrate this editor into my workflow one day. (There’s an ongoing editor war, which I hope that my joke here won’t bring too much vitriol…) This editor exist in almost all Unix/Linux distributions by default, and is highly customizable, with a significantly different flow of editing from others. Power of snippets is super intense, and while the learning curve is sharp, the potential to generate massive amount of work with minimal keystrokes cannot be underestimated. Set up snippets, autocomplete and use a latex plugin and you’re golden. (This last sentence is a non-trivial amount of work.) See the following resources: vimtex, ultisnips, and vim-snippets. For a demonstration of the power of combining vim and latex see the following blog entries by Gilles Castel: 1, 2 and 3.
- LyX: a WYSIWYM document editor, this program attempts to bridge the plaintext source code style of LaTeX and the WYSIWYG editors. In my humble opinion, this is not really a good place to start if you wish to do more than just math homework documents. In practice, using this program eventually hinders you from using the full power of LaTeX beyond the basic equation editing.
For a more comprehensive breakdown of editors, visit this wikipedia page.
Next in the series we will cover the basic structure of a latex document, and common resources to help you as you build your code.
LaTeX is a powerful document preparation system. This system is free and is available across many operating systems, such as Windows, Mac OS and most distributions of Linux. A successor of TeX, LaTeX was created in the 1983 by Leslie Lamport. This computer typesetting software was originally created for academic papers in STEM fields, and since has grown in popularity in other fields because of its power to create many types of paper and digital documents common in academic fields. For those who are aiming to write a long text such as a dissertation, thesis or a book, a major attraction to learning LaTeX is its ability to handle large papers and provide uniform, beautiful, and professional formatting. LaTeX handles all the mundane tasks of formatting, so you can focus on writing the content!
Why use LaTeX
For some samples of what you can create with LaTeX, visit the Notes and Work section of this blog. Below are some reasons why you might be interested in using LaTeX:
- Manage large documents by using include directives, which allows for reuse or quick modification of content as well as manage large documents.
- The technique of using multiple files to represent one documents also allows for the flexibility to quickly create of many versions of an assessment.
- Automate citations, bibliographies and formatting of bibliographies. (Quickly switching from numeric style to APA when you transition from math to social sciences, for example)
- Natural to integrate into workflow if you use popular reference management software such as Zotero, Mandeley, Citavi and most others. (Check here to see if your reference manager is compatible with Bibtex.)
- Automate the creation of list of figures/tables/graphs, and the associated numbering
- Automate the creation, sorting and creation of index, acronym and glossary lists
- Typeset complex mathematical formulae, chemical equations
- Create more complicated documents like posters, slides, and double-sided flash cards
- Precise typesetting for many languages, this is especially useful for languages outside of the romantic languages family such as Arabic
Comparing LaTeX with word-processors
There are some contrasts with WYSIWYG (What You See is What You Get) word processors like Microsoft Word or Open Office.
There are some advantages of using WYSIWYG processors:
- you wish to take advantage of the templates provided by MS Word, such as Resumes or business cards (You can create this in LaTeX also, especially if you choose Overleaf)
- if you’re creating documents that have specific syntax, such as markup language for github readmes,
- and if you’re creating very short files where formatting doesn’t matter (such as notes not meant for publication).
When common word processors attempt to handle large files, any major modifications to the file can break the table of contents, and automatic numbering of the tables/figures/lists are not reliable. Furthermore, for students working in multiple operating systems, transitioning between different operating systems using the same latex code will generate the exact same document – this precision is simply not guaranteed with most WYSIWYG processors.
With the above in mind, if you’re interested in learning about LaTeX as a beginner, I’ll be giving an introductory workshop at LSRI on November 13th, 2019.
- Getting Started with LaTeX: Choosing a LaTeX environment
- Basic structure of a document
- Links to sample latex files
Disclaimer: Featured image source https://en.wikibooks.org/wiki/LaTeX
To pay homage to mathematician peers and mentors, these notes will maintain the same familiar formatting structure of definitions, theorems, and corollaries similar to mathematical text. These notes contain a few original ideas in the form of conjectures and remarks. Outside of these comments, the words arranged below and in subsequent posts are summaries of readings from the STEM education journal club at LSRI.
The very most recent news is that I have decided to join University of Illinois at Chicago to work on a PhD in Learning Sciences, with a focus on Mathematics Education. I’m very excited to join the Learning Sciences Research Institute (LSRI) in continuing my research!
I’m moving this July, and this site will see significantly more activity; especially WRT notes on math education! I’ll be compiling notes and some definitions here as a resource
Some Highlights of 2018-2019:
- Spring 2018:
- Summer 2018
- Generalized code to any dimension, final verification of code with Dr. Gubeladze
- Worked on implementing California Executive Order 1110 – part of a team with tenured faculty working on creating the curriculum for stretch courses.
- Created a gradebook template and a lesson plan template for general use.
- Fall 2018:
- Applied to twelve PhD programs, and had a bit of an existential crisis because PhD applications can be grueling.
- Worked on writing out my thesis, as most of my work was coding up to this point.
- Defended my master’s thesis, “Computational Verification of the Cone Conjecture”
- Math 107 – Math for Business Calculus I
- Math 197 – Prelude to Calculus I
- Spring 2019
- Out of 12 I was waitlisted at one and accepted into two.
- Finalized edits for my master’s thesis and submitted to archives
- Updated LaTeX template for Masters Thesis for STEM majors at SFSU
- Graduated from the Masters program!
- First semester to finish grading finals not on the day that grades are due 😀
- Math 108 – Math for Business Calculus II
- Math 198 – Prelude to Calculus II
I defended my thesis, “Computational Verification of the Cone Conjecture”, in December 2018, and submitted all final edits in May 2019.
My advising committee:
- Dr. Joseph Gubeladze
- Dr. Matthias Beck
- Dr. Serkan Hosten
The set of polyhedral pointed rational cones form a partially ordered set with respect to elementary additive extensions of certain type. This poset captures a global picture of the interaction of all possible rational cones with the integer lattice and, also, provides an alternative approach to another important poset, the poset of normal polytopes. One of the central conjectures in the field is the so called Cone Conjecture: the order on cones is the inclusion order. The conjecture has been proved only in dimensions up to 3. In this work we develop an algorithmic approach to the conjecture in higher dimensions. Namely, we study how often two specific types of cone extensions generate the chains of cones in dimensions 4 and 5, whose existence follows from the Cone Conjecture.
A naive expectation, explicitly expressed in a recently published paper by Dr. Gubeldaze, is that these special extensions suffice to generate the desired chains. This would prove the conjecture in general and was the basis of the proof of the 3-dimesional case. Our extensive computational experiments show that in many cases the desired chains are in fact generated, but there are cases when the chain generation process does not terminate in reasonable time. Moreover, the fast generation of the desired chains fails in an interesting way—the complexity of the involved cones, measured by the size of their Hilbert bases, grows roughly linearly in time, making it less and less likely that we have a terminating process. This phenomenon is not observed in dimension 3. Our computations can be done in arbitrary high dimensions. We make a heavy use of SAGE, an open-source mathematics software system, and Normaliz, a C++ package designed to compute the Hilbert bases of cones.
Full Text is below:
The actual latex code is hosted on github.
Finally set up a github to house all the custom LaTeX files that I’ve created!
Will be updating this over time – this particular github is mostly meant for personal use, though I’m happy to share what I have and continue to update this github.
As I continue to create new tools, I’ll be hosting them here.
You’ll see currently the following repositories:
- ConeThesis Code for my master’s thesis, uses SAGE and Normaliz extensively. (Python)
- Custom-LaTeX-Files Macros, Packages, Stylesheet and reference.bib
- MAThesisTemplate SFSU Masters Thesis LaTeX template (Maybe useful if you’re writing your thesis in STEM majors!)
MA Thesis SFSU Spring 2019
April 5th, 2018
- Met with the team of SAGE & Normaliz Developers at Institute of Mathematics and its Applications at University of Minnesota.
- Discovered the issues I had connecting PyNormaliz to SAGE was due to installing SAGE using the Binary, which limits the use of custom packages. While making from source allows for the use of most recent version,
- While waiting for the fresh install of SAGE, read an article about unit testing by Jeff Knupp here.
- Learned about using parallel compiling option for SAGE install, and also learned about the System Monitor (was cool to see all the cores get used at once)
- Begin writing Unit Tests
April 6th, 2018
- Shifted to the developer branch of SAGE
- Installed the newest developer version of PyNormaliz, which installs Normaliz 3.5.3
- Rewrote Top Down algorithm using Polyhedron(rays=[[vector1],…,[vectorN]],backend=’normaliz’)
- Allows for the use of common operations like verifying if a vector is contained in the Cone.
- Resolved multiple issues (that all arose basically due to me being a newb.)
April 8th, 2018
- Added multiple githubs to record my work besides my thesis
- Begin redesign of Bottom Up using the ideas above.
Curve sketching is an important application of derivatives. Here’s an example with a polynomial, with pictures to help assist understanding: