Howto Write a Thesis using LaTeX: Excel to LaTeX Table

Generating nice tables in plain LaTeX can be really annoying as it is very hard to get an overview of columns and rows for raw text. One possibility would be to use a WYSIWYG editor that comes with many development environments.

You can find a nice tool for generating tables in TexMaker by selecting Quick Tabular from the Wizard menu item.
TabularWizard

But, in most cases, we do not want to insert tables manually. Instead, most of the data already exists in any other program and we would like to generate a table from our existing data. Also, there are much more specialised application for editing and generating tables, one and probably the most common one is Microsoft Excel.

Fortunately, there is a great tool that let’s you export your existing Excel table to LaTeX code, called  Excel2LaTeX!

1. Install Software

Go to http://www.ctan.org/tex-archive/support/excel2latex/ and download the latest Excel2LaTeX.xla file. Next, open the file with Excel.
You might get asked if you want to activate Makros and this is a potential security issue. As we know what we are about to do, we accept Makros. And that’s it, the add on is already installed!

You will find two additional buttons in the Add-Ins tab of your Excel Toolbar.
Excel2LaTeX_buttons

Note that the Add-Ins tab needs to be activated for some Excel versions separately!

Now comes the easy part, select the area of your table you want to export to LaTeX and click the Convert table to LaTeX button. The following dialog pops up:
ExportToLatex

Click either the Copy to Clipboard button to copy the LaTeX text or save it to a file by choosing Save to File:.
For some reason, copying the text snippet did not work for me on Windows 8, so I had to copy it manually!

Next, as we have the table as LaTeX code in our Clipboard, we only need to paste it to our LaTeX file. Navigate to the position where you want to insert the table in your TexMaker file and paste the content. Note that you might need to load the following packages in the preamble depending on how fancy your table is styled:

\usepackage{booktabs}
\usepackage{color}

The generated code for the example table looks like:

% Table generated by Excel2LaTeX from sheet 'Tabelle1'
\begin{table}[htbp]
  \centering
  \caption{Add caption}
    \begin{tabular}{rrr}
    \toprule
    \multicolumn{1}{c}{\textbf{Name}} & \multicolumn{1}{c}{\textbf{Age}} & \multicolumn{1}{c}{\textbf{Score}} \\
    \midrule
    Maria & 23    & 1 \\
    Thomas & 21    & 0.78 \\
    \textit{Alicia} & 19    & 0.27 \\
    Mark  & 31    & 0.45 \\
          &       &  \\
    \bottomrule
    \end{tabular}%
  \label{tab:addlabel}%
\end{table}%

Note that you also might want to update the table caption:
insert_table

Cool, we just inserted a table from Excel to our LaTeX document! Wasn’t that much easier than typing it yourself?

Please also note, that the newly inserted table is automatically listed in the list of tables we inserted at the end of the document.

Howto write a thesis using LaTeX, Part 3: Tips and Tricks

We’ve already seen in part 1 and part 2 of this tutorial, how to install and set up software components and howto organize folders and files. Also, we have created a basic structure of our thesis. In this final part 3, I will give you some tips and tricks that made my live easier while creating my PhD thesis.

To be easier found by search engines, I’m gonna create a separate post for each single tip, trick or hack, whatever name you prefer. But, in order to preserve the scope of this tutorial, we will see how to include the generated stuff into our test thesis.

So, here you go, a list of tips, tricks and hacks helping you with your thesis:

Assume you have generated an image like described in the link above, you can use the following code to include it to your thesis:

An example figure is shown in Figure ??.
\begin{figure}[ht]
	\centering
    \includegraphics[width=0.5\textwidth]{fig/image.pdf}
    \caption[Short caption]{Detailed caption}
    \label{fig:image}
\end{figure}

And of course, we need to import the graphicx package in the preamble of the Thesis.tex file:

\usepackage{graphicx}

Source files generated within this tutorial can be download here:
Thesis Template

If you are a student of the faculty “Biologie und Vorklinische Medizin der Universität Regensburg” in Germany, you can also download the predefined title page:
UR-Titlepage
Thesis Template with UR title page included

