如何用TeX排版施工方案

1 篇文章 0 订阅

这篇文章是对用TaX做施工方案(施工组织设计)的一个总结,文章内容也适用于其它相应类型的排版。

前言

最近做一个施工方案,在经过一段费劲的WPS(Word也会一样)文本编辑之后,终于完成了。但整个过程排版实在太痛苦,关键是对最终结果非常不满意。这个过程和Knuth当年的经历多少有点相似。因此产生了用TeX重新把方案进行排版的想法。之前用TeX排版过一些东西,感觉使用起来还是比较难,也没有持续使用,再加上后来写东西基本用Scribble(这篇文章仍然使用的Scribble完成的,这是TeX不满足的地方,这也是很多人用Markdown的原因吧。不过我觉得Markdown仍然没有Scribble满足需求),效果也不错,功能更灵活,久了就有些将TeX荒废了。

想好了就立马付诸实施,用了一周的时间,虽然费了一些周折,还是完成了。的确如我所愿,TeX的排版能力非凡,出来的效果也非常满意。这次排版的内容比较多,又是一本书(方案写得比较完整,内容比较多),涉及各类排版技术,基本都涉及到了。因此想做个总结,也便于以后使用。

1.1 认识TeX

避免以前不认识TeX的朋友没那么蒙,这里简单介绍一下TeX的历史。

TeX是由著名的计算机科学家Donald E. Knuth(高德纳)因不满意出版公司排版的他的著作《The Art of Computer Programming》(他因之获得图灵奖)效果而发明的排版系统。利用TeX可以很容易地生成高质量的dvi文件,打印输出;也可以通过编译生成PDF文件。

它在学术界十分流行,特别是数学、物理学、统计学与计算机科学界。TeX被普遍认为是一个很好的排版工具,特别是在处理复杂的数学公式时。利用诸如是LaTeX等终端软件,TeX就能够排版出精美的文本。常用的软件LaTeX附带的TeXworks以及TeXstudio。

1.2 为什么要用TeX
  1. 格式与内容分离:格式在导言区统一控制,文档内容在正文,对排版格式的控制非常方便。把自己要用的文档排版形成了模板后,以后就只需考虑文档的内容,无需每次为排版格式费心。

  2. 高质量的输出:TeX遵循传统的排版规则,以排版的质量为最重要的目标。这是我要重新排版的重要原因,另外一个原因是考虑到重用性。

  3. 超常的稳定性:自从TeX出现以来,只有一些微小的改动。稳定性还体现在TeX系统极少会崩溃,可以处理任意大小的文件,即使你的计算机的内存很少,TeX也可自如的工作。

  4. TeX是可编程的:TeX是一种宏命令编程语言,你可以用很少的命令来完成非常复杂的工作。如果需要的话,你也可以重新定义TeX的所有命令来得到特殊的效果。

  5. 高度的灵活性:由于其内核的设计方式,世界上的TeX使用者可以让TeX做几乎任何工作。你可以用TeX来排版英文文本,也可以排版德文、俄文、中文等多种语言。你还可以用TeX来排版乐谱,象棋、围棋棋谱等等。

  6. 简单方便:TeX文档是ASCII码的文本文件。因此,即使你手边没有TeX系统,你也可以看懂绝大部分的内容。TeX文件的这种特点使得它占用很少的存储空间,也可以很方便传输。

  7. 跨平台:目前为止,TeX几乎在所有的计算机操作系统平台上得到实现。TeX的源文件可在不同的平台之间自由的交换,而得到的输出是完全相同的。

  8. 免费:TeX是免费软件,它的源程序也是免费的。同时也有一些具有各自特点(如或多或少的所见即所得特性的)和提供专家级帮助系统的商业版本。

  9. 超级技术支持:由于TeX并不是被某个公司所垄断开发,所以世界各地的使用者设计了统一的技术支持的方式。

  10. TeX是一种乐趣:使用TeX不仅仅是一种工作手段,也是一种乐趣。它有挑战,也有荣誉。很多人在熟悉了TeX之后都开始把使用TeX作为一种爱好,而不是一件枯燥无味的劳动。(这个我的确感受到了!)

1.3 施工方案所涉及到的排版内容

