• No results found

2nd Edition, Addison Wesley,

In document Linux Tips, Tricks, Apps and Hacks (Page 72-76)

Execute the latexmk Perl script in silent mode; Latexmk is a handy automatic LaTeX document generation routine that saves you time This is the main

website of the LaTeX project where you can fi nd further useful information

Create your own table of contents, list of fi gures or list of tables easily

01

Install LaTeX

First you need to install LaTeX. There is a plethora of packages out in the wild that contain the name LaTeX, so running apt-cache search latex will return a lot of output. You can get a more helpful output by simply executing the following command:

$ apt-cache search latex | grep ^latex Your journey to using LaTeX will start by running the following command:

$ sudo apt-get install latex209-base latex209-bin

04

Install the latexmk Perl script

This command installs a highly recommended Perl script to improve the whole book-building process:

$ sudo apt-get install latexmk

From now on you can translate your LaTeX code into PDF format using the following command: $ latexmk -pdf book.tex

Most of the packages you will need are installed by default. Installing a new LaTeX package

02

Use LaTeX

After installing the basic LaTeX packages you should try to compile the consequent LaTeX code to make sure that everything works exactly as you expected:

\documentclass{article}

\title{The LaTeX version of the Hello

World program} \author{Mihalis Tsoukalos} \date{January 2015} \begin{document} \maketitle Hello world! \end{document}

You can compile the document using the following command:

$ latexmk helloWorld.tex

The previous command produces a DVI fi le that you can convert into PDF format as follows: $ dvipdf helloWorld.dvi

If you view the generated fi le you can easily understand that the default LaTeX styles produce high quality output. The problem is that if everyone is using the default styles, all books produced using LaTeX will look exactly the same!

05

Organise the files

It’s time to start organising the fi les for a more simplifi ed process. The name of the core LaTeX fi le will be book.tex. Instead of using a big and unmanageable LaTeX fi le, you can make it more overseeable and put the book chapters and the appendices in separate fi les using the include LaTeX command: \include{ch1}

\include{apA}

Here, LaTeX will search for fi les named ch1.tex and apA.tex in the current working directory. This is the most important task of the whole process because it allows you to edit smaller and more manageable fi les.

We will use four chapters and two appendices in order to make our example book, but you can use more or less pages on future projects if you wish. After creating the fi les for all the book chapters and appendices, and referencing them inside book.tex, you are completely ready to start adding content.

03

Pros and cons

LaTeX has its advantages. It comes with many default styles and if they are suffi cient for you, then start writing immediately! It’s also fast to type and edit text, so you can use traditional UNIX tools to make changes to your LaTeX code. As a consequence, you don’t need a very fast computer to run LaTeX. Additionally, LaTeX fi les are easily interchangeable between different platforms. One of its biggest advantages is that the output looks highly professional because LaTeX is a pro tool.

However, you do have to compile the LaTeX code to see its output, and LaTeX needs time and experimentation to set up and change the default document styles, which can be annoying.

can be tricky – the best thing to do is read the documentation and follow the instructions before trying to install it. For this tutorial it’s also worth installing the texlive-full, texlive-math- extra, texlive-extra-utils, texlive-generic-extra and texlive-latex-extra packages.

04

Install the LaTeX perl script

You can now use the MyCode style inside LaTeX using the following command:

\begin{MyCode}[fontsize=\relsize{-1}] #include <stdio.h>

int main (int argc, const char * argv[]) {

printf(“Hello, World!\n”); return 0;

}

\end{MyCode}

If you change the \relsize value from -1 to +1, the code size is going to get bigger.

07

Sort content

You can LaTex to sort and organise content more easily. LaTeX generates pages with table of contents, list of fi gures and list of tables. You can create your own table of contents (TOC) using this command:

\tableofcontents

If you only want to include entries for chapters and sections, include the next command before the previous command in Step 6:

\setcounter{tocdepth}{1}

In order to include the list of fi gures you might have in your book you can do so by inserting the following command:

\listoffigures

If you have tables in your book, you can generate the list of tables as follows:

\listoftables

08

Mini table of contents

If your book chapters are on the large side you may need to add a mini table of contents at the beginning of each chapter. There is a LaTeX package called minitoc that does the job. The next LaTeX code adds support for the mini TOC functionality:

\usepackage{minitoc} \setcounter{minitocdepth}{1}

The previous commands should be combined with the \dominitoc command that must be used once to turn on the mini TOC functionality. Finally, type \minitoc at the beginning of each chapter to actually add the mini table of contents.

06

Create a bibliography

LaTeX offers BibTex for dealing with bibliographic references. All BibTeX entries will be located in a fi le called booklist.bib. Each BibTeX entry has the following format:

@book{Kernighan84,

author = {Brian W. Kernighan and Robert Pike},

title = {The UNIX Programming

Environment},

year = {1984}, isbn = {013937681X},

publisher = {Prentice Hall Professional Technical Reference},

}

The following LaTeX commands are used for beautifying and inserting the bibliography into this project:

\bibliographystyle{alpha} \addcontentsline{toc}{chapter} {Bibliography}

\bibliography{booklist}

