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.
- A Crude Latex Diff Script in Linux
- Images in Latex
- SVG in Latex
- Vertical Spacing in Latex Tables
- Horizonal Spacing in Latex Tables
- A reference of different types of bibliography styles in Latex
- Comprehensive Latex Symbol List
- My Latex Setup
- Changing the Default Font for the Report documentclass in Latex
- Removing the Coloured Boxes around Hyperref links in Latex
- Eclipse Pygments Style
- Labelled Frames in Latex
- Changing list indent, spacing, etc, using
enumitem
- Aligning Images in Tables in Latex
- Fancy Quotation Boxes in Latex
- Unrecoverable Error in ps2ascii when using Inkscape images
- Aligning table cells vertically center in LaTeX
- Adding UML Guillemots in Latex and Adding Special Symbols to Minted Environments
- Enumerate List Environment Whitespace in Latex
- Maximum Width of Table Captions in LaTeX
- Capital Letter Headings for Index in LaTeX with makeindex
- addcontentsline Doesn’t Work in LaTeX
- Incompatible List can’t be Unboxed in LaTeX
- Controlling the Whitespace and Layout of LaTeX Table of Contents
- More Latex bookmarks on delicious
My extensions to Pygments to support code formatting and highlighting for various lanuages in Latex:
- Eclipse Pygments Style
- Lexers
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
Add this to the prelude:
% 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
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:
renewcommandfoo{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:
letoldFoofoo
renewcommandfoo{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
- pdflatex: I couldn’t get it to work with the
hyperref
package (to make bookmarks in Adobe), and it cannot include EPS images. - dvipdfm: I couldn’t get it to work with the
hyperref
package (to make bookmarks in Adobe), and it threw a lot of warnings. - 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]{}