Tikz-UML Sequence diagram: Form












0















I want to make a sequence diagram, as shown in the picture below.



enter image description here



Code:



documentclass{article}
usepackage{tikz}
usepackage{tikz-uml}

begin{document}

begin{tikzpicture}
begin{umlseqdiag}

umlobject[no ddots]{Thread1}
begin{umlfragment}[type=States, label= {shortstack{BufferState1 \ == \ BufferFree}}, inner xsep=10]
begin{umlcallself}[op={shortstack{BufferState1=BufferOccupied}}, dt=5]{Thread1}
begin{umlfragment}[type=loop, label= shortstack{Counter \ != \ Buffersize}, inner xsep=10]
begin{umlcallself}[op={MakeProtocol(ProtoBuffer1)}]{Thread1}
end{umlcallself}
end{umlfragment}
umlcreatecall[no ddots, dt=7, x=5]{Thread1}{Thread2}
begin{umlcallself}[op={CliendSend()}, dt=7]{Thread2}
begin{umlcall}[op={FreeBufferCB(BufferState1)}, type=asynchron]{Thread2}{Thread1}
end{umlcall}
end{umlcallself}
end{umlcallself}
umlfpart[shortstack{BufferState2 \ == \ BufferFree}]
begin{umlcallself}[op={shortstack{BufferState2=BufferOccupied}}]{Thread1}
begin{umlfragment}[type=loop, label= shortstack{Counter \ != \ Buffersize}, inner xsep=10]
begin{umlcallself}[op={MakeProtocol(ProtoBuffer2)}]{Thread1}
end{umlcallself}
end{umlfragment}
begin{umlcall}[op={create}]{Thread1}{Thread2}
begin{umlcallself}[op={CliendSend()}, y=5]{Thread2}
begin{umlcall}[op={FreeBufferCB(BufferState2)}, type=asynchron ]{Thread2}{Thread1}
end{umlcall}
end{umlcallself}
end{umlcall}
end{umlcallself}
umlfpart[shortstack{BufferState1 \ == \ BufferOccupied \ && \ BufferState2 \ == \ BufferOccupied}]
begin{umlcallself}[op={Exit(EXIT_FAILURE)}, padding=5]{Thread1}
end{umlcallself}
end{umlfragment}

end{umlseqdiag}
end{tikzpicture}

end{document}


Now i want to shift a few things, as shown with the red arrows in the picture. The red squares are the parts i want to cut, to make these boxes shorter. Is there a way to do this?



This generates a lot of errors when building. Most of them are from the shortstack instruction. Is there are correct way to make this newline?



Thank you for your help!










share|improve this question




















  • 1





    There is missing a end{document}. In addition, an indentation of the code would be helpful for readability

    – dexteritas
    53 mins ago











  • @dexteritas alright, sorry! I fixed the code!

    – AndiYo
    17 mins ago
















0















I want to make a sequence diagram, as shown in the picture below.



enter image description here



Code:



documentclass{article}
usepackage{tikz}
usepackage{tikz-uml}

begin{document}

begin{tikzpicture}
begin{umlseqdiag}

