TikZ 图在使用预定义颜色时留下空白区域(重新打开)

TikZ 图在使用预定义颜色时留下空白区域(重新打开)

这是重新提出之前提出的问题 这里由于答案不完整,所以结束了。

问题在于,在 tikz 图片中使用 \definecolor 会留下空白,从而导致错位。要重现此问题,请参阅以下 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}

事实上,这些条形图并不居中。如果注释掉 \definecolor 行,图片就会居中。那么问题是如何让 \definecolor 不留空格,以便绘图正确居中。或者简单地说,如何让图片居中。

在里面原始(已关闭)帖子,建议的解决方案是将定义移至序言。当使用自动生成 tikz 图形的工具时,例如matlab2tikz,手动移动每个图形的定义是不切实际的。

此外,这些工具可能会为每个特定图形定义自己的颜色集,名称如“mycolor1”。十种不同的颜色将被称为“mycolor1”到“mycolor10”。不同的图形可能为同一颜色名称分配不同的颜色。因此,每次要使用新图形时,都需要在文档正文中重新定义颜色,而不能简单地将其放在序言中,主要是因为颜色名称的定义会有冲突。

问候

答案1

您只需要在几行末尾添加一些 % 符号即可删除虚假空格

\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}

相关内容