From: Jambunathan K <kjambunathan@gmail.com>
To: mail@christianmoe.com
Cc: Orgmode Mailing List <emacs-orgmode@gnu.org>,
Gary Oberbrunner <garyo@oberbrunner.com>
Subject: Re: ODT export custom link colors?
Date: Thu, 15 Dec 2011 13:11:46 +0530 [thread overview]
Message-ID: <81d3bqjn7p.fsf@gmail.com> (raw)
In-Reply-To: <4EE90935.7010402@christianmoe.com> (Christian Moe's message of "Wed, 14 Dec 2011 21:38:13 +0100")
Christian Moe <mail@christianmoe.com> writes:
> Hi,
>
> I'm not sure about this, because I don't really know the ODT spec,
LibreOffice is my friend.
> For instance, in the LibreOffice Styles and Formatting window, choose
> the Character styles tab, right-click on Default, select New. Name
> your style (e.g.) "Bgcolor red". Right-click it, select Modify, in the
> Background tab give it a red background.
I usually put the cursor on the text that I am interested in, press F11
and switch to char styles or whatever category. The right style would be
highlighted which you can directly inherit from.
> Repeat for other colors you use, e.g. "Bgcolor blue", "Bgcolor yellow"...
>
> Now, modify your custom link code as follows:
>
>> (org-add-link-type
>> "bgcolor" nil
>> (lambda (path desc format)
>> (cond
>> ((eq format 'html)
>> (format"<span style=\"background-color:%s;\">%s</span>" path desc))
>> ((eq format 'latex)
>> (format"\\colorbox{%s}{%s}" path desc))
> ((eq format 'odt)
> (format "<text:span text:style-name=\"Bgcolor
> %s\">%s</text:span>" path desc))
>> (t
>> (format"BGCOLOR LINK (%s): {%s}{%s}" format path desc)))))
>>
The exact scenario you describe here is documented in the manual.
(info "(org) Creating one-off styles")
^ C-x C-e here
Look at item 1.
The same node is here:
http://orgmode.org/org.html#Creating-one_002doff-styles
Instead of using an inline markup you can do something like this.
#+begin_src emacs-lisp
(org-odt-format-fontify "This text is in red" "red-style")
#+end_src
It will mark the text in "red-style". You can similarly use this or this
for marking text in bold.
#+begin_src emacs-lisp
(org-odt-format-fontify "This text is in red" 'bold)
#+end_src
I believe you get the drift now.
Note: There are lot more convenience functions that start with
org-odt-format-* that I use internally to emit OpenDocument tags on the
go.
If you look at OrgOdtStyles.xml (C-h v org-odt-styles-dir) and you can
see a bunch of styles marked as "Org Agenda Styles". These are used for
marking TODO in red and DONE in green etc.
Copy & paste those styles, fix the name and background color and you are
done.
> (You can change the style-name in the format string to follow whatever
> naming convention you've adopted for your styles. If you want to call
> them simply "red", "blue" and so on, it would be
> text:style-name=\"%s\".)
>
> (Judging from the manual, if you have space in your style names, like
> above, you should perhaps escape the spaces with _20_, but the
> "Bgcolor %s" above seems to work fine.)
>
> Please report back if this works for you. If so, and depending on what
> Jambunathan might have to add, I'll look into updating the Worg
> examples.
>
>> (By the way, before I added my 't' case above, it returned nil, which
>> caused the odt exporter to blow up with an unhelpful error. Would a
>> patch for that be considered too much of a corner-case? I'd be happy
>> to submit one.)
>
> I don't know what others think, but I think the habit of always
> providing one's custom links with an explicit fallback should be
> encouraged, if necessary by rude reminders from failing exporters...
> :-)
>
> hth,
> Christian
>
>
--
next prev parent reply other threads:[~2011-12-15 7:42 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-14 17:34 ODT export custom link colors? Gary Oberbrunner
2011-12-14 20:38 ` Christian Moe
2011-12-15 7:41 ` Jambunathan K [this message]
2011-12-15 9:03 ` Christian Moe
2011-12-20 22:01 ` Gary Oberbrunner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=81d3bqjn7p.fsf@gmail.com \
--to=kjambunathan@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=garyo@oberbrunner.com \
--cc=mail@christianmoe.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).