技术文档和/或书籍模板?

技术文档和/或书籍模板?

我刚刚开始使用 LaTeX,想看看一些技术文档和/或书籍的模板。我正在写一本关于 PHP 的小书,想在其中使用 LaTeX,但我想更好地控制外观(页眉、页脚、带图标的“提示”、代码示例、目录等)。

答案1

您的帖子包含许多问题,最好分别发帖询问。由于您是 LaTeX 新手,您可能想立即开始写书,而不想花太多时间详细学习 LaTeX --- 我认为您不需要花太多时间学习如何排版数学,对吗? --- 我将指导您如何创建稍后将改进的骨架。

稍后可以更改页脚、页眉、目录,而不会破坏此骨架。:-)

步骤 01

你应该从一开始就开始组织你的项目。将你的项目至少分成 3 个子目录,即MyProject\ContentsMyProject\ImagesMyProject\Codes

步骤 02

创建自己的文档类,即mybook.cls如下所示并将其保存在MyProject目录中。

\ProvidesClass{mybook}[2011/06/07 v 0.01 my own class (hv)] 
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
\ProcessOptions\relax 
\LoadClass
[
%other default options go  here
]{book} 

\newcommand\ContentsPath{Contents/}
\newcommand\ChapterPath{\ContentsPath}
\newcommand\SectionPath{\ChapterPath}
\newcommand\SubSectionPath{\SectionPath}

\@ifclassloaded{book}
{
    \newcommand\IncludeChapter[1]
    {
        \renewcommand\ChapterPath{\ContentsPath#1/}
        \include{\ContentsPath#1}
    }
    \newcommand\IncludeOnlyChapter[1]
    {
        \includeonly{\ContentsPath#1}
    }
}{}


\newcommand\InputSection[1]
{
    \renewcommand\SectionPath{\ChapterPath#1/}
    \input{\ChapterPath#1}
}

\newcommand\InputSubSection[1]
{
    \renewcommand\SubSectionPath{\SectionPath#1/}
    \input{\SectionPath#1}
}

\newcommand\InputSubSubSection[1]
{
    \input{\SubSectionPath#1}
}


\@ifclassloaded{book}
{
    \newcommand\Chapter[1]
    {
        \chapter{#1}
        %\addcontentsline{toc}{chapter}{#1}
    }
}{}

\newcommand\Section[1]
{
    \section{#1}%
    %\addcontentsline{toc}{section}{#1}
}

\newcommand\SubSection[1]
{
    \subsection{#1}
    %\addcontentsline{toc}{subsection}{#1}
}

\newcommand\SubSubSection[1]
{
    \subsubsection{#1}
    %\addcontentsline{toc}{subsubsection}{#1}
}

\RequirePackage{xcolor}

\RequirePackage{listings}
\lstdefinestyle{Common}
{
        breaklines=true,
        tabsize=3, 
        showstringspaces=false,
        aboveskip=0pt,
        belowskip=0pt, 
        extendedchars=\true,
        language=PHP,
        frame=single,   
        %===========================================================
        framesep=3pt,%expand outward.
        framerule=0.4pt,%expand outward.
        xleftmargin=3.4pt,%make the frame fits in the text area. 
        xrightmargin=3.4pt,%make the frame fits in the text area.
        %=========================================================== 
        rulecolor=\color{Red}%
}

\lstdefinestyle{ThemeA}
{
        style=Common,
        backgroundcolor=\color{Yellow!10},
        basicstyle=\scriptsize\color{Black}\ttfamily,
        keywordstyle=\color{Orange},
        identifierstyle=\color{Cyan},
        stringstyle=\color{Red}, 
        commentstyle=\color{Green} 
}

\newcommand{\IncludeCode}[2][style=ThemeA]
{
    \lstinputlisting[#1,caption={\href{#2}{#2}}]{#2}
}


\RequirePackage[colorlinks=true,bookmarksnumbered=true,bookmarksopen=true]{hyperref}
\RequirePackage[all]{hypcap}


\RequirePackage{makeidx}
\makeindex

\endinput 

步骤 03

创建主输入文件,即main.tex如下并将其保存在MyProject

\documentclass[dvipsnames,cmyk,12pt]{mybook}
\usepackage[a4paper,vmargin=15mm,hmargin=10mm]{geometry}

\title{Introduction to PHP}
\author{Your Name}
\date{\today}

%\IncludeOnlyChapter{Variables}

\begin{document}
\frontmatter
        \maketitle
        \thispagestyle{empty}
        \tableofcontents
    \lstlistoflistings
\mainmatter
        \part{Part 1}
                \IncludeChapter{Variables}
                \IncludeChapter{Array}
        \part{Part 2}   
                \IncludeChapter{Interface}
                \IncludeChapter{SubClass}
        \appendix\renewcommand{\chaptername}{\appendixname}
        \part{Appendix}
                \IncludeChapter{YourAppendix}
\backmatter
        \printindex
\end{document}

步骤 04

为章节创建一个文件Variables,即Variables.tex如下,并将其保存在 中MyProject\Contents

\Chapter{Variables}
\InputSection{Declaration}
\InputSection{Instantiation}

步骤 05

创建目录MyProject\Contents\Variables

步骤 06

为部分创建一个文件Declaration,即Declaration.tex如下,并将其保存在MyProject\Contents\Variables

\Section{Declaration}

\IncludeCode[style=ThemeA]{Codes/Declaration.php}

步骤 07

对剩余内容执行相同操作。

使用 VCS(版本控制系统)例如 Subversion 或 Git 来管理您的项目也是值得的。

如果有任何问题,请发表评论。:-)

答案2

如果你是 LaTex 新手,我建议你从头开始。阅读标准介绍(例如不太简短的介绍)。我不会立即开始制作自己的类文件,而是倾向于从常用的类之一开始(可能是memoirscrbook);每个类都有很好的手册,其中包含大量自定义建议,这些建议针对您最有可能想要自定义的内容。坦率地说,您最好选择一个并坚持使用它(并花时间阅读文档),而不是苦苦思索选择,因为您可以在适当的时候根据自己的喜好自定义最终产品的外观。

由于您正在编写一本关于 php 的书,您可能需要某种包来处理列表。我没有专业知识可以对此提出建议。但是对于各种其他有用的东西,请查看此答案人们经常装载的包裹

一定要了解诸如\include\includeonlytodonotesbibtex或者,现在可能是biblatex)之类的东西,它们可以帮助你在写作时保持内容的条理性和模块化。

我最后的建议可能会引起争议。虽然一开始尝试摆弄诸如章节标题、样式等内容很诱人,但我倾向于先开始编写文本。请务必使用一组标准的语义标记命令(\chapter\section\footnote但不要担心字体之类的事情,直到您清楚文本的基本形状为止,因为设计在某种程度上需要遵循内容。那时,您将需要做出设计决策;为此,您需要花一些时间思考您喜欢的外观以及喜欢它的原因,并且最好阅读 Bringhurst 的印刷风格的要素本书的作者是真正了解书籍设计的人。

相关内容