This repo contains the LaTeX files needed to compile a set of notes for the course Theoretical Computer Science at the University of South Africa.
A PDF can be generated using latexmk. If you want to access pre-generated PDFs, please check the Releases section on the sidebar.
This is a work in progress, with chapters and examples to come.
If you are able, and interested in contributing, please do!
If there is something missing, or something that you feel needs further clarification, please open an issue.
Please fork this repo, make your changes, and then open a pull request.
- The file notes.tex contains the general structure and order of the files. Building this file should build all the other
.tex
files, and include them in one.pdf
callednotes.pdf
- Each unit has a separate
tex
file where the notes are written. These are contained in the units folder. - The styles, commands and packages used are in the package file notestyles.sty
TeX packages that have been used are:
- amsmath, amssymb: Used for mathematical symbols and environments
- amsthm: Used for the proof environment\
- babel: Use description environment, and chapter renaming
- changepage: Allow paragraphs to be indented
- enumitem: Used to improve the way lists are displayed
- etoolbox: Allow commands to be patched
- fancyhdr: Improve header and footer display
- fontenc, charter, inconsolata, cabin, newtxmath, bm: Font display
- geometry: Used for document margins
- hyperref: Add PDF bookmarks
- parskip: Set proper default values for paragraph separation
- subfiles: Allow
tex
files to be written separately, but built together - tabularray: Better table display and management.
- tcolorbox, adjustbox: Create colored boxes for different environments
- tikz: Used for images
- venndiagram: Easier support for Venn Diagram display than using pure tikz
- xargs: Allow commands and environments to have more than one optional argument
- xcolor: Used to get more colors
- xstring: Analyze strings given as arguments to an environment
For intellisense, a list of the commands is added in the package_intellisense folder. These have been written in formats that can be understood by different LaTeX tools.
addfile [input] {<filename>}
: Include or input the file into the document. By default, it includes the file, the optioninput
can be given to input it instead.concept {text}
: Mark specific text as a concept to be learned. Puts the text in bold.rulebookend
: Insert a decorative horizontal line at the end of the text.rulechapterend
: Insert a decorative horizontal line at the end of each unit.
answer
: Used to indicate an answer to a question in an exercise. Unbolds the text.definition {title}
: Coloured box used for highlighting important concepts.example
: Coloured box used to highlight examples.exercise {title}
: Coloured box used to highlight exercises.indentparagraph
: Indent selected text to the left.questions
: Anenumerate
list, that is used to make each question bold.sidenote
: Coloured box used to indicate extra information.subproof
: Environment for proofs inside proofs.theorem
: Coloured box used to highlight theorems.venntwo
andvennthree [options] [title]
: Simplified Venn Diagram environments