项目管理
为了养成良好的习惯,我们把 ConTeXt 文档拆分到几个单独的 .tex
文件中,这样维护起来比较方便。
首先是主文档 product.tex
[73],生成 PDF 只要编译此文件即可
%%%%%此文件使用 product 环境,起始声明
\startproduct{}
%%%导言区使用 \environment 载入文件
%载入样式文件 style.tex
\environment style
%载入词汇定义文件 gloss.tex
\environment gloss
%%%正文起始
\starttext
%%%正文区使用 \component 载入文件
%封面 cover.tex
\component cover
%目录
\title{目录}
\placecontent
%%正文内容
%载入章节 1.tex 2.tex 3.tex
\component 1
\component 2
\component 3
%%%正文结束
\stoptext
%%%%% product 环境结束声明
\stopproduct
在导言区载入的文件,要使用 environment
环境,例如样式定义文件 style.tex
\startenvironment{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 中文设置 %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usetypescriptfile[zhfonts] %加载打印字体配置文件(typescript) zhfonts.tex
\usetypescript[myscript] %使用打印字体配置文件中定义打印字体的脚本 myscript
\setupbodyfont[myfont,rm,11pt] %设置正文字体
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 正文 标题 %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 启用颜色模式, 设置链接文本颜色
\setupcolors[state=start]
\definecolor[linktext][darkred]
\setupinteraction[state=start,color=linktext]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%正文
\setupindenting[always,2em,first] %设置中文缩进格式(首行缩进两字)
\setupheads[indentnext=yes] %每节的首段也要缩进
\setupinterlinespace[big] %设置行距(big=1.5倍)
\setupwhitespace[small] %设置段间距[small, medium, big]
%标题
\setupheads[indentnext=yes]
\setuphead
[chapter]
[style=\bfc,header=empty,footer=empty]
\setuphead
[section]
[style=\bfa]
\setuphead
[title]
[style=\bfb,header=empty,foote=empty]
\setuphead
[subsubject]
[style=\bf]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 页面设置 %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%定义页面尺寸为 SCREEN
\definepapersize[mySCREEN][width=21cm,height=29.7cm]
%纸张尺寸,通常和页面尺寸相同。(除非在印刷用纸上实现多页排版)
\setuppapersize[SCREEN][mySCREEN]
%布局
\setuplayout
[width=fit,
height=middle,
leftmargin=3cm,
rightmargin=3cm,
backspace=4cm,
topspace=.5cm,
headerdistance=.4cm,
footerdistance=.4cm,
header=1cm,
footer=1cm]
%去掉页眉正中 自动添加的页码
\setuppagenumbering
[style=\tfx,location=]
%页眉
\def\CurrentChapter{%
第 \headnumber[chapter]\ 章%
\hbox to 2em{}%
\getmarking[chapter]%
}
\def\CurrentSection{%
\headnumber[section]%
\hbox to 2em{}%
\getmarking[section]%
}
\setupheadertexts
[\CurrentChapter][pagenumber]
[pagenumber][\CurrentSection]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%边注
\setupinmargin[left,right][style=\tfx]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%PDF 阅读器中自适应页宽
\setupinteraction[state=start,openaction=FitWidth]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 目录 书签 %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 启用书签功能
\setupinteraction[state=start]
\setupinteractionscreen[option=bookmark]
\placebookmarks[chapter,section,subsection][chapter]
%%%经典目录样式
%% turn off numbering of some levels
%\setuphead[subsection][number=no]
%\setuphead[subsubsection][number=no]
%% TOC
%% level=4, \subsubsubsections are not listed in TOC
%% alternative=c, space to the page number is filled with dots
%\setupcombinedlist[content][level=4,alternative=c]
%%\setuplist[chapter][width=5mm,style=bold]
%\setuplist[section][width=10mm,style=bold]
%\setuplist[subsection][width=20mm]
%% pagestyle=normal for changing the appearance of pagenumber
%\setuplist[subsubsection][width=20mm,style=slanted,pagestyle=normal]
%目录样式
\def\ChapterNumber#1{\doiftext{#1}{第\;#1\;章\quad}}
\setuplist
[chapter]
[alternative=a,
before={\page[preference]\blank},
after=\blank,
style=bold,
width=fit,
pagestyle=boldslanted,
pagenumber=no,
numbercommand=\ChapterNumber]
\def\PageNumber#1{\color[darkgray]{#1}.}
\setuplist
[section]
[alternative=d,
style=small,
pagecommand=\PageNumber,
pagestyle=\itx]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\stopenvironment
词汇定义文件 gloss.tex
\startenvironment{}
%使用命令 \hello{mom}
%得到 Good morning mom
\define[1]\hello{Good morning, #1}
%使用命令 \lxsc
%得到 《开源世界旅行手册》
\define\lxsc{《开源世界旅行手册》}
\stopenvironment
章节放在单独的文件中,例如 1.tex
\startcomponent{}
\chapter{第一章}
ConTeXt 组件文档
\stopcomponent
[73] 文件名任意