我完成的施工方案最终结果形成了一本书,因此排版是按书籍的模式进行的。以下是这个施工方案所涉及的排版内容。

  1. 封面:用于展示项目名称、编写人及审批人等、编制日期,同时还需要一张展示项目情况的图片。

  2. 目录:这是我对常用的办公文档编辑软件最无语的地方,老是不是我希望的样子,从内容到外观都是如此。

  3. 章节:我希望内容能够分章、节、小节展示我编写的方案内容。每章独立成篇,每节内容都能有显眼的标题。章节都有我希望的格式,而且自动编号(这样就不用反复跳转去改编号了),格式可以进行统一设置。

  4. 表格:方案里有各种不同内容的表格,长表格能够跨页分段,而且能够标题重复。表格行的序号能自动编号免得反复跳转去改编号。表格可以有标题、有编号,能引用。

  5. 图片:方案中需要插入各种图片,这样可以更好解释需要表达的内容。图片需要标题,有编号,能引用。

  6. 页眉、页脚:我希望页眉页脚是我希望的样子,有公司名称(带图标那种)、方案名称、当前页所处的章节标题、页码这些。

  7. 文件分块:由于内容多(完成之后有100页左右),如果都写在一个文件里每次翻找内容很麻烦(WPS和Word就很麻烦,LibreOffce有分块编辑功能),如果按章节或其它逻辑关系进行分块编写,然后进行组合就方便多了。每次写一块,以后对有些固定内容的独立文件块还方便重用(比如组织机构、规章制度这些)。

大致就是这些需求,接下来我就把各个部分的需求分别实现。

基本内容

2.1 TeX文档的基本结构

最简单的TeX文档:

\documentclass{artical}

\begin{document}

\end{document}

包括两部分:导言区(\begin{document}之前的所有内容)和正文部分(\begin{document}和\end{document}之间的内容)。实际我们的TeX文档都会比这个复杂。

TeX文档可以添加注释,“%”字符后边跟着的内容是单行注释:

%当行注释。

在“iffalse”和“fi”之间的内容是多行注释:

iffalse

多行注释内容。

fi

多行注释除了用于多行的说明外,经常可以用来把不需要但又不想现在删除的内容隔离起来,这样就可以不参与文档的编译。

2.2 导言区
  • 首先,我们需要设置文档类,如下:

    \documentclass[a4paper,12pt,twoside,utf8]{book}

    这里将文档设置为书籍(book)模式,参数选项里分别设置A4纸、字体设置为12磅、双面打印、编码采用UTF8格式。

    设置双面打印格式是为了把页眉设置出企业名称(带图标的那种)、方案名称、章节名称、节名称等展示出来,但是后来遇到了打印机打印不了(卡纸)的尴尬,后来只好改成了 oneside 方式。

    当修改成 oneside 后,文档编译后自动完成单面打印排版了,控制起来的确是超级方便,优势凸显。

    TeX环境我用的是TeXLive,最新版为2023版,具体咋去下载安装这里就不用说了,百度一下就可以知道。这里贴一个官方网址出来:https://tug.org/texlive/。

  • 其次,为了完成复杂的排版功能,TeX会将很多命令组合成宏包,我们这实际使用的时候通过引用宏包来实现实现很多排版功能。引用宏包如下:

    \usepackage{宏包名称}

    为了实现施工方案的排版,我们可能会用到了如下宏包:

    序号

    宏包

    作用

    1

    ctex

    使用中文内容

    2

    fancyhdr

    设置页眉页脚

    3

    titlesec

    设置章节格式

    4

    graphicx

    控制浮动图片插入

    5

    longtable

    使用长表格

    6

    booktabs

    配合longtable绘制表格线

    7

    multirow

    控制表格跨行合并

    8

    multicol

    表格多栏

    9

    array

    控制表格布局

    10

    enumerate

    对有序列进行缩进控制

    11

    geometry

    控制页面布局

    12

    float

    提供位置控制

    13

    pgf

    创建PostScript和pdf格式的图形

    14

    tikz

    配合pgf宏包创建复杂图表

    15

    setspace

    设置间距

    在后续介绍中,我们每遇到使用相应内容设置时,就均支出需要用到宏包。

  • 另外,我们在这里集中设置文档排版格式。如:设置章节格式、设置字号、设置页面布局、设置文档基本信息(标题、作者、日期等),以及需要在文档内容中重复使用的替代宏、计数器(行号之类的)等。

    这部分后续做一个专门的小节来介绍。

