What are the strengths and weaknesses of KOMA-Script and memoir?

To make a professional book layout, many people suggest to use either KOMA-Script or memoir. Let me know the strengths and weaknesses of each please.

-
same question as "which car is better" ... :-) for publications with a european layout KOMA maybe a good choice. –  Herbert Dec 25 '10 at 19:44
@Herbert, thanks for commenting. I like more flexible layout. Which one is more flexible? –  xport Dec 25 '10 at 19:46
I'd recommend changing this question to sound a little less subjective. Perhaps "What are the strengths and weaknesses of each class?" –  Seamus Dec 25 '10 at 19:59
with both you can do nearly everything. However, I wrote all my books with KOMA-Script. But it was not a decision against memoir, more a decision of random for KOMA –  Herbert Dec 25 '10 at 20:00
@Seamus, I have changed the question and title. Thanks. –  xport Dec 26 '10 at 1:22

As Herbert has commented, this is a question of "which car is better", i.e., the answers are bound to be subjective to some degree. Also, Stefan has already aptly summarized the topics "File structure" and "Documentation". However, I'll add my two cents with regard to "Integration in the LaTeX world".

Imagine a scale from the LaTeX standard classes to a hypothetical class that includes every feature described in the LaTeX companion (plus a collection of "Best LaTeX packages developed after 2004"). Note that the latter is the model envisioned by the LaTeX3 team. On this scale, KOMA-script ranks not too far away from the standard classes, while memoir is somewhere in the middle. (It incorporates a lot of package functionality with regard to "design and layout", but doesn't cover the areas of, e.g., babel/polyglossia, amsmath, hyperref, and biblatex.) Still, being closer to the vision for LaTeX3 should be a plus for memoir, shouldn't it?

Yes and no. memoir mirrors the functionality of many packages developed by its author (Peter Wilson). Some of these packages are the leaders in their respective scope of application, others face strong competitors. To quote from Marco's comment, memoir"has many small nice gimmicks [for lists] but packages like enumitem will do the job better". KOMA-script, on the other hand, adds fewer goodies, but the additional features seem to be extremely well thought out and, in my opinion, sometimes outperform specialized packages.

To delve into the realms of subjectivity, here are some features where I feel that KOMA-script is really great and/or that memoir could have done better. (Note: It's not "Bad vs. Good" but "Good vs. Great".)

• Footnotes: KOMA-scripts \deffootnotemark and deffootnote macros allow for easy configuration of the layout of footnotes and are a great complement to the footmisc package. To me, they seem less complicated than memoirs counterparts.

• Table of contents: memoir emulates tocloft (written also by Peter Wilson), which is the "traditional" ToC-customizing package and quite good. titletoc (by Javier Bezos) is more powerful and not as easy to handle. But tocstyle (an Alpha package by Markus Kohm, the author of KOMA-script) allows sweeping ToC modifications with only a few keystrokes. Try \usepackage{tocstyle}\usetocstyle{nopagecolumn} and see what I mean.

• Headers/footers: scrpage2, a package included in KOMA-script, recognizes that users will often want to customize only two page styles (headings and plain), and allows these styles (resp. their scrpage2 counterparts) to be modified simultaneously: Commands like \cfoot[\pagemark]{\pagemark} use the optional argument for scrplain.

• Index: memoir emulates the index package. KOMA-script itself doesn't include special index-handling facilities, but its author has released a separate package called splitindex that doesn't share some peculiarities of index. (The index/memoir method of putting all index entries in the main .aux file doesn't allow the exploitation of the \write18 facility, i.e., indexes can't be created during the main typesetting run.)

• Endnotes: KOMA-script offers nothing in this regard; memoir emulates pagenote which is a contender to the older endnotes package. The problem is that pagenote -- unlike endnotes -- doesn't include a cross-referencing mechanism, which hampers the functionality of some biblatex styles.

These points and others led my to believe that KOMA-scripts approach of "do only some things, but do them extremely well" is superior. I share the LaTeX3 vision of "a class to make obsolete most packages", but such a class will have to integrate the code of the leading packages in their field instead of being written for the most part by a single developer. And yes, I'd like to see a multitude of memoir code snippets being included in this hypothetical LaTeX3 class.

-
One thing that should be noted about memoir's emulation of packages: it provides a \DisemulatePackage{⟨package⟩} command which can selectively turn off its emulation, so that alternative packages can be used. So for your index example, one can enter \DisemulatePackage{index} and then use either the actual index package or some alternative (presumably splitindex). This solution applies to all of the packages that are explicitly listed as "emulated" in the memoir manual (not to functionality that is truly built in.) –  Alan Munn Sep 5 '11 at 15:59
@Alan: By default, memoir precludes loading of a defined set of packages, and \DisemulatePackage deactivates this mechanism. Looking at the definition of memoirs internal index macros, it seems to me that the mechanism of writing to the .aux file isn't affected by \DisemulatePackage{index}. Also, Enrico Gregorio (@egreg) states in the manual of his imakeidx package that it is incompatible with memoir for the very reasons I listed in my answer. (In fact, I should have attributed this point to egreg.) –  lockstep Sep 5 '11 at 16:21
The current version of imakeidx is incompatible with memoir, for the reason lockstep mentions and which has been chosen in order not to use up the output streams. The packages splitindex and imakeidx use only one independently of the number of indices that are produced for one document (they defer the splitting to an external program by Markus Kohm). However a small change to imakeidx should make it compatible with memoir by taking away from the class the index generation. –  egreg Sep 5 '11 at 18:54
Just a remark: imakeidx is now compatible with memoir (since version 1.1, see the manual). –  Oleg Domanov Apr 23 '13 at 4:10

Both bundles are allround packages which work together with many external packages. Both are very good for producing well designed books, much better than base classes. Here are some differences.

File structure

• KOMA-Script is a bundle containing 6 classes and 15 packages. This allows

• using packages with overlapping functionality without conflicts, such as fancyhdr instead of scrpage2
• using KOMA-Script features even if you decide to choose another class
• easier use for advanced users who read source files for getting insights and higher customization
• Memoir is mainly one class file with about 12,800 lines. That's easy to install but hard to read.

So I prefer the finer KOMA-Script bundle structure. The memoir approach is ok if you just use it as it is.

Documentation

• KOMA-Script offers an extensive great German documentation with many deep insights, also about typography, while a weakness is still the English translation, which doesn't cover the most recent additions yet.

• Memoir provides a great user manual and a second document about typography.

So memoir wins regarding English. KOMA-Script for German. It's a hard choice if you understand both languages. Then I recommend looking at the published KOMA-Script book.

Integration in the LaTeX world

• Memoir incorporates the features of many external packages, mainly rewritten.
• KOMA-Script is more independently developed and exports its capabilities to other classes, such as providing the scrextend package and packages you can simply use with other classes, such as typearea and scrpage2.

So KOMA-Script offers a wider contribution for TeX users, while the memoir approach suffers if the original external packages would be further developed.

Both KOMA-Script and memoir are great packages. It's still a hard choice if you focus only on book writing. However, if you plan to write other documents than books, such as reports, articles, letters, than I think learning KOMA-Script is more beneficial than learning memoir.

Note by lockstep: KOMA-Script v3.11, released on May 15th, 2012, features a new English manual (though it is "still a work in progress", Preface).

-
Where can I find this Koma-script book? In what language is it written? –  ℝaphink Sep 2 '11 at 20:38
@Raphink: in German: lob.de/isbn/3865412912 –  Stefan Kottwitz Sep 2 '11 at 21:15
Very nice. I wish someone would translate it to English. My German is not good enough to do that I'm afraid. –  ℝaphink Sep 2 '11 at 21:25

These aspects of memoir make it, for me, a better choice than komascript:

1. Better documentation: I just find the two memoir manuals provide me with a better background and understanding of what it can and should do for me;

2. Completeness of function: memoir has many useful packages built in, while, as far as I can tell, komascript has less. In some ways, this matches the Unix philosophy of "do one small thing and do it well", but I'm not sure this is what I want in my typesetting system;

3. (Horribly subjective and unscientific) I get the impression that here on TeX.SE, I see more questions asking "how do I do this (or mend that) in komascript" than I see the same for memoir. This might be due to the size of the user base, the orientation of TSE users, or the qualities of either package. Go figure...

Now, I should qualify these comments. Both are very large packages, and require a significant investment of time to learn completely. I came across komascript second; by then, I had already invested a lot of time in, and was very happy with, memoir. So in some sense, that disqualifies me as an unbiased critic.

-
I don't have an opinion on 2 and 3 but I definitely agree with you on 1. If nothing else, as an example of what one can do with the respective classes, memoir's documentation is a far better showing. The Koma-Script document is really not good. For example, Chapter 2 is all about page layout but it completely fails to follow its own guidelines. 2 mm margins? –  TH. Dec 26 '10 at 13:35
KOMAScript pdf documentation is ment to be displayed on computer screens best, so there are no margins. Markus Kohm is selling a very nice book in german that provides additional information and good margins. btw al that is explained in the preamble of the KOMA doc. For german readers i always recommend KOMA book (the actual book not the class ;) ) as a advanced starter guide. BTW2: Markus is giving exeptional support for his users. Hes the onliest developer i know who answers beginner querstions. –  bloodworks Dec 26 '10 at 23:44
First you have to know I have the German book KOMA-Script. I think KOMA-Script is a little bit better. Memoir has many small nice gimmicks but packages like enumitem will do the job better. KOMA-Script allows the user in a simple way to influence the style. (e.g. in combination with scrpage2) Well the documentation isn't very useful for a beginner but this isn't the function of such a documentation. –  Marco Daniel Sep 1 '11 at 8:47
@Marco Unfortunately I also agree about the weakness of the KOMA (English) documentation. On the few occasions I've messed around with KOMA, I've found the documentation hard to read and hard to navigate through. And I'm not a beginner, and usually have no trouble with the wide variety of documentation that exists in the package world. (Both good and bad). When I created a thesis class for my university, I used memoir as the base over KOMA for exactly this reason. If documentation can't be used by beginners, is it very useful? –  Alan Munn Sep 1 '11 at 13:05
I have to disagree on the first two points: The (german) KomaScript documentation is really good, and memoir seems to reimplement many wheels (i.e. packages), which makes the integration of functionality by packages like caption much more difficult in memoir than in KomaScript. –  Martin Schröder Sep 1 '11 at 19:52

Beside writing articles, reports, or books, KOMA-Script also provides writing letters. The KOMA-Script letter class is the most flexible (the authors say: "versatile") letter class I know. There are even pre settings for letters using Japanese envelopes. And at his homepage the author offers an extension for sections at letters and shows how to define your own notepaper. At the appendix of the German KOMA-Script book you may also find a very large notepaper example.

Nevertheless, some of the default settings of the letter class are unusual, e.g., you should change the alignment of the signature:

\let\raggedsignature\relax


But you have to do this only once: Save this changes together with your sender information and notepaper settings in a file called lco-file and load this file via class option.

I've made notepaper files for some german companies. Most of them basing in asymTypB.lco from the KOMA-Script author. I needed about one day for the first one. But after learning the general concepts of variables, pseudo-lengths, and moving elements around I became much faster.

-

In case you really wish to design a graphic layout for a book, ask here in this forum or anywhere else, how to realise certain of your ideas in LaTeX. KOMA-Script (and probably Memoir) are not about fancy layouts.

KOMA-Script provides many shortcuts to deal with headings, captions, paragraphs and anything you need to write a book. It is very stable and reliable, bugs are corrected in short time; the maintainer holds interaction with other packages in high regard.

That said: you will have to write some lines of code with any documentclass to have e.g. pagenumbering in a rounded blue box or thumbs with chapternumbering on the outer margin.

Years ago I chose KOMA-Script. It simply worked when writing under pressure (other than word, but that's a different story). Never had regrets. Great software.

-
"That said: you will have to write some lines of code with any documentclass to have e.g. pagenumbering in a rounded blue box or thumbs with chapternumbering on the outer margin." What about the (at least) three packages ctan.org/search/?search=thumbs&search_type=description doing this? –  Stephen Sep 2 '11 at 17:46
Didn't test them. Wrote it just for the sake of the argument that KOMA-Script is better for a classic layout than a graphical layout. –  Keks Dose Sep 2 '11 at 19:11
Given that memoir has an entire chapter of its manual devoted to page layout and the options and commands which it provides to support same, I don't see that it is not about fancy layouts.'' –  WillAdams Oct 29 '13 at 0:04