umlobject[no ddots]{Thread1}
begin{umlfragment}[type=States, label= {shortstack{BufferState1 \ == \ BufferFree}}, inner xsep=10]
begin{umlcallself}[op={shortstack{BufferState1=BufferOccupied}}, dt=5]{Thread1}
begin{umlfragment}[type=loop, label= shortstack{Counter \ != \ Buffersize}, inner xsep=10]
begin{umlcallself}[op={MakeProtocol(ProtoBuffer1)}]{Thread1}
end{umlcallself}
end{umlfragment}
umlcreatecall[no ddots, dt=7, x=5]{Thread1}{Thread2}
begin{umlcallself}[op={CliendSend()}, dt=7]{Thread2}
begin{umlcall}[op={FreeBufferCB(BufferState1)}, type=asynchron]{Thread2}{Thread1}
end{umlcall}
end{umlcallself}
end{umlcallself}
umlfpart[shortstack{BufferState2 \ == \ BufferFree}]
begin{umlcallself}[op={shortstack{BufferState2=BufferOccupied}}]{Thread1}
begin{umlfragment}[type=loop, label= shortstack{Counter \ != \ Buffersize}, inner xsep=10]
begin{umlcallself}[op={MakeProtocol(ProtoBuffer2)}]{Thread1}
end{umlcallself}
end{umlfragment}
begin{umlcall}[op={create}]{Thread1}{Thread2}
begin{umlcallself}[op={CliendSend()}, y=5]{Thread2}
begin{umlcall}[op={FreeBufferCB(BufferState2)}, type=asynchron ]{Thread2}{Thread1}
end{umlcall}
end{umlcallself}
end{umlcall}
end{umlcallself}
umlfpart[shortstack{BufferState1 \ == \ BufferOccupied \ && \ BufferState2 \ == \ BufferOccupied}]
begin{umlcallself}[op={Exit(EXIT_FAILURE)}, padding=5]{Thread1}
end{umlcallself}
end{umlfragment}

end{umlseqdiag}
end{tikzpicture}

end{document}


Now i want to shift a few things, as shown with the red arrows in the picture. The red squares are the parts i want to cut, to make these boxes shorter. Is there a way to do this?



This generates a lot of errors when building. Most of them are from the shortstack instruction. Is there are correct way to make this newline?



Thank you for your help!










share|improve this question




















  • 1





    There is missing a end{document}. In addition, an indentation of the code would be helpful for readability

    – dexteritas
    53 mins ago











  • @dexteritas alright, sorry! I fixed the code!

    – AndiYo
    17 mins ago














0












0








0








I want to make a sequence diagram, as shown in the picture below.



enter image description here



Code:



documentclass{article}
usepackage{tikz}
usepackage{tikz-uml}

begin{document}

begin{tikzpicture}
begin{umlseqdiag}

umlobject[no ddots]{Thread1}
begin{umlfragment}[type=States, label= {shortstack{BufferState1 \ == \ BufferFree}}, inner xsep=10]
begin{umlcallself}[op={shortstack{BufferState1=BufferOccupied}}, dt=5]{Thread1}
begin{umlfragment}[type=loop, label= shortstack{Counter \ != \ Buffersize}, inner xsep=10]
begin{umlcallself}[op={MakeProtocol(ProtoBuffer1)}]{Thread1}
end{umlcallself}
end{umlfragment}
umlcreatecall[no ddots, dt=7, x=5]{Thread1}{Thread2}
begin{umlcallself}[op={CliendSend()}, dt=7]{Thread2}
begin{umlcall}[op={FreeBufferCB(BufferState1)}, type=asynchron]{Thread2}{Thread1}
end{umlcall}
end{umlcallself}
end{umlcallself}
umlfpart[shortstack{BufferState2 \ == \ BufferFree}]
begin{umlcallself}[op={shortstack{BufferState2=BufferOccupied}}]{Thread1}
begin{umlfragment}[type=loop, label= shortstack{Counter \ != \ Buffersize}, inner xsep=10]
begin{umlcallself}[op={MakeProtocol(ProtoBuffer2)}]{Thread1}
end{umlcallself}
end{umlfragment}
begin{umlcall}[op={create}]{Thread1}{Thread2}
begin{umlcallself}[op={CliendSend()}, y=5]{Thread2}
begin{umlcall}[op={FreeBufferCB(BufferState2)}, type=asynchron ]{Thread2}{Thread1}
end{umlcall}
end{umlcallself}
end{umlcall}
end{umlcallself}
umlfpart[shortstack{BufferState1 \ == \ BufferOccupied \ && \ BufferState2 \ == \ BufferOccupied}]
begin{umlcallself}[op={Exit(EXIT_FAILURE)}, padding=5]{Thread1}
end{umlcallself}
end{umlfragment}

end{umlseqdiag}
end{tikzpicture}

end{document}


