Answering without full knowledge!

On Wed, Aug 23, 2017 at 11:13 PM, Joon Ro <joon.ro@outlook.com> wrote:
Hi,

I have several questions about macro replacement usage.

1. I saw people using {{{n}}} macros, which looks very useful, but I could not find it in current documentation about macro replacement (http://orgmode.org/manual/Macro-replacement.html). Is this only available in developmental version?

Yes, I'm pretty sure this has not been merged yet

2. I was wondering if it is possible use macro expansion for :EXPORT_FILE_NAME: property of a subtree?
Since macros can be set to expand to arbitrary elisp, I would think this *should* be possible.  I forget the syntax but something like:

#+MACRO: efn (eval (get-export-file-name))

#+BEGIN_SRC emacs-lisp
(defun get-export-file-name ()
 (org-element-property :export-file-name (org-element--current-element) ))
#+END_SRC

* some heading
:PROPERTIES
:EXPORT_FILE_NAME: test-me
:END:

will get you somewhat close.  I don't understand the org-element api very well though and it generally takes me a few tries to get this sort of thing right.

3. Is it possible to create a file link which uses macro? I would like to create a link to the exported pdf file dynamically. For example, if the value of :EXPORT_FILE_NAME: is exported, how would I create a link which automatically link to exported.pdf?

I don't think a macro will do this for you since, if I understand correctly, macros are not aware of the export target.  So probably you would need some other mechanism to od this.

Any help would be greatly appreciated. Thank you!
Joon