You can add a reference to the Kernighan84 book in your LaTeX code as follows:

\cite{Kernighan84}

09

Format code

The book is going to contain multiple blocks of code to showcase certain techniques, therefore the code must be well formatted. Using the following LaTeX code you can defi ne a new style called MyCode for formatting code:

\usepackage{relsize, color, fancyvrb} \CustomVerbatimEnvironment{MyCode} {Verbatim}

{numbers=left,frame=lines,framerule= 1pt,rulecolor=\color{blue},framesep=4mm} Creating a style saves you time. Additionally, if you want to make a global change to the output format of code in your book, all you have to do is go to its definition, make the changes and recompile the book. Also, if you want to create a new style similar to an existing one, you can copy and paste the existing style definition code, choose a different name and make the modifications you want.

10

Include a header and footer

The following LaTeX code changes the header and the footer of each book page. Right pages (RO) have a different rule to left pages (LE). It’s also worth noting that the fi rst page of each chapter (CO) has another rule that puts the page number at the footer of it without adding any header information.

\renewcommand\headrule {{%

\color[gray]{0.5} \hrule height 1pt width\headwidth

\vspace{-4pt}}} \fancyhead[RO]{%

{\bfseries\S\ \thesection\ \textbar\ \ LARGE\thepage\normalsize\ \textbar} }

\fancyhead[LE]{%

{\bfseries\textbar\ \LARGE\thepage\ normalsize\ \textbar\ \S\ \ thesection\ \textbar\ \leftmark} } \fancypagestyle{plain}{% \fancyhf{} \fancyfoot[CO]{% {\bfseries\LARGE\thepage} } \renewcommand{\headrulewidth}{0pt}% }

12

Generate an index

The following command helps you create a book index:

\usepackage{makeidx}

The next LaTeX command puts the index information into the generated fi le:

\printindex

This code adds the word Knuth to the index: \index{Knuth}

11

Format figures

You can easily alter the existing format of a picture caption by using the following LaTeX commands: \usepackage{caption} \DeclareCaptionLabelSeparator{par}{\par} \DeclareCaptionFormat{dashedlabel}{\ textbf{---} #1 \textbf{---}#2#3} \captionsetup{format=dashedlabel,margin=1 cm,singlelinecheck=true, font=small,labe lfont={sc,bf,},textfont=it,justification=ce nterlast,labelsep=par}

Now you will be able to add a specifi c fi gure in your book as follows:

\begin{figure}[tb] \centering \fbox{\scalebox{0.45}{\ includegraphics{figures/ch1/f0101. jpg}}} \caption{Adding a figure} \label{ch10:fig1} \end{figure}

13

Add tables

This code produces an elegant table to blend in with the rest of the book:

\begin{table}[t] \centering \setlength\extrarowheight{2.5pt} \setlength\extrarowheight{2.5pt} \begin{tabular}{cccc} \hline \addlinespace

\textbf{Name} & \textbf{Size in Kbytes} & \textbf{\# of files} & \textbf{\# of keys in Info.plist} \\ \addlinespace \hline amazonsearch.wdgt & 144 & 8 & 13 \\ Tags - HTML.wdgt & 88 & 17 & 11 \\ Temperature Monitor.wdgt & 416 & 50 & 10 \\ Wikipedia.wdgt & 696 & 125 & 12 \\ \ addlinespace \hline

\end{tabular}

\caption{Statistical Information.} \label{ch3:stats}

\end{table}%

14

Some other useful info

Producing a more fancy and professional chapter heading can be done easily using the fncychar package:

\usepackage[Bjornstrup]{fncychap}

15

Work with the NOTE style

Before talking about the NOTE style you should fi rst download the picins.sty fi le and put it where your LaTeX fi les are:

$ wget http://tug.ctan.org/tex-archive/ macros/latex209/contrib/picins/picins.sty The NOTE style was defi ned as follows: \usepackage{picins}

\usepackage{amsthm}

\newcommand\NOTE{\linethickness{1mm}\ parpic(14mm,5mm)[sl]{NOTE}\noindent} You can now add a note as follows:

\NOTE A small note doesn’t look very elegant The only drawback of the style is that it needs to have at least two lines of text to look pleasant on the page.

16

How it worked

Our example book was built step-by- step: a minimal book.tex fi le was generated fi rst, then chapter and appendix fi les without any data were added to the project.

At this point it was time for us to write the book by adding text, images, tables, bibliography and index entries, while experimenting with the look of the existing LaTeX styles, making changes to them, adding new ones and correcting errors.

This is defi nitely the safest procedure to follow when writing your own book while using LaTeX – LaTeX was able to process all the fi les, as well as the index and the bibliography, without any diffi culties. So go on and make your own creation!

You should fi rst insert the following code for the modifi cations to work:

\usepackage{fancyhdr} \pagestyle{fancy} \fancyhf{}

\renewcommand{\chaptermark}[1]{\ markboth{#1}{}}

The last command is for resetting the existing defi nition of the header and the footer.

12

Generate an index

Software projects are hard to manage but

In document Linux Tips, Tricks, Apps and Hacks (Page 72-76)