2

This is a reopening of a question previously asked here that was closed with an incomplete answer.

The problem is that using \definecolor in tikz picture leaves an empty space that causes misalignment. To reproduce the problem, see the following MWE.

\documentclass{article}
\usepackage{pgfplots}
\usepackage{subfig}

\begin{document}

\begin{figure}[ht]
  \centering
  \subfloat[]{
    \definecolor{mycolor1}{rgb}{0,0,0}
    \definecolor{mycolor2}{rgb}{0,0,0}
    \definecolor{mycolor3}{rgb}{0,0,0}
    \begin{tikzpicture}
      \draw (0,0)--(0,1cm);
      \draw (0.2,0)--(0.2,1cm);
    \end{tikzpicture}
  }
  \label{fig:SensitivityContourBfield}
\end{figure}

\end{document}

As it is the bars are not centered. If one comments out the \definecolor lines, the picture is centered. The question is then, how to make \definecolor to not to leave spaces, so that the drawing is properly centered. Or simply, how to get the picture centered.

In the original (closed)post, the solution suggested was to move the definitions to the preamble. When using tools that automatically generate tikz figures, like for example matlab2tikz, moving manually the definitions for each figure is not practical.

Additionaly, these tools might define their own set of colors for each particular figure with names like "mycolor1". Ten different colors will be called then "mycolor1" to "mycolor10". Different figures might have different colors assigned to the same color name. Thus, the colors need to be redefined within the body of the document every time a new figure is going to be used, and cannot be simply placed in the preamble, basically because there would be conflicting definitions for the color names.

Regards

3

You only need to add some % sign at the end of few lines to remove spurious spaces

\documentclass{article}
\usepackage{pgfplots}
\usepackage{subfig}

\begin{document}

\begin{figure}[ht]
  \centering%
  \subfloat[]{%
    \definecolor{mycolor1}{rgb}{0,0,0}%
    \definecolor{mycolor2}{rgb}{0,0,0}%
    \definecolor{mycolor3}{rgb}{0,0,0}%
    \begin{tikzpicture}
      \draw (0,0)--(0,1cm);
      \draw (0.2,0)--(0.2,1cm);
    \end{tikzpicture}%
  }
  \label{fig:SensitivityContourBfield}
\end{figure}

\end{document}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.