emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Carsten Dominik <carsten.dominik@gmail.com>
To: Org-Mode List <emacs-orgmode@gnu.org>
Subject: Request for feedback about LaTeX setup changes
Date: Mon, 5 Apr 2010 15:13:31 +0200	[thread overview]
Message-ID: <7A9D7D79-E29E-476F-9EEC-1778DADB404F@gmail.com> (raw)

Dear all,

I need some feedback.

Here is new new section from the list of changes, about the LaTeX  
setup.  I would like to hear honest answers if I have gone completely  
crazy, of if this actually makes any sense.

Thanks.

- Carsten
--------------------------------------------------------------------------
       Changes to the intended use of =org-export-latex-classes=
       =========================================================

So far this variable has been used to specify the complete header
of the LaTeX document, including all the =\usepackage= calls
necessary for the document.  This setup makes it difficult to
maintain the list of packages that Org itself would like to call,
for example for the special symbol support it needs.  Each time I
have to add a package, I have to ask people to revise the
configuration of this variable.  In this release, I have tried to
fix this.

First of all, you can *opt out of this change* in the following
way: You can say: /I want to have full control over headers, and
I will take responsibility to include the packages Org needs/.
If that is what you want, add this to your configuration and skip
the rest of this section (except maybe for the description of the
=[EXTRA]= place holder):


   (setq org-export-latex-default-packages-alist nil
         org-export-latex-packages-alist nil)

/Continue to read here if you want to go along with the modified
setup./

There are now two variables that should be used to list the LaTeX
packages that need to be included in all classes.  The header
definition in =org-export-latex-classes= should then not contain
the corresponding =\usepackage= calls (see below).

The two new variables are:

1. =org-export-latex-default-packages-alist= :: This is the
      variable where Org-mode itself puts the packages it needs.
      Normally you should not change this variable.  The only
      reason to change it anyway is when one of these packages
      causes a conflict with another package you want to use.
      Then you can remove that packages and hope that you are not
      using Org-mode functionality that needs it.

2. =org-export-latex-packages-alist= :: This is the variable
      where you can put the packages that you'd like to use across
      all classes.  For example, I am putting =amsmath= and =tikz=
      here, because I always want to have them.

The sequence how these customizations will show up in the LaTeX
document are:
1. Header from =org-export-latex-classes=
2. =org-export-latex-default-packages-alist=
3. =org-export-latex-packages-alist=
4. Buffer-specific things set with =#+LaTeX_HEADER:=

If you want more control about which segment is placed where, or
if you want, for a specific class, have full control over the
header and exclude some of the automatic building blocks, you can
put the following macro-like place holders into the header:


   [DEFAULT-PACKAGES]      \usepackage statements for default packages
   [NO-DEFAULT-PACKAGES]   do not include any of the default packages
   [PACKAGES]              \usepackage statements for packages
   [NO-PACKAGES]           do not include the packages
   [EXTRA]                 the stuff from #+LaTeX_HEADER
   [NO-EXTRA]              do not include #+LaTeX_HEADER stuff

If you have currently customized =org-export-latex-classes=, you
should revise that customization and remove any package calls that
are covered by =org-export-latex-default-packages-alist=.  This
applies to the following packages:

- inputenc
- fontenc
- graphicx
- longtable
- float
- wrapfig
- soul
- t1enc
- textcomp
- marvosym
- wasysym
- latexsym
- amssymb
- hyperref

If one of these packages creates a conflict with another package
you are using, you can remove it from
=org-export-latex-default-packages-alist=.  But then you risk
that some of the advertised export features of Org will not work
properly.

You can also consider moving packages that you use in all classes
to =org-export-latex-packages-alist=.  If necessary, put the
place holders so that the packages get loaded in the right
sequence.  As said above, for backward compatibility, if you omit
the place holders, all the variables will dump their content at
the end of the header.

Damn, this has become more complex than I wanted it to be.  I
hope that in practice, this will not be complicated at all.

             reply	other threads:[~2010-04-05 13:13 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-05 13:13 Carsten Dominik [this message]
2010-04-05 18:28 ` Request for feedback about LaTeX setup changes Mark Elston
2010-04-07 14:01 ` Giovanni Ridolfi
  -- strict thread matches above, loose matches on Subject: below --
2010-04-07 17:04 Aaron Hammitt
2010-04-07 22:33 ` Carsten Dominik

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=7A9D7D79-E29E-476F-9EEC-1778DADB404F@gmail.com \
    --to=carsten.dominik@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /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).