Tikz-UML Sequence diagram: Form
I want to make a sequence diagram, as shown in the picture below.

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
add a comment |
I want to make a sequence diagram, as shown in the picture below.

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
1
There is missing aend{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
add a comment |
I want to make a sequence diagram, as shown in the picture below.

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
I want to make a sequence diagram, as shown in the picture below.

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
tikz-uml
edited 18 mins ago
AndiYo
asked 59 mins ago
AndiYoAndiYo
487
487
1
There is missing aend{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
add a comment |
1
There is missing aend{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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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