I hope you enjoyed reading this tutorial. Now you are all set, you are prepared to write a thesis so fancy that you supervisor is forced to give you the best mark available without reading even a single word of you’ve written. I’m just kidding, of course, content is most important, but at least, you do not have to figure out every problem with LaTeX on your own and you can invest your time on writing text.

If you like this tutorial, please recommend it and leave a command, if you don’t like, tell me what you want me to improve or just don’t tell anybody 😉

Howto write a thesis using LaTeX, Part 2: Create the document structure

In part 1 of this tutorial, we managed to set up software that helps us creating our thesis with LaTeX. It’s time to get started with the real LaTeX stuff. This is not going to be an introduction to LaTeX as there are plenty of very good LaTeX tutorials; you can easily find them using google. This tutorial is rather a guide on which packages are helpful to be used, how you can organize your files, how to insert graphics, create tables and write algorithms in LaTeX. To understand the commands provided in this tutorial, I strongly recommend doing some general introduction to LaTeX first!

1. Folder structure

We start with creating a new folder (our project directory), preferably directly using our cloud service. I use Dropbox and hence create a new folder in my Dropbox folder called Thesis. Within this folder, let’s add some additional folders:

  • fig (will contain all figure)
  • tex (will contain LaTeX files)
  • bib (will contain bibliography files)

Separating your source files will help you keeping the overview about your files.

2. Creating the main LaTeX document 

First, open Texmaker and click New icon to create a new file. Each Latex document has to define a document class, indicating what kind of document we are about to create, this may be a book, a thesis or even a presentation. We are using document class report and define it by writing

\documentclass[a4paper,12pt]{report}
\begin{document}
Hello World!
\end{document}

to the very top of the file. We defined the document to be a report and added some additional parameters. As I am European, I use A4 paper size and a default font size of 12pt. If you prefer using the letter paper size, just replace a4paper with letterpaper. Next, save the document into your projects root directory as Thesis.tex. The directory should now look like

Project_directory

Please note that the little green check mark is indicating that the files are in sync with my Dropbox account.

Now we are going to translate the document by Tools->PDFLaTeX from the top menu or by simply pressing [F6] on the keyboard. If you have activated the messages and log window in Texmaker, you see some output written there. For sure, you will need the outputs later if you note that you have some errors in your LaTeX code and the messages window is presenting shiny red error messages. If we have a look at our project directory, we note that some additional files have been created by LaTeX. Don’t care what they mean at all! The only thing to note is that there is a PDF document called Thesis.pdf which can be displayed directly in Texmaker on the most right column. The PDF view is refreshed by selecting Tools->View PDF from the menu or by clicking [F7]. Doing so, Texmaker shows a PDF file containing only the text Hello World!

Let’s create the main document structure for our thesis. Many universities do provide LaTeX templates, but unfortunately, mine did not. So I created by own structure to be:

  • Title page
  • Abstract
  • Table of contents
  • Introduction
  • Material
  • Some real boring stuff for at least 99.9% of people
  • Discussion
  • Conclusion
  • Acknowledgment
  • Appendices
  • List of Algorithms
  • List of Figures
  • List of Tables
  • Bibliography

Let’s model this structure in our main Thesis.tex file. First we create the table of contents which is easily done by putting the command

\tableofcontents

inside the begin and end document tags. After translating the document and refreshing the PDF file, a headline with Content appeared. Not surprisingly, the table of contents is empty as we did not yet insert any content. Thus, lets add some by adding an introduction. I organized my files by creating a new .tex file for each chapter of my thesis. You would be able to write all your stuff into only a single file (directly to Thesis.tex), but will pretty sure end in smashing your head against the keyboard if your document gets very large. Not only that you have real trouble in navigating through your document, but also Texmaker is getting slow if the files are getting too big. Hence, I recommend to distribute the document over several files. Lets create a new file and save it as Introduction.tex into the SUBFOLDER tex we created previously. Add

