msc パッケージで失われたメッセージの長さと色を変更するにはどうすればよいですか?

msc パッケージで失われたメッセージの長さと色を変更するにはどうすればよいですか?

私は、msc ダイアグラムで失われたメッセージを使用しています。以下に示すように、失われたメッセージ ラインの長さと色を制御する必要があります。マニュアルを見ると、\selfmesswidthmsc 定義で使用することが推奨されています。試してみましたが、まったく効果はありませんでした。サンプル スクリプトは次のとおりです。

\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}

失われたメッセージの長さと色を以下のように変更する必要があります。マニュアルではその方法が見つかりませんでした。 ここに画像の説明を入力してください

編集:ドキュメントクラスが更新されました。また、msc.styも必要です。ここ

答え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}

関連情報