介绍
我已经使用 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 结果
我想你会同意我的观点,这对于一本真正的书来说是完全不可接受的。文本太拥挤了,每行只有 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 图书类别获得类似 Tufte 的边距?”
- “对于框架定理我应该使用哪个包?”
等等,每一项都有您设计师的各自规格。我坚信您的问题一定会得到解答。
关于课程: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 的专有改编版进行工作。