\chapter{Introduction}
\section{Motivation}
I was motivated to write a Phd thesis because I did not want to work directly after finishing my study
\section{Organization}
This thesis is organized as follows, ...

to Introduction.tex and save the file. As you note, we have just created a new chapter containing two sections. All we have to do know is to import the file into our main document. Thus, write

\input{tex/introduction}\newpage\cleardoublepage

after \tableofcontents to Thesis.tex file. The command tells LaTeX that there is another file that we want to put into exactly that place where we wrote the command to and the file to be injected can be found in the sub directory tex and is called introduction. Note that no file extension is given! The command is followed by \newpage which tells LaTeX that we want to have a new page started after this chapter and \cleardoublepage telling that all figures, tables etc. that belong to that chapter are inserted to a new page before the next chapter starts. Press [F6] and [F7] again to translate and update and you will see that there is a new page containing the Introduction. But, are you kidding me LaTeX! Why is my table of contents still empty? Cool down, this is because LaTeX is creating references while compiling but at the moment the table of contents is created, the references have not been added yet. You do not have to understand that, you only need to know, that if you add anything that is reference at any other position in the document, you have to translate twice. So simply press [F6] wait until it finished, press [F6] and then [F7] and your table of contents will be fine.

Great, we just started creating our document structure. Lets put all the other chapters in there as well

\input{tex/material}\newpage\cleardoublepage
\input{tex/boring}\newpage\cleardoublepage
\input{tex/discussion}\newpage\cleardoublepage
\input{tex/conclusion}\newpage\cleardoublepage
\input{tex/acknowledgement}\newpage\cleardoublepage

and don’t forget to create the files, add \chapter{Some Name} and save them. Translate again. By the way, there is a nice trick that you can translate the master document by pressing [F6] even if there is another document open. Just open the Thesis.tex file and click Options->Define Current Document as ‘Master Document’ in Texmaker:

Define_as_masterDoc

Now, our document is already 7 pages long and contains a table of contents. But I don’t like how the headlines and chapters look like. Thus, I want to change the style of my document and I prefer to use a package called fncychap. The package comes with a bunch of styles where I like Sonny the most. A package is used in LaTeX by calling the \usepackage{} command. In Texmaker, simply write

\usepackage[Sonny]{fncychap}

in the preamble of your document, that is before \begin{document}. The command tells to use the fncychap package with parameter Sonny. If you try to translate, you might note one of the biggest benefits with using Texmaker and MiKTeX. As you are attempting to use a package that is not yet installed, you are asked if MiKTeX should do that for you.install_package_promt

Click install and wait until installation and translation has finished. Updating the PDF will show a newly designed document. Another useful package is loaded by

\usepackage{fullpage}

and leads to the usage more wider page width.

Next we are adding the additional lists to the end of the document:

\listofalgorithms
\listoffigures
\listoftables

where the list of algorithms needs package

\usepackage{algorithm}

Obviously, the lists are empty for now.

3. Adding Bibliography

The bibliography is handled a bit different. LaTeX uses so called BibTeX files that contain entries for papers, books and other published stuff. The idea behind is that you have only one big BibTeX file (.bib) with all your publications in it. LaTeX is calling BibTeX with references to the entries using a unique key and BibTeX is creating a file containing only the referenced entries. LaTeX further uses the created file and inserts the entries into the document. Although, it is possible to add several bib files. You can edit the bib files using software or insert entries manually to the bib file. I prefer doing it manually this saves me the time of importing and exporting all the time. Thus, I open the bib file in Notepad++ and copy the references by hand. Let’s create a simply scientific article reference. The BibTeX code might look like

@article{schoen2013,
    author  = {Torsten Schoen and Co Author},
    title   = {Ten things you better not say to your wife},
    journal = {Optimizing Husbands},
    volume  = {21},
    year    = {2013},
    pages   = {85--91},
 }

We simply open Notepad++, create a new file, put the code above in there and save it in the Thesis\bib folder by name Literature.bib. Below our lists, we add the bibliography:

\bibliography{bib/Literature}\newpage\cleardoublepage