2.3 正文部分

TeX的正文部分是我们书写文档的主要内容,也是排版输出的对象,包括封面、目录、章节、段落、参考文献等等。

  • 封面在后边将用一个专门的小节来介绍。

  • 目录在TeX中仅用一行代码就可以完成,TeX将根据文档书写的内容自动生成。生成目录的代码如下:

    \tableofcontents

  • 章节、段落这些内容是我们写文档的主要工作内容,涉及多方面的内容,后边会用大量篇幅来介绍这个。

  • 参考文献我们暂不涉及,有需要的可以留给你自己去补充这方面的内容吧。

在实现过程中,为便于编辑,我把各个不同部分的内容按逻辑划分成多个部分(如:封面、概述等)分别保存为独立的文件,在主文件中对其进行引入即可。如:

\include{./封面}

另外,如果希望对文档内容的局部,如工程量表这类,也可以保存为独立文件,然后插入需要的地方即可:

\input{./工程量表}

插入文档(\input)和引入文档(\include)的区别在于,引入文档将对引入的内容排版在一个新的分页,而插入文档则在当前位置进行连续排版。

导言区设置

3.1 设置页面布局

页面布局确定页面大小、横竖、页边距、分栏等等。

  • 页面大小:

    页面大小我们在\documentclass已经设置为A4的,如果整本方案不改变页面大小,就这样就可以。

  • 改变页面方向:

    如果在某个位置希望改变页面方向,可以用\landscape命令来改变:

    \begin{landscape}

    %横置的页面

    \end{landscape}

  • 设置页边距:

    我们这样来设置页边距:

    %设置页面布局:

    \geometry{left=3.18cm,right=2.54cm,top=2.54cm,bottom=2.54cm} %页边距

    这是参照WPS的默认页边距来的,但是考略到我们是采用的book模式,为了留出装订位置,将左侧保留为3.18cm,而把右侧页边距设置为和上下一致。

  • 设置分栏:

    在方案中基本没啥分栏啥事,但在书写协议合同的时候最后签章部分会有需要,这里就简单描述一下。

    \begin{multicols}{2} % 这个环境可以实现分栏,分2栏

    %分栏文档内容

    \end{multicols}

3.2 设置章节格式

%设置章节格式:

\titleformat{\chapter}{\centering\Large\bfseries}{第\,\chinese{chapter}\,章}{1em}{}

\titleformat{\section}{\raggedright\zihao{4}\bfseries}{\,\thesection\,}{1em}{}

\titleformat{\subsection}{\raggedright\zihao{4}\bfseries}{\,\thesubsection\,}{1em}{}

\titleformat{\subsubsection}{\raggedright\zihao{4}\bfseries}{\,\thesubsubsection\,}{1em}{}

第一行设置章的标题格式,内容居中,\Large的字号,采用\bfseries字体,章标题带“第”+章编号+“章”,间距为1em;

第二行设置节标题格式,\zihao{4}也是字号(在引入了ctex宏包后可用);

第三行设置小节标题格式;

第四行设置小小节标题格式,但在book模式下是没有意义的,要在artical

3.3 设置字号

由于我们之前已经引入了ctex宏包,因此我们可以这样设置后边的文档字号为四号字:

%设置中文字号:

\zihao{4}

3.4 设置文档基本信息

一般文档都涉及标题、作者、日期等,可以通过TeX相应的命令来完成。

\title{方案名称}

\author{企业名称或作者}

\date{X年X月X日}

第一行设置文档标题;第二行设置作者,对于我们书写的方案来说一般可能会写上企业名称;第三行设置编制日期。

当然,这里设置了这些内容并不代表会显示这些信息,我们可以在需要的时候使用它们。最典型的应用场景是生成默认封面页,会自动将这三个内容生成在封面页上。

3.5 计数器

在我们做方案的时候,经常都会做一些表格,表格里边一般就有“序号”这一列,里边装每行的行号。如果行号让系统自动编号就方便了。

这里我们就需要一个计数器。在每次做表格的时候将计数器重置,然后把计数器作为序号,就可以自动编号了。

首先,我们新建一个计数器:

%新建一个计数器,用于表格内的自动序号:

\newcounter{magicrownumbers}

然后,定义一个计数器变量:

\newcommand{\rownumber}{\stepcounter{magicrownumbers}\arabic{magicrownumbers}}

