Re: [O] Multi-line macros (again)

2016-10-12 Thread Rasmus
Hi,

>> To me, the syntax is a bit tiresome for inline calls,
>>
>>  call_[]()[> arguments>]
>
> This is where macros can shine. You can define a macro expanding to this
> template.

Sure.

>> I wonder if we could allow remote editing of macros like with table
>> formulas.
>
> This is orthogonal to the issue. Once edited, it sill have to be
> inserted in the document as a multi-line macro, which is not possible.

Not if we can automatically format lines, which is not at all obvious.  It
might be possible with lispy macros, but might not be possible in general.
(Table formula lines can be long, but it's not a problem since they can be
edited in a separate window).

Rasmus

-- 
To err is human. To screw up 10⁶ times per second, you need a computer




Re: [O] Multi-line macros (again)

2016-10-12 Thread Nicolas Goaziou
Hello,

Rasmus  writes:

> To me, the syntax is a bit tiresome for inline calls,
>
>  call_[]()[ arguments>]

This is where macros can shine. You can define a macro expanding to this
template.

> I wonder if we could allow remote editing of macros like with table
> formulas.

This is orthogonal to the issue. Once edited, it sill have to be
inserted in the document as a multi-line macro, which is not possible.

Regards,

-- 
Nicolas Goaziou



Re: [O] Multi-line macros (again)

2016-10-12 Thread Rasmus
Nicolas Goaziou  writes:

> Hello,
>
> Jarmo Hurri  writes:
>
>> One of the most useful properties of LaTeX is \newcommand, which allows
>> you to reuse document structures. I really, _really_ miss this feature
>> in Org. Org has #+MACRO, but it is limited to a single line. That is
>> very inconvenient for any larger structures.
>
> Of course, macro are inconvenient for complex structures. They are not
> the right tool for the job. You could use Babel for that, e.g.,
>
>   #+name: template
>   #+header: :var x="" y=""
>
>   #+header: :results silent
>   #+begin_src org
>
>   $x
>   $y
>   #+end_src
>
>   #+call: template("line 1", "line 2") :results replace
>
>   #+RESULTS:
>   line 1
>   line 2
>
>> Could we have multiline macros, something like
>>
>> #+BEGIN_MACRO name
>> #+END_MACRO
>
> For the record, I think that block syntax is largely overloaded. I'd
> rather not introduce a new type of block without a really good reason.
>
> Anyway, is there anything wrong with Babel, as suggested above?

To me, the syntax is a bit tiresome for inline calls,

 call_[]()[]

You almost always have to tweak the header arguments to get it to work
properly.  E.g. I think it prints return values as code by default
(e.g. "=·=").

I wonder if we could allow remote editing of macros like with table
formulas.

Rasmus

-- 
Dung makes an excellent fertilizer




Re: [O] Multi-line macros (again)

2016-10-09 Thread Nicolas Goaziou
Hello,

Jarmo Hurri  writes:

> One of the most useful properties of LaTeX is \newcommand, which allows
> you to reuse document structures. I really, _really_ miss this feature
> in Org. Org has #+MACRO, but it is limited to a single line. That is
> very inconvenient for any larger structures.

Of course, macro are inconvenient for complex structures. They are not
the right tool for the job. You could use Babel for that, e.g.,

  #+name: template
  #+header: :var x="" y=""
  #+header: :results silent
  #+begin_src org
  $x
  $y
  #+end_src

  #+call: template("line 1", "line 2") :results replace

  #+RESULTS:
  line 1
  line 2

> Could we have multiline macros, something like
>
> #+BEGIN_MACRO name
> #+END_MACRO

For the record, I think that block syntax is largely overloaded. I'd
rather not introduce a new type of block without a really good reason.

Anyway, is there anything wrong with Babel, as suggested above?

Regards,

-- 
Nicolas Goaziou