如何用 LaTeX 写书

如何用 LaTeX 写书

我查看了其他问题,没有找到任何与我的问题相关的答案。如果这是某个我没见过的问题的重复,请随意评论。

我是一位经验丰富的 TeX 用户,使用 TeX 编写代码已有 3-4 年了。我对 TikZ 也相当熟练。问题是,我所学到的所有知识都来自我的一位老师,他给了我软件包,这样我就不用担心了,而且我从未自己接触过技术方面的东西(或者至少从未理解过其中的任何东西)。

我想写一本书,所以我需要能够处理诸如边距、标签、分页之类的东西,将我的 TeX 文件分成多个文件,这样我就不必每次想要删除/添加逗号等时都编译整本书。我正在寻找 - 不是一本像字典一样说明所有命令功能的用户手册,因为我知道有很多,我有一些 - 而是像使用书籍类的介绍,带有示例等。如果你知道我在说什么,PGF-TikZ pdf 就是这种 PDF 的一个很好的例子;它描述了命令,是的,但是有很多例子,而且在构建更大的示例时通常会详细说明小命令。

答案1

嗯,根据我的经验,我建议你首先关注内容,然后再关注内容,最后再关注内容。最后,你可以尝试不同的样式和包来修改文本的外观。对于像书这样的长期项目,不要让不重要的事情分散太多注意力是非常重要的。

最后,可能会有出版商坚持使用特定的风格/类别。许多科学出版商都有自己的类别,读者必须使用。但除非你有完整的手稿,否则出版商不太可能同意出版你的文本。所以首先:只需用一些标准类别(普通书籍类别......)编写内容并完成文本。

编辑:好的,也许这没有太大帮助,所以这里还有一些补充:

  1. 首先,你应该问自己,你想针对什么样的读者。这将在很大程度上决定你的写作方式。在数学方面,你想要一本有练习和详细证明的教科书,或者一本有扩展参考书目的专著,等等。

  2. 组织和整理您的想法。制作一个目录,其中包含所有章节/小节的初步摘要。我曾经在单独的 tex 文件“plan.tex”中执行此操作,该文件在写作过程中也可能发生(相当多)更改。

  3. 符号要一致。在写作之前,你应该先解决一些符号问题:特别是在数学中,始终使用相同的符号、使用其他人熟悉的符号等非常重要。

  4. 制作一个 main.tex,其中包含输入/包含章节的内容,这些章节输入了章节等。这里的样式/类还不是必需的,它应该只支持“\chapter”之类的命令。请注意input是一个更快但更简单甚至有限的命令mwe

    \documentclass[a4paper,10pt]{book}
    \input{packages} %\usepackage[utf8]{inputenc}
    \begin{document}
    \include{chapter1}
    \include{chapter2}
    \input{etc}
    \end{document}
    
  5. 用内容填充你的文件。这将占用你 99% 的时间。

  6. 请与出版商等核实您想要发布作品的位置。他们将提供样式文件或告诉您他们传统上使用的标准样式。如果他们想发布作品的话。

  7. 然后,与其他相比,这并不需要太多的工作,使您的源适应所需的类别/样式,修复水平盒子,调整参考书目,适当缩放图片等。

所以我希望这是一个合理的工作流程。第 5 点才是真正需要最多关注和努力的,其余的都是装饰。

答案2

如果你已经熟悉(LaTeX),那么我诚挚地建议你开始编写(正如 Yiannis 所说),但使用memoir类(你可以在工作进展过程中同时阅读),而不是book

Memoir 包含两个非常好的手册:用于可配置排版的 Memoir 类是好的排版和操作方法的结合,并且关于书籍设计的几点说明其中涉及一些历史和基本原理。

我使用回忆录已有七年左右了。最初有一个学习曲线(但这只是因为我要求的调整已经超出了可能的范围!),但它已经多次回报了我的投资,而且,如今,除了书籍之外,我唯一不使用它的memoir就是演示文稿。

我唯一要提出的其他建议是:因为它是一个“新项目”,所以使用 LuaLaTeX、BibLaTeX、fontspec 进行字体调整,以及 100% unicode。

答案3

展示与内容分离

