emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] MACRO calls with linebreaks?


From: Carsten Dominik
Subject: Re: [Orgmode] MACRO calls with linebreaks?
Date: Tue, 11 Aug 2009 11:02:57 +0200

Hi Stefan,

could you please make a complete example, with the complete macro
definition and calls, i.e. no ...?  This would give me something
to test without having to guess what might be happening.

Thanks.

- Carsten


On Aug 11, 2009, at 12:58 AM, Stefan Vollmar wrote:

Dear Carsten,

On 10.08.2009, at 10:09, Carsten Dominik wrote:

this should now work.

But note that the opening parenthesis must be attached to the macro name and the closing parenthesis must be attached to the "}}}", just as you have done in your proposal.

I have not tested this, please verify.

thank you!

Almost perfect: there seems to be some confusion as to when MACRO arguments are passed verbatim and when interpreted in org-fashion. Ideally, there should be a way to make sure that one gets verbatim text, possibly without leading white space.

(1)

{{{person(minerva_logo.png,
...)}}}

and

{{{person(
minerva_logo.png,
...)}}}

differ. The first version passes "minerva_log.png" as the first argument to the MACRO, the second version turns it into "minerva<sub>logo</sub>.png".

(2)

{{{person(minerva_logo.png, somebody.jpg,
line1 <br/> line2 <br/> line3 <br/>,
address@hidden
)}}}

works fine, however,

{{{person(minerva_logo.png, somebody.jpg,
line1 <br/>
line2 <br/>
line3 <br/>,
address@hidden
)}}}

creates "line1" folled by a line break (as expected) but all following HTML code rendered as text:
line1 <br/> line2 &lt;br/&gt; line3 &lt;br/&gt;&lt; [...]

(3)

{{{person(minerva_logo.png, somebody.jpg,
line1 <br/>
line2 @<br/>
line3 @<br/>,
address@hidden
)}}}

this works (observe the inconsistency between line1 and the other lines: no "@" here) up to and including line 3, the rest is HTML markup rendered as text just as in (2).

Warm regards,
Stefan


- Carsten

On Aug 9, 2009, at 2:40 AM, Stefan Vollmar wrote:

Hello,

I find org-mode's MACRO feature very useful for exporting to HTML as it allows you to generate literally any HTML construct that you need, here is a simple example: http://www.nf.mpg.de/kinderuni/kinderuni_en.html (see the "Colophon" section; thanks again to everybody from the list who helped!).

For another project, we need to generate a table with many (multi- line) rows like this:

| logo.png | somebody.jpg | name \\ telephone \\ email... |

The images have different sizes (so some alignment is needed) and the text in the last column should have several lines (which should be next to the person's portrait). This can (currently) not been done with standard org tables (I am not complaining).

With something like this:

#+macro: person #+HTML: <table><tr><td style="vertical- align:middle;margin-right:2em;margin-left:2em;padding:5px;">[...]</ table>

{{{person(logo.png, somebody.jpg, address@hidden, name<br/ >telephone<br/>room<br/>group<br/>[...])}}}

the problem can be solved and yet again org-mode's flexibility is demonstrated.

The MACRO can be hidden in a setup-file. However, the MACRO call can not and it looks like a kludge and is awkward to read. MACRO calls work well with few and short arguments - different from this case. The problem is that org-mode seems to require the brackets in one line for MACROs to work. Assuming this restriction was not there, one could write in a much more readable fashion:

{{{person(
logo.png, somebody.jpg,
address@hidden,
name<br/>
telephone<br/>
room<br/>
group<br/>
[...]
)}}}

and (just a thought) might expect white space in front of an argument to be ignored and linebreaks in arguments conserved. Maybe there is a better way to pass longer arguments to MACROs?

Any help is appreciated.
Warm regards,
Stefan

--
Dr. Stefan Vollmar, Dipl.-Phys.
Max-Planck-Institut für neurologische Forschung
Gleuelerstr. 50, 50931 Köln, Germany
Tel.: +49-221-4726-213  FAX +49-221-4726-298
Tel.: +49-221-478-5713  Mobile: 0160-93874279
Email: address@hidden   http://www.nf.mpg.de







_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode





reply via email to

[Prev in Thread] Current Thread [Next in Thread]