Naming the result of a source block Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Can I use elisp code make a table and insert a variable into cell?Indentation of source block resultFontify result of source block in org-modeHow to have org-babel treat the first line of a table result as a header?Org-mode: pipe source block output as stdin to next source blockHow to append header arguments to result code src block?How to insert a result of an org-mode source block as part of the document's syntax?Org-mode: Get src block result inside block definition for clocktableget contents of source blockCatching warnings from sh source blockHow to generate the result file for dot source block and include it with another path in org-mode?

Using et al. for a last / senior author rather than for a first author

How to find out what spells would be useless to a blind NPC spellcaster?

Why do we bend a book to keep it straight?

Can I cast Passwall to drop an enemy into a 20-foot pit?

Apollo command module space walk?

How to deal with a team lead who never gives me credit?

What causes the vertical darker bands in my photo?

Why aren't air breathing engines used as small first stages

At the end of Thor: Ragnarok why don't the Asgardians turn and head for the Bifrost as per their original plan?

How to bypass password on Windows XP account?

How widely used is the term Treppenwitz? Is it something that most Germans know?

When a candle burns, why does the top of wick glow if bottom of flame is hottest?

How does the particle を relate to the verb 行く in the structure「A を + B に行く」?

Why is "Consequences inflicted." not a sentence?

Output the ŋarâþ crîþ alphabet song without using (m)any letters

Storing hydrofluoric acid before the invention of plastics

Is the Standard Deduction better than Itemized when both are the same amount?

Extract all GPU name, model and GPU ram

How to call a function with default parameter through a pointer to function that is the return of another function?

Denied boarding although I have proper visa and documentation. To whom should I make a complaint?

Coloring maths inside a tcolorbox

String `!23` is replaced with `docker` in command line

Resolving to minmaj7

Do I really need recursive chmod to restrict access to a folder?



Naming the result of a source block



Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
Announcing the arrival of Valued Associate #679: Cesar Manara
Unicorn Meta Zoo #1: Why another podcast?Can I use elisp code make a table and insert a variable into cell?Indentation of source block resultFontify result of source block in org-modeHow to have org-babel treat the first line of a table result as a header?Org-mode: pipe source block output as stdin to next source blockHow to append header arguments to result code src block?How to insert a result of an org-mode source block as part of the document's syntax?Org-mode: Get src block result inside block definition for clocktableget contents of source blockCatching warnings from sh source blockHow to generate the result file for dot source block and include it with another path in org-mode?










1















The following question has been asked (in slightly different form) in a comment of another answer:



Is it possible to name the results of a source block with #+NAME: foobar (or equivalently but old-style: #+TBLNAME: foobar) rather than #+RESULTS: foobar?



Example:



