Re: [O] Avoid escaping braces in LaTeX export?

2013-06-09 Thread Nicolas Goaziou
Hello,

Richard Lawrence richard.lawre...@berkeley.edu writes:

 Eric S Fraga e.fr...@ucl.ac.uk writes:

 Richard Lawrence richard.lawre...@berkeley.edu writes:
 Org is not latex, for better or for worse.  However, it does allow you
 to mix the two in various ways.  The inline approach is limited to
 {text} that is on the same line.  You could try using visual-line-mode
 and have all paragraphs be single lines.

 Alternative, you could try (untested):

 blah blah blah
 #+LATEX: \ic{
 some text for the inline comment
 #+LATEX: }
 more blah

 Thanks, Eric; that works, too.

 I think for now the best thing is for me to put longer comments in a
 custom environment.  Then I can use Org's block syntax, and have other
 export backends do the right thing, if I ever use them instead of LaTeX.

 I did dig into the exporter code a bit, so in case anyone is bitten by a
 similar issue that doesn't have a ready workaround, the places to look
 seem to be:
   - org-element.el:org-element-latex-or-entity-successor.  This is where
 LaTeX fragments are identified.  (As Eric notes, multi-line commands
 will not have their arguments parsed as part of a latex-fragment;
 instead, the argument and surrounding braces are parsed as text in
 the surrounding paragraph.) 
   - ox-latex.el:org-latex-plain-text.  This is where special characters
 that don't get parsed as part of a LaTeX fragment are
 protected/escaped.

 I still think it might be nice if each of the protections in
 org-latex-plain-text could be toggled via an #+OPTIONS keyword, since
 more often than not, I find that characters are escaped in LaTeX export
 when I would prefer they weren't.  But that might be a peculiar fact
 about how I use Org.  Since for now I don't require this behavior, I'm
 not going to try to implement it myself, but if anyone else would also
 find it useful, let me know and I will take a stab at writing a patch.

 Thanks, all, for the help!

As Eric said, Org format is not LaTeX, and I would add that Org mode is
not Auctex mode. You can already write raw LaTeX code with appropriate
markers. There's no point in allowing more LaTeX code without markers.


Regards,

-- 
Nicolas Goaziou



Re: [O] Avoid escaping braces in LaTeX export?

2013-06-08 Thread Eric S Fraga
Richard Lawrence richard.lawre...@berkeley.edu writes:


[...]

 Still, this won't work directly for cases where I have loaded a LaTeX
 package that provides a command which uses curly braces.  (I could
 redefine such commands, as above, but that could get real ugly, real
 fast...).  It seems like this a general problem that the exporter should
 have a way to handle.

Org is not latex, for better or for worse.  However, it does allow you
to mix the two in various ways.  The inline approach is limited to
{text} that is on the same line.  You could try using visual-line-mode
and have all paragraphs be single lines.

Alternative, you could try (untested):

blah blah blah
#+LATEX: \ic{
some text for the inline comment
#+LATEX: }
more blah

HTH,
eric

-- 
: Eric S Fraga, GnuPG: 0xC89193D8FFFCF67D
: in Emacs 24.3.50.1 and Org release_8.0.3-193-g334581




Re: [O] Avoid escaping braces in LaTeX export?

2013-06-08 Thread Richard Lawrence
Eric S Fraga e.fr...@ucl.ac.uk writes:

 Richard Lawrence richard.lawre...@berkeley.edu writes:
 Org is not latex, for better or for worse.  However, it does allow you
 to mix the two in various ways.  The inline approach is limited to
 {text} that is on the same line.  You could try using visual-line-mode
 and have all paragraphs be single lines.

 Alternative, you could try (untested):

 blah blah blah
 #+LATEX: \ic{
 some text for the inline comment
 #+LATEX: }
 more blah

Thanks, Eric; that works, too.

I think for now the best thing is for me to put longer comments in a
custom environment.  Then I can use Org's block syntax, and have other
export backends do the right thing, if I ever use them instead of LaTeX.

I did dig into the exporter code a bit, so in case anyone is bitten by a
similar issue that doesn't have a ready workaround, the places to look
seem to be:
  - org-element.el:org-element-latex-or-entity-successor.  This is where
LaTeX fragments are identified.  (As Eric notes, multi-line commands
will not have their arguments parsed as part of a latex-fragment;
instead, the argument and surrounding braces are parsed as text in
the surrounding paragraph.) 
  - ox-latex.el:org-latex-plain-text.  This is where special characters
that don't get parsed as part of a LaTeX fragment are
protected/escaped.

I still think it might be nice if each of the protections in
org-latex-plain-text could be toggled via an #+OPTIONS keyword, since
more often than not, I find that characters are escaped in LaTeX export
when I would prefer they weren't.  But that might be a peculiar fact
about how I use Org.  Since for now I don't require this behavior, I'm
not going to try to implement it myself, but if anyone else would also
find it useful, let me know and I will take a stab at writing a patch.

Thanks, all, for the help!

-- 
Best,
Richard




[O] Avoid escaping braces in LaTeX export?

2013-06-07 Thread Richard Lawrence
Hi all,

I'm wondering if there is a way to prevent the LaTeX exporter from
escaping { and } characters.  There are export options to control
the behavior of a number of other special characters, but I don't see
any way to control export of braces in the documentation.  Am I just
missing it?  If not, I'd like to request this as a feature.