这里设置计数器变量对应与我刚才建立的计数器,而且数值以阿拉伯数字呈现。

最后,每次使用之前进行重置,这样计数器从1开始:

\setcounter{magicrownumbers}{0}%重置计数器

封面

TeX提供了一种简单生成封面的方式:

\maketitle

只需一行就能够生成封面,封面内容包括标题、作者、日期。

但是实际使用中,一般不会局限于以上需求内容。不同的项目对于施工方案封面的要求各有不同,但项目名称、编写人、审批人、编制日期这些一般都会有,同时可能还需要一张展示项目情况的图片。

实际操作中,我们使用单独的文件来实现封面,然后在主文件中引入封面文件,自成独立一页,如果以后遇到类似的需求,封面文件可以直接引用即可。

4.1 需用到的命令

序号

命令

宏包

作用

1

\graphicspath

graphicx

设置图片文件夹路径

2

\pagestyle

fancyhdr

设置页面页眉页脚格式

3

\centering

graphicx

设置内容居中

4

\Large

ctex

设置字号(四号14pt)

5

\huge

ctex

设置字号(二号20pt)

6

\textbf

ctex

设置文字粗体

7

\includegraphics

graphicx

插入图片

8

\linewidth

geometry

行宽

4.2 制作封面

以下我就按这个需求来实现施工方案的封面。

  • 设置图片文件夹路径:

    \graphicspath{{./}}%图片在主文件同一文件夹

  • 设置页眉页脚格式:

    \pagestyle{empty}

    页眉页脚格式默认有四种:

    序号

    类型

    意义

    1

    empty

    没有页眉和页脚

    2

    plain

    没有页眉,页脚中部放置页码

    3

    headings

    没有页脚,页眉包含章节的标题和页码

    4

    myheadings

    没有页脚,页眉页码和使用者所定义的信息

  • 设置封面标题:

    {\centering

    {\Large\textbf{工程名称}\\}

    {\huge\textbf{\thetitle}\\}

    \vspace{5ex} }

    这里\thetitle即是我们在前面设置的文档标题。

    \vspace{5ex} 表示后边生成5ex的竖向空白。类似地,\hspace{5ex} 用于产生5ex的横向空白。

    ex是排版的一种单位,表示一个X字符的高度。以下为TeX的常用排版单位:

    序号

    单位

    意义

    1

    pt

    点,1pt 约等于 0.35mm

    2

    mm

    毫米,1mm 约等于 2.83pt

    3

    cm

    厘米,1cm 约等于 28.35pt

    4

    in

    英寸,1in 等于 72.27pt

    5

    em

    字体宽度,1em等于当前字体中大写字母“M”的宽度

    6

    ex

    当前字体中小写字母“x”的高度

    7

    px

    像素,根据屏幕分辨率的不同,其实际大小会有所变化

  • 插入封面图片:

    \begin{figure}[H]

    \centering\includegraphics[width=0.9\linewidth]{图片文件名称}

    \end{figure}

    \includegraphics的两个参数,图片宽(width)及高(height)。这里设置图片宽度为0.9倍行宽,图片高度参数未设置,会自动进行比例缩放。

  • 签字栏:

    \begin{table}[H]

    \centering\large

    \vspace{20ex}

    \renewcommand{\arraystretch}{1.5} %调整行间距

    \tabcolsep=0.5cm %调整列间距

    \begin{tabular}{rl}

    编制:&\makebox[0.3\linewidth]{}\\

    \cline{2-2}

    审核:&\\

    \cline{2-2}

    审批:&\\

    \cline{2-2}

    \end{tabular}

    \vspace{2ex}

    \end{table}

  • 公司名称(图片表示):

    \begin{figure}[H]

    \centering\includegraphics[width=0.45\linewidth]{图片文件名称}

    \end{figure}

  • 日期:

    \begin{table}[H]

    \centering\large

    \begin{tabular}{cccccc}

    &年&&月&&日\\

    \end{tabular}

    \end{table}

封面页内容编辑排版好后,如前所述,保存为一个单独的文件(如:cover.tex),用\include插入到主文档中。

此外,一般会把封面页内容包含在titlepage环境中,这样TeX会自动将该环境内的内容独立为一个封面页,并不计算该页页码,页码默认从下一页起算。如下:

