这是重新提出之前提出的问题 这里由于答案不完整,所以结束了。
问题在于,在 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}