Further, we have to define a bibliography style in the preamble

\bibliographystyle{plain}

where I prefer the plain style. We can cite entries of the bibliography using the \cite{} command and providing the unique key. For example, write in any of you chapter files:

We refer to Sch\"on \cite{schoen2013} for things you ...

On translating the document, a warning is shown in the message console as the key schoen2013 cannot be found. This is because we have to run BibTeX first by pressing [F11] in Texmaker. Again, as there are references you have to press [F6] and [F11] in turn again and again until the citation finally works. Updating the PDF after persistent pressing of [F6] and [F11] until all warnings disappeared, we can see that a bibliography with one entry has been added at the end of the document and in the text part, \cite{schoen2013} has been replaced with its related number.

A nice source to find papers and get them directly in BibTex format is to search at Google’s scientific search engine called Scholar. If you do a search, you can click on “cite”

scholar_cite

and a export citation window appears where you can export the entry as BibTeX code to simply copy and paste it into your bib file.

scholar_cite_2

4. The title page

Next step is to add a title page. Most universities require to use a predefined title page so as my one did. The title page actually consists of two page, the real title page and a page with some formalities. Of course, the title page is nothing else than a normal LaTeX file. Hence, we simply create a new file in our tex folder and name it Title.tex. The only difference is that we should define the title page as title page by inserting:

\begin{titlepage}
This is my thesis!
\end{titlepage}

Anything that should be part of the title page is written between the tags. Further we have to input the file into Thesis.tex by writing

\input{tex/title}\newpage\thispagestyle{plain}

right after \begin{document}. Next, we gonna add some empty pages between the title, abstract and table of contents and change the numbering to be roman. The real Arabic page numbering of the thesis therefore start just with the first page of the introduction.
This is a bit more complicated and I will simply provide the code without any explanations. The complete Thesis.tex file is hence defined as:

\documentclass[a4paper,12pt]{report}

\usepackage[Sonny]{fncychap}
\usepackage{fullpage}
\usepackage{algorithm}
\bibliographystyle{plain}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}
\pagenumbering{roman}

\begin{document}

\newcounter{rom}

\input{tex/title}\newpage\thispagestyle{plain}

\addtocounter{rom}{1}\setcounter{page}{2}~
\newpage\thispagestyle{plain}\setcounter{page}{3}

\tableofcontents

\newpage\thispagestyle{plain}~
\clearpage
\pagenumbering{arabic}

\input{tex/introduction}\newpage\cleardoublepage
\input{tex/material}\newpage\cleardoublepage
\input{tex/boring}\newpage\cleardoublepage
\input{tex/discussion}\newpage\cleardoublepage
\input{tex/conclusion}\newpage\cleardoublepage
\input{tex/acknowledgement}\newpage\cleardoublepage

\listofalgorithms
\listoffigures
\listoftables

\bibliography{bib/Literature}\newpage\cleardoublepage

\end{document}

This is the end of the second part of this tutorial. You can download related source as zip file here:
TS thesis template Part 2

In the next part, I will give you some useful tips and tricks that helped me a lot:

==> Continue with Part 3

Howto write a thesis using LaTeX, Part 1: Setting up software components

In this tutorial, I will explain howto write a thesis (which may be a master, PhD or any other thesis) using the document markup language LaTeX. I assume that most of you are using Windows as operating system, thus I did a fresh installation of Windows 8 and I will use it throughout this tutorial. Nevertheless, I think if you are using an older version of Windows, there might be no difference. For you guys using Mac Os X or Linux based systems, you may use the tutorial as well, but figure out howto install software components on your system by yourself. I am using Ubuntu and a MacBook, too, and will probably add some more tutorials for these systems soon. Ok, so we have a fresh raw installation of Windows 8, no additional software installed. Of course, before start writing anything for your thesis, you will have to get some fancy and helpful software. Here is an overview of software component that will be used throughout this tutorial where installation will be explained in the following sections.

  • MikTex (includes everything you need to run Latex)
  • Texmaker (Helpful editor to write Latex code)
  • Inkscape (Vector graphic program)
  • Dropbox (Save your work in the cloud)
  • Notepad++ (A great text editor)
  • Excel2Latex (Plugin to export tables from Excel to Latex)

