自定义 pgf-umlsd 呼叫栏背景颜色

自定义 pgf-umlsd 呼叫栏背景颜色

我正在尝试使用以下序列图重新创建pgf-umlsd

序列图

我感兴趣的是如何更改呼叫栏的背景颜色。

以下是我目前得到的信息:

\documentclass{article}
\usepackage{pgf-umlsd}
\begin{document}

\begin{figure}
    \centering
    \begin{sequencediagram}
        \newthread{browser}{Browser}{}
        \newinst[1]{web}{Web process}{}
        \newinst[1]{ext}{External service}{}

        \begin{call}{browser}{HTTP request}{web}{HTTP response}
            \begin{call}{web}{Fetch RSS}{ext}{}
                \begin{call}{ext}{\color{red}!! Not responsive !!}{ext}{}
                \end{call}
            \end{call}
        \end{call}

    \end{sequencediagram}
\end{figure}

\end{document}

使用 pgf-umlsd 的序列图

答案1

可以使用可选参数 来更改线程中条形的颜色\newthread。例如,如果您将代码更改为

\newthread[blue]{browser}{Browser}{}

所有条形图都变成蓝色而不是灰色。

但您也可以使用不同的颜色。条形图是用 绘制的\draw [threadstyle] ...,因此您可以简单threadstyle地沿途重新定义,例如\tikzset{threadstyle/.style={fill=cyan}}

代码输出

\documentclass{article}
\usepackage{pgf-umlsd}
\begin{document}

\begin{figure}
    \centering
    \begin{sequencediagram}
        \newthread[blue!50!red]{browser}{Browser}{}
        \newinst[1]{web}{Web process}{}
        \newinst[1]{ext}{External service}{}
        \begin{call}{browser}{HTTP request}{web}{HTTP response}
            \tikzset{threadstyle/.style={top color=white,bottom color=red}}
            \begin{call}{web}{Fetch RSS}{ext}{}
                \tikzset{threadstyle/.style={fill=cyan}}
                \begin{call}{ext}{\color{red}!! Not responsive !!}{ext}{}
                    \tikzset{threadstyle/.style={fill=red}}
                \end{call}
            \end{call}
        \end{call}

    \end{sequencediagram}
\end{figure}
\end{document}

对于带有红色阴影的一条条形图:

\documentclass{article}
\usepackage{pgf-umlsd}
\begin{document}

\begin{figure}
    \centering
    \begin{sequencediagram}
        \newthread[white]{browser}{Browser}{}
        \newinst[1]{web}{Web process}{}
        \newinst[1]{ext}{External service}{}
        \begin{call}{browser}{HTTP request}{web}{HTTP response}
            \tikzset{threadstyle/.style={top color=white,bottom color=red}}
            \begin{call}{web}{Fetch RSS}{ext}{}
                \tikzset{threadstyle/.style={fill=white}}
                \begin{call}{ext}{\color{red}!! Not responsive !!}{ext}{}
                \end{call}
            \end{call}
        \end{call}

    \end{sequencediagram}
\end{figure}
\end{document}

相关内容