Drawing LEGO Bricks in LaTeX

Sometimes the star align and bring together several of your passions. I love LEGO and I love LaTeX. Thanks to Sam Carter and his TikZbricks package, you can now draw LEGO bricks directly in LaTeX. Let’s start with a simple example of drawing a single 2×4 brick:

\documentclass[a5paper]{article}
\usepackage{tikzbricks}
\begin{document}
\begin{tikzpicture}
   \brick{4}{2}
\end{tikzpicture}
\end{document}

This will be rendered as:

TikZbricksLEGOLaTeX01

It is possible to build whole models with this package. The LEGO company created its first augmented reality puzzle game that used a mobile app in 2011. It was called Life Of George. This seems like a perfect example for putting TikZbricks to the test.

\documentclass[a4paper]{article}
\usepackage{tikzbricks}
\definecolor{lego-white}{rgb}{0.95, 0.95, 0.96}
\begin{document}

\begin{wall}
    \wallbrick[color=black]{2}{1}
    \addtocounter{brickx}{1}
    \wallbrick[color=black]{2}{1}
    \newrow
    \wallbrick[color=blue]{1}{1}
    \addtocounter{brickx}{2}
    \wallbrick[color=blue]{1}{1}
    \newrow
    \wallbrick[color=blue]{4}{1}
    \newrow
    \addtocounter{brickx}{-1}
    \wallbrick[color=lego-white]{1}{1}
    \wallbrick[color=red]{4}{1}
    \wallbrick[color=lego-white]{1}{1}
    \newrow
    \addtocounter{brickx}{-1}
    \wallbrick[color=red]{1}{1}
    \wallbrick[color=red]{2}{1}
    \wallbrick[color=black]{1}{1}
    \wallbrick[color=red]{1}{1}
    \wallbrick[color=red]{1}{1}
    \newrow
    \addtocounter{brickx}{-1}
    \wallbrick[color=red]{3}{1}
    \wallbrick[color=black]{1}{1}
    \wallbrick[color=red]{2}{1}
    \newrow
    \wallbrick[color=lego-white]{4}{1}
    \newrow
    \addtocounter{brickx}{-1}
    \wallbrick[color=lego-white]{2}{1}
    \wallbrick[color=black]{1}{1}
    \wallbrick[color=lego-white]{1}{1}
    \wallbrick[color=black]{1}{1}
    \newrow
    \addtocounter{brickx}{-1}
    \wallbrick[color=yellow]{1}{1}
    \wallbrick[color=lego-white]{2}{1}
    \wallbrick[color=yellow]{3}{1}
    \newrow
    \wallbrick[color=yellow]{4}{1}
\end{wall}

\end{document}

This will be rendered as:

TikZbricksLEGOLaTeX02

There are many more options, such as chaning the perspective and size of various components. But we will leave this for now and simply enjoy this moment.

Automatic cross referencing in LaTeX

In technical and scientific writing it is common to references figures, tables and equations in the text. The figure, for example, would have a caption that reads “Figure 1: Robot at the beach”. In the text we then want to reference this figure as (see Figure 1). For far too long I made my own life too difficult by not taking advantage of some of the more advanced featurs of LaTeX. Here are some leasons I learned.

It would be possible to hard code the reference in the text by writing (see Figure 1), but this is not recommendet since the numbering might change when you add more figure or tables . Hence we use dynamic referencing by giving each figure or table a label which we reference using the \ref{label} command. In the text we would write (see Figure \ref{fig:robot}). Here is a complete example:

\documentclass[a5paper]{article}
\usepackage{graphicx}
\usepackage{lipsum}
\begin{document}

\lipsum[2] (see Figure \ref{fig:robot})

\begin{figure}[h]
\includegraphics[width=0.5\linewidth]{robot.jpg}
\caption{Robot at the beach}
\label{fig:robot}
\end{figure}

\end{document}

This will be rendered to PDF as:

Cross_referencing_documentation_01

The first, and possibly most effective time safer, is to use the \autoref{label} feature of the hyperref package. You should probably always use this package anyway for other reasons by adding \usepackage{hyperref}.

\documentclass[a5paper]{article}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{hyperref}
\begin{document}

\lipsum[2] (see \autoref{fig:robot})

\begin{figure}[h]
\includegraphics[width=0.5\linewidth]{robot.jpg}
\caption{Robot at the beach}
\label{fig:robot}
\end{figure}

\end{document}

This will automatically add the appropriate type of reference. For the figure type, it will add “Figure” to the text for you. This will be rendered to:

Cross_referencing_documentation_02

This also works for tables and equation. I wished I had know this little feature much earlier.

Submitting your LaTeX manuscript through the Editorial Manager (Springer and Elsevier)

LaTeX is an excellent tool for formatting your manuscripts. During the peer review process, most journals accept PDF files. But when it comes submitting your camera ready version, the Editorial Manager (EM), used by both Springer and Elsevier, insists on receiving a source file. The process has some problems and I would like to share some of the lessons I learned. First of all you need to know that EM will compile the LaTeX files for you. You do not need to upload your PDF or DVI files.

  1. EM is not able to digest figures in the PDF format. Convert all your figures to EPS. This can be achieved with Adobe Acrobat or Preview (MAC).
  2. EM is not able to deal with directories. All your files must be in one directory, including all figures.
  3. You can ZIP your complete LaTeX directory and upload it. EM decompresses all the files for you. Make sure that you do not include a PDF or DVI version of your manuscript, otherwise EM will include it as well. You will end up with multiple versions of your text in the final PDF.
  4. If EM encounters any problems during the compilation of your LaTeX files, it will write the log into the resulting PDF. You can find out what went wrong by looking at it.
  5. If an error occurred, EM has trouble with processing .tex files again which have the same name as in the previous attempt. Rename your .tex file (e.g. by adding a serial number) and upload it again. EM will then compile this new file instead of the old one.