如何更改 msc 包中丢失消息的长度和颜色?

如何更改 msc 包中丢失消息的长度和颜色?

我在 msc 图中用到 lost message。我需要控制 lost message 行的长度和颜色,如下所示。我看了手册,它建议\selfmesswidth在 msc 定义中使用。我试过了,但一点效果都没有。下面是一个示例脚本:

\documentclass{article}
    \usepackage{graphicx} 
    \usepackage{msc} 
    \usepackage{xcolor}

\begin{document}
\begin{figure*}[b!] 
\vspace{-1cm}
\[
\resizebox{\textwidth}{!}{
\centering
\setmsckeyword{} 
\drawframe{no} 
\hspace{-1cm}

\begin{msc}[small values, /msc/level height=0.6cm, /msc/label distance=0.5ex , /msc/first level height=0.6cm, /msc/last level height=0.6cm, /msc/top head dist=0, /msc/bottom foot dist=0]{}
\setlength{\instwidth}{2.5\mscunit} 
\setlength{\instdist}{5\mscunit} 

\declinst{A}{}{A}
\declinst{B}{}{B}

\mess {Message1} {A}{B}
\nextlevel
\lost[side=left]{}{}{B}

\nextlevel
\mess {Messag2} {A}{B}
\nextlevel

\end{msc}
} 
 \]
 \caption[caption]{Figure} 
\end{figure*}
\end{document}

我需要更改丢失消息的长度和颜色,如下所示。我在手册中找不到这样做的方法。 在此处输入图片描述

编辑:文档类已更新。您还需要来自这里

答案1

在序言中添加以下命令:

\makeatletter
\newcommand\lostredlong[1][l]%
  {\psset{linecolor=red}% color lines in red. Unfortunately this affects all lines.
   \selfmesswidth=\instwidth% set the length of the arrow
   \def\lostfound@position{#1}%
   \def\lostfound@type{lost}%
   \def\msc@circlefillstyle{red}% fill the circle in red
   \lostfound@B%
  }
\makeatother

设置linecolor\selfmesswidth也会影响以下所有命令。为避免这种情况,请将调用\lostredlong括在括号中。

{\lostredlong{}{}{B}}

基本上可以将这些括号添加到命令的定义中\lostredlong,但这需要复制更多的代码,msc.sty应该避免。

在此处输入图片描述

\documentclass{article}
    \usepackage{graphicx} 
    \usepackage{msc} 
    \usepackage{xcolor}
\makeatletter
\newcommand\lostredlong[1][l]%
  {\psset{linecolor=red}%
   \selfmesswidth=\instwidth
   \def\lostfound@position{#1}%
   \def\lostfound@type{lost}%
   \def\msc@circlefillstyle{red}%
   \lostfound@B%
  }
\makeatother
\begin{document}
\begin{msc}{}
\setlength{\instwidth}{2.5\mscunit} 
\setlength{\instdist}{5\mscunit} 

\declinst{A}{}{A}
\declinst{B}{}{B}

\mess {Message1} {A}{B}
\nextlevel
{\lostredlong{}{}{B}}

\nextlevel
\mess {Messag2} {A}{B}
\nextlevel

\end{msc}

\end{document}

相关内容