\begin{titlepage} 封面内容 \end{titlepage}

目录

用TeX书写目录比较简单,因为它是自动生成的。

如果我们采用预定义格式,只需要一行就可以了:

\tableofcontents %目录

实际上,我们希望目录页的页码显示格式和正文有所区别,而且是独立进行页码编号的。

因此,需要在添加目录内容之前先进行页码设置:

\frontmatter %关闭章节序号, 页码使用罗马数字 \zihao{4} %设置字号

另外,我希望目录页仍然要显示和正文相同格式的页眉页脚。由此,也需要在添加目录内容之前设置好页眉、页脚内容及格式。这部分我放到下一节讲。

页眉和页脚

上节讲到在添加目录内容之前需要先对页眉、页脚进行设置,这里我们来实现它。

设置页眉页脚的自定义样式需要用到宏包\usepackage{fancyhdr}。

  • 首先,通过如下命令清除页眉页脚样式:

    \pagestyle{fancy}

    \fancyhf{}

  • 然后,分别设置页眉、页脚的内容。

    对单面模式,用\fancyhead[L]、\fancyhead[R]分别设置左页眉为、右页眉的内容;用\fancyfoot[C]设置中页脚为页码。

    \fancyhead[L]{

    \begin{minipage}[b]{0.4cm}

    \begin{figure}[H]

    \left{\includegraphics[width=0.4cm]{企业徽标}}

    \end{figure}

    \end{minipage}

    \begin{minipage}[b]{0.4\linewidth}

    公司名称

    \end{minipage} }

    \fancyhead[R]{\rightmark}

    \fancyfoot[C]{\thepage}

如果文档采用的是双页模式,可以在奇偶页设置不同的页眉页脚。

对单面模式来说,\fancyhead[L]、\fancyhead[C]、\fancyhead[R]分别表示页眉的左、中、右的内容;\fancyfoot[L]、\fancyfoot[C]、\fancyfoot[R]表示页脚的左、中、右内容。

而在双面模式,在L等后加上E(奇数页)或O(偶数页)指明所属内容。如:\fancyhead[LE]表示奇数页左页眉。

章节

TeX中章节分为如下几级:

分级

命令

名称

备注

1

\part

部分

在artical模式不可用

2

\chapter

3

\section

4

\subsection

小节

5

\subsubsection

小小节

在book模式下不可用

6

\paragraph

段落

7

\subparagraph

小段落

在导言区可以用\titleformat命令设置章节格式。我将方案文档各章节进行如下设置:

%设置章节格式:

\titleformat{\chapter}{\centering\Large\bfseries}{第\,\chinese{chapter}\,章}{1em}{}

\titleformat{\section}{\raggedright\zihao{4}\bfseries}{\,\thesection\,}{1em}{}

\titleformat{\subsection}{\raggedright\zihao{4}\bfseries}{\,\thesubsection\,}{1em}{}

%\titleformat{\subsubsection}{\raggedright\zihao{4}\bfseries}{\,\thesubsubsection\,}{1em}{}%book模式不用

章节序号是自动进行编号的。如果不希望显示章节序号,可在章节命令后加*进行说明,如:

\section*{施工用电安全措施}

段落缩进使用如下方式设置:

\setlength{\parindent}{2em} %设置段落缩进为2个字

\indent %启动段落缩进

\noindent %关闭段落缩进

设置好格式后,就可以按如下层次组织文档了:

\chapter{安全生产保证措施}

\section{施工用电安全措施}

\subsection{一般规定}

段落内容

表格

我在封面制作部分已经使用过表格。接下来我们来实现各类表格。

8.1 基本表格

\begin{tabular}{lr}

序号&内容1

\end{tabular}

这样就显示了两列一行内容,没有表格线。用表格进行排版时就常用这种方式。

8.2 表格的表格线

如需带表格线需要用到\hline命令,竖线用|进行说明:

\begin{tabular}{|l|r|}

\hline

序号1&内容1\\

\hline

序号2&内容2\\

\hline

\end{tabular}

记得要在每行末尾加上换行\\。

8.3 表格的标题及标签

如果要给表格加上标题\caption,或者给表格加上标签\label以便在其它地方进行引用\ref,则加上table环境:

如下表(\ref{带标注的表格}):

\begin{table}

\caption{带标注的表格}

\label{带标注的表格}

