oBook‎ > ‎Latex Tips‎ > ‎

General tips

posted May 18, 2014, 2:35 AM by Javad Taghia   [ updated May 18, 2014, 2:35 AM ]


soruce: http://www.bgu.ac.il/~sgabriel/latextips.html
Contents:
  • Math
  • Page Settings
  • Slides
  • Tables
  • Figures
  • Algorithms
  • Bibliography
  • PDF
  • Fonts

Math

Compound math symbols

To produce a compound math symbold, e.g., a right arrow with, e.g., the text 'Lemma 1.2' on top, use:
$\stackrel{\mbox{\tiny Lemma 1.2}}{\Rightarrow}$
Another example:
$\stackrel{def}{\equiv}$

Overbrace/Underbrace

To have math with overbrace or underbrace, use:
$\overbrace{x+y}^{sum}=\underbrace{x \cdot y}_{\mbox{product}}$

Multi-valued Functions

To state a multi valued function, use:
$$
z = \left\{
\begin{array}{ll}
1 & x >0 \\
0 & \mbox{otherwise}
\end{array}
\right.
$$

Equation arrays with (some) equation numbers

The eqnarray environment produces a math-mode environment with an array of 3 columns aligned {rcl}. E.g.
\begin{eqnarray}
|O| & \leq & |O \setminus A| + |A| \leq \label{eq:start} \\
& \leq & |A| + |A| \leq \nonumber \\
& \leq & 2|A|
\end{eqnarray}
Notice the \nonumber on the second line which omits the number. If all lines should be number-less, you can use\begin{eqnarray*} instead of \begin{eqnarray}.

Page Settings

Fullpage

In order to have text written on entire page, consider using the fullpage package, with the additional
\addtolength{\voffset}{-1.0cm}
\addtolength{\textheight}{3.5cm}

Explicitly Determining Page Margins

Consider using the geometric package, e.g.
\usepackage[hmargin=2.5cm,vmargin=4cm]{geometry}
produces 2.5cm left/right margins, and 4cm top/bottom margins (no need to manipulate any other offsets or heights).

Headers and Footers

Use the fancyhdr package, e.g.
\usepackage{fancyhdr}
\pagestyle{fancy} % sets the pagestyle to use fancy headers
\fancyhead{} % clear header
\fancyfoot{} % clear footer
\fancyfoot[CO,CE]{\thepage} % replaces the page number to the [C]enter of the footer, in both [O]dd and [E]ven pages
\fancyhead[LO,LE]{ABC} % puts 'ABC' on the header's [L]eft side, on both [O]dd and [E]ven pages
\fancyhead[CO,CE]{DEF} % puts 'DEF' on the header's [C]enter, on both [O]dd and [E]ven pages
\fancyhead[RO,RE]{GHI} % puts 'GHI' on the header's [R]ight side, on both [O]dd and [E]ven pages
One can of course distinguish between the header/footer that appears on odd and even pages.

Line Numbers

In order to have line numbers on the output, consider using the (somewhat buggy, but pretty straightforward) linenopackage.

Put \linenumbers to have linenumbers run through the entire document, or \pagewiselinenumbers to have linenumbers reset to 1 at every page. Put either of these commands where you want the linenumbers to begin.

Watermarks and 'draft' version

In order to have a watermark sentence (e.g. ''Draft''), use the draftcopy package, with the additional parameters:
\usepackage[...]{draftcopy}
Where instead of [...] use a comma-separated list of parameters taken from the following:
none    Dont print DRAFT across any page
first    Print DRAFT across first page only
firsttwo    Print DRAFT across two first pages only
all    print DRAFT across all pages
bottom    print DRAFT on the bottom of all pages
bottomafter    print DRAFT on the bottom of all pages following the ones who have DRAFT across
light    print DRAFT in light gray
dark    print DRAFT in dark gray
In order to choose the sentence printed (instead of DRAFT), use the command
\draftcopyName{...}{...}
where the first argument is the sentence to be printed, and the second argument is the scaling factor (start from about 50). This command should appear before the \begin{document} command.

Slides

printing slides k-up

To print slides in k-up, use the unix command
psnup -r -k presentation.ps presentation_k.ps

Tables

vertical spacing - space between rows

To adjust the vertical space between rows, i.e. - increase the space between the text and the top/bottom \hlinecommands, put the following in the preamble:
% Adds a space between the text and the [T]op \hline
\newcommand\T{\rule{0pt}{3.1ex}}

% Adds a space between the text and the [B]ottom \hline
\newcommand\B{\rule[-1.7ex]{0pt}{0pt}}
one can then use \T and/or \B inside a cell in the row, i.e. after some text in the row, to get extra space between the text and the \hline. These commands will not work if placed between rows. E.g.
\begin{tabular}{ll}
\hline
% \T and \B would not work if it is placed here (needs to go inside cell)
Col1 \T \B & Col2 \\
\hline
$\sqrt{\frac{1}{2}}$ \T & more space from top \verb+\hline+ \\
$\sqrt{\frac{1}{2}}$ & no added space \\
$\sqrt{\frac{1}{2}}$ \B & more space from bottom \verb+\hline+ \\
\hline
\end{tabular}
and
\begin{tabular}{ll}
\hline
Col1 & Col2 \\
\hline
$\sqrt{\frac{1}{2}}$ & no extra space from top \verb+\hline+ \\
$\sqrt{\frac{1}{2}}$ & no added space \\
$\sqrt{\frac{1}{2}}$ & no extra space from bottom \verb+\hline+ \\
\hline
\end{tabular}

Fixed width columns

To have fixed width columns, the simplest way is to use the 'p' alignment argument (instead of r/c/l). E.g.
\begin{tabular}{p{1in}p{2in}}

Figures

Images with math (via xfig)

To create images using xfig with math text, do the following:

In xfig:
  • Choose text, and make sure the following settings are set:
    • Under Text Flags in the bottom, make sure the Special Flag is Special (and not Normal). This can be automated by using the flag
      -specialtext -latexfonts -startlatexFont default
      when invoking xfig.
    • In Pen Color, make sure the color is Default (and not Black which is usually the case when you start xfig).
  • Write the text you like. If you want to write in math mode, make sure to write things between \$'s.
  • Save the image as .fig file.
  • Export the image to both .pstex and .pstex_t. In new versions of xfig this is done automatically by choosingCombined PS/LaTeX (both parts).
Afterwards:
  • Make sure the two generated files are in your working directory.
  • Use the graphics package.
  • Use the following code to insert a figure named fig.pstex_t, with a scaling factor 0.5
    	\begin{figure}[h]
    	\begin{center}
    	\scalebox{0.5}{\input{fig1.pstex_t}}
    	\caption{This is figure 1}
    	\label{fig:fig1}
    	\end{center}
    	\end{figure}
    	

Inserting an .eps figure

\documentclass{article}
\usepackage{pstricks}
\usepackage{pst-plot}
\usepackage{epsfig}
\begin{document}
\begin{figure}[h]
\centerline{
\epsfig{file=epsfig.eps, scale=0.5}
}
\caption{Some EPS figure}
\label{fig:fig1}
\end{figure}
\end{document} 

Converting PStricks/pstex_t to EPS

Assuing the pstricks-figure/pstex_t is in file figfile, use a latex file (say, texfigfile.tex) containing:
\documentclass{article}
\usepackage{pstricks}
\usepackage{pst-plot}
\usepackage{epsfig}
\begin{document}
\thispagestyle{empty} % omits page numbers.
\input{figfile}
\end{document}
The \thispagestyle{empty} is necessary for the bounding box to be defined properly by dvips. Then do
latex texfigfile.tex
dvips texfigfile.dvi -E
Note: the generated file might be a .ps file. However, one can still insert it like any other .eps figure.

Images with pdflatex

Converting images to .pdf
When using pdflatex, images should be converted to .pdf.
  • Converting .eps to .pdf:
    use epstopdf.
    Note that you might need to adjust the bounding box of the .eps file before performing the epstopdf. This can be done manually by opening the .eps file in GhostView, checking the coordinates of the lower-left and upper-right boundries of the actual figure, opening the .eps file in any text editor, and changing the bounding box to the correct coordinates.
  • Converting .pstex_t and .pstex directly to .pdf:
    use the UNIX script pstex2pdf defined by:
    	#!/bin/csh
    	echo "epstopdf $1.pstex"
    	epstopdf $1.pstex
    	perl -p -i -e "s/.pstex//;" $1.pstex_t 
    	
Inserting an image
One should add to the preamble
\usepackage{epsfig}
\usepackage{graphics}
To insert an image, named e.g. pdffig.pdf, use:
\begin{figure}[h]
\centerline{
\includegraphics[scale=0.5]{pdffig}
}
\caption{Some caption}
\label{fig:pdffig1}
\end{figure}
Note that the 'original' files, i.e., the .pstex_t|.pstex|.eps files, should be present in the working directory as well.

pstex missing

When using the Combined PS/LaTeX format in exporting from xfig, two files are generated:

[figname].pstex - contains the graphical information. This is basically an .eps file.

[figname].pstex_t - contains the latex text information.

The [figname].pstex_t file uses \includegraphics{[figname].pstex} to include the graphical info. When compiling from different directories, it is important to make sure that right path appears in the \includegraphics command, namely, that it has the form \includegraphics{PATH/[figname].pstex}

Inserting .jpg images

To insert an image, named e.g. image.jpg, use:
\begin{figure}[h]
\centerline{
\includegraphics[width=120mm]{image.jpg}
}
\caption{Some caption}
\label{fig:image1}
\end{figure}
Remember to specify the 'width' argument.

Drawing Circuits and Logic Diagrams

Use Circuit_macros: Download: dpic

Converting PDF figures to EPS

Download XPDF (for windows), and use the command:
[xpdf-path]\epstopdf.exe -eps input.pdf output.eps

Algorithms

General use

To use the algorithm environment, use the packages
\usepackage{algorithm}
\usepackage{algpseudocode}
An example of an algorithm is given by:
\begin{algorithm}{}
\caption{MyAlgorithmName (...arguments...)}
\label{alg:myalgorithmname}
\begin{algorithmic}[1]
    \For{all ...}
        \State do ...
    \EndFor
    \State return ...
\end{algorithmic}
\end{algorithm}

Changing the type of caption

Sometimes one wants to use the algorithm environment so that instead of Algorithm, one has a different caption, e.g.ProtocolHeuristic, etc. To do this, use the line
\floatname{algorithm}{[New Name]}
just before the algorithm code. E.g., to produce a Protocol, use
\floatname{algorithm}{Protocol}
\begin{algorithm}{}
\caption{MyProtocolName (...arguments...)}
\label{alg:myprotocolname}
\begin{algorithmic}[1]
...
\end{algorithmic}
\end{algorithm}

Bibliography

Using a BibTeX file

To insert the bibliography from a .bib file (e.g. mybib.bib), add the commands
\bibliographystyle{plain}
\bibliography{mybib}
For different styles, see http://www.cs.stir.ac.uk/~kjt/software/latex/showbst.html

Producing all entries in the .bib file

To produce the list of all entries in the .bib file, add the command
\nocite{*}
just before the \bibliography{mybib} command, where the bibliography file is mybib.bib.

Contorling bibliography paramaters

The natbib package provides multiple functionalities. E.g.
\setlength{\bibsep}{2pt}
determines the space between bib entries.
\renewcommand{\bibfont}{\small}
determines the font used for bib entries.

Contorling bibliography section header

To change the text in the bibliography section header (e.g., to produce 'Bibliography', instead of 'References'), use
\renewcommand\refname{Bibliography}
just before the bibliography section.

PDF

From .tex to A4 .pdf

To produce a pdf for paper size A4, make sure the \documentclass command is defined properly, e.g.,
\documentclass[a4paper,11pt]{article}
Use dvips with the switch
-G0 -Ppdf -t A4Size
followed by ps2pdf with the switch
-sPAPERSIZE=a4
This solves the problem of having incorrect header/footer margins.

Converting .eps to .pdf with embedded fonts

Sometimes, when compiling with pdflatex, one uses .pdf figures that don't have the fonts embedded. To transform the figures to have fonts embedded, one must do the following (in windows), given IN.eps as the eps input file of a figure.
epstopdf  --outfile="TEMP_OUT.pdf" IN.eps
followed by
"[ghostscript\bin path]\gswin32c" -dSAFER -dNOPLATFONTS -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sPAPERSIZE=letter -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dCompatibilityLevel=1.4 -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -sOutputFile="OUT.pdf" -f TEMP_OUT.pdf
One can then compile the source with the new figures using pdflatex, as usual.

Note: Sometimes discoloration appears in B/W figures. This can be remedied (not elegantly, but it works) by printing the resulting pdf to a new pdf using B/W only. The fonts remain embedded in the resulting .pdf as well.

Converting .eps to .pdf with embedded fonts

Some journals require figures in .eps format. To convert a .pdf figure to .eps, use (be sure to verify the output is in order):
gs -dNOPAUSE -dNOCACHE -dBATCH -sDEVICE=epswrite -sOutputFile=[output-file-name].eps [input-file-name].pdf 

Fonts

Highlighting text

To produce highlighted text use the soul package, and put the highlighted text in an \hl{...} environment (the default is yellow highlighting). I.e., use
\usepackage{color,soul}
...
This text would be \hl{highlighted} now.
If one omits the color package, the \hl{...} environment produces an underline.

User Defined Font Size

Sometimes, the predefined \normalsize\small\huge, etc., font sizes do not suffice. To produce a userdefined font size one can use the command:
\newcommand{\myfontsize}{\fontsize{9}{11}\selectfont}
where the first argument gives the height of the font (in pt), and the second argument gives the height of the line (in pt).
E.g., the above \myfontsize produces a fontsize that is between \small and \tiny.
Comments