[Tex/LaTex] Document class for designing a book

book-designkoma-script

Introduction

I've been using LaTeX for 15 years, but one year ago I started to write for the first time in my life a real book for students. So I followed usual widespread conviction: concentrate on the contents, the LaTeX will take care of the rest. However, this conviction holds only if you are writing a thesis or an article, where styling is largely unimportant (who reads theses anyway?).

Namely, after finishing my writing after one year of work I was into a real unpleasant surprise. I've received a modest lump of money to find a designer for a book. There is a big pool of good book designers out there, but not one has ever wrote a command in LaTeX. Which in fact means one year of intensive work shall be retyped in some other LaTeX incompatible program, figures shall be rescaled together with fonts… and everything I was so damn careful for over a year will be messed up in a second…

Question

Is it possible for a non-professional semi-experienced LaTeX user to implement design ideas to the document himself and save his precious work? Which document class should s/he start with?

To demonstrate poor performance of standard LaTeX classes for book design, I will show you part of the code written using KOMA-Script scrbook and approximate proposition from the designer.

Minimum working example:

\documentclass[12pt,parskip]{scrbook}
\usepackage[cp1250]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{amsmath}

\input{slike_1} % TikZ pictures

\begin{document}

\textit{Enakomerno večdimenzionalno gibanje} označuje gibanje, pri katerem je vektor hitrosti konstanten.  Gibanje tem primeru opisuje enačba, ki je posplošitev enačbe~(...)
%
\begin{equation}
\vec{r} = \vec{v} t + \vec{r}_0,\label{k-umm}
\end{equation}
%
kjer $\vec{r}$ označuje trenutni, $\vec{r}_0$ pa začetni položaj telesa.  Vektorju $\text{r}$, ki označuje položaj telesa, pravimo tudi \textit{krajevni vektor}.

\textit{Enakomerno pospešeno večdimenzionalno gibanje} označuje gibanje, pri katerem je vektor pospeška~$\vec{a}$ konstanten.  Gibanje v tem primeru opisujejo enačbe, ki so posplošitve enačb~(...)
%
\begin{align}
\vec{r} &= \tfrac{1}{2} \vec{a} t^2 + \vec{v}_0 t + \vec{r}_0\label{k-uamm1}\\
\vec{v} &= \vec{a} t + \vec{v}_0 \label{k-uamm2}\\
v^2 &= v_0^2 + 2 \vec{a} \cdot (\vec{r} - \vec{r}_0) \label{k-uamm3}
\end{align}
%
kjer so $\vec{r}$ trenutni in $\vec{r}_0$ začetni krajevni vektor telesa, ter $\vec{v}$ trenutni in $\vec{v}_0$ začetni vektor hitrosti telesa.  Pri tem je tretja enačba izpeljana iz prvih dveh.

\begin{figure}[!ht]
\centering
\Tpro
\caption{Poševni met}
\end{figure}

Če se telo nahaja v bližini Zemeljske površine, nanj deluje konstantni pospešek prostega pada $g = 10$~m/s$^2$ navpično navzdol.  Vsako tako gibanje telesa je dejansko \textit{dvo}-dimenzionalno, saj se telo giblje po navpični ravnini.  Po dogovoru $y$~os usmerimo navpično navzgor, torej nasproti smeri pospeška prostega pada ($\vec{a} = - g \vec{j}$), $x$~os pa tako, da začetna hitrost leži v $xy$ ravnini $\vec{v}_0 = v_{x0} \vec{i} + v_{y0} \vec{j}$.  Potem lahko vsako od enačb~(...) razstavimo na \textit{dve} skalarni enačbi in dobimo
%
\begin{align}
x(t) &= v_{x0} t + x_0, \label{k-prsx}\\
y(t) &= -\tfrac{1}{2} g t^2 + v_{y0} t + y_0, \label{k-prsy}\\
v_x(t) &= v_{x0}, \label{k-prvx}\\
v_y(t) &= -g t + v_{y0}. \label{k-prvy}
\end{align} 

Pri tem smo upoštevali, da je pospešek v $x$~smeri enak $a_x = 0$, pospešek v $y$~smeri pa $a_y = -g$, kar pomeni, da imamo v $x$~smeri enakomerno gibanje, v $y$~smeri pa enakomerno pospešeno gibanje.

\end{document}

Result of MWE

Result of MWE

I think you agree with me this is totally unacceptable for a real book. The text is just too crowded, it gives 80-90 characters (including spaces) or 70-80 characters per line, and cca. 44 lines per page. I must agree with designers, this is just too crowded and unattractive for a university-freshman learning book.

Here is one of possible book designs:

A possible design

EDIT: Since PGFTricks provided a bounty, I provide here the code for the picture, so you can test your ideas. It is scalable, \lmet provides the size of picture, \lms the lengths of vectors.

\tikzset{avec/.style = {->,green!75!black,line width=\wvec}}                 % acceleration vector style
\tikzset{vvec/.style = {->,red,line width=\wvec}}                            % velocity vec tor style
\tikzset{vlin/.style = {red}}                                                % velocity vector style

\newcommand{\rang}[3]{
\begin{scope}[shift={#1},rotate=#2]
\draw[#3] (5pt,0) -- (5pt,5pt) -- (0,5pt);
\end{scope}} 

\newcommand\Tpro{
\begin{tikzpicture}[>=stealth,auto]
\def\lms{0.005cm}
\def\lmet{0.0007cm}

\draw[->,very thin] (-500*\lmet,0) -- (13000*\lmet,0) node[right] {$\scriptstyle x$};
\draw[->,very thin] (0,-500*\lmet) -- (0,5000*\lmet) node[above] {$\scriptstyle y$};
\draw[very thin] (500*\lmet,0) arc (0:60:500*\lmet);
\node at +(30:500*\lmet+8pt) {$\alpha$};

\draw[vvec] (0,0) -- +(60:360*\lms) node[midway] {$\vec{v}_0$};
\draw[vlin] (0,0) -- +(180*\lms,0) node[midway,swap] {$v_{x0}$} -- +(60:360*\lms) node[midway,swap] {$v_{y0}$};
\rang{(180*\lms,0)}{90}{vlin}; 
\draw[vvec] (2372*\lmet,3240*\lmet) -- +(180*\lms,180*\lms) node[midway] {$\vec{v}_1$};
\draw[vlin] (2372*\lmet,3240*\lmet) -- ++(180*\lms,0) node[midway,swap] {$v_{x1}$} -- ++(0,180*\lms) node[midway,swap] {$v_{y1}$};
\rang{(2372*\lmet+180*\lms,3240*\lmet)}{90}{vlin};
\draw[vvec] (5612*\lmet,4860*\lmet) -- +(180*\lms,0) node[midway] {$\vec{v}_2$};
\draw[vvec] (8852*\lmet,3240*\lmet) -- +(180*\lms,-180*\lms) node[midway,swap] {$\vec{v}_3$};
\draw[vlin] (8852*\lmet,3240*\lmet) -- ++(180*\lms,0) node[midway] {$v_{x3}$} -- ++(0,-180*\lms) node[midway] {$v_{y3}$};
\rang{(8852*\lmet+180*\lms,3240*\lmet)}{180}{vlin};
\draw[vvec] (11224*\lmet,0) -- +(-60:360*\lms) node[midway,swap] {$\vec{v}_4$};
\draw[vlin] (11224*\lmet,0) -- +(180*\lms,0) node[midway] {$v_{x4}$} -- +(-60:360*\lms) node[midway] {$v_{y4}$};
\rang{(11224*\lmet+180*\lms,0)}{180}{vlin};
\draw[avec] (5612*\lmet,2430*\lmet) -- +(0,-180*\lms) node[midway] {$\vec{a}$};

\draw[densely dashed] (0,0) parabola bend (5612*\lmet,4860*\lmet) (11224*\lmet,0);

\filldraw[thick,fill=white] (0,0) circle (100*\lmet);
\filldraw[thick,fill=white] (2372*\lmet,3240*\lmet) circle (100*\lmet);
\filldraw[thick,fill=white] (5612*\lmet,4860*\lmet) circle (100*\lmet);
\filldraw[thick,fill=white] (8852*\lmet,3240*\lmet) circle (100*\lmet);
\filldraw[thick,fill=white] (11224*\lmet,0) circle (100*\lmet);

\end{tikzpicture}}

Best Answer

Your questions is currently not really answerable. So this is more a "meta answer" regarding your key point:

The point is: I can get a designer, which will tell me what s/he wants, margins, fonts, frames, etc. The question is, (a) can an average LaTeX user like me do that and (b) which class to start with?

I am convinced, the answers are (a) "Yes, with some help from this community", and (b) "start with the class you are currently using".

Get that designer and her specifications. Break them down into smaller chunks, prepare a minimal working example of your book and than ask dedicated questions for each aspect to implement, such as:

and so on, each of it with the respective specifications of your designer. I am more than convinced that your questions will be answered.

Regarding the class: The KOMA book class is one of the most flexible and well-designed LaTeX classes, so it probably is a good starter anyway. The main point, however, is that you are already using it. Before investing time in trying other classes, just get that specifications clear and seek for help where necessary.

Related Question