\begin{tabular}{|l|r|}

\hline

序号1&内容1\\

\hline

序号2&内容2\\

\hline

\end{tabular}

\end{table}

8.4 表头文字居中

\begin{table}

\centering

\caption{表头文字居中的表格}

\label{表头文字居中的表格}

\begin{tabular}{|c|l|l|c|l|}

\hline

\multicolumn{1}{|c|}{\textbf{序号}}&

\multicolumn{1}{|c|}{\textbf{设备类别}}&

\multicolumn{1}{|c|}{\textbf{安装方式}}&

\multicolumn{1}{|c|}{\textbf{安装高度}}&

\multicolumn{1}{|c|}{\textbf{备注}}\\

\hline

1&类型内容&方式内容&高度内容&备注内容\\

\hline

\end{tabular}

\end{table}

可以看出,这里主要是使用了\multicolumn。这个命令本是用于进行合并表格列的,这里将合并列数设置为1(不合并其它列),但是将位置参数设置为c(居中),从而实现调整局部单元格内容位置的功能。

8.5 列单元格自动换行

\begin{table}

\centering

\caption{自动换行的表格}

\label{自动换行的表格} \begin{tabular}{|p{0.05\linewidth}|p{0.4\linewidth}|p{0.15\linewidth}|p{0.05\linewidth}|p{0.15\linewidth}|}

1&类型内容&方式内容&高度内容&备注内容1-备注内容2-备注内容3\\

\hline

\end{tabular}

\end{table}

注意上边tabular环境开始的时候设置的p参数。这里限制了表格列宽,当列内容超过设定宽度的时候,即通过将列内单元格换行保持设定宽度。

8.6 跨行及跨列表格

上边讲过,跨列用的命令是 \multicolumn,而跨行用的命令则是\multirow,需要\usepackage{multirow}宏包支持。如下:

\begin{table}[h]

\caption{劳动力配备计划和工段划分表}

\label{劳动力配备计划和工段划分表}

\begin{tabular}{|c|l|c|c|l|}

\hline

\makebox[0.05\textwidth][c]{\textbf{序号}}&

\multicolumn{2}{|c|}{\makebox[0.4\textwidth][c]{\textbf{班组}}}&

\makebox[0.15\textwidth][c]{\textbf{人数}}&

\makebox[0.25\textwidth][c]{\textbf{施工范围}}\\

\hline

\multirow{3}*{1}&\multirow{3}*{强电组}&电工&1&\multirow{3}*{一层强电}\\

\cline{3-4} ~&~&普工&2&\\

\cline{3-4} ~&~&焊工&1&\\

\hline

\end{tabular}

\end{table}

这里还用到了\makebox命令,目的是将表头的内容限制在固定指定的宽度呢,实现列表头固定宽度。

对于跨列断开的表格线,竖向线是自动绘制的,横线用\cline代替\hline实现。

顺便提一句,如果想画虚线的表格线,用\hdashline命令,这需要画虚线的包\usepackage{arydshln}支持。

8.7 跨页表格

这种表格比较复杂,采用长表格实现。需要\usepackage{longtable}宏包支持。为了绘制长表格的表格线,还需\usepackage{booktabs}宏包。

%长表格,能够跨页断分表:

\begin{longtable}{|c|p{0.22\linewidth}|p{0.3\linewidth}|c|c|l|}

\caption{长表格标题}

\label{长表格标题}\\ %必须要“\\”

\hline

\multicolumn{1}{|c|}{\textbf{序号}}&

\multicolumn{1}{|c|}{\textbf{项目名称}}&

\multicolumn{1}{|c|}{\textbf{规格型号}}&

\multicolumn{1}{|c|}{\textbf{单位}}&

\multicolumn{1}{|c|}{\textbf{数量}}&

\multicolumn{1}{|c|}{\textbf{备注}}\\

\endfirsthead %第一页表头

\hline

\multicolumn{1}{|c|}{\textbf{序号}}&

\multicolumn{1}{|c|}{\textbf{项目名称}}&

\multicolumn{1}{|c|}{\textbf{规格型号}}&

\multicolumn{1}{|c|}{\textbf{单位}}&

\multicolumn{1}{|c|}{\textbf{数量}}&

\multicolumn{1}{|c|}{\textbf{备注}}\\

\endhead %其它页表头

\endfoot %第一页表尾