Source files generated within this tutorial can be download here:
Thesis Template

If you are a student of the faculty “Biologie und Vorklinische Medizin der Universität Regensburg” in Germany, you can also download the predefined title page:
UR-Titlepage
Thesis Template with UR title page included

1. Install Software

1.1 Download and install MikTex

The first step is to download and install MiKTeX containing everything you need for working with LaTeX. Go to http://miktex.org/download and download the last available version. At the time of writing this post, the latest version is 2.9.4813. Fortunately, MiKTeX provides a nice installer. After downloading, simply start the installer and follow instructions. During installation, you will be asked for selecting your preferred paper size and for package installation: Miktex_install_1

If you live in Europe, you may select A4 as preferred paper size, Americans are using Letter as far as I know. So I usually choose A4. LaTeX is a software that has many additional stuff that can be added for specific things. For example, if you are a software developer, you might want to display source code of algorithms in your thesis. Therefore you want some additional functionality for LaTeX. Fortunately, there is a huge community providing stuff for anything you might imagine. These additional things are stored in so called packages. We will see later on how we can install and use them. MiKTeX is very nice to us by providing a package manager that is searching and installing packages for us. In the second option of the screenshot above, we can define if MiKTeX is allowed to install them on the fly, meaning if we are referencing a package in our code that is not yet installed, MiKTeX is recognizing it and installs it automatically. I prefer to be asked before, as I want to know which packages are being installed on my system. Remaining installation is just straight forward.

1.2 Download and install Texmaker

After we have successfully set up MiKTeX, we would be able to write some LaTeX code in any text editor and compile it using the command line. As not everyone writing in LaTeX is a nerd, we are about to use a special text editor (also called IDE for integrated development environment) that does some helpful things for us like syntax highlighting, auto completion and creating the final PDF file by only a mouse click. I prefer using Texmaker, which is freely available for all operation systems, but there are plenty of other excellent programs. If you are one of the Linux guys, you might also have a look at Kile. Go to http://www.xm1math.net/texmaker/download.html and download the latest version of Texmaker, I downloaded Texmaker 4.0.1 for Windows (texmakerwin32_install.exe). After downloading, start the installer and follow the instructions, it is straight forward. Next, start Texmaker, it should look like:

Texmaker_plain We immediately see that the program is built of three columns. Once we have started writing, the most left one will show the structure of our document, namely headings etc. The middle one is going to be our text editor where we put the LaTeX code in and the right one will show the translated PDF document. At this point I need to say, that we are going to translate our document into PDF. Originally, LaTeX is going to produce DVI files which is not used very often nowadays. Good, lets try if LaTeX already works by creating a new file by clicking the icon Texmaker_add_new in the top left corner of Texmaker. Now, in the middle column, a new file has been opened. Type in the following and press save:

\documentclass{book}
\begin{document}
Test
\end{document}

Please don’t worry what that means, we will revisit that later.
If you are using Windows 8 as I do, you might wonder that you can’t save the file due to permission errors (Really Windows? Managed to have a new version that is even more silly than the old one?). The trick is that you have to provide a file extension on your own. So save the file as Test.tex not only Test. Note that .tex is the file extension indicating that this is a LaTeX file like .docx is used for Microsoft Word files.

On the bottom left of Texmaker, there are some buttons, press the Messages/Log button and you may note that at the bottom of the middle text editor column, something appeared called output window. This is a console that is providing output information of translating the text to the PDF file. Next, select from the top menu Tools->PDFLaTex and you will see that some messages are shown in the output window. Select  Tools->PDFLaTex again. Next, select Tools->View PDF and a PDF file should be displayed in the right column of Texmaker:

Texmaker_test