#+NAME: foo
#+BEGIN_SRC emacs-lisp :var alpha=2 :results value
(let* ((tol 0.1)
(alpha_1 (- 90 alpha)))
`(("angle" "symbol" "value" "max" "min") hline
("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
))
#+END_SRC

#+RESULTS: foo
| angle | symbol | value | max | min |
|-------+----------+-------+------+------|
| toe | alpha | 1 | 1.1 | 0.9 |
| c | alpha_1 | 89 | 89.1 | 88.9 |









share|improve this question


























    1















    The following question has been asked (in slightly different form) in a comment of another answer:



    Is it possible to name the results of a source block with #+NAME: foobar (or equivalently but old-style: #+TBLNAME: foobar) rather than #+RESULTS: foobar?



    Example:



    #+NAME: foo
    #+BEGIN_SRC emacs-lisp :var alpha=2 :results value
    (let* ((tol 0.1)
    (alpha_1 (- 90 alpha)))
    `(("angle" "symbol" "value" "max" "min") hline
    ("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
    ("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
    ))
    #+END_SRC

    #+RESULTS: foo
    | angle | symbol | value | max | min |
    |-------+----------+-------+------+------|
    | toe | alpha | 1 | 1.1 | 0.9 |
    | c | alpha_1 | 89 | 89.1 | 88.9 |









    share|improve this question
























      1












      1








      1








      The following question has been asked (in slightly different form) in a comment of another answer:



      Is it possible to name the results of a source block with #+NAME: foobar (or equivalently but old-style: #+TBLNAME: foobar) rather than #+RESULTS: foobar?



      Example:



      #+NAME: foo
      #+BEGIN_SRC emacs-lisp :var alpha=2 :results value
      (let* ((tol 0.1)
      (alpha_1 (- 90 alpha)))
      `(("angle" "symbol" "value" "max" "min") hline
      ("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
      ("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
      ))
      #+END_SRC

      #+RESULTS: foo
      | angle | symbol | value | max | min |
      |-------+----------+-------+------+------|
      | toe | alpha | 1 | 1.1 | 0.9 |
      | c | alpha_1 | 89 | 89.1 | 88.9 |









      share|improve this question














      The following question has been asked (in slightly different form) in a comment of another answer:



      Is it possible to name the results of a source block with #+NAME: foobar (or equivalently but old-style: #+TBLNAME: foobar) rather than #+RESULTS: foobar?



      Example:



      #+NAME: foo
      #+BEGIN_SRC emacs-lisp :var alpha=2 :results value
      (let* ((tol 0.1)
      (alpha_1 (- 90 alpha)))
      `(("angle" "symbol" "value" "max" "min") hline
      ("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
      ("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
      ))
      #+END_SRC

      #+RESULTS: foo
      | angle | symbol | value | max | min |
      |-------+----------+-------+------+------|
      | toe | alpha | 1 | 1.1 | 0.9 |
      | c | alpha_1 | 89 | 89.1 | 88.9 |






      org-babel org-table






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 4 hours ago









      TobiasTobias

      15.2k11035




      15.2k11035




















          1 Answer
          1






          active

          oldest

          votes


















          2














          One can add the following lines below unnamed source blocks (with bar replaced by the intended table name):



          #+NAME: bar
          #+RESULTS:
          ||


          The line with #+name: bar is preserved after the evaluation of the source block and || is replaced with the resulting table.



          Note, that the name bar really names the table and not the source block.
          That has the following consequences (probably among others I am not aware of at the moment):



          1. If you refer to the table name in the header arguments of another source block, say buh, then the bar source block is not reevaluated when buh is evaluated. The table is not updated but taken as argument for buh as it is.

            That is usually more an disadvantage than an advantage.

            One can call org-babel-execute-buffer to get correctly updated results.


          2. If the source block returns a string containing the formatted org-table rather than table data referring to the source block name in header variables gets you the string and not the table data. That is most often unwanted.

            In that case it is a big advantage that you can alternatively refer to the resulting table by its name.


          If the source block is named, e.g., foo replace #+RESULTS: with #+RESULTS: foo.



          Example:



          #+NAME: foo
          #+BEGIN_SRC emacs-lisp :var alpha=2 :results value
          (let* ((tol 0.1)
          (alpha_1 (- 90 alpha)))
          `(("angle" "symbol" "value" "max" "min") hline
          ("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
          ("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
          ))
          #+END_SRC

          #+TBLNAME: bar
          #+RESULTS: foo
          | angle | symbol | value | max | min |
          |-------+----------+-------+------+------|
          | toe | alpha | 1 | 1.1 | 0.9 |
          | c | alpha_1 | 89 | 89.1 | 88.9 |

          #+CALL: foo(alpha=bar[2,3])

          #+NAME: buh
          #+RESULTS:
          | angle | symbol | value | max | min |
          |-------+----------+-------+--------------------+-------------------|
          | toe | alpha | 1.1 | 1.2000000000000002 | 1.0 |
          | c | alpha_1 | 88.9 | 89.0 | 88.80000000000001 |


          The example demonstrates the update problem. The header variable alpha had the value 1 at the first evaluation of foo. Afterwards the value was changed to 2 but the source block foo was not evaluated again.

          The evaluation of the #+CALL statement does use the table value 1.1 at cell 2,3 directly without reevaluation of foo.






          share|improve this answer

























            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "583"
            ;
            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%2femacs.stackexchange.com%2fquestions%2f48972%2fnaming-the-result-of-a-source-block%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            2














            One can add the following lines below unnamed source blocks (with bar replaced by the intended table name):



            #+NAME: bar
            #+RESULTS:
            ||


            The line with #+name: bar is preserved after the evaluation of the source block and || is replaced with the resulting table.



            Note, that the name bar really names the table and not the source block.
            That has the following consequences (probably among others I am not aware of at the moment):



            1. If you refer to the table name in the header arguments of another source block, say buh, then the bar source block is not reevaluated when buh is evaluated. The table is not updated but taken as argument for buh as it is.

              That is usually more an disadvantage than an advantage.

              One can call org-babel-execute-buffer to get correctly updated results.


            2. If the source block returns a string containing the formatted org-table rather than table data referring to the source block name in header variables gets you the string and not the table data. That is most often unwanted.

              In that case it is a big advantage that you can alternatively refer to the resulting table by its name.


            If the source block is named, e.g., foo replace #+RESULTS: with #+RESULTS: foo.



            Example:



            #+NAME: foo
            #+BEGIN_SRC emacs-lisp :var alpha=2 :results value
            (let* ((tol 0.1)
            (alpha_1 (- 90 alpha)))
            `(("angle" "symbol" "value" "max" "min") hline
            ("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
            ("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
            ))
            #+END_SRC

            #+TBLNAME: bar
            #+RESULTS: foo
            | angle | symbol | value | max | min |
            |-------+----------+-------+------+------|
            | toe | alpha | 1 | 1.1 | 0.9 |
            | c | alpha_1 | 89 | 89.1 | 88.9 |

            #+CALL: foo(alpha=bar[2,3])

            #+NAME: buh
            #+RESULTS:
            | angle | symbol | value | max | min |
            |-------+----------+-------+--------------------+-------------------|
            | toe | alpha | 1.1 | 1.2000000000000002 | 1.0 |
            | c | alpha_1 | 88.9 | 89.0 | 88.80000000000001 |


            The example demonstrates the update problem. The header variable alpha had the value 1 at the first evaluation of foo. Afterwards the value was changed to 2 but the source block foo was not evaluated again.

            The evaluation of the #+CALL statement does use the table value 1.1 at cell 2,3 directly without reevaluation of foo.






            share|improve this answer





























              2














              One can add the following lines below unnamed source blocks (with bar replaced by the intended table name):



              #+NAME: bar
              #+RESULTS:
              ||


              The line with #+name: bar is preserved after the evaluation of the source block and || is replaced with the resulting table.



              Note, that the name bar really names the table and not the source block.
              That has the following consequences (probably among others I am not aware of at the moment):



              1. If you refer to the table name in the header arguments of another source block, say buh, then the bar source block is not reevaluated when buh is evaluated. The table is not updated but taken as argument for buh as it is.

                That is usually more an disadvantage than an advantage.

                One can call org-babel-execute-buffer to get correctly updated results.


              2. If the source block returns a string containing the formatted org-table rather than table data referring to the source block name in header variables gets you the string and not the table data. That is most often unwanted.

                In that case it is a big advantage that you can alternatively refer to the resulting table by its name.


              If the source block is named, e.g., foo replace #+RESULTS: with #+RESULTS: foo.



              Example:



              #+NAME: foo
              #+BEGIN_SRC emacs-lisp :var alpha=2 :results value
              (let* ((tol 0.1)
              (alpha_1 (- 90 alpha)))
              `(("angle" "symbol" "value" "max" "min") hline
              ("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
              ("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
              ))
              #+END_SRC

              #+TBLNAME: bar
              #+RESULTS: foo
              | angle | symbol | value | max | min |
              |-------+----------+-------+------+------|
              | toe | alpha | 1 | 1.1 | 0.9 |
              | c | alpha_1 | 89 | 89.1 | 88.9 |

              #+CALL: foo(alpha=bar[2,3])

              #+NAME: buh
              #+RESULTS:
              | angle | symbol | value | max | min |
              |-------+----------+-------+--------------------+-------------------|
              | toe | alpha | 1.1 | 1.2000000000000002 | 1.0 |
              | c | alpha_1 | 88.9 | 89.0 | 88.80000000000001 |


              The example demonstrates the update problem. The header variable alpha had the value 1 at the first evaluation of foo. Afterwards the value was changed to 2 but the source block foo was not evaluated again.

              The evaluation of the #+CALL statement does use the table value 1.1 at cell 2,3 directly without reevaluation of foo.






              share|improve this answer



























                2












                2








                2







                One can add the following lines below unnamed source blocks (with bar replaced by the intended table name):



                #+NAME: bar
                #+RESULTS:
                ||


                The line with #+name: bar is preserved after the evaluation of the source block and || is replaced with the resulting table.



                Note, that the name bar really names the table and not the source block.
                That has the following consequences (probably among others I am not aware of at the moment):



                1. If you refer to the table name in the header arguments of another source block, say buh, then the bar source block is not reevaluated when buh is evaluated. The table is not updated but taken as argument for buh as it is.

                  That is usually more an disadvantage than an advantage.

                  One can call org-babel-execute-buffer to get correctly updated results.


                2. If the source block returns a string containing the formatted org-table rather than table data referring to the source block name in header variables gets you the string and not the table data. That is most often unwanted.

                  In that case it is a big advantage that you can alternatively refer to the resulting table by its name.


                If the source block is named, e.g., foo replace #+RESULTS: with #+RESULTS: foo.



                Example:



                #+NAME: foo
                #+BEGIN_SRC emacs-lisp :var alpha=2 :results value
                (let* ((tol 0.1)
                (alpha_1 (- 90 alpha)))
                `(("angle" "symbol" "value" "max" "min") hline
                ("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
                ("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
                ))
                #+END_SRC

                #+TBLNAME: bar
                #+RESULTS: foo
                | angle | symbol | value | max | min |
                |-------+----------+-------+------+------|
                | toe | alpha | 1 | 1.1 | 0.9 |
                | c | alpha_1 | 89 | 89.1 | 88.9 |

                #+CALL: foo(alpha=bar[2,3])

                #+NAME: buh
                #+RESULTS:
                | angle | symbol | value | max | min |
                |-------+----------+-------+--------------------+-------------------|
                | toe | alpha | 1.1 | 1.2000000000000002 | 1.0 |
                | c | alpha_1 | 88.9 | 89.0 | 88.80000000000001 |


                The example demonstrates the update problem. The header variable alpha had the value 1 at the first evaluation of foo. Afterwards the value was changed to 2 but the source block foo was not evaluated again.

                The evaluation of the #+CALL statement does use the table value 1.1 at cell 2,3 directly without reevaluation of foo.






                share|improve this answer















                One can add the following lines below unnamed source blocks (with bar replaced by the intended table name):



                #+NAME: bar
                #+RESULTS:
                ||


                The line with #+name: bar is preserved after the evaluation of the source block and || is replaced with the resulting table.



                Note, that the name bar really names the table and not the source block.
                That has the following consequences (probably among others I am not aware of at the moment):



                1. If you refer to the table name in the header arguments of another source block, say buh, then the bar source block is not reevaluated when buh is evaluated. The table is not updated but taken as argument for buh as it is.

                  That is usually more an disadvantage than an advantage.

                  One can call org-babel-execute-buffer to get correctly updated results.


                2. If the source block returns a string containing the formatted org-table rather than table data referring to the source block name in header variables gets you the string and not the table data. That is most often unwanted.

                  In that case it is a big advantage that you can alternatively refer to the resulting table by its name.


                If the source block is named, e.g., foo replace #+RESULTS: with #+RESULTS: foo.



                Example:



                #+NAME: foo
                #+BEGIN_SRC emacs-lisp :var alpha=2 :results value
                (let* ((tol 0.1)
                (alpha_1 (- 90 alpha)))
                `(("angle" "symbol" "value" "max" "min") hline
                ("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
                ("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
                ))
                #+END_SRC

                #+TBLNAME: bar
                #+RESULTS: foo
                | angle | symbol | value | max | min |
                |-------+----------+-------+------+------|
                | toe | alpha | 1 | 1.1 | 0.9 |
                | c | alpha_1 | 89 | 89.1 | 88.9 |

                #+CALL: foo(alpha=bar[2,3])

                #+NAME: buh
                #+RESULTS:
                | angle | symbol | value | max | min |
                |-------+----------+-------+--------------------+-------------------|
                | toe | alpha | 1.1 | 1.2000000000000002 | 1.0 |
                | c | alpha_1 | 88.9 | 89.0 | 88.80000000000001 |


                The example demonstrates the update problem. The header variable alpha had the value 1 at the first evaluation of foo. Afterwards the value was changed to 2 but the source block foo was not evaluated again.

                The evaluation of the #+CALL statement does use the table value 1.1 at cell 2,3 directly without reevaluation of foo.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited 3 hours ago

























                answered 4 hours ago









                TobiasTobias

                15.2k11035




                15.2k11035



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Emacs 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%2femacs.stackexchange.com%2fquestions%2f48972%2fnaming-the-result-of-a-source-block%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

                    Magento 2 - Add success message with knockout Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Success / Error message on ajax request$.widget is not a function when loading a homepage after add custom jQuery on custom themeHow can bind jQuery to current document in Magento 2 When template load by ajaxRedirect page using plugin in Magento 2Magento 2 - Update quantity and totals of cart page without page reload?Magento 2: Quote data not loaded on knockout checkoutMagento 2 : I need to change add to cart success message after adding product into cart through pluginMagento 2.2.5 How to add additional products to cart from new checkout step?Magento 2 Add error/success message with knockoutCan't validate Post Code on checkout page

                    Fil:Tokke komm.svg

                    Where did Arya get these scars? Unicorn Meta Zoo #1: Why another podcast? Announcing the arrival of Valued Associate #679: Cesar Manara Favourite questions and answers from the 1st quarter of 2019Why did Arya refuse to end it?Has the pronunciation of Arya Stark's name changed?Has Arya forgiven people?Why did Arya Stark lose her vision?Why can Arya still use the faces?Has the Narrow Sea become narrower?Does Arya Stark know how to make poisons outside of the House of Black and White?Why did Nymeria leave Arya?Why did Arya not kill the Lannister soldiers she encountered in the Riverlands?What is the current canonical age of Sansa, Bran and Arya Stark?