emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* bold font in org-e-beamer export
@ 2012-07-24 22:04 Suvayu Ali
  2012-07-25  8:57 ` Nicolas Goaziou
  0 siblings, 1 reply; 4+ messages in thread
From: Suvayu Ali @ 2012-07-24 22:04 UTC (permalink / raw)
  To: Emacs Org mode

Hi Nicolas and others,

org-e-beamer exports *bold markup* as \alert{..}. I was wondering if
there is a way to export it as the usual \textbf{..}. I would also like
to have a convenient markup for \structure{..}, how do I add new markup?
It would be okay if I could alter existing markup to be exported as
\structure{..}; then I could use one of the less used ones. I saw there
is a defcustom, org-e-latex-text-markup-alist, for org-e-latex; but I
couldn't find a similar variable for org-e-beamer.

Thanks for any inputs.

-- 
Suvayu

Open source is the future. It sets us free.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: bold font in org-e-beamer export
  2012-07-24 22:04 bold font in org-e-beamer export Suvayu Ali
@ 2012-07-25  8:57 ` Nicolas Goaziou
  2012-07-27  1:13   ` Suvayu Ali
  0 siblings, 1 reply; 4+ messages in thread
From: Nicolas Goaziou @ 2012-07-25  8:57 UTC (permalink / raw)
  To: Suvayu Ali; +Cc: Emacs Org mode

Hello,

Suvayu Ali <fatkasuvayu+linux@gmail.com> writes:

> org-e-beamer exports *bold markup* as \alert{..}. I was wondering if
> there is a way to export it as the usual \textbf{..}. I would also like
> to have a convenient markup for \structure{..}, how do I add new
> markup?

You can't add new markup.  

Though, there are already 4 symbols used for regular text and 2 for
verbatim text.  And you have full control over their output with
filters.

So, let's say "*" will produce \textbf{...} and "+" will produce
\structure{...}.

#+BEGIN_SRC emacs-lisp
(defun suvayu-beamer-bold (contents backend info)
  (if (not (eq backend 'e-beamer)) contents
    (replace-regexp-in-string "\\`\\\\[A-Za-z0-9]+" "\\\\textbf" contents)))

(defun suvayu-beamer-structure (contents backend info)
  (if (not (eq backend 'e-beamer)) contents
    (replace-regexp-in-string "\\`\\\\[A-Za-z0-9]+" "\\\\structure" contents)))

(add-to-list 'org-export-filter-bold-functions 'suvayu-beamer-bold)
(add-to-list 'org-export-filter-strike-through-functions
             'suvayu-beamer-structure)
#+END_SRC

You can also derive a new back-end from e-beamer that will behave
differently for bold and strike-through object types.


Regards,

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: bold font in org-e-beamer export
  2012-07-25  8:57 ` Nicolas Goaziou
@ 2012-07-27  1:13   ` Suvayu Ali
  2012-07-27 12:02     ` Nicolas Goaziou
  0 siblings, 1 reply; 4+ messages in thread
From: Suvayu Ali @ 2012-07-27  1:13 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: Emacs Org mode

Hi Nicolas,

On Wed, Jul 25, 2012 at 10:57:34AM +0200, Nicolas Goaziou wrote:
> Hello,
> 
> Suvayu Ali <fatkasuvayu+linux@gmail.com> writes:
> 
> > org-e-beamer exports *bold markup* as \alert{..}. I was wondering if
> > there is a way to export it as the usual \textbf{..}. I would also like
> > to have a convenient markup for \structure{..}, how do I add new
> > markup?
> 
> You can't add new markup.  
> 
> Though, there are already 4 symbols used for regular text and 2 for
> verbatim text.  And you have full control over their output with
> filters.
> 

Your example below works wonderfully. However I have a question, for the
sake of understanding.

> So, let's say "*" will produce \textbf{...} and "+" will produce
> \structure{...}.
> 
> #+BEGIN_SRC emacs-lisp
> (defun suvayu-beamer-bold (contents backend info)
>   (if (not (eq backend 'e-beamer)) contents
>     (replace-regexp-in-string "\\`\\\\[A-Za-z0-9]+" "\\\\textbf" contents)))
> 
> (defun suvayu-beamer-structure (contents backend info)
>   (if (not (eq backend 'e-beamer)) contents
>     (replace-regexp-in-string "\\`\\\\[A-Za-z0-9]+" "\\\\structure" contents)))

I do not understand the above regular expressions. I guess \\` to match
the start of string (one extra backslash is required to escape the 2nd).
But I don't understand the four backslash sequence; I guess it inserts
\\ to the string, but why is that necessary?

> 
> (add-to-list 'org-export-filter-bold-functions 'suvayu-beamer-bold)
> (add-to-list 'org-export-filter-strike-through-functions
>              'suvayu-beamer-structure)
> #+END_SRC
> 
> You can also derive a new back-end from e-beamer that will behave
> differently for bold and strike-through object types.
> 

Thanks a lot for the pointers.

Cheers,

-- 
Suvayu

Open source is the future. It sets us free.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: bold font in org-e-beamer export
  2012-07-27  1:13   ` Suvayu Ali
@ 2012-07-27 12:02     ` Nicolas Goaziou
  0 siblings, 0 replies; 4+ messages in thread
From: Nicolas Goaziou @ 2012-07-27 12:02 UTC (permalink / raw)
  To: Suvayu Ali; +Cc: Emacs Org mode

Hello,

Suvayu Ali <fatkasuvayu+linux@gmail.com> writes:

>> (defun suvayu-beamer-structure (contents backend info)
>>   (if (not (eq backend 'e-beamer)) contents
>>     (replace-regexp-in-string "\\`\\\\[A-Za-z0-9]+" "\\\\structure" contents)))

> But I don't understand the four backslash sequence; I guess it inserts
> \\ to the string, but why is that necessary?

See LITERAL optional argument (which is nil here) in `replace-match'
primitive.


Regards,

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-07-27 12:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-24 22:04 bold font in org-e-beamer export Suvayu Ali
2012-07-25  8:57 ` Nicolas Goaziou
2012-07-27  1:13   ` Suvayu Ali
2012-07-27 12:02     ` Nicolas Goaziou

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).