Now i want to shift a few things, as shown with the red arrows in the picture. The red squares are the parts i want to cut, to make these boxes shorter. Is there a way to do this?



This generates a lot of errors when building. Most of them are from the shortstack instruction. Is there are correct way to make this newline?



Thank you for your help!










share|improve this question
















I want to make a sequence diagram, as shown in the picture below.



enter image description here



Code:



documentclass{article}
usepackage{tikz}
usepackage{tikz-uml}

begin{document}

begin{tikzpicture}
begin{umlseqdiag}

umlobject[no ddots]{Thread1}
begin{umlfragment}[type=States, label= {shortstack{BufferState1 \ == \ BufferFree}}, inner xsep=10]
begin{umlcallself}[op={shortstack{BufferState1=BufferOccupied}}, dt=5]{Thread1}
begin{umlfragment}[type=loop, label= shortstack{Counter \ != \ Buffersize}, inner xsep=10]
begin{umlcallself}[op={MakeProtocol(ProtoBuffer1)}]{Thread1}
end{umlcallself}
end{umlfragment}
umlcreatecall[no ddots, dt=7, x=5]{Thread1}{Thread2}
begin{umlcallself}[op={CliendSend()}, dt=7]{Thread2}
begin{umlcall}[op={FreeBufferCB(BufferState1)}, type=asynchron]{Thread2}{Thread1}
end{umlcall}
end{umlcallself}
end{umlcallself}
umlfpart[shortstack{BufferState2 \ == \ BufferFree}]
begin{umlcallself}[op={shortstack{BufferState2=BufferOccupied}}]{Thread1}
begin{umlfragment}[type=loop, label= shortstack{Counter \ != \ Buffersize}, inner xsep=10]
begin{umlcallself}[op={MakeProtocol(ProtoBuffer2)}]{Thread1}
end{umlcallself}
end{umlfragment}
begin{umlcall}[op={create}]{Thread1}{Thread2}
begin{umlcallself}[op={CliendSend()}, y=5]{Thread2}
begin{umlcall}[op={FreeBufferCB(BufferState2)}, type=asynchron ]{Thread2}{Thread1}
end{umlcall}
end{umlcallself}
end{umlcall}
end{umlcallself}
umlfpart[shortstack{BufferState1 \ == \ BufferOccupied \ && \ BufferState2 \ == \ BufferOccupied}]
begin{umlcallself}[op={Exit(EXIT_FAILURE)}, padding=5]{Thread1}
end{umlcallself}
end{umlfragment}

end{umlseqdiag}
end{tikzpicture}

end{document}


Now i want to shift a few things, as shown with the red arrows in the picture. The red squares are the parts i want to cut, to make these boxes shorter. Is there a way to do this?



This generates a lot of errors when building. Most of them are from the shortstack instruction. Is there are correct way to make this newline?



Thank you for your help!







tikz-uml






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 18 mins ago







AndiYo

















asked 59 mins ago









AndiYoAndiYo

487




487








  • 1





    There is missing a end{document}. In addition, an indentation of the code would be helpful for readability

    – dexteritas
    53 mins ago











  • @dexteritas alright, sorry! I fixed the code!

    – AndiYo
    17 mins ago














  • 1





    There is missing a end{document}. In addition, an indentation of the code would be helpful for readability

    – dexteritas
    53 mins ago











  • @dexteritas alright, sorry! I fixed the code!

    – AndiYo
    17 mins ago








1




1





There is missing a end{document}. In addition, an indentation of the code would be helpful for readability

– dexteritas
53 mins ago





There is missing a end{document}. In addition, an indentation of the code would be helpful for readability

– dexteritas
53 mins ago













@dexteritas alright, sorry! I fixed the code!

– AndiYo
17 mins ago





@dexteritas alright, sorry! I fixed the code!

– AndiYo
17 mins ago










0






active

oldest

votes











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f470389%2ftikz-uml-sequence-diagram-form%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f470389%2ftikz-uml-sequence-diagram-form%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

円仁

平林たい子

ティム・エリオット