\endlastfoot %其它页表尾

\hline\1&项目名称内容&规格型号内容&单位内容&数量内容&备注内容\\

\hline

\end{longtable}

从上边就可以看出,除了环境为 longtable 之外,长表格设置的重点是需要添加 \endfirsthead、\endhead、\endfoot、\endlastfoot 四段,以实现不同页的显示情况。

另外,一定要记住在\label命令之后必须加上 \\ ,否则会出错。

8.8 表格序号

表格序号是最常用也是很重要的一项,在实际使用中最好能自动生成。

为了实现表格序号的自动编号,序号先定义编号的变量。这个工作需要在导言区中实现:

%新建一个计数器,用于表格内的自动序号:

\newcounter{magicrownumbers}

\newcommand{\rownumber}{\stepcounter{magicrownumbers}\arabic{magicrownumbers}}

\setcounter{magicrownumbers}{0}%重置计数器

当在表格中使用的时候,像这样来实现:

\setcounter{magicrownumbers}{0}%重置计数器

\begin{table}

\begin{tabular}{|c|l|l|c|l|}

\hline\rownumber&类型内容&方式内容&高度内容&备注内容\\

\hline\rownumber&类型内容&方式内容&高度内容&备注内容\\

\hline

\end{tabular}

\end{table}

图片

图片在方案文档中用得是很频繁的,毕竟一图胜千言,表达力是在太强了。

9.1 单张图片

用\includegraphics命令插入图片,这个命令需要\usepackage{graphicx}宏包支持。

实际上我们使用的时候,避免图片乱跑,需要用到figure环境对图片进行浮动定位,也需要设定其标题及标签以便标识及在文档中引用。如下:

%单张图片:

\begin{figure}[H]

\caption{图片标题}

\label{图片标签}

\centering{\includegraphics[width=\linewidth]{图片文件名称}}

\end{figure}

9.2 图片共享路径

为了避免每次插入图片时都要加上文件路径,可以统一设置图片路径。如下:

%设置图片路径:

\graphicspath{{./文件夹/文件夹/}}

注意:如果页眉页脚上使用了图片,这种情况下需要使用完整路径,否则将因为找不到图片而造成页眉页脚的图片显示不出来。

9.3 两张图片并排

有时需要并排两张图片并分别设置标题,这种时候需要 minipage 环境协助(在设置带企业徽标的页眉时用过这种方式)。如下:

%两张图片并排:

\begin{figure}

\begin{minipage}{0.48\linewidth}

\centering

\includegraphics[height=6cm]{图片文件名称}

\caption{图片标题-1}

\label{图片标签-1}

\end{minipage}

\begin{minipage}{0.48\linewidth}

\centering

\includegraphics[height=6cm]{图片文件名称}

\caption{图片标题-2}

\label{图片标签-2}

\end{minipage}

\end{figure}

10 文档分块

用Word这类文字处理软件应该多少有这个经历——内容越写越多,越多越难组织;某部分内容做了调整,往往就需要通篇检查;内容重用性不好,每次交叉引用都需要进行全文格式调整编辑。这简直一个巨大的痛苦!

TeX提供的文档分块很好的解决了这个问题。我们根据文档的逻辑关系将文档划分成不同的片段,各个编辑完成,然后组合在一起,格式统一设置。

TeX提供了两个命令实现文档分块:\include和\input。

\include会在之前和之后使用\clearpage或\cleardoublepage另起新页,同时将文件内容贴到\include{}命令所在位置。只可以用在文档区,不可以用在导言区;不可以递归调用。

\input把文件的内容复制到\input{}命令所在位置,并不做其他多余操作。无区域限制;可以递归调用。

可以看出

\clearpage

\input{文件}

\clearpage

实现功能和

\include{文件}一致。

但\input更灵活。

11 后记

以上提纲挈领地描述了在编写施工方案的过程中用到的一些TeX命令和使用。由于篇幅原因,不可能把相关的知识全都描述完整,只是一个总结,希望能起到抛砖引玉的效果。

如果有更深入的需求,可以在这个的基础上进行拓展,比如页眉页脚内容可以更丰富一些,可以根据自己的需求自定义封面,表格可以赋予不同单元格的颜色,图片的排版和组织更多元化,加上参考文献等等……

最后,以上内容是用Racket的Scribble语言书写并自动生成的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值