Here's my use case.  I often create new commands in LaTeX to abstract
over some common pattern so I can easily type it and change it later if
necessary.  For example, when taking notes on readings, I have a command
that makes its argument into an `inline comment' (basically an aside to
myself) defined as follows:

#+LATEX_HEADER: \newcommand{\ic}[1]{{\footnotesize [~#1~]}}

Then in my notes I have things like:

 Marcus' point is more subtle, though, than that the substitutional
 reading validates these inferences or theorems while the objectual
 reading does not.  \ic{This would not persuade Quine, for example: the
 failure of existential generalization in modal contexts is for Quine a
 reason to reject quantified modal logic, rather than give the
 existential quantifier a different reading.}  

The new exporter exports this as:

 Marcus' point is more subtle, though, than that the substitutional
 reading validates these inferences or theorems while the objectual
 reading does not.  \ic\{This would not persuade Quine, for example: the
 failure of existential generalization in modal contexts is for Quine a
 reason to reject quantified modal logic, rather than give the
 existential quantifier a different reading.\} 

with the braces wrapping the argument for my custom command escaped.
This breaks the custom command in the export.

I can't test it at the moment, but I believe the old exporter did not
escape these braces, as I used this command regularly and it compiled
correctly.

I would like to be able to get the old behavior back.  I don't mind
manually escaping braces when necessary, because I almost always do not
want them escaped.  I understand if this is not a reasonable default,
but it would be nice for me if it were something I could set on an
#+OPTIONS line.  If others are interested in this, I can look into
creating a patch.

(By the way, it looks like there was a patch for a similar issue in
commit c6fd49726f2eaf417361b190b37e2d8ffb5864fc, but that is from April
2009 and therefore would apply to the old exporter.)

Thanks for your insights!

-- 
Best,
Richard




Re: [O] Avoid escaping braces in LaTeX export?

2013-06-07 Thread Marcin Borkowski
Dnia 2013-06-07, o godz. 10:26:31
Richard Lawrence richard.lawre...@berkeley.edu napisał(a):

 Here's my use case.  I often create new commands in LaTeX to abstract
 over some common pattern so I can easily type it and change it later
 if necessary.  For example, when taking notes on readings, I have a
 command that makes its argument into an `inline comment' (basically
 an aside to myself) defined as follows:
 
 #+LATEX_HEADER: \newcommand{\ic}[1]{{\footnotesize [~#1~]}}
 
 Then in my notes I have things like:
 
  Marcus' point is more subtle, though, than that the substitutional
  reading validates these inferences or theorems while the objectual
  reading does not.  \ic{This would not persuade Quine, for example:
 the failure of existential generalization in modal contexts is for
 Quine a reason to reject quantified modal logic, rather than give the
  existential quantifier a different reading.}  

Quick and dirty workaround (untested):

#+LATEX_HEADER: \def\ic!#1!{{\footnotesize [~#1~]}}

Marcus' point is more subtle, though, than that the substitutional
reading validates these inferences or theorems while the objectual
reading does not.  \ic!This would not persuade Quine, for example:
the failure of existential generalization in modal contexts is for
Quine a reason to reject quantified modal logic, rather than give the
existential quantifier a different reading.!

Of course, you may do \def\ic(#1){...}, \def\ic~#1~{...} etc.  The
delimiter characters may not appear in the argument, though (nesting
is not supported!).

This is very un-LaTeX-y (it is much lower-level TeX syntax), but it is
occasionaly useful (and heavily used by LaTeX itself, btw - this is
used among others for delimiting optional arguments).

Hth,

-- 
Marcin Borkowski
http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski
Adam Mickiewicz University



Re: [O] Avoid escaping braces in LaTeX export?

2013-06-07 Thread Richard Lawrence
Marcin Borkowski mb...@wmi.amu.edu.pl writes:

 Dnia 2013-06-07, o godz. 10:26:31
 Richard Lawrence richard.lawre...@berkeley.edu napisał(a):

 Here's my use case.  I often create new commands in LaTeX to abstract
 over some common pattern so I can easily type it and change it later
 if necessary.  For example, when taking notes on readings, I have a
 command that makes its argument into an `inline comment' (basically
 an aside to myself) defined as follows:
 
 #+LATEX_HEADER: \newcommand{\ic}[1]{{\footnotesize [~#1~]}}
 

 Quick and dirty workaround (untested):

 #+LATEX_HEADER: \def\ic!#1!{{\footnotesize [~#1~]}}

 Of course, you may do \def\ic(#1){...}, \def\ic~#1~{...} etc.  The
 delimiter characters may not appear in the argument, though (nesting
 is not supported!).

 This is very un-LaTeX-y (it is much lower-level TeX syntax), but it is
 occasionaly useful (and heavily used by LaTeX itself, btw - this is
 used among others for delimiting optional arguments).

Hmm, that does work for this case, thanks!  

Still, this won't work directly for cases where I have loaded a LaTeX
package that provides a command which uses curly braces.  (I could
redefine such commands, as above, but that could get real ugly, real
fast...).  It seems like this a general problem that the exporter should
have a way to handle.

-- 
Best,
Richard