Shorten the length of an arrow in tikz











up vote
2
down vote

favorite












I am trying to draw a picture representing a control theory graph.



I am pretty much there, but there are two problems:




  1. I need to have a dot above the x(t) in the first equation in the big box. When I put it in maths mode, it draws four lines instead of two, or, depending on how I split the maths mode, it puts it all on one line. Any ideas on how to get that damned dot above the x without changing the layout of the box?


  2. The RHS arrow with the y(.) above it is too long. I would like to get it back down to a length close to the LHS arrow with the v(.), it would just look nicer!



Here is my code :



documentclass{article}

usepackage[utf8]{inputenc}

usepackage{tikz}

usetikzlibrary{shapes,arrows}

usetikzlibrary{positioning, quotes}

begin{document}

tikzstyle{block} = [draw, fill=white, rectangle,
minimum height=6em, minimum width=12em]

tikzstyle{sum} = [draw, fill=white, circle, node distance=2cm]

tikzstyle{input} = [coordinate]

tikzstyle{output} = [coordinate]

begin{center}

begin{tikzpicture}[auto, node distance=4cm,>=latex']
node [input, name=input] {};

node [sum, right of=input] (sum) {B};

node [block, right of=sum] (controller) {begin{array} dot{x}(t)=&Ax(t)+Bu(t)\ x(0)=&x_0 end{array}};

!node [sum, right of=controller, node distance=3.651cm] (mat) {C};
node [sum, below of=controller] (K) {K};
node [output, right of=controller] (output) {C};
node [input, name=end, right of=output, node distance=5cm] {};
coordinate [below of=sum] (measurements) {};
coordinate [right of=output](fin) {};
coordinate[left of =output, xshift=2.7cm] (nodek) {};
draw [draw,->] (input) -- node {$v(bullet)$} (sum);
draw [->] (sum) -- node {$u(bullet)$} (controller);
draw [->] (controller) -- node[name=(x)] {$x(bullet)$} (mat) {};
draw [->] (output) -- node {$y(bullet)$} (fin);
draw [-] (nodek) |- (K);
draw [->] (K) -| (sum);
end{tikzpicture}

end{center}

end{document}


enter image description here










share|improve this question









New contributor




Remi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
























    up vote
    2
    down vote

    favorite












    I am trying to draw a picture representing a control theory graph.



    I am pretty much there, but there are two problems:




    1. I need to have a dot above the x(t) in the first equation in the big box. When I put it in maths mode, it draws four lines instead of two, or, depending on how I split the maths mode, it puts it all on one line. Any ideas on how to get that damned dot above the x without changing the layout of the box?


    2. The RHS arrow with the y(.) above it is too long. I would like to get it back down to a length close to the LHS arrow with the v(.), it would just look nicer!



    Here is my code :



    documentclass{article}

    usepackage[utf8]{inputenc}

    usepackage{tikz}

    usetikzlibrary{shapes,arrows}

    usetikzlibrary{positioning, quotes}

    begin{document}

    tikzstyle{block} = [draw, fill=white, rectangle,
    minimum height=6em, minimum width=12em]

    tikzstyle{sum} = [draw, fill=white, circle, node distance=2cm]

    tikzstyle{input} = [coordinate]

    tikzstyle{output} = [coordinate]

    begin{center}

    begin{tikzpicture}[auto, node distance=4cm,>=latex']
    node [input, name=input] {};

    node [sum, right of=input] (sum) {B};

    node [block, right of=sum] (controller) {begin{array} dot{x}(t)=&Ax(t)+Bu(t)\ x(0)=&x_0 end{array}};

    !node [sum, right of=controller, node distance=3.651cm] (mat) {C};
    node [sum, below of=controller] (K) {K};
    node [output, right of=controller] (output) {C};
    node [input, name=end, right of=output, node distance=5cm] {};
    coordinate [below of=sum] (measurements) {};
    coordinate [right of=output](fin) {};
    coordinate[left of =output, xshift=2.7cm] (nodek) {};
    draw [draw,->] (input) -- node {$v(bullet)$} (sum);
    draw [->] (sum) -- node {$u(bullet)$} (controller);
    draw [->] (controller) -- node[name=(x)] {$x(bullet)$} (mat) {};
    draw [->] (output) -- node {$y(bullet)$} (fin);
    draw [-] (nodek) |- (K);
    draw [->] (K) -| (sum);
    end{tikzpicture}

    end{center}

    end{document}


    enter image description here










    share|improve this question









    New contributor




    Remi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.






















      up vote
      2
      down vote

      favorite









      up vote
      2
      down vote

      favorite











      I am trying to draw a picture representing a control theory graph.



      I am pretty much there, but there are two problems:




      1. I need to have a dot above the x(t) in the first equation in the big box. When I put it in maths mode, it draws four lines instead of two, or, depending on how I split the maths mode, it puts it all on one line. Any ideas on how to get that damned dot above the x without changing the layout of the box?


      2. The RHS arrow with the y(.) above it is too long. I would like to get it back down to a length close to the LHS arrow with the v(.), it would just look nicer!



      Here is my code :



      documentclass{article}

      usepackage[utf8]{inputenc}

      usepackage{tikz}

      usetikzlibrary{shapes,arrows}

      usetikzlibrary{positioning, quotes}

      begin{document}

      tikzstyle{block} = [draw, fill=white, rectangle,
      minimum height=6em, minimum width=12em]

      tikzstyle{sum} = [draw, fill=white, circle, node distance=2cm]

      tikzstyle{input} = [coordinate]

      tikzstyle{output} = [coordinate]

      begin{center}

      begin{tikzpicture}[auto, node distance=4cm,>=latex']
      node [input, name=input] {};

      node [sum, right of=input] (sum) {B};

      node [block, right of=sum] (controller) {begin{array} dot{x}(t)=&Ax(t)+Bu(t)\ x(0)=&x_0 end{array}};

      !node [sum, right of=controller, node distance=3.651cm] (mat) {C};
      node [sum, below of=controller] (K) {K};
      node [output, right of=controller] (output) {C};
      node [input, name=end, right of=output, node distance=5cm] {};
      coordinate [below of=sum] (measurements) {};
      coordinate [right of=output](fin) {};
      coordinate[left of =output, xshift=2.7cm] (nodek) {};
      draw [draw,->] (input) -- node {$v(bullet)$} (sum);
      draw [->] (sum) -- node {$u(bullet)$} (controller);
      draw [->] (controller) -- node[name=(x)] {$x(bullet)$} (mat) {};
      draw [->] (output) -- node {$y(bullet)$} (fin);
      draw [-] (nodek) |- (K);
      draw [->] (K) -| (sum);
      end{tikzpicture}

      end{center}

      end{document}


      enter image description here










      share|improve this question









      New contributor




      Remi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      I am trying to draw a picture representing a control theory graph.



      I am pretty much there, but there are two problems:




      1. I need to have a dot above the x(t) in the first equation in the big box. When I put it in maths mode, it draws four lines instead of two, or, depending on how I split the maths mode, it puts it all on one line. Any ideas on how to get that damned dot above the x without changing the layout of the box?


      2. The RHS arrow with the y(.) above it is too long. I would like to get it back down to a length close to the LHS arrow with the v(.), it would just look nicer!



      Here is my code :



      documentclass{article}

      usepackage[utf8]{inputenc}

      usepackage{tikz}

      usetikzlibrary{shapes,arrows}

      usetikzlibrary{positioning, quotes}

      begin{document}

      tikzstyle{block} = [draw, fill=white, rectangle,
      minimum height=6em, minimum width=12em]

      tikzstyle{sum} = [draw, fill=white, circle, node distance=2cm]

      tikzstyle{input} = [coordinate]

      tikzstyle{output} = [coordinate]

      begin{center}

      begin{tikzpicture}[auto, node distance=4cm,>=latex']
      node [input, name=input] {};

      node [sum, right of=input] (sum) {B};

      node [block, right of=sum] (controller) {begin{array} dot{x}(t)=&Ax(t)+Bu(t)\ x(0)=&x_0 end{array}};

      !node [sum, right of=controller, node distance=3.651cm] (mat) {C};
      node [sum, below of=controller] (K) {K};
      node [output, right of=controller] (output) {C};
      node [input, name=end, right of=output, node distance=5cm] {};
      coordinate [below of=sum] (measurements) {};
      coordinate [right of=output](fin) {};
      coordinate[left of =output, xshift=2.7cm] (nodek) {};
      draw [draw,->] (input) -- node {$v(bullet)$} (sum);
      draw [->] (sum) -- node {$u(bullet)$} (controller);
      draw [->] (controller) -- node[name=(x)] {$x(bullet)$} (mat) {};
      draw [->] (output) -- node {$y(bullet)$} (fin);
      draw [-] (nodek) |- (K);
      draw [->] (K) -| (sum);
      end{tikzpicture}

      end{center}

      end{document}


      enter image description here







      tikz-pgf tikz-arrows






      share|improve this question









      New contributor




      Remi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      Remi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited Nov 13 at 10:13









      Phelype Oleinik

      20.1k54277




      20.1k54277






      New contributor




      Remi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked Nov 13 at 10:11









      Remi

      264




      264




      New contributor




      Remi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Remi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Remi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          2 Answers
          2






          active

          oldest

          votes

















          up vote
          3
          down vote



          accepted










          Similar to jak123's nice answer but with some slight differences:




          • Rather than introducing a new length mywidth I make use of the node distance=2cm key.

          • I also switch to the tikzset syntax instead of tikzstyle.

          • I drop superfluous elements of the code.


          Here is what went wrong in your code




          • You forgot to add the column specifiers in the array, which is why it did not work.

          • You were loading but not using the positioning library.

          • Several coordinates were redundant.


          So here is the result:



          documentclass{article}

          usepackage[utf8]{inputenc}
          usepackage{amsmath}
          usepackage{tikz}
          usetikzlibrary{arrows,positioning}

          begin{document}

          tikzset{block/.style={draw, fill=white, rectangle,
          minimum height=6em, minimum width=12em},
          sum/.style={draw, fill=white, circle, node distance=2cm},
          input/.style={coordinate},
          output/.style={coordinate}}

          begin{center}

          begin{tikzpicture}[auto, node distance=2cm,>=latex']
          node [input, name=input] {};

          node [sum, right= of input] (sum) {B};

          node [block, right=of sum,align=left] (controller)
          {$begin{array}{r@{,}l} dot{x}(t)=&Ax(t)+Bu(t)\ x(0)=&x_0 end{array}$};

          node [sum, right=of controller] (mat) {C};
          node [sum, below=1cm of controller] (K) {K};
          coordinate [below=of sum] (measurements) {};
          coordinate [right=1.5cm of mat](fin) {};
          draw [draw,->] (input) -- node {$v(bullet)$} (sum);
          draw [->] (sum) -- node {$u(bullet)$} (controller);
          draw [->] (controller) -- node[name=x,above,midway] {$x(bullet)$}
          coordinate[midway] (x) (mat);
          draw [->] (mat) -- node[midway,above] {$y(bullet)$} (fin);
          draw [-] (x) |- (K);
          draw [->] (K) -| (sum);
          end{tikzpicture}
          end{center}


          enter image description here






          share|improve this answer




























            up vote
            3
            down vote













            Like this?



            documentclass{minimal}
            usepackage[utf8]{inputenc}
            usepackage{tikz}
            usetikzlibrary{shapes,arrows}
            usetikzlibrary{positioning, quotes}
            newlength{mywidth}
            setlength{mywidth}{2cm}

            begin{document}

            tikzstyle{block} = [draw, fill=white, rectangle,
            minimum height=6em, minimum width=12em]
            tikzstyle{sum} = [draw, fill=white, circle, node distance=2cm]
            tikzstyle{input} = [coordinate]
            tikzstyle{output} = [coordinate]

            begin{center}
            begin{tikzpicture}[auto, node distance=4cm,>=latex']
            node [input, name=input] {};
            node [sum, right=mywidth of input] (sum) {B};
            node [block, right=mywidth of sum] (controller) {$begin{array}{ccc} dot{x}(t)&=&Ax(t)+Bu(t)\ x(0)&=&x_0 end{array}$};
            node [sum, right=mywidth of controller] (mat) {C};
            node [sum, below=1cm of controller] (K) {K};
            node [output, right=mywidth of controller] (output) {C};
            node [input, name=end, right=mywidth of output] {};
            coordinate [below=mywidth of sum] (measurements) {};
            coordinate [right=mywidth of output] (fin) {};
            coordinate[left = mywidth/2 of output] (nodek) {};
            draw [draw,->] (input) -- node {$v(bullet)$} (sum);
            draw [->] (sum) -- node {$u(bullet)$} (controller);
            draw [->] (controller) -- node[name=(x)] {$x(bullet)$} (mat) {};
            draw [->] (mat) -- node {$y(bullet)$} (fin);
            draw [-] (nodek) |- (K);
            draw [->] (K) -| (sum);
            end{tikzpicture}

            end{center}

            end{document}


            y






            share|improve this answer



















            • 1




              Despite the warning, I have to thank you! I spent ages on that, and now, it works! <3
              – Remi
              Nov 13 at 11:15











            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',
            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
            });


            }
            });






            Remi is a new contributor. Be nice, and check out our Code of Conduct.










             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f459755%2fshorten-the-length-of-an-arrow-in-tikz%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            3
            down vote



            accepted










            Similar to jak123's nice answer but with some slight differences:




            • Rather than introducing a new length mywidth I make use of the node distance=2cm key.

            • I also switch to the tikzset syntax instead of tikzstyle.

            • I drop superfluous elements of the code.


            Here is what went wrong in your code




            • You forgot to add the column specifiers in the array, which is why it did not work.

            • You were loading but not using the positioning library.

            • Several coordinates were redundant.


            So here is the result:



            documentclass{article}

            usepackage[utf8]{inputenc}
            usepackage{amsmath}
            usepackage{tikz}
            usetikzlibrary{arrows,positioning}

            begin{document}

            tikzset{block/.style={draw, fill=white, rectangle,
            minimum height=6em, minimum width=12em},
            sum/.style={draw, fill=white, circle, node distance=2cm},
            input/.style={coordinate},
            output/.style={coordinate}}

            begin{center}

            begin{tikzpicture}[auto, node distance=2cm,>=latex']
            node [input, name=input] {};

            node [sum, right= of input] (sum) {B};

            node [block, right=of sum,align=left] (controller)
            {$begin{array}{r@{,}l} dot{x}(t)=&Ax(t)+Bu(t)\ x(0)=&x_0 end{array}$};

            node [sum, right=of controller] (mat) {C};
            node [sum, below=1cm of controller] (K) {K};
            coordinate [below=of sum] (measurements) {};
            coordinate [right=1.5cm of mat](fin) {};
            draw [draw,->] (input) -- node {$v(bullet)$} (sum);
            draw [->] (sum) -- node {$u(bullet)$} (controller);
            draw [->] (controller) -- node[name=x,above,midway] {$x(bullet)$}
            coordinate[midway] (x) (mat);
            draw [->] (mat) -- node[midway,above] {$y(bullet)$} (fin);
            draw [-] (x) |- (K);
            draw [->] (K) -| (sum);
            end{tikzpicture}
            end{center}


            enter image description here






            share|improve this answer

























              up vote
              3
              down vote



              accepted










              Similar to jak123's nice answer but with some slight differences:




              • Rather than introducing a new length mywidth I make use of the node distance=2cm key.

              • I also switch to the tikzset syntax instead of tikzstyle.

              • I drop superfluous elements of the code.


              Here is what went wrong in your code




              • You forgot to add the column specifiers in the array, which is why it did not work.

              • You were loading but not using the positioning library.

              • Several coordinates were redundant.


              So here is the result:



              documentclass{article}

              usepackage[utf8]{inputenc}
              usepackage{amsmath}
              usepackage{tikz}
              usetikzlibrary{arrows,positioning}

              begin{document}

              tikzset{block/.style={draw, fill=white, rectangle,
              minimum height=6em, minimum width=12em},
              sum/.style={draw, fill=white, circle, node distance=2cm},
              input/.style={coordinate},
              output/.style={coordinate}}

              begin{center}

              begin{tikzpicture}[auto, node distance=2cm,>=latex']
              node [input, name=input] {};

              node [sum, right= of input] (sum) {B};

              node [block, right=of sum,align=left] (controller)
              {$begin{array}{r@{,}l} dot{x}(t)=&Ax(t)+Bu(t)\ x(0)=&x_0 end{array}$};

              node [sum, right=of controller] (mat) {C};
              node [sum, below=1cm of controller] (K) {K};
              coordinate [below=of sum] (measurements) {};
              coordinate [right=1.5cm of mat](fin) {};
              draw [draw,->] (input) -- node {$v(bullet)$} (sum);
              draw [->] (sum) -- node {$u(bullet)$} (controller);
              draw [->] (controller) -- node[name=x,above,midway] {$x(bullet)$}
              coordinate[midway] (x) (mat);
              draw [->] (mat) -- node[midway,above] {$y(bullet)$} (fin);
              draw [-] (x) |- (K);
              draw [->] (K) -| (sum);
              end{tikzpicture}
              end{center}


              enter image description here






              share|improve this answer























                up vote
                3
                down vote



                accepted







                up vote
                3
                down vote



                accepted






                Similar to jak123's nice answer but with some slight differences:




                • Rather than introducing a new length mywidth I make use of the node distance=2cm key.

                • I also switch to the tikzset syntax instead of tikzstyle.

                • I drop superfluous elements of the code.


                Here is what went wrong in your code




                • You forgot to add the column specifiers in the array, which is why it did not work.

                • You were loading but not using the positioning library.

                • Several coordinates were redundant.


                So here is the result:



                documentclass{article}

                usepackage[utf8]{inputenc}
                usepackage{amsmath}
                usepackage{tikz}
                usetikzlibrary{arrows,positioning}

                begin{document}

                tikzset{block/.style={draw, fill=white, rectangle,
                minimum height=6em, minimum width=12em},
                sum/.style={draw, fill=white, circle, node distance=2cm},
                input/.style={coordinate},
                output/.style={coordinate}}

                begin{center}

                begin{tikzpicture}[auto, node distance=2cm,>=latex']
                node [input, name=input] {};

                node [sum, right= of input] (sum) {B};

                node [block, right=of sum,align=left] (controller)
                {$begin{array}{r@{,}l} dot{x}(t)=&Ax(t)+Bu(t)\ x(0)=&x_0 end{array}$};

                node [sum, right=of controller] (mat) {C};
                node [sum, below=1cm of controller] (K) {K};
                coordinate [below=of sum] (measurements) {};
                coordinate [right=1.5cm of mat](fin) {};
                draw [draw,->] (input) -- node {$v(bullet)$} (sum);
                draw [->] (sum) -- node {$u(bullet)$} (controller);
                draw [->] (controller) -- node[name=x,above,midway] {$x(bullet)$}
                coordinate[midway] (x) (mat);
                draw [->] (mat) -- node[midway,above] {$y(bullet)$} (fin);
                draw [-] (x) |- (K);
                draw [->] (K) -| (sum);
                end{tikzpicture}
                end{center}


                enter image description here






                share|improve this answer












                Similar to jak123's nice answer but with some slight differences:




                • Rather than introducing a new length mywidth I make use of the node distance=2cm key.

                • I also switch to the tikzset syntax instead of tikzstyle.

                • I drop superfluous elements of the code.


                Here is what went wrong in your code




                • You forgot to add the column specifiers in the array, which is why it did not work.

                • You were loading but not using the positioning library.

                • Several coordinates were redundant.


                So here is the result:



                documentclass{article}

                usepackage[utf8]{inputenc}
                usepackage{amsmath}
                usepackage{tikz}
                usetikzlibrary{arrows,positioning}

                begin{document}

                tikzset{block/.style={draw, fill=white, rectangle,
                minimum height=6em, minimum width=12em},
                sum/.style={draw, fill=white, circle, node distance=2cm},
                input/.style={coordinate},
                output/.style={coordinate}}

                begin{center}

                begin{tikzpicture}[auto, node distance=2cm,>=latex']
                node [input, name=input] {};

                node [sum, right= of input] (sum) {B};

                node [block, right=of sum,align=left] (controller)
                {$begin{array}{r@{,}l} dot{x}(t)=&Ax(t)+Bu(t)\ x(0)=&x_0 end{array}$};

                node [sum, right=of controller] (mat) {C};
                node [sum, below=1cm of controller] (K) {K};
                coordinate [below=of sum] (measurements) {};
                coordinate [right=1.5cm of mat](fin) {};
                draw [draw,->] (input) -- node {$v(bullet)$} (sum);
                draw [->] (sum) -- node {$u(bullet)$} (controller);
                draw [->] (controller) -- node[name=x,above,midway] {$x(bullet)$}
                coordinate[midway] (x) (mat);
                draw [->] (mat) -- node[midway,above] {$y(bullet)$} (fin);
                draw [-] (x) |- (K);
                draw [->] (K) -| (sum);
                end{tikzpicture}
                end{center}


                enter image description here







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 13 at 11:11









                marmot

                75.6k485159




                75.6k485159






















                    up vote
                    3
                    down vote













                    Like this?



                    documentclass{minimal}
                    usepackage[utf8]{inputenc}
                    usepackage{tikz}
                    usetikzlibrary{shapes,arrows}
                    usetikzlibrary{positioning, quotes}
                    newlength{mywidth}
                    setlength{mywidth}{2cm}

                    begin{document}

                    tikzstyle{block} = [draw, fill=white, rectangle,
                    minimum height=6em, minimum width=12em]
                    tikzstyle{sum} = [draw, fill=white, circle, node distance=2cm]
                    tikzstyle{input} = [coordinate]
                    tikzstyle{output} = [coordinate]

                    begin{center}
                    begin{tikzpicture}[auto, node distance=4cm,>=latex']
                    node [input, name=input] {};
                    node [sum, right=mywidth of input] (sum) {B};
                    node [block, right=mywidth of sum] (controller) {$begin{array}{ccc} dot{x}(t)&=&Ax(t)+Bu(t)\ x(0)&=&x_0 end{array}$};
                    node [sum, right=mywidth of controller] (mat) {C};
                    node [sum, below=1cm of controller] (K) {K};
                    node [output, right=mywidth of controller] (output) {C};
                    node [input, name=end, right=mywidth of output] {};
                    coordinate [below=mywidth of sum] (measurements) {};
                    coordinate [right=mywidth of output] (fin) {};
                    coordinate[left = mywidth/2 of output] (nodek) {};
                    draw [draw,->] (input) -- node {$v(bullet)$} (sum);
                    draw [->] (sum) -- node {$u(bullet)$} (controller);
                    draw [->] (controller) -- node[name=(x)] {$x(bullet)$} (mat) {};
                    draw [->] (mat) -- node {$y(bullet)$} (fin);
                    draw [-] (nodek) |- (K);
                    draw [->] (K) -| (sum);
                    end{tikzpicture}

                    end{center}

                    end{document}


                    y






                    share|improve this answer



















                    • 1




                      Despite the warning, I have to thank you! I spent ages on that, and now, it works! <3
                      – Remi
                      Nov 13 at 11:15















                    up vote
                    3
                    down vote













                    Like this?



                    documentclass{minimal}
                    usepackage[utf8]{inputenc}
                    usepackage{tikz}
                    usetikzlibrary{shapes,arrows}
                    usetikzlibrary{positioning, quotes}
                    newlength{mywidth}
                    setlength{mywidth}{2cm}

                    begin{document}

                    tikzstyle{block} = [draw, fill=white, rectangle,
                    minimum height=6em, minimum width=12em]
                    tikzstyle{sum} = [draw, fill=white, circle, node distance=2cm]
                    tikzstyle{input} = [coordinate]
                    tikzstyle{output} = [coordinate]

                    begin{center}
                    begin{tikzpicture}[auto, node distance=4cm,>=latex']
                    node [input, name=input] {};
                    node [sum, right=mywidth of input] (sum) {B};
                    node [block, right=mywidth of sum] (controller) {$begin{array}{ccc} dot{x}(t)&=&Ax(t)+Bu(t)\ x(0)&=&x_0 end{array}$};
                    node [sum, right=mywidth of controller] (mat) {C};
                    node [sum, below=1cm of controller] (K) {K};
                    node [output, right=mywidth of controller] (output) {C};
                    node [input, name=end, right=mywidth of output] {};
                    coordinate [below=mywidth of sum] (measurements) {};
                    coordinate [right=mywidth of output] (fin) {};
                    coordinate[left = mywidth/2 of output] (nodek) {};
                    draw [draw,->] (input) -- node {$v(bullet)$} (sum);
                    draw [->] (sum) -- node {$u(bullet)$} (controller);
                    draw [->] (controller) -- node[name=(x)] {$x(bullet)$} (mat) {};
                    draw [->] (mat) -- node {$y(bullet)$} (fin);
                    draw [-] (nodek) |- (K);
                    draw [->] (K) -| (sum);
                    end{tikzpicture}

                    end{center}

                    end{document}


                    y






                    share|improve this answer



















                    • 1




                      Despite the warning, I have to thank you! I spent ages on that, and now, it works! <3
                      – Remi
                      Nov 13 at 11:15













                    up vote
                    3
                    down vote










                    up vote
                    3
                    down vote









                    Like this?



                    documentclass{minimal}
                    usepackage[utf8]{inputenc}
                    usepackage{tikz}
                    usetikzlibrary{shapes,arrows}
                    usetikzlibrary{positioning, quotes}
                    newlength{mywidth}
                    setlength{mywidth}{2cm}

                    begin{document}

                    tikzstyle{block} = [draw, fill=white, rectangle,
                    minimum height=6em, minimum width=12em]
                    tikzstyle{sum} = [draw, fill=white, circle, node distance=2cm]
                    tikzstyle{input} = [coordinate]
                    tikzstyle{output} = [coordinate]

                    begin{center}
                    begin{tikzpicture}[auto, node distance=4cm,>=latex']
                    node [input, name=input] {};
                    node [sum, right=mywidth of input] (sum) {B};
                    node [block, right=mywidth of sum] (controller) {$begin{array}{ccc} dot{x}(t)&=&Ax(t)+Bu(t)\ x(0)&=&x_0 end{array}$};
                    node [sum, right=mywidth of controller] (mat) {C};
                    node [sum, below=1cm of controller] (K) {K};
                    node [output, right=mywidth of controller] (output) {C};
                    node [input, name=end, right=mywidth of output] {};
                    coordinate [below=mywidth of sum] (measurements) {};
                    coordinate [right=mywidth of output] (fin) {};
                    coordinate[left = mywidth/2 of output] (nodek) {};
                    draw [draw,->] (input) -- node {$v(bullet)$} (sum);
                    draw [->] (sum) -- node {$u(bullet)$} (controller);
                    draw [->] (controller) -- node[name=(x)] {$x(bullet)$} (mat) {};
                    draw [->] (mat) -- node {$y(bullet)$} (fin);
                    draw [-] (nodek) |- (K);
                    draw [->] (K) -| (sum);
                    end{tikzpicture}

                    end{center}

                    end{document}


                    y






                    share|improve this answer














                    Like this?



                    documentclass{minimal}
                    usepackage[utf8]{inputenc}
                    usepackage{tikz}
                    usetikzlibrary{shapes,arrows}
                    usetikzlibrary{positioning, quotes}
                    newlength{mywidth}
                    setlength{mywidth}{2cm}

                    begin{document}

                    tikzstyle{block} = [draw, fill=white, rectangle,
                    minimum height=6em, minimum width=12em]
                    tikzstyle{sum} = [draw, fill=white, circle, node distance=2cm]
                    tikzstyle{input} = [coordinate]
                    tikzstyle{output} = [coordinate]

                    begin{center}
                    begin{tikzpicture}[auto, node distance=4cm,>=latex']
                    node [input, name=input] {};
                    node [sum, right=mywidth of input] (sum) {B};
                    node [block, right=mywidth of sum] (controller) {$begin{array}{ccc} dot{x}(t)&=&Ax(t)+Bu(t)\ x(0)&=&x_0 end{array}$};
                    node [sum, right=mywidth of controller] (mat) {C};
                    node [sum, below=1cm of controller] (K) {K};
                    node [output, right=mywidth of controller] (output) {C};
                    node [input, name=end, right=mywidth of output] {};
                    coordinate [below=mywidth of sum] (measurements) {};
                    coordinate [right=mywidth of output] (fin) {};
                    coordinate[left = mywidth/2 of output] (nodek) {};
                    draw [draw,->] (input) -- node {$v(bullet)$} (sum);
                    draw [->] (sum) -- node {$u(bullet)$} (controller);
                    draw [->] (controller) -- node[name=(x)] {$x(bullet)$} (mat) {};
                    draw [->] (mat) -- node {$y(bullet)$} (fin);
                    draw [-] (nodek) |- (K);
                    draw [->] (K) -| (sum);
                    end{tikzpicture}

                    end{center}

                    end{document}


                    y







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Nov 13 at 11:15

























                    answered Nov 13 at 10:58









                    jak123

                    2,26111233




                    2,26111233








                    • 1




                      Despite the warning, I have to thank you! I spent ages on that, and now, it works! <3
                      – Remi
                      Nov 13 at 11:15














                    • 1




                      Despite the warning, I have to thank you! I spent ages on that, and now, it works! <3
                      – Remi
                      Nov 13 at 11:15








                    1




                    1




                    Despite the warning, I have to thank you! I spent ages on that, and now, it works! <3
                    – Remi
                    Nov 13 at 11:15




                    Despite the warning, I have to thank you! I spent ages on that, and now, it works! <3
                    – Remi
                    Nov 13 at 11:15










                    Remi is a new contributor. Be nice, and check out our Code of Conduct.










                     

                    draft saved


                    draft discarded


















                    Remi is a new contributor. Be nice, and check out our Code of Conduct.













                    Remi is a new contributor. Be nice, and check out our Code of Conduct.












                    Remi is a new contributor. Be nice, and check out our Code of Conduct.















                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f459755%2fshorten-the-length-of-an-arrow-in-tikz%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

                    Сан-Квентин

                    Алькесар

                    Josef Freinademetz