更新

更新

我觉得我发现了一个错误智能图表包。“统一颜色列表”选项允许您为<n>项目指定一种颜色。但是,当指定数字时<n>,会在生成的流程图左侧插入一个水平空间。指定的数字越大<n>,空间越大。

以下是 MWE:

\documentclass[border=10pt]{standalone}

\usepackage{smartdiagram}

\begin{document}

  \smartdiagramset{
    % remove this option or increase the value for <n> to compare the spacing
    uniform color list=gray!40 for 5 items
  }

  \smartdiagram[flow diagram]{
    One,
    Two,
    Three,
    Four,
    Five}

\end{document}

删除“统一颜色列表”选项后,左侧的空间消失。<n>例如,当将数字增加到 100 时,问题变得非常明显。

以下是两个生成的文档的比较,其中在第一个文档中“统一颜色列表”选项指定为<n>5,而在第二个文档中未指定。

智能图表比较

我目前的解决方法是根本不使用“统一颜色列表”选项。相反,我重新定义所有预定义颜色并将它们设置为相同的所需值,如下所示:

\makeatletter
\@namedef{color@1}{gray!40}
\@namedef{color@2}{gray!40}
\@namedef{color@3}{gray!40}
\@namedef{color@4}{gray!40}
\@namedef{color@5}{gray!40}
\@namedef{color@6}{gray!40}
\@namedef{color@7}{gray!40}
\@namedef{color@8}{gray!40}
\@namedef{color@9}{gray!40}
\@namedef{color@10}{gray!40}
\makeatother

这不是一个理想的解决方案。我还能做什么?

答案1

更新

smartdiagram此行为是由于版本中已修复的一个错误造成的2016/12/23 v0.3b。如果可能,您应该更新你的 TeX 发行版安装当前版本。如果无法做到这一点,例如,如果您只想更改这一个包,或者您没有权限更新整个发行版,则需要在本地安装包。此选项应被视为最后的手段,因为对于更复杂的包,可能存在包依赖性,这会使本地安装更加复杂且容易出错。

原始答案(基于 0.3a 版本smartdiagram

未受保护的行尾:

\documentclass[border=10pt]{standalone}

\usepackage{smartdiagram}

\makeatletter
\pgfkeys{/smart diagram/.cd, uniform color list/.code args={#1 for #2 items}{%
      \foreach \listitem [count=\i] in {1,...,#2}{%
         \global\@namedef{color@\i\expandafter}\expandafter{#1}%
      }%
   }%
}
\makeatother

\begin{document}

  \smartdiagramset{
    % remove this option or increase the value for <n> to compare the spacing
    uniform color list=gray!40 for 5 items
  }

  \smartdiagram[flow diagram]{
    One,
    Two,
    Three,
    Four,
    Five}

\end{document}

在此处输入图片描述

原始代码在smartdiagramlibrarycore.definitions.code.tex

168 \pgfkeys{/smart diagram/.cd, uniform color list/.code args={#1 for #2 items}{
169       \foreach \listitem [count=\i] in {1,...,#2}{
170          \global\@namedef{color@\i\expandafter}\expandafter{#1}
171       }
172    }
173 }

use predefined color list还应修复以下代码:

\pgfkeys{/smart diagram/.cd, use predefined color list/.code={%
      \@namedef{color@1}{red!30}%
      \@namedef{color@2}{cyan!30}%
      \@namedef{color@3}{blue!30}%
      \@namedef{color@4}{green!30}%
      \@namedef{color@5}{orange!30}%
      \@namedef{color@6}{yellow!30}%
      \@namedef{color@7}{magenta!30}%
      \@namedef{color@8}{brown!30}%
      \@namedef{color@9}{violet!30}%
      \@namedef{color@10}{teal!30}%
   }%
}

总体而言,所有.code部分都应获得类似的保护。

相关内容