tags:

views:

3623

answers:

9
+18  Q: 

LaTeX vs DocBook

I have only little knowledge about LaTeX, basic formatting, basic math fomulae etc.. I found that LaTeX is hard to configure to my own flavor. Recently, I've heard about Docbook, which is also a typesetting mechanism, but much easier since it uses XML. So, if my main job using LaTeX/Docbook is writing a simple document (not a class book) with some mathematics, and I want easy configuration, and a highly constomizable application, which one is better, and is there any good book on Docbook?

+20  A: 

Well, I haven't used DocBook, but from a quick look on wikipedia and google:

  1. DocBook does not have elements to describe mathematics.
  2. DocBook is XML, as you say. To me, that makes it a horrible thing to write by-hand (or, rather, with a basic text editor). Maybe you enjoy writing XML, or have a good IDE. I guess you could look at this question.

DocBook's Wikipedia page lists a couple of books on it which you may want to look at, though I obviously can't say whether they are "good" books.

I would suggest going with LaTeX. Get someone to give you a basic template, then writing LaTeX is as simple as:

\section{Introduction}

This is my introduction.

\section{Stuff}

Here is some stuff.

\subsection{Particular stuff}

A particular type of stuff.  With maths:

$\int_{x=1}^n 3x^2$

% etc.

Google is your friend for finding basic templates that you can start from:

To go from source code to a document, you'll need a working install of LaTeX (which is beyond the scope of this answer, but is pretty easy if you're on linux). Ideally your LaTeX install will include pdflatex. Then you just run:

pdflatex source.tex

(there's a bit more work if you have a bibliography – but that's a topic for a different question)

John Fouhy
ok,so how to find a template and then deployed?thanks!
yfel
I would like to highlight what Jonathan Leffler said. They are working at different levels. While LaTex alone is enough to produce documents DocBook needs sort of a backend.This can be LaTeX but there are other possibilities like Apache FOP or antenna house. From the quality point of view the other products are way behind LaTeX though. In this regard there is only one viable alternative to LaTex IMHO, which does not work with DocBook however: InDesign.
Ludwig Weinzierl
+7  A: 

Yes, LaTeX is kind of difficult to configure to produce exactly the kind of layout you want. I suggest you take a look at the manual of the LaTeX class memoir to see what kinds of layouts it enables you to produce.

There is a book on DocBook available online. Take a look at that too, to see what kind of layouts you can produce and if you can easily format the math content you want with DocBook.

My suggestion is to go with LaTeX if you have to write any nontrivial math, but of course it depends on which format you find it easier to work with.

Jouni K. Seppänen
+1 The memoir manual has a very thorough explanation of the book creation process
Stephan Eggermont
+10  A: 

The great thing about DocBook is that it is XML based - so a chapter is a full subtree, a section is a full subtree, etc. In LaTeX, separation is only determined by the structure of the document during a linear scan.

The worst thing about Docbook is that it is XML based - lower-level stuff is extremely dirty and annoying to code manually.

Uri
+8  A: 

I'm not really familiar with DocBook, though I have used LaTeX fairly extensively. The idea of LaTeX is not to produce a customized document, it's to produce a readable, attractive document. It's a set of libraries, templates, macros, and so forth around TeX, set up by people who know what they are doing when it comes to document design. Of course, you have special needs that they can't anticipate, so you're going to have to do some tweaking, too. It is a very high-level, declarative language that is meant to reflect the content and structure of a document, rather than what it should look like, the idea being that your ideas and how they are organized is what you should concern yourself with, not the layout of your text on the page. If you need more control, there exists a HUGE library of additional styles and macros and so forth (CTAN), and some of them (memoir comes to mind) give you back a lot of that control.

If you are shoving a lot of complicated formatting stuff into the body of your LaTeX document, you're doing it wrong. What you need to do is get your content in there, and your document structured into chapters and sections and subsections semantically, then go back in and worry about formatting. You shouldn't have to go into the body of your document much at this point; it should all be general stuff that applies to the whole document, preferably in a reusable way. This ensures consistency.

Adam Jaskiewicz
+3  A: 

About two years ago, I tried to like and use DocBook; however, I returned to LaTeX because, at least at the time, LaTeX produced better quality output (PDFs). I never managed to get the DocBook to LaTeX to PDF translation working. My problems were likely "operator error", but I suggest trying DocBook (and LaTeX) for a few simple documents before choosing one.

Here are a few points that led me to choose LaTeX:

  • BibTeX for bibliographies with JabREF as a GUI
  • Excellent quality PDF output
  • Lots of examples on the Internet, including several similar to my preferred format
  • Good books, like "A Guide to LaTeX"

If you like GUIs, take a look at LyX.

Peter Neubauer
+3  A: 

I don't want to go down the "easier" or better route as I regard this as a matter of taste and getting used to. I see doocbook being XML as an advantage as therefore it can be mophed in almost anything you like by using XSLT. Combined with its selfcontainedness it feels more like structuring content that Latex does. Especially documenting open source software Docbook is really widely used. You can easily grab the templates and stylesheets of e.g. Hibernate and/or Spring and tweak them to your needs.

Another aspect I'd like to spot on is integration in build systems. For Maven there is a plugin called docbkx available, that just spits out PDF, HTML and whatever you like based on the contents and an appropriate XSLT. No further installations needed. The only ways I have seen to get this done with Latex is installing a few packages to the build OS and building your own script around em. IMHO that's not a feasible way to go, especially if you build cross platform.

Regarding the editor I can advise XMLmind XMLEditor that takes a lot of the pain and provides quite a nice WYSIWYG approach to docbook.

If you rely on mathematical expressions I also would rather choose Latex as there is nothing with the same power available in docbook.

Oliver Gierke
A: 

Arbortext supports native LaTeX. You can send the publishing engine or print composer LaTeX and it'll pass it through. It also supports a lot of other composition languages as well.

Liz Fraley
+6  A: 

DocBook isn't "a typesetting mechanism". DocBook is all about separating presentation from content. DocBook only deals with content; it's used to create an abstract representation of a book, article, etc. There are numerous tools out there which layout DocBook according to predefined templates. Some of these tools use LaTeX. AFAIK, O'Reilly uses a slightly modified version of the DocBook language to author their content, then they feed this XML into custom scripts that integrate with Adobe FrameMaker to layout their books.

LaTeX is essentially an attempt to separate presentation from content within TeX, but it doesn't quite achieve that goal IMO. Presentation is still mixed with the content in most cases. I think LaTeX is currently the best open source tool for laying-out paginated documents. However, proprietary tools like InDesign have many features (like good OpenType support) that TeX doesn't have (XeTeX kind of adds OpenType support). Either way, if you're writing a book, I highly recommend using DocBook to author your content rather than LaTeX.

That said, it sounds like you're writing short, one-off documents with a bit of math. I think LaTeX is probably your best choice. If you need lots of customizability, you might need to use Plain TeX as opposed to LaTeX, but it's going to require quite a bit of work on your part.

splicer
A: 

Have you looked at ConTeXt. It is more flexible and much easier to configure compared to LaTeX.

Curious2learn