157

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.

5
  • 15
    same question as "which car is better" ... :-) for publications with a european layout KOMA maybe a good choice.
    – user2478
    Commented Dec 25, 2010 at 19:44
  • 1
    @Herbert, thanks for commenting. I like more flexible layout. Which one is more flexible? Commented Dec 25, 2010 at 19:46
  • 5
    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
    – user2478
    Commented Dec 25, 2010 at 20:00
  • 4
    I've always suggested Memoir for people who need U.S. typesetting conventions, KOMA-script for European.
    – WillAdams
    Commented Aug 19, 2013 at 18:17
  • 9
    Are these answers still accurate now, several years after this was asked and answered?
    – user78860
    Commented Sep 9, 2015 at 6:14

5 Answers 5

111
+100

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 me 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.

7
  • 13
    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
    Commented Sep 5, 2011 at 15:59
  • 4
    @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
    Commented Sep 5, 2011 at 16:21
  • 2
    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
    Commented Sep 5, 2011 at 18:54
  • 6
    Just a remark: imakeidx is now compatible with memoir (since version 1.1, see the manual). Commented Apr 23, 2013 at 4:10
  • 2
    Meanwhile scrpage2 is obsolete and its successor, scrlayer-scrpage has some nice new features. One of them, \cfoot*{\pagemark} to set plain and headings (scrheadings) pages within a single instance.
    – Johannes_B
    Commented May 12, 2015 at 7:54
74

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).

7
  • 1
    Where can I find this Koma-script book? In what language is it written?
    – raphink
    Commented Sep 2, 2011 at 20:38
  • 4
    @Raphink: in German: lob.de/isbn/3865412912
    – Stefan Kottwitz
    Commented Sep 2, 2011 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.
    – raphink
    Commented Sep 2, 2011 at 21:25
  • 2
    @wilx The English KOMA-Script manual is complete. Several people improved the translation. Nevertheless, helpers are still welcome (see preface to the English guide). Commented Mar 7, 2017 at 11:00
  • 2
    The English translation of the KOMA-Script manual has changed a lot since the answer has been written. Now it's not only complete but also made by a native speaker. I cannot really rate the English translation, because my English is very :(. But nevertheless I would say it is far away from been weak, now. Commented Jan 31, 2019 at 18:17
50

"Your mileage may vary"

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.

6
  • 2
    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.
    Commented Dec 26, 2010 at 13:35
  • 16
    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
    Commented Dec 26, 2010 at 23:44
  • 3
    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. Commented Sep 1, 2011 at 8:47
  • 7
    @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
    Commented Sep 1, 2011 at 13:05
  • 4
    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. Commented Sep 1, 2011 at 19:52
22

Beside writing articles, reports, or books, KOMA-Script also provides writing letters. The KOMA-Script letter class scrlttr2 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.

There is also a package scrletter, that allows combination of the letter features of class scrlttr2 with other KOMA-Script classes. So you can write letters with sections, table of contents, floats, bibliography etc.

1
  • Hello. What about the learning curve and total time (learning latex and writing the document)? For somebody starting almost from scratch and wanting to learn the basics to write a thesis with Latex... Is it going to be faster to learn plain Latex (using a book such as Latex Friends) and (find about and) add some extras (such as tabu, longtable, microtype, biblatex, tikz, kpfonts) or is it better to go directly to Koma or memoir? My thesis will have some equations, many tables and many graphics, most of them generated from R with knitr and xtable
    – skan
    Commented Nov 7, 2016 at 0:28
17

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.

4
  • "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
    Commented Sep 2, 2011 at 17:46
  • 1
    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
    Commented Sep 2, 2011 at 19:11
  • 4
    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
    Commented Oct 29, 2013 at 0:04
  • Hello. What about the learning curve and total time (learning latex and writing the document)? For somebody starting almost from scratch and wanting to learn the basics to write a thesis with Latex... Is it going to be faster to learn plain Latex (using a book such as Latex Friends) and (find about and) add some extras (such as tabu, longtable, microtype, biblatex, tikz, kpfonts) or is it better to go directly to Koma or memoir? My thesis will have some equations, many tables and many graphics, most of them generated from R with knitr and xtable
    – skan
    Commented Nov 7, 2016 at 0:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .