用于设计书籍的文档类

用于设计书籍的文档类

介绍

我已经使用 LaTeX 15 年了,但一年前我开始为学生写一本真正的书。因此我遵循了通常普遍的信念:专注于内容,LaTeX 将处理其余的事情。然而,这种信念只在你撰写论文或文章时成立,因为风格基本上不重要(反正谁会读论文呢?)。

也就是说,经过一年的工作,我完成了写作,却遇到了一个真正令人不快的意外。我收到了一笔不小的钱,用来为一本书找一名设计师。市面上有很多优秀的书籍设计师,但没有一个人曾经用 LaTeX 写过命令。这实际上意味着一年的紧张工作将付诸东流重新输入在其他一些与 LaTeX 不兼容的程序中,图形将与字体一起重新缩放……而我一年多来如此小心翼翼的一切将在一秒钟内被搞砸了……

问题

一个非专业的半经验的 LaTeX 用户是否可以自己将设计想法实现到文档中并保存其宝贵的工作?他/她应该从哪个文档类别开始?

为了证明标准 LaTeX 类在书籍设计中的糟糕表现,我将向您展示使用 KOMA-Script scrbook 和设计师的近似命题编写的部分代码。

最小工作示例

\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}

MWE 结果

MWE 结果

我想你会同意我的观点,这对于一本真正的书来说是完全不可接受的。文本太拥挤了,每行只有 80-90 个字符(包括空格)或 70-80 个字符,每页大约 44 行。我必须同意设计师的观点,对于一本面向大学新生的学习书来说,这太拥挤了,没有吸引力。

以下是可能的书籍设计之一:

可能的设计

编辑:由于 PGFTricks 提供了赏金,我在这里提供了图片的代码,以便您可以测试您的想法。它是可扩展的,\lmet 提供图片的大小,\lms 提供矢量的长度。

\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}}

答案1

您的问题目前还没有得到真正的解答。因此,这更像是关于您的关键点的“元答案”:

重点是:我可以找一个设计师,他会告诉我他/她想要什么,边距、字体、框架等。问题是,(A)像我这样的普通 LaTeX 用户能做到这一点吗?(二)从哪一堂课开始?

我确信,答案是(A)“是的,在社区的帮助下”, (二)“从您当前正在使用的课程开始”。

找到设计师并了解其规格。将它们分解成更小的部分,准备一份书籍的最小工作示例,然后针对每个要实施的方面提出专门的问题,例如:

等等,每一项都有您设计师的各自规格。我坚信您的问题一定会得到解答。

关于课程:KOMA 图书课程是最灵活、设计最完善的 LaTeX 课程之一,因此它可能是一个不错的入门课程。不过,重点在于您已经在使用它了。在花时间尝试其他课程之前,请先弄清楚该规范,并在必要时寻求帮助。

答案2

我们将帮助您实现设计。我对方程式毫无经验,但我敢打赌,只要您展示设计并询问,就会有人帮助您。

KOMA-script 附带一份很长的手册,有英文和德文。我花了五分钟开发第一个解决方案(Linux Libertine 必须用你喜欢的字体替换),并花了相当多的时间和一些帮助(见下面的评论)来开发这个解决方案:

\documentclass[12pt,parskip=half, DIV=calc, BCOR=10mm, x11names]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern, libertine}
\usepackage{amsmath, xcolor, tcolorbox, empheq}
\usepackage[ilines, headsepline]{scrpage2}
\setheadwidth[0pt]{textwithmarginpar}

%\input{slike_1} % TikZ pictures
\clearscrheadfoot
\ihead{\headmark}
\ohead{\pagemark}

\setcounter{page}{3}

\addtokomafont{pagenumber}{\bfseries\Large\color{LightBlue4}}
\addtokomafont{pagehead}{\color{LightBlue4}}

\renewcommand{\textit}[1]{\textcolor{LightBlue4}{\emph{#1}}}
%\tcbuselibrary{skins,breakable}
\tcbuselibrary{theorems}
\tcbset{colback=blue!60!green!10!white,
  colframe=LightBlue4!50!black, ams nodisplayskip}



\begin{document}

\pagestyle{scrheadings}

\section{Zbirka vaj fizike za studente gradbenistva}
\label{sec:zbirka-vaj-fizike}


\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}
   \tcboxmath{\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{empheq}[box={\tcbhighmath[colback=blue!60!green!10!white,
  colframe=LightBlue4!50!black]}]{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{empheq}


%
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{empheq}[box={\tcbhighmath[colback=blue!60!green!10!white,
  colframe=LightBlue4!50!black]}]{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{empheq}



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}

缺少该图,因为您没有提供。我为了演示目的而使用了您的标题。

嘿,使用 KOMA 脚本,研究手册并找到显示公式的解决方案,您将在很短的时间内得到您的书!

在此处输入图片描述

答案3

评论太长:

我认为您的问题无法回答。

您的“MWE”没有显示示例页面(只有一行“文本......”),您没有包含图片来展示您的案例。

如果 tufte 类支持您希望的边距,可以尝试找到该代码并将其更改为可在 KOMA-Script 中使用。或者更改 tufte 类以适合您的期望。但您没有告诉我们 tufte 的“不受欢迎”之处,因此我们无法为您提供帮助。

真正的 MWE 可能是:

\documentclass[
  fontsize=12pt
 ,DIV=7          % bigger margins
 ,parskip        % space between parapraphs
]{scrbook}

\usepackage{blindtext} % creates Blindtext/document
\usepackage{showframe} % shows typing area and margins

\begin{document}

\Blindtext

\end{document}

生成两个页面,使用包blindtext生成盲文。

这可以作为创建自己的 MWE 来向我们展示您的问题的开始。

答案4

Springer 为其作者准备了模板。专著模板svmono名为这里

您可能希望获取有关潜在版权问题的信息,根据自己的喜好进行调整,或将其用作灵感。我认为,它有相对完善的文档记录,并且经过深思熟虑。

此外,与 LATEX 世界中的很多专著模板相比,该风格遵循了一种相当专业的面向受众的设计理念。它没有使用大量的字体、字体大小、颜色、框架、缩进等。在我看来,如果书籍内部设计是供(半)专业读者(半)连续阅读,那么这是设计书籍内部的首选方式。正如一篇很好的总结在 typophil 上发帖一位专注于大学出版社的书籍设计师在设计书籍页面时,基本上可以想到两种“方法”。一种是专注于将异质元素(数学、图表、表格、注释、各种页脚和页眉内容、标题级别、正文等)整合到页面中,另一种是强调它们的异质性(想想为儿童设计一本书或一本不连续阅读的书)。

顺便说一句,该书籍设计师似乎正在使用 TEX 的专有改编版进行工作。

相关内容