LaTeX 的理念是作者应该能够专注于他们所写内容,而不会被其视觉呈现所分散注意力。在准备 LaTeX 文档时,作者使用熟悉的概念(如章节、部分、表格、图形等)指定逻辑结构,并让 LaTeX 系统负责这些结构的呈现。因此,它鼓励将布局与内容分开,同时仍允许在需要时手动调整排版。

(摘自维基百科)

我同意其他贡献者描述的很多事情,但我认为如果你想避免浪费时间,你需要准备表现与内容分离

所有好的课程都会提供分段工具。因此,你可以从章节、节等开始。但如果你想写一本数学书,你需要定理、定义、注释、例子等。

有些课程会提供这些工具,但创建它们很容易。第一次,这些环境什么都做不了:例如

 \newenvironment{theo}{My theorem :}{\par} 

 \begin{theo}
      All I have to do it's to use fake environment
  \end{theo} 

然后您需要创建一些宏(假的或空的宏) \newword \GreatPerson \ImportantWord或者FirstDef您可以像这样定义这些宏:

\newcommand{\ImportantWord}[1]{#1}
 \newcommand{\GreatPerson}[1]{#1} 

 \ImportantWord{Geometry}
 \GreatPerson{Pythagore}

我忘记了两个重要的宏:\number\unit。直接选择“sinunitx”或“numprint”并不重要,但您需要准备数字和单位的格式。如果您不立即这样做,那么最后格式化数字就是浪费时间。

你需要准备索引和参考书目。我认为准备索引非常有用。第一次你可以使用,\index{thisword}但有一些特定的宏会很有用。你可以看看 Mathmode.ltxHerbert Voss 的文件来获得一些想法。你可以找到类似

  \def\tIndex#1{\index{#1@{\UrlFont\texttt{#1}}}}
  \def\cIndex#1{\index{#1@\CMD{#1}}} 

但第一次使用假宏是可以的!

现在,您可以“立即”开始写作,使用标准的书籍类别,而不必过多担心演示。

有了环境和宏,您就可以按照自己的意愿完成演示。如果没有这些环境和宏,很难在文本中找到某些内容。

答案4

与这里的其他答案相反,我真的建议花几天时间在 LaTeX 中准备一个框架。

仔细考虑您的工作流程和所需的技术工具。

例如,你将如何离开评论和注释你自己要删除它们吗?你如何删除它们?我通常用小红字将它们写在页边空白处并使用包marginfix。为此,我定义了一个新命令,简单来说就是\Anm(德语注释缩写)。

您需要版本比较?甚至不同的版本?花一天时间熟悉版本系统。我正在使用git和来建立脚本版本之间的比较latexdiff-git。如果您遇到困难并需要返回到早期版本,版本系统可能会有很大帮助。

我更喜欢scrbook回忆录,因为 KOMA-script 采用了欧洲的排版方式,还有许多其他原因。

为了加快编译速度,请查看latexmk

最重要的是:雇用\label\ref尽可能多地任何参考。了解如何使用Zotero或以任何方式管理您的参考书目!可能您应该更喜欢 BibLaTeX 而不是 BibTeX。

哪种编码?可能是 utf-8,但是,不要混淆编码,选择一种适合您书中所有类型文本的编码。

不要将 LuaTeX 或 XeTeX 用于严肃的项目。LuaTeX 漏洞百出,速度很慢。多年以来,pdfTeX 仍然是引擎。一年来,LuaTeX 一直没有新版本!

您如何处理 texlive 或 MikTeX 的更新/升级?Libertine 软件包的前维护者有一天发布了一个不兼容的更新,在收到一些不友好的评论后退出了对该软件包的维护,只留下我和损坏的文件。因此,在遇到很大压力之前,最好有办法测试您的每月更新。

您将如何在公司内部和其他地方持续备份您的工作?

我可以继续写,但我想你已经明白了:一开始就认真思考工作流程的每一步。


根据以下评论进行编辑:

正如用户 pmav99 所说,如果你使用非拉丁字体,XeTeX 非常有用。我同意这一点;我对 XeTeX 的缺点太狭隘了。肯定有优点可以证明在“严肃的项目中”使用 XeTeX 是合理的。


三年后编辑:

LuaTeX 稍微快了一点,但在 Windows 机器上仍然比 pdftex 慢得多。BibLaTeX 和 Biber 是最先进的。至于我的其余回答:没有变化。

相关内容