# Latex

Latex is both a great typesetting system which separates presentation from content, and also makes it as difficult as machinely possible to let you properly present your content.

Articles My extensions to Pygments to support code formatting and highlighting for various lanuages in Latex:

Here are some tips I've found when using Latex.

### References

Using the natbib package, you can use these commands... see the natbib.sty file for more details:

\renewcommand{\cite}{\citep}    (makes \cite the same as \citep)
\cite{key}            => (Jones et al., 1990)
\citep{key}           => (Jones et al., 1990)
\citet{key}           => Jones et al. (1990)
\citep[pg. 34]{key}   => (Jones et al., 1990, pg. 34)
\citet[ABC:][]{key}   => (ABC: Jones et al., 1990)

### Remove Date from Titlepage

When you use \maketitle, it uses the following attributes:
\title
\author
\date

If you want to get rid of the date field, just add
\date{}

### Clickable Wrapped URLs in Bibtex Bibliography

Argh. For every hour you gain from abandoning Microsoft Word, you lose trying to configure Latex to do things that would otherwise be trivial.

If you are using the latex > dvips > ps2pdf compilation route for your documents, you may have problems trying to have URLs in your bibliography that are very long. One option is to manually wrap them yourself (using a space). However, this is better, put at the end of your .tex preamble:

% this package adds clickable links to http addresses and footnotes
\usepackage{hyperref}
% this package makes url's breakable with hyperref (but loses the cyan boxes)
\usepackage{breakurl}

### Word Count in Latex

Just use this script somewhere in your compilation process:

ps2ascii file.pdf | wc -w

(source: http://www.wlug.org.nz/LatexWordcount)

### Rotating Table Rows

% provides \rotatebox{}
\usepackage{graphics}

% provides multirow
\usepackage{multirow}

And then this to the table (this counts as one row):

\multirow{4}{*}{\rotatebox{90}{hi there}}
& a \\
& b \\
& c \\
& d \\

### Changing the Font Size of a Table

Just add the font size line in the Table:

\begin{table}[hbt]
\centering
\small

\begin{tabular}
.. table content ...
\end{tabular}
\caption{caption}
\end{table}

### IEEE Formatting: 8.5 x 11-inch Proceedings Manuscripts

For some reason, IEEE does not provide a Latex version of this publication format on its FTP site. However, this Latex file covers most of the basics of the format: http://cisedu.us/storage/old/cts07/doc/latexformat.htm

### -dEmbedAllFonts with ps2pdf

I was having difficulty adding this command-line parameter to the ps2pdf script call. It appears that the equals operator '=' is not supported; instead you should use hash '#':

ps2pdf -dEmbedAllFonts#true %1.ps %1.pdf >> create_pdf.log

### Embedding all fonts with ps2pdf

I was having issue submitting an IEEE paper as they were saying that my fonts, Times-Roman, Times-Italic etc were not being embedded. The solution is to use the following command line to ps2pdf:

ps2pdf -dEmbedAllFonts#true -dSubsetFonts#true -dPDFSETTINGS#/prepress %1.ps %1.pdf >> create_pdf.log

(reference)

### Overriding and Re-using a Latex Command

If you try to re-use a renewed command like so, Latex will crash with (essentially) an infinite loop:

\renewcommand\foo{something \foo something}

As discussed by this document on extending Latex, you can use the primitive \let to save a "snapshot" of the current command:

\let\oldFoo\foo
\renewcommand\foo{something \oldFoo something}

### Making all URLs in Helvetica

If you use the command
\urlstyle{sf}
after the initial \begin{document}, all URLs in the document (as specified by \url{...}) will be rendered as a sans-serif font (i.e. Helvetica, or equivalent).

### Tick and Cross Symbols

Creating output similar to the right, I found the following symbols worked well:

\usepackage{amsfonts}
\newcommand{\tickYes}{\checkmark}
\usepackage{pifont}
\newcommand{\tickNo}{\hspace{1pt}\ding{55}}

### pdflatex vs dvipdfm vs dvips-ps2pdf

1. pdflatex: I couldn't get it to work with the hyperref package (to make bookmarks in Adobe), and it cannot include EPS images.
2. dvipdfm: I couldn't get it to work with the hyperref package (to make bookmarks in Adobe), and it threw a lot of warnings.
3. dvips-ps2pdf: Not possible to create Tagged PDFs (I think), cannot handle JPEG, PNG images (etc) directly

### Coloured Table Borders

If you have a normal table, you can make borders coloured by doing the following. It will also work with \hline and \cline:

\usepackage{array,colortbl}
\begin{tabular}{lc}
\hline
\arrayrulecolor{green} %always at the beginning of a table row
...

If you are using \vline, this won't work; you need to wrap the \vline with the colour explicitly:

{\color{green}\vline}

### Cannot use -dPDFSETTINGS in Ghostscript

On Windows, you cannot use the = character in the command line; you need to use #. i.e.:

ps2pdf -dPDFSETTINGS#/prepress %1.ps %1.pdf

### Bad Image Compression (JPEG-like) when using ps2pdf

I had a frequently-recurring problem that my generated PDFs were resampling and compressing many of the bitmap images in my PDF into JPEGs.

The solution was to tell Ghostscript to use prepress PDF settings.

### @ (at sign) in LaTeX index

I wanted an index entry with an @ sign. After much stress, I found the man page for makeindex, and found one solution:

\index{"@@"@generated tag}

This will create an index entry named "@generated tag". I couldn't work out any way to also apply additional formatting, i.e. none of these worked:

\index{generated tag@$@$\texttt{generated} tag}
\index{"@@"@generated tag@\texttt{"@@"@generated} tag}
\index{"@@"@generated tag@\texttt{@generated} tag}
\index{"@@"@generated tag@"@@"\texttt{@generated} tag}

Perhaps if you read the makeindex documentation you might work it out

### Disabling Footnotes

It is fairly simple to remove all footnotes throughout your LaTeX document, just define the following command in the preamble:

\renewcommand{\footnote}[1]{}
Categories: Article | Programming | Latex