I really appreciate that you guys are thinking about this, and giving
feedback on the module/layout I worked on. It is my opinion that we always
need to be able to provide sensible defaults that work right out of the
box. Technically, apacite does not need to be loaded to use apa6. You can
actually do whatever you want for citations. However, there are really only
3 sensible ways to get accurate apa citations, and I think that we need to
set one of them as the default for the apa6 layout (but allow it to be
changed). These options are: 1) use apacite with the apaciteclassic option.
2) use apacite with natbib. 3) use biblatex. Of these three options, the
first is not really workable in LyX, because classic apacite defines a host
of citation commands (\citeA, \citeauthor, \citeauthorNP, \citeNP, etc.,)
that cannot be used without ERT (and only a simple citation can be made
without these commands). Further, these commands are fragile and must be
protected when used in other environements. People who want to type their
citations like this can use raw LaTeX. 3) can be made to work but is not
great because of the number of hacks that are still necessary to get
biblatex to work in LyX. 2) seems like it is the best option at the moment,
mostly because it looks and works reasonably well in LyX and requires the
fewest hacks to get it working.

So, how do we get natbib working with apacite? This is the reason I
initially wrote the natbibapa module. There currently seems to be no other
way to get natbib working together with the apacite package. In particular,
when we try to load natbib with different options, we get an option clash
(like when using \usepackage[natbibapa]{apacite}, which loads the natbib
package with the options longnamesfirst,sort, i.e.,
\usepackage[longnamesfirst,sort]{natbib}). This is sort of a pain. Because
LyX loads natbib when natbib is selected for the bibliography (under
documtent->settings, it becomes impossible to pass different options to
natbib. So, if we try to load natbib elsewhere, such as in the preamble or
in the document options as with apa6, we are left with an option clash. I
think you guys understand this well.

As I mentioned, apacite is not required by the apa6 document class (it was
for the apa document class). It is only required if the apacite option or
natbibapa option is passed to the document class. So, I think this means
apacite should be removed from the #\DeclareLaTeXClass[]{} part. This was
my error. However, it is still not clear to me how to properly allow for
the natbibapa or apacite options to be supported. Julien has mentioned the
Requires parameter, but it is not clear to me from reading the
documentation in the customization manual what Requires does. What is the
difference between using Requires and including a package
#\DeclareLaTeXClass[]{}?

Whatever the solution, it would be ideal if it were possible to pass natbib
as either a package option, or to include natbib and/or apacite with
customizable options, such as in the preamble. One solution to this would
be to provide a checkbox where natbib is selected where we can suppress
loading natbib. Then, the options could be loaded elsewhere (preamble, or
document options). We could also provide a textbox where addtitional natbib
options could be passed, negating the need to load it elsewhere (but it
still might be nice to suppress it, such as when biblatex is used). Then
again, if we end up supporting biblatex as an option, this could happen
automatically.

Please let me know if there is anything I can do to help to make this
happen. As a side-note, I have been working with the apa6 layout on my own,
to use the new argument structure that was added in LyX 2.1 (For this, I am
using the ppa:lyx-dev/daily) for authors and affiliations. How should I be
sharing these modifications? I have used subversion plenty but know nothing
of git. I know that we will need to distinguish between 2.0 and 2.1 layouts.

Reply via email to