Congratulations, you just created your first LaTeX document and successfully translated it  to a PDF file. Please don’t worry about anything we’ve done so far, this was just to check whether our installation works or not. If you run into any trouble and you could not produce a PDF file, please check if your Texmaker has automatically identified LaTeX installation correctly. You may check that in Options->Configure Texmaker where Commands should look like:

Texmaker_commands

Of course, some paths might be different.

Great, we are able to use LaTeX and can produce a PDF document from LaTeX code. But to write a fancy thesis, we need to install some more helpers.

1.3 Get Inkscape

Justifiably, you may ask: “Why do I need to install a graphics program? I just want to write my thesis and I already have plenty of graphic programs installed” OK, you do not necessarily need Inkscape, but you should use a software that can save images as vector graphics. Now, I may have finally confused you and you are angrily pressing your browsers back button know. I will clarify, there are generally speaking two kinds of images used on computers, the one and normally used ones are pixel based graphics, these are for example PNG or BMP or JPEG images like the screenshots provided in this tutorial. So, the image is built of a matrix of pixel values (squares) that do have one single color. You will have noticed that in the past while zooming an image too far. Further, there is the resolution, saying how many of these pixels exist in the image. The biggest disadvantage of this file formats is that if you are zooming the image, there are too less pixel values available and the image gets cloudy or you are seeing these pixel squares. Of course, we do not want to have cloudy images in our thesis, especially if we are providing graphs or similar stuff. The other option is to use vector graphics. A vector graphic image is simple a text file where the image is described in the sense of: “There is a black line of thickness 3 from the top left corner to the middle of the image”. The real painting of the image is done by the program that displays the image and if you zoom in, the lines, circles and whatever you may draw are still correctly defined. The end of this too long story is that we use vector graphics to get sharp images even if we zoom in extremely into the PDF file. Please note, that of course you cannot transform a pixel image or a photo into a vector graphic.

One of these programs you can create vector graphics with is Inkscape and it can be downloaded for free at http://inkscape.org/download/?lang=de. I have chosen the latest version 0.48.4. Once downloaded, just open the installer and click yourself through without any changes. We will revisit Inkscape later to learn how it is being used.

1.4 Even more software

Lastly, lets take some notes about other helpful software that you may use for writing your thesis.

First, I strongly recommend using any cloud drive service like Dropbox for saving your files into! Once you wrote the first 100 pages which took you probably a few month in real time and about 5 years of you age and your computer crashed for any weird reason you may be enormously happy to have a backup of your LaTeX code on a save place at the internet and you might even send me some flowers (I would prefer chocolate by the way) for giving you that hint. Further, I saved a version at the end of each day separately to be able to go back to any status of the thesis. A note for security and privacy folks, I agree with your complaints, but you can save your stuff encrypted or packed in a password saved zip file. Think about what is more critical, loosing all your work or having the risk of somebody hacking a cloud service seeing your LaTeX code?. Or make sure to save your stuff at least regularly on any independent hard drive.

Another helpful software, not only for your thesis, is called Notepad++ and is a text editor that serves anything you will need when editing text files. We will be using it later for managing our bibliography file.

Last but not least, I use Microsoft Excel to generate graphs, plots and tables as there is a nice wizard for changing styles etc. A huge advantage which I will also explain in one of the next parts of this tutorial is that you can export graphics from Excel to PDF as vector graphics. As you remember, this leads to graphs that can be scaled to any extreme.
An excellent plug-in for Excel is Excel2Latex. You will only have to download the file from the website and open it with Excel to get two additional buttons in your Excel Add-Ins menu. You can find additional information on installation at the project website.

Conclusion

In Part 1 of this tutorial, we managed to set up our system to be able to start writing our thesis and we already produced a little PDF document using LaTeX. Part 2 is going to quickly introduce LaTeX. There are plenty of more extended and better introductions to really learn how to deal with LaTeX. But I want to give a short overview of what it is and why it makes sense to use it. But you will learn how to organize your folders, files and how to build the general structure of your thesis

The most interesting part will probably be Part 3, where I gonna show you some of the hacks and tricks that I have used to make life easier and to produce a nice looking thesis (at least in my opinion).

==> Continue with Part 2