worldflags 与 smartdiagram 之间的有趣干扰

worldflags 与 smartdiagram 之间的有趣干扰

你知道带有装饰的旗帜的定义吗(在有趣的世界国旗包裹)受到干扰?

\documentclass[border=10pt]{standalone}
\usepackage{tikz,smartdiagram,worldflags}

\begin{document}

    \smartdiagram[priority descriptive diagram]{
        \worldflag{CH},                 
        \worldflag{GB},
        \worldflag{US},
        \worldflag{FR},
        \worldflag{IT},
        \worldflag{BR},
        \large{Credit risk increases, spreads increase}
    }
            
\end{document}

编辑 2022 年 1 月 12 日 我联系了作者,他好心地回复说下一个版本将会考虑到这种TikZ嵌套的情况。

在此处输入图片描述

答案1

\worldflag生成一个tikzpicture,所以我认为你实际上是tikzpicture在这里嵌套了 ,这通常是一个坏主意。它经常导致外部选项tikzpicture被内部选项继承的问题。在这个特定情况下,看起来rounded corners选项是罪魁祸首,如果你这样做,\tikzset{/tikz/rounded corners=0}\worldflag{BR}看起来会更好。我不知道这是否是一个好的解决方案。

\documentclass[border=10pt]{standalone}
\usepackage{tikz,smartdiagram,worldflags}

\begin{document}
    \smartdiagramset{descriptive items y sep=2}
    \smartdiagram[priority descriptive diagram]{
        \tikzset{/tikz/rounded corners=0}\worldflag{CH},                 
        \tikzset{/tikz/rounded corners=0}\worldflag{GB},
        \tikzset{/tikz/rounded corners=0}\worldflag{US},
        \tikzset{/tikz/rounded corners=0}\worldflag{FR},
        \tikzset{/tikz/rounded corners=0}\worldflag{IT},
        \tikzset{/tikz/rounded corners=0}\worldflag{BR},
        {\large Credit risk increases, spreads increase}
    }
            
\end{document}

答案2

我认为更安全的选择是,当尝试嵌套 TiZ 的事情,就是使用框。在下面的例子中,我编写了一个宏,将标志放在名为的框中\flagXX。这个宏可以在节点中安全使用。

\documentclass[border=10pt]{standalone}
\usepackage{tikz,smartdiagram,worldflags}
\NewDocumentCommand{\boxflag}{m}{%
    \expandafter\newsavebox\csname flag#1\endcsname
    \expandafter\sbox\expandafter{\csname flag#1\endcsname}{\worldflag{#1}}%
}
\NewDocumentCommand{\useflag}{m}{%
    \expandafter\usebox\expandafter{\csname flag#1\endcsname}%
}
\boxflag{CH}
\boxflag{GB}
\boxflag{US}
\boxflag{FR}
\boxflag{IT}
\boxflag{BR}
\begin{document}

    \smartdiagram[priority descriptive diagram]{
        \useflag{CH},
        \useflag{GB},
        \useflag{US},
        \useflag{FR},
        \useflag{IT},
        \useflag{BR},
        \large{Credit risk increases, spreads increase}
    }

\end{document}

在此处输入图片描述

相关内容