Archive for the ‘Latex’ Category

Adding local latex packages to texlive in ubuntu

February 19, 2011

When having custom packages to use for a document, you need to put them next your latex files when compiling. This causes problems when you need these packages for many documents. The solution is to add these packages to the latex installation. This can be done for the current user by creating a latex tree in the $HOME/texmf directory. The structure of this directory needs to follow the texmf-local described here. This directory is searched by default by the texlive installation.

Advertisements

Two Columned LaTeX Presentation Slides

December 7, 2009

Coming from a Power Point background of creating presentation slides, i am often tempted to used a two column approach when laying out the content of my slides. This is where text is shown on the left column and related pictures are placed on the right.

After i decided to to move all my document creation work to be in LaTeX, I started to also create my presentations that way too. Such a feat is made possible using the beamer document class, whose user guide could be found here.

The environment for a single slide is the “frame” environment. It is used a follows:

\begin{frame}{frame title}

\end{frame}

To be able to split the frame (slide) into two columns, the “columns” environment is places inside the slide content. It is used as follows:

\begin{columns}
\column{column_width} %first column
column 1 content
\column{column_width} %second column
column 2 content
\column{column_width} %third column
column 3 content
...

It is best to have the column_width in terms of the text width. So for example:

\column{0.5\textwidth} %half slide's text width

An example for a two columned slide looks as like:

\documentclass{beamer}
\mode<presentation>
{
  \usetheme[width=2cm]{Hannover}
  \setbeamercovered{transparent}
}
\title[Presentation]{Presentation}
\author[Saher Mohamed El-Neklawy]{Saher Mohamed El-Neklawy}

\begin{document}
  \begin{frame}{Frame Title}
    \begin{columns}
      \column{0.5\textwidth}
	\begin{itemize}
	\item Item 1
	\item Item 2
	\item Item 3
	\end{itemize}
      \column{0.5\textwidth}
	\includegraphics[width=\textwidth]{i1.eps}

	\includegraphics[width=\textwidth]{i2.eps}
    \end{columns}
  \end{frame}
\end{document}

Two Columned Slide

The next step is to sequence the appearance of the images along with the images. In the beamer class, this could be done using the “” operator, following a certain component in the frame. The “n” represents when the component appears in the frame. For example:

\begin{itemize}
  \item<2> Item 1 % seen after 1 transition
  \item<3> Item 2 % seen after 2 transition
  \item<4> Item 3 % seen after 3 transition
\end{itemize}

In a sense, the “” splits a frame into n slides, placing the respective component in the nth slide of that frame. For more advanced uses of “”, check out the beamer class user guide.

To do the same for images, the “\visible” or “\only” macros could be used along with the “” operator.

With using “\visible”, the slides would now look like:

\documentclass{beamer}
\mode<presentation>
{
  \usetheme[width=2cm]{Hannover}
  \setbeamercovered{transparent}
}
\title[Presentation]{Presentation}
\author[Saher Mohamed El-Neklawy]{Saher Mohamed El-Neklawy}

\begin{document}
  \begin{frame}{Frame Title}
    \begin{columns}
      \column{0.5\textwidth}
	\begin{itemize}
	  \item<2> Item 1
	  \item<3> Item 2
	  \item<4> Item 3
	\end{itemize}
      \column{0.5\textwidth}
	\visible<2>
	{
	  \includegraphics[width=\textwidth]{i1.eps}
	}
	\visible<3>{
	  \includegraphics[width=\textwidth]{i2.eps}
	}
    \end{columns}
  \end{frame}
\end{document}
Sequenced Two Columned 1

Sequenced Two Columned 1

Sequenced Two Columned 2

Sequenced Two Columned 2

The problem with “\visible” is that it keeps the place of the component from the previous transition reserved in the next, just not seen. The fix to this issue is the use of “\only”, where the space for components is not reserved across transitions. Such makes the slides look as follows:

\documentclass{beamer}
\mode<presentation>
{
  \usetheme[width=2cm]{Hannover}
  \setbeamercovered{transparent}
}
\title[Presentation]{Presentation}
\author[Saher Mohamed El-Neklawy]{Saher Mohamed El-Neklawy}

\begin{document}
  \begin{frame}{Frame Title}
    \begin{columns}
      \column{0.5\textwidth}
	\begin{itemize}
	  \item<2> Item 1
	  \item<3> Item 2
	  \item<4> Item 3
	\end{itemize}
      \column{0.5\textwidth}
	\only<2>
	{
	  \includegraphics[width=\textwidth]{i1.eps}
	}
	\only<3>{
	  \includegraphics[width=\textwidth]{i2.eps}
	}
    \end{columns}
  \end{frame}
\end{document}

Two column slide using only macro 1

Two column slide using only macro 2

When taking a closer look at the output pdf, it will be observed that there is a slight change in the position of the bulleted list. This is most seen between pages 3 and 4 of the pdf. Such is due to the nature of the \only, as it does not reserver the position of component across transitions of the frame. Thus, the location of the bulleted list differs when there is a transition with a slide having a slide to one without, and vice versa.

This problem could be fixed by going back to the “\visible” macro, as it reserves the spaces for components. The difference this time is is that the location of the image in the slide will be forced. This could be done using the “picture” environment as follows:

\begin{picture}(0,0)(x,y)
    \put(0,0){\includegraphics[width=\textwidth]{i1.eps}}
\end{picture}

Take care to consider the x and y values from the top right corner of the column.

The final code results in this pdf, and looks like follows:

\documentclass{beamer}
\mode<presentation>
{
  \usetheme[width=2cm]{Hannover}
  \setbeamercovered{transparent}
}
\title[Presentation]{Presentation}
\author[Saher Mohamed El-Neklawy]{Saher Mohamed El-Neklawy}

\begin{document}
  \begin{frame}{Frame Title}
    \begin{columns}
    \column{0.5\textwidth}
      \begin{itemize}
	\item<2> Item 1
	\item<3> Item 2
	\item<4> Item 3
      \end{itemize}
    \column{0.5\textwidth}
      \visible<2>
      {
	\begin{picture}(0,0)(40,50)
	  \put(0,0){\includegraphics[width=\textwidth]{i1.eps}}
	\end{picture}
      }
      \visible<3>
      {
	\begin{picture}(0,0)(50,50)
	  \put(0,0){\includegraphics[width=\textwidth]{i2.eps}}
	\end{picture}
      }
    \end{columns}
  \end{frame}
\end{document}

%d bloggers like this: