私はパッケージの開発バージョンを使用してmsc
プロトコル メッセージ シーケンス図を描画しています。次の図があります。
失われたメッセージを次のレベル(同じレベルではなく、直線)で到着させたいので、その長さを増やす必要があります。これが私の希望する方法です。
ここに元のスクリプトがあります。
\documentclass[12pt, a4paper, oneside]{article}
\usepackage{msc} %for the diagrams
\usepackage{graphicx}
\begin{document}
%------------------------------------------------------------------------------------
% BEGIN DIAGRAM
%------------------------------------------------------------------------------------
\begin{figure}[ht!]
\[
\resizebox{\columnwidth}{!}{%
\centering
\setmsckeyword{}
\drawframe{no}
\hspace{-1cm}
\begin{msc}[small values, /msc/left environment distance=2cm, /msc/level height=0.6cm, /msc/label distance=0.5ex, /msc/first level height=0.75cm]{}
\setlength{\instwidth}{2.5\mscunit}
\setlength{\instdist}{2\mscunit}
\declinst{A}{}{A}%
\declinst{X}{}{X}%
\declinst{B}{}{B}%
\mess {message 1} {A}{X}
\nextlevel
\lost[side=left]{}{}{X}
\nextlevel
\mess {message 2} {A}{X}
\nextlevel
\lost[side=left]{}{}{X}
\end{msc}
} %end scalebox
\]
\caption{Illustration}
\end{figure}
%------------------------------------------------------------------------------------
% END DIAGRAM
%------------------------------------------------------------------------------------
\end{document}
答え1
他のユーザーへの注意: このコードは、 の開発バージョン用に書かれておりmsc
、以下から入手可能です。http://satoss.uni.lu/software/mscpackage/msc
CTAN にある のバージョンでは動作しません。
++(\msc@dist,0)
矢印の長さは、 というマクロ内の相対座標によって定義されます\msc@lost@final
。\patchcmd
から を使用しetoolbox
てそのマクロにパッチを当て、座標をたとえば に置き換えることができます++(2.5*\msc@dist,-10pt)
。
行を同じレベルで開始するには、以下のコード例のように\nextlevel
after に移動します。\lost[...
他の質問と同様に、数学環境 ( \[ .. \]
) は使用しても意味がないため削除し、\resizebox
は必要ないと判断したため削除しました。
\documentclass[12pt, a4paper, oneside]{article}
\usepackage{msc} %for the diagrams
\usepackage{etoolbox}
\makeatletter
\patchcmd{\msc@lost@final}{++(\msc@dist,0)}{++(2.5*\msc@dist,-10pt)}{}{}
\makeatother
\begin{document}
%------------------------------------------------------------------------------------
% BEGIN DIAGRAM
%------------------------------------------------------------------------------------
\begin{figure}[ht!]
\centering
\setmsckeyword{}
\drawframe{no}
\begin{msc}[small values, /msc/left environment distance=2cm, /msc/level height=0.6cm, /msc/label distance=0.5ex, /msc/first level height=0.75cm]{}
\setlength{\instwidth}{2.5\mscunit}
\setlength{\instdist}{2\mscunit}
\declinst{A}{}{A}%
\declinst{X}{}{X}%
\declinst{B}{}{B}%
\mess {message 1} {A}{X}
\lost[side=left]{}{}{X}
\nextlevel
\nextlevel
\mess {message 2} {A}{X}
\lost[side=left]{}{}{X}
\nextlevel
\end{msc}
\caption{Illustration}
\end{figure}
%------------------------------------------------------------------------------------
% END DIAGRAM
%------------------------------------------------------------------------------------
\end{document}