GithubHelp home page GithubHelp logo

ccauet / thesis-template Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 0.0 30.26 MB

๐Ÿ“‹ Modern (in 2015 ๐Ÿ˜‰) LaTeX thesis template

License: MIT License

Shell 0.26% TeX 94.36% Python 4.44% Makefile 0.94%
thesis-template tikz git-annex lhcb latex latex-template

thesis-template's Introduction

Thesis template

Authors: Christophe Cauet ([email protected]) & Florian Kruse ([email protected])

This work is released under the MIT License.

How to work with this template
This thesis template is based on a private/common layout, i.e. large parts are shared between collaborators (config, definitions, references) while the main content is stored elsewhere. To work with this template, you should create a file hierarchy with the following minimal structure and create a symlink named private pointing there.

.
โ””โ”€โ”€ content
 ย ย  โ””โ”€โ”€ content.tex

In case you want to include private configurations, definitions, a title page, or an appendix, the minimal template can be extended.

.
โ”œโ”€โ”€ config
โ”‚ย ย  โ””โ”€โ”€ config.tex
โ”œโ”€โ”€ content
โ”‚ย ย  โ”œโ”€โ”€ appendices
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ appendices.tex
โ”‚ย ย  โ”œโ”€โ”€ content.tex
โ”‚ย ย  โ””โ”€โ”€ titlepage
โ”‚ย ย      โ””โ”€โ”€ titlepage.tex
โ””โ”€โ”€ definitions
 ย ย  โ”œโ”€โ”€ abbreviations
 ย ย  โ”‚ย ย  โ””โ”€โ”€ abbreviations.tex
 ย ย  โ”œโ”€โ”€ acronyms
 ย ย  โ”‚ย ย  โ””โ”€โ”€ acronyms.tex
 ย ย  โ””โ”€โ”€ definitions.tex

To make use of %!TEX root = .. in your editor, create a second symlink called common in your private file hierarchy.

git-annex
User guides for all used packages can be found in doc/ using git-annex.

Useful fonts can be found in fonts/ using git-annex.

Font setup

The directory common/config/fonts/ contains sets of matching fonts that can be activated with a simple include in your own private/config/ setup.

Rapid mode

To speed up compilation, rapid mode can be enabled by defining rapidmode as true in the private/config/ setup:

\rapidmode

This currently has the following effects:

  1. Tikz externalize library is used to avoid unnecessary recompilation of Tikz figures
  2. Todonotes are disabled (not compatible with Tikz externalize)

Other speed-up features might be added in the future.

Caveats โ€“ rapid mode

Compilation with latexmk in SublimeText/LaTeXTools does not work with externalize as the -shell-escape option is not propagated to lualatex. To fix this add the following to your LaTeXTools user settings:

{
โ€ฆ
	"builder_settings" : {	
		// General settings:
		// See README or third-party documentation
		"program": "lualatex",
		"command": ["latexmk", "-cd", "-e", "$pdflatex = '%E -shell-escape -interaction=nonstopmode -synctex=1 %S %O'", "-f", "-pdf"],

		// (built-ins): true shows the log of each command in the output panel
		"display_log" : false,	

		// Platform-specific settings:
		"osx" : {
			// See README or third-party documentation
		},

		"windows" : {
			// See README or third-party documentation

		},

		"linux" : {
			// See README or third-party documentation
		}
	},
โ€ฆ
}

Todo notes

Todos can be defined with the following macros:

\todo{Do something}
\important{Do something ASAP!}
\info{A rather informational todo note.}
\missing{Add section about interesting study}
\addref{Note for a missing reference.}
\replace{this}{by that}
\redo{Recreate this ugly looking plot and make it nice!}

All todos can be disabled by adding

\presetkeys{todonotes}{disable}{}

to the private config files.

To make todos inline by default:

\presetkeys{todonotes}{inline}{}

Scripts

wordcount.py
Create word count for all files in private/content/ and write log file including timestamp to private/. Dependencies: texcount and the python modules: os, pexpect, fnmatch, datetime, pytz

It is possible to automatically append the current word count to the log file each time a commit to the private repository is made. To do so, just add a pre-commit hook to the private repository. Go to private/.git/hooks and create a file pre-commit, then add:

#!/bin/sh
./common/wordcount.py --silent --exclude-appendix
git add wordcount.txt

common/scripts/plot_wordcount.py
Script to parse and plot the word count log file. Dependencies: argparse, numpy, matplotlib, datetime

common/scripts/prettify_pgfplots.py
Utility to "prettify" tikz-based plots from ROOT. Based on a python dictionary with regexps (if not specified, this is common/scripts/prettify_dictionary.py) patterns will be replaced by proper TeX code (e.g. broken particle names by proper symbols). Dependencies: Python modules: fileinput, re, sys, imp, os

common/scripts/prettify_all.py
Prettify all tikz-based plots. Will be run via make. Dependencies: Python modules: os, pexpect, fnmatch, datetime, pytz

Special LHCb content

Special LHCb content can be found in definitions/acronyms/lhcb.tex and references/lhcb.bib. The acronyms can be added to the private configuration by adding the line:

\input{common/definitions/acronyms/lhcb}

or for the LHCb-centric bibliography:

\addbibresource{common/references/lhcb.bib}

thesis-template's People

Contributors

ccauet avatar flokru avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

thesis-template's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.