- Platforms: Windows, Mac (incl. Aquamacs fork), Unix
- License: Free software (GPL)
- Languages: de, dk, fr, is, it, jp, nl, pl, se, sk are supported by AUCTeX language styles
- Unicode: Yes, from Emacs 23, characters are represented using Unicode
- RTL/bidirectional support: From Emacs 24, through
bidi-mode
% !TeX
directives: No, but has several realizations of file local variables
- Syntax highlighting: Yes, customisable through
customize
and Elisp
- Code completion: Yes
- Code folding: Yes
- Spell checking: Yes
- SyncTeX: Yes
- Built-in output viewer: Yes
- Project management:
org-mode
, reftex-mode
, speedbar
Emacs is one of the oldest programmable editors, which has basic support for TeX and friends. AUCTeX is a plugin to Emacs which provides a much more advanced support for editing LaTeX, ConTeXt, docTeX, Texinfo, and Plain TeX documents. It comes with a sophisticated auto-completion mechanism for environments and commands, supporting by default more than two hundreds LaTeX packages (but virtually any package can be automatically parsed in order to provide autocompletion for its commands and environments).
(In this screenshot, visual-line-mode
is enabled. In this mode, lines that are wider than the window are broken between words. The line breaks are not added to the source file.)
RefTeX is another plugin to Emacs, independent from and complementary to AUCTeX, which aids you with the management of bibliographic sources. It makes all your references as easy to find as a C-c <key>
, for both BibTeX and biblatex
, and also provides convenient shortcuts for navigating between sections in your document, bound by default to C-c =
:
(Note that colour themes are completely customizable)
AUCTeX supports multi-file parsing, so that huge documents with \input
or \include
commands are easily compiled with C-c C-c
from any of their files. No more going back to the master file in order to compile.
AUCTeX's preview-latex
offers WYSIWYG previewing of formulae.
Interesting features of Emacs:
- Use
table-insert
along with table-generate-source
and table-recognize-*
functions to easily create a base for your tables.
- Lots of useful keyboard shortcuts
- Extensively documented, both in Emacs, via the Emacs and AUCTeX Texinfo manuals, and via many books in several languages.
- Supports most of vim's features and keybindings through
evil-mode
.
This problem is due to biblatex-apa
's (apa.bbx
's) apaauthor
name format; you might want to notify the author of this small bug.
The string and others
in the author list sets ifmorenames
to true. apaauthor
checks for this case whenever a name is printed, not just at the very end of the list; consequently it prints the andothers
string ("et al.") after each name.
The fix is to add the following lines to your preamble.
\DeclareNameFormat{apaauthor}{%
\ifthenelse{\value{listcount}=\maxprtauth\AND\value{listcount}<\value{listtotal}}
{\addcomma\addspace\ldots\addspace}
{\ifthenelse{\value{listcount}>\maxprtauth\AND\value{listcount}<\value{listtotal}}
{}
{\ifthenelse{\iffieldequalstr{doubtfulauthor}{true}}
{\mkbibbrackets{\usebibmacro{name:apa:last-first}{#1}{#3}{#4}{#5}{#7}?}}
{\usebibmacro{name:apa:last-first}{#1}{#3}{#4}{#5}{#7}}}}%
\ifthenelse{\value{listcount}=\value{listtotal}}% this test is new
{\ifmorenames{\andothersdelim\bibstring{andothers}}{}}{}}
The MWE
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@Article{boker2011,
Author = {Boker, S. and Neale, M. and Maes, H. and Wilde, M. and
Spiegel, M. and Brick, T. and Spies, J. and Estabrook,
R. and Kenny, S. and Bates, T. and others},
Title = {Open{M}x: {A}n open source extended structural
equation modeling framework},
Journal = {Psychometrika},
Volume = {76},
Number = {2},
Pages = {306--317},
year = 2011
}
\documentclass{apa6}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa,maxnames=999,sortcites=true,sorting=nyt,apabackref=true,backend=biber]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\DeclareNameFormat{apaauthor}{%
\ifthenelse{\value{listcount}=\maxprtauth\AND\value{listcount}<\value{listtotal}}
{\addcomma\addspace\ldots\addspace}
{\ifthenelse{\value{listcount}>\maxprtauth\AND\value{listcount}<\value{listtotal}}
{}
{\ifthenelse{\iffieldequalstr{doubtfulauthor}{true}}
{\mkbibbrackets{\usebibmacro{name:apa:last-first}{#1}{#3}{#4}{#5}{#7}?}}
{\usebibmacro{name:apa:last-first}{#1}{#3}{#4}{#5}{#7}}}}%
\ifthenelse{\value{listcount}=\value{listtotal}}
{\ifmorenames{\andothersdelim\bibstring{andothers}}{}}{}}
\shorttitle{IFA}
\begin{document}
OpenMx \parencite{boker2011,aksin,wilde,murray}
\printbibliography
\end{document}
then yields
Update 2013-10: This has been corrected in biblatex-apa
version 6.4 according to a comment below the question from user PLK.
Best Answer
TeXstudio
In the current release (2.12 branch), TeXstudio's build process ('Build & View') by default runs pdfLaTeX but not a bibliography tool, which you need to do separately. There is also a need to change the settings to run Biber rather than BibTeX for creating a bibliography.
The configuration step sets Biber as default bibliography tool.
In the TeXstudio preferences ('Preferences ...' on the Mac or 'Options -> Configure TeXstudio' on Windows), choose the Build tab and alter the 'Default Bibliography Tool' to 'Biber'. Save and close the preferences.
The compile step is to ensure that the sequence
is run. Manually this can be done as follows.
Run 'Build & View' from the 'Tools' menu (or press the two green arrows icon), which will create a PDF but with the bibliography not completed
Run 'Bibliography' from the 'Tools' menu.
Run 'Build & View' again: the bibliography will appear in the PDF.
It is possible to set up TeXstudio in alternative ways to achieve the same effect. The key is that you have to run the compile sequence LaTeX, Biber, LaTeX, which can be done 'by hand' (as I have) or can be automated in various ways. Note that the same general idea applies whatever editor is used: this is a feature of LaTeX and not of the editor.
Changing the bibliography tool only for a specific document
If you only want Biber for a single document, it is possible to specify this in the
.tex
file itself, using a so-called "magic comment". Simply add the following line at the top of your main .tex file:Or, if you want compatibility with the TeXShop and TeXWorks editors, use this instead:
More details: TeXstudio user manual: 4.10 Advanced header usage, When and why should I use % !TEX TS-program and % !TEX encoding?