我刚刚开始使用 LaTeX,想看看一些技术文档和/或书籍的模板。我正在写一本关于 PHP 的小书,想在其中使用 LaTeX,但我想更好地控制外观(页眉、页脚、带图标的“提示”、代码示例、目录等)。
答案1
您的帖子包含许多问题,最好分别发帖询问。由于您是 LaTeX 新手,您可能想立即开始写书,而不想花太多时间详细学习 LaTeX --- 我认为您不需要花太多时间学习如何排版数学,对吗? --- 我将指导您如何创建稍后将改进的骨架。
稍后可以更改页脚、页眉、目录,而不会破坏此骨架。:-)
步骤 01
你应该从一开始就开始组织你的项目。将你的项目至少分成 3 个子目录,即MyProject\Contents
、MyProject\Images
和MyProject\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 新手,我建议你从头开始。阅读标准介绍(例如不太简短的介绍)。我不会立即开始制作自己的类文件,而是倾向于从常用的类之一开始(可能是memoir
或scrbook
);每个类都有很好的手册,其中包含大量自定义建议,这些建议针对您最有可能想要自定义的内容。坦率地说,您最好选择一个并坚持使用它(并花时间阅读文档),而不是苦苦思索选择,因为您可以在适当的时候根据自己的喜好自定义最终产品的外观。
由于您正在编写一本关于 php 的书,您可能需要某种包来处理列表。我没有专业知识可以对此提出建议。但是对于各种其他有用的东西,请查看此答案人们经常装载的包裹。
一定要了解诸如\include
和\includeonly
、todonotes
(bibtex
或者,现在可能是biblatex
)之类的东西,它们可以帮助你在写作时保持内容的条理性和模块化。
我最后的建议可能会引起争议。虽然一开始尝试摆弄诸如章节标题、样式等内容很诱人,但我倾向于先开始编写文本。请务必使用一组标准的语义标记命令(\chapter
、\section
、\footnote
但不要担心字体之类的事情,直到您清楚文本的基本形状为止,因为设计在某种程度上需要遵循内容。那时,您将需要做出设计决策;为此,您需要花一些时间思考您喜欢的外观以及喜欢它的原因,并且最好阅读 Bringhurst 的印刷风格的要素本书的作者是真正了解书籍设计的人。