ARM LINUX入门与实践
一个嵌入式爱好者的自学体验,从零介绍ARM和LINUX的方方面面博客稳阁丛书程方网名阿南曰曰强个嵌入式爱好者的自学体验南编著与实践京航空统无荟出版社内容简介本书是以作者自学、应用嵌入式 Linux时的笔记(包括实验、出现的问题、调试过程、经验总结等)为基础,再增加应用到的硬件平台而成的。全书以亲自制作实验平台硬件,亲自设计实验软件为线索,指导读者从零开始学习到最终掌握ARM和 Linux应用的方方面面。全书可以分成ARM硬件、ARM前后台系统应用和基于Lnux系统的应用3个部分。ARM硬件部分包括整个硬件的原理分析、原理图、PCB板的绘制、元件焊接、硬件的检测与调试。ARM前后台系统应用部分包括启动代码、处理器内部外设、扩展外部设备及接口等的所有底层软件分析与实现,还有 Bootloader、文件系统、GUI等的原理与实现。 Linux系统的应用部分包括基于PC机的操作、应用编程和驱动、嵌入式 Linux的汗发环境创建、各种硬件的驱动实现、网络编程、图形用户界面设计等。本书可作为有志于掌握ARM、 Linux等嵌入式技术的高校学生、工程师等的参考书。图书在版编目(CIP)数据ARM Linux人门与实践/程昌南,方强编著.一北京:北京航空航天大学出版社,2008.10ISBN978-7-81124-422-9I.A…Ⅲ.①程…②方…Ⅲ.①微处理器,ARM系统设计② Linux操作系统一系统设计Ⅳ.TP332TP316.89肀国版本图书馆CIP数据核字(2008)第150813号c2009,北京航空航天大学出版社,版权所有。未经本书出版者书面许可,任何单位和个人不得以任何形式或手段复制本书及光盘内容。侵权必究。ARM Linux入门与实践一个嵌入式爱好者的自学体验程昌南[网名阿南]编著方强责任编辑董立娟北京航空航天大学出版社出版发行北京市海淀区学院路37号(100191)发行部电话:010-82317024传真:010-82328026http://www.buaapress,comcnE-mail:bhpress@263.net涿州市新华印刷有限公司印装各地书店经销开本:787mm×960mm1/16印张:31.5字数:706千字2008年10月第1版2008年10月第1次印刷印数:;5000册ISBN978-7-81124-422-9定价:49.50元(含光盘1张)本书的使用及学习方法ARM和 Linux学习方法的体会如何才能学好或尽快上手ARM和 Linux?这是很多初学者想问的,也曾经在网上讨论过。其实学习没有捷径,主要还是取决于学习态度和学习方法。ARM、 Linux也一样,在此阿南根据自学过程中的体会和网上的讨论作一些总结。ARM的学习。有了单片机或计算机结构的基本知识、C语言的基础,上手ARM是比较容易的。学习ARM,首先应该了解一下ARM的体系结构,了解它有哪些版本、哪些模式、哪些寄存器、异常等。这方面的内容可以参考《ARM体系结构与编程》一书,这本书介绍的内容还是很全的,可以先快速地浏览特别是汇编指令不需要记住,以后应用时再查。其次选定一种具体厂家型号的ARM处理器,学习该处理器相关的开发工具的使用,如开发环境、仿真器及评估板等。然后可以分析该处理器的外围扩展方法,如 SDRAM、 NAND Flash等,一般官方或第三方都会提供原理图,可以用来分析。接下来要理解该处理器的启动过程,亲自尝试从块裸板逐步运行自己的应用程序,也可以参考官方的启动代码及例程。最后就可以调试、测试该处理器的各种外围部件,例如定时器PWM串口、LCD等,特别是中断及执行过程。Liux的学习。尽管我们最终应用的是嵌入式 Linux,但还是要先在PC机下学习,因为无论基于PC机还是嵌入式处理器的 Linux开发、编程、调试等都是相近的,而PC机的性能、资源等都更加丰富,嵌入式 Linux的开发环境通常也都建立在PC机 Linux环境下,另外Linux大量的书籍也都是针对PC机写的。阿南觉得学习的顺序应该是先在PC机上安装Linux系统,再参考相应的入门书籍,主要是熟悉 Linux环境,学习常用的命令和操作(不一定多,基本、常用的就可以,以后在使用过程中慢慢积累),理解各 Linux下的目录结构与作用等。其次,学习在Liπux环境下编程。可以参考《GNU/ Linux编程指南》或《UNX环境高级编程》,它们介绍了文件描述符的概念,打开读写等操作的系列基础知识;没有这些基础而直接看《 Linux设备驱动程序》会觉得困难。再次,了解一下 Linux内核源代码树的目录结构、编译等。最后,学习《 Linux设备驱动程序》,理解驱动程序的结构框架等。根据实践需要也可学习网络编程和图形用户界面GUI编程,可以参考学习《UNIX网络编程》和《C++ GUI Qt3编程》。另外由于 Qt GUI是基于C++的,所以需要学习C++的知识,也可以选择其他如Microwindows、 MiniGUI等。有了PC机的 Linux基础及编程知识后,就可以直接应用于嵌入式前言了!此时需要一个硬件平台(如开发板或直接的产品等目标系统)和该平台的开发环境。一般的处理器原厂或第三方都会提供开发环境,所以不需要我们移植,它包括建立在PC宿主机上的编译等工具和嵌入式 Linux内核(包括硬件驱动等BSP)源码。此时只须学习开发环境的建立和使用以及将PC机所学的知识应用于具体的嵌入式平台。如果涉及硬件及驱动那么应三该有一定的硬件调试和解决问题的能力,此时单片机、ARM基础及外围设备接口的调试能力将起到很重要的作用。很多朋友(包括非电子、自动化专业的朋友)都希望将来从事 Linux驱入门与实践入动方面的工作,认为学习了Limx驱动方面的知识就OK了而往往忽略硬件本身的调试解决问题能力,阿南觉得这是不正确的。因为 Linux驱动与前后台控制硬件外设的区别只在于它与应用程序的接口,它要遵循一定的结构和规则,这种规则涉及的也就是通常讲的 Linux驱动知识和技术,它是固定的,是容易掌握的,只要遵循就不会出问题。而硬件及外设是千变万化的,它所涉及的技术是多方面的,除处理器本身外,还有各种接口及协议、数字、模拟技术等。这些在设计、调试时是很容易出现问题的,此时要求我们有一定的调试、测试手段和方法。所以,阿南认为要想成为一名优秀的 ARM Linux驱动工程师,首先必须是一名优秀的、具有丰富调试经验的单片机或ARM处理器应用工程师本书的使用与相关知识的同步学习曾经有一个朋友这样告诉阿南:“如果看您的笔记就能掌握 ARM Linux驱动,那就是最好的目的了”。对不起,阿南做不到,写不出这种“葵花宝典”。这本书的前身是在21CBBS上发表的《嵌入式 Linux人门笔记》,主要是阿南在自学 Linux和在项目中应用 Linux时记录的笔记、出现的错误和心得等,是自己平时工作中非常重要的参考手册。发表后得到众网友的喜爱、支持及北航出版社胡晓柏主任的鼓励,故花更多的时间、精力将笔记丰富出版。嵌人式是一门实践性很强的技术,而《嵌入式 Linux入门笔记》主要记录的是 Linux等相关的软件部分,没有包括硬件相关的部分,为了让读者能够亲自实践,故增加了ARM及硬件部分。并且亲自设计了AN2410SSB(最小系统板)和AN2410MB(扩展底板),给出了所有原理图,介绍了制作过程,记录了用裸板开始调试的步骤和过程,介绍了如何让ARM运行及启动等各方面的内容,以及前后台(无操作系统下)的应用等。本书没有将所涉及的技术及理论都包括进来,不仅篇幅有限,而且也没有必要,因为已有太多相当经典的资料。本书第1章为概述。第2章分析了硬件的原理图,读者应该阅读S3C2410A的数据手册,特别是信号引脚功能描述,内存控制部分。第3章主要介绍了关于 Protel原理图和PCB板的绘制,如果读者没有 Prote的基础可以参考人民邮电出版社的《电路设计与制版— Protel99入门与提高》或其他 Protel书。如果有 Protel基础,只是没有绘制过多层板,那么可以参考人民邮电出版社的《 Protel99E多层电路板设计与制作》。第4章介绍了S3C2410A系统核心部分的调试方法和工具的使用,以及利用工具进行测试的方法、手段。该部分是整个系统的基础,也是非常重要的,读者需要多试验,出现问题时多参考S3C2410A的数据手册。第5章专门分析了S3C2410A的启动代码,用于理解S3C2410A的启动过程,中断处理过程及存储器等前言相关部分,也是非常基础和重要的。因为启动代码由汇编组成,此时可参考清华大学出版社的《ARM体系结构与编程》,学习理解ARM的汇编语言等相关知识。第67章为硬件平台上实现ARM的外围实验和扩展实验读者仍然要参考S3C240A的数据手册,在仿真调试情况下理解ARM内部的寄存器、存储器、状态寄存器等与ARM体系相关的知识。另外还要阅读如WAv音频格式,SD卡规范及相关的数据手册等。CPLD部分读者可以参考电子工业出版社的《基于 Quartus II的FPGA/CPLD设计》,学习基本的工程创建,图形设计输入,编译和编程等。 Altera cpld更详细的资料可以去官网下载。第8章介绍了前后台系统还需要考虑的相关知识: NAND Bootloader、文件系统和图形界面。图形界面部分,读者需要理解一些基本的绘图原理和算法,可以参考机械工业出版社的《计算机图形学的算法基础》。第9章介绍了在PC机下的 Linux各方面技术,这些都是嵌入式 Linux的基础,非常重要,涉及的知识内容也很多。在该章中,阿南只是总结了一些实践操作的部分内容所以还需要读者自己去参考学习Linux的这些书籍: Linux系统的基本操作参考清毕大学出版社的《 Red hat linuⅹ9系统管入门与实践理》(这本书应该被实践安装的桌面 Linux系统相应版本的书替代),应用编程参考清华大学出版社的《GNU/Linuⅹ编程指南》或机械工业出版社的《Uniⅸx高级环境编程》,驱动编程参考中国电力出版社的《 Linux设备驱动程序》。第10章主要介绍S3C2410A的嵌入式 Linux开发环境的搭建及工具的使用。这里采用的是MIZI公司的 Linux for s3C2410平台,读者也可以直接参考《 MIZI Linux sdk for s3C2410》文档。第11章介绍在S3C2410A下实现 Linux驱动,很多原理性的知识依然要参考《 Linux设备驱动程序》一书,而且要多试验验证。读者在调试实现过程中也可以直接参考 Linux for s3C2410的内核源码中和硬件、驱动相关的代码例子(可以在 Windows系统下安装 Source insight软件,方便阅读 Linux内核源代码)。第12章介绍嵌人式 Linux桌面系统,可读写文件系统 YAFFS的实现,嵌入式Web服务器BOA、NFS及WIFI。这些都是实践性很强的应用操作,所以读者主要是应用它们,出现问题时上网查找相关应用操作,寻找解决问题的思路,再测试验证。第13章是网络编程方面的知识,主要参考清华大学出版社的《UNIX网络编程第1卷:套接口API》,目的是掌握TCP客服机/服务器的实现及网络的调试方法。第14章介绍嵌人式GUI开发环境的创建和开发方法,桌面系统的移植。学习前读者应该先学习基于Qt的应用编程,可以参考北航出版社的《C++GU1Qt3编程》,如果没有C++的基础可以参考清华大学出版社的《C++程序设计教程》。致谢感谢我的导师(也是本书的另一位作者)—方强多年来的关心与指导,且对本书付出的辛苦劳动。感谢我的公司——广州市天誉创高科技有限公司及同事们,他们对本书提供了很大帮助。段克为本书绘制了部分电路图,丁亚锋为本书编写并调试了部分程序。另外,还要感谢曾水生、李玉琪、刘卫国、张端峰、龙靖、彭雄飞、王勇、黄焕立、王菊林、黄斌、何运辉、吴建、方斌、黄伟、傅良英、胡孝发、黄志艳、张凯、欧孔德、梁家乐、宁雪玉、蔡青青及蓝萍等人的帮助。前言感谢深圳英蓓特公司提供 Realview mDK开发工具及相关资料和技术支持。感谢EDN网为本书创立书友会(hp:// group. ednchina, com/999/)和开展本书的AN2410SSB学习板助学等活动。感谢北京航空航天大学出版社嵌入式系统事业部主任胡晓柏的信任与鼓励,感谢21CBBS上网友们的支持、建议和帮助。感谢我的父母、老师、姐姐、姐夫及所有亲戚朋友们,你们的关心与爱都是阿南不断前进的动力。入门与实践阿南的技术水平、经验都还很欠缺,书中的错误和不妥之处在所难免,恳请广大读者朋友们批评指正;也欢迎登陆21CBBS的ARM论坛或《 ARM Linux人门与实践》书友会与阿南交流,共同提高。阿南2008年9月自序嵌入式自学经历和体会目的回想从2000年自学单片机开始,到后来的ARM,再到 Linux,自己经历了很多,也体会了很多,有经验也有教训,所以希望通过此次机会与读者相互交流,也让更多的爱好者在自学过程中有所借鉴。如果能得到您的共鸣,可以发送电子邮件给阿南:c422@hotmail.com。初识单片机和电子竟赛大一的暑假没有回家,留在学校里希望能向师兄学点技术,后来他向我推荐了单片机和全国大学生电子竞赛。和普通学生一样,阿南认为能参加电子竞赛是多么自豪呀!且对单片机很是好奇,于是去图书管借了些基础书来阅读,很快就被它的强大功能吸引,也产生了迅速学好、将来参加电子竞赛的念头买仿真器,下定决心学好单片机当时学校还没有开模拟、数字电子等专业基础课程,所以学习单片机还是很困难的,一般阿南都拿两三本单片机基础书一起对照着看,旁边还放着模拟、数字等基础教程以便查阅。暑假很快就过去了,期间虽然专心学习,但进展很慢,后得到师兄的指点:要想学好单片机,必须要有个仿真器实践大概1500元。这么贵?(这对农村孩子来讲,实在太贵了!另外买了之后,还不一定就能学会呢!)经过一个星期的思想斗争,终于下定决心要买。当时的想法是这样:“从小家里就穷,家人为了阿南付出了很多心血,所以阿南必须学好技术,好将来回报他们;要参加电子竞赛且取得好成绩,在技术上必须要超越同学、师兄及其他院校的同齡人,而论聪明、基础不可能占优,唯有比他们更早开始,更加勤奋和善于思考;是的,很心疼父母的这些辛苦钱,也正是这个原因更促使阿南尽最大努力,更加勤奋地学习”。培养兴趣,它是最好的老师买了仿真器后,阿南比以前任何时候都更加勤奋了:图书馆、书店找书学习,独自骑两小时自行车买器件,万能板上焊接电路,学习自己编程,用仿真器仿真,万用表测量各种信号变化等。对于单片机,阿南到了近乎疯狂的地步,调试遇到困难时的痛苦、解决问题后的畅快和兴奋,都让阿南对它产生了很深的感情,也已不再是在当初的巨大压力和包袱下学习了,而是在种很浓厚的兴趣下享受着它带来的喜怒哀乐。自序冲破难关,学会独立时间过的真快,自学单片机已经一年了,在这期间阿南对51系列单片机的原理已经理解得差不多了,也实验、测试了所有的片内外设,但只有并行通信测试还一直没有成功过,就是ADCo809的A/D转换实验。这个实验已经断断续续调了近两个月,分析了书上所有的相关内容,对原理也已经很清楚了,但仿真器就是采集不到正确的数据。当时遇到困难时没有像现在这样方便的网络,也没有示波器,只能分析书本和凭自己的想象和试验,另外总是期盼着师入门与实践兄能帮助解决。后来静下心来想了各种解决测试的方法和线索,一个个排除,最终在仿真器说明书中发现“POD52仿真头的P0、P2口只能用作IO用,POD51可以作为总线用”。由于直使用POD52的仿真头,所以读/写等信号都没有出来,换成POD51果然就成功了。(当时真的很兴奋!)之后,单片机学习就变得非常顺利,一般的系统都能独自完成,也终于可以自豪地宣告:阿南的单片机人门啦。在这一过程中阿南体会到了独自思考、解决问题的重要性,也明白了开发工具在实践过程中所起到的作用。(其实很多问题是要用示波器测试和请求工具厂商技术支持的。)上帝是公平的,机会留给有准备的人人门单片机后,不仅自己做些小课题,也用它完成课程设计、参加校里组织的竞赛等。虽然没有参加院里的工程师摇篮协会,但自己的勤奋、动手能力及对单片机的执着还是得到了老师的肯定。初识贾老师(负责组织参加全国大学生电子竞赛相关事务的老师)时,他给了一道1999年的竞赛题——工频真有效值表。该题有很多的运算,考虑到汇编语言实现的难度,所以阿南学习用C语言为单片机编程。由于大一时开过C语言的基础课,再加上良好的汇编语言基础能力,这个课题很顺利地完成了。之后,贾老师将阿南推荐给方老师,目的很明确:学好单片机,备战2003年SONY杯全国大学生电子设计竞赛。有了方老师的指导,再加上实验室的各种硬件,阿南开始了一个新的阶段:不仅学习单片机和C语言编程,还要学习单片机以外的相关技术,如 Protel绘制原理图、PCB制板;学习各种总线和协议,学习电动机控制等;还要学习PLC、MCGS组态软件以及VB。这2年半的时间里,阿南早已不仅仅是为了竞赛更多的是在体会和享受着整个学习过程。回想自己5年的大学学习生活,感觉真的很幸运,最初的王师兄,后来的贾老师和方老师、女朋友及所有帮助过阿南的朋友,在此对他们表示衷心的感谢,感谢他们总是在适当的时候出现指导和帮助阿南,让阿南为之感动,为之奋斗。同时,也深深体会一个道理:机会总是留给足够真诚,足够勤奋、执着,有所准备的人;连自己都不能感动,何以感动别人?感动上帝?坎坷的一年,技术上的追求而不断放弃工作当同学们纷纷进入大中专院校,从事让多少人羡慕的稳定的教师职业时,阿南却选择了南下打工,希望在技术上有更高的造诣。当时ARM在国内已经流行,阿南和广大爱好者一样,和当年初识单片机一样,也被它深深地吸引。辗转了几家公司后,终于可以从事单片机的应用开发。半年后,阿南作出了一个让
- 2021-05-06下载
- 积分:1
Latex排版学习笔记
Latex排版学习笔记,用于Latex学习入门与提高。共9章内容,较为全面。目录第一章基本使用1.1基本排版流程1.2文本排版..1.2.1英文文档12.2输入特殊字符1.2.3段落换行124中文文档777789991.3列表环境1.4文档结构101.4.1文档类别101.4.2标题摘要111.4.3章节目录1.4.4参考文献121.5插入表格131.5.1基本表格131.5.2跨列表格131.5.3浮动表格141.6插入图片151.6.1图文并排的小图片16.2图文分开的大图片161.6.3位置浮动的大图片17第二章格式调整21各种长度单位1922字体使用192.2.1字体编码193日录222字体族名20223字体系列20224字体形状20225字体大小23段落对齐2223.1居中对齐22232单侧对齐2224页面大小布局232.5目录页格式24第三章数学公式2631两种公式263.2各种字母273.3数学函数3.4配对括号283.5多行公式3.6定理环境31第四章图形绘制334.1画交换图3341.1用 ascd包画交换图3341.2用 diagrams包画交换图33413用ⅹy-pic包画交换图344.2画图语言和画图软件3543PGF/TkZ绘图364.3.1画流程图3643.2函数图像374.3.3几何图形第五章演示文稿395.1最简单例子5.2逐步显示4153主题模板4254中文演示43目录第六章高级应用446.1输入各种撇号引号6.2文件拆分及独立编译446.3合并多个PDF文件6.4错误处理466.4.1编译时的错误信息476.4.2编译时的警告信息47第七章背景资料7.1TeX系统的前世今生497.2TeX系统的目录结构507.3TeX系统的文件查找51第八章字体详解8.1字体类型与文档格式548.2新字体选择方案NFSS5583中文排版历程568.3.1CCT中文排版8.3.2CJK中文排版578.3.3 XeTeX中文排版第九章相关软件609.1纯文本编辑器609.1.1 TeXmaker编辑器6091.2 Te Xworks编辑器619.1.3正向搜索与反向搜索629.2可视化编辑器639.2.1IyX文档处理软件639.22 TeXmacs文档排版软件659.3新版 Office的公式排版6694在网页中显示数学公式67附录ATeX排版原理69A.1读取文件A.2生成盒子70A.3分段为行71A.4组行为页6日录附录 B PostScript语言75B.1PS语言的基本知识B.2PS语言的点阵图像B.3PS语言的点阵字体附录C常用宏包介绍81第一章基本使用1.1基本排版流程和 Microsoft office Word等所见即所得的办公软件不同,用Ix排版文档,首先要用文本编辑器编辑好tex文档,然后通过各种程序编译,得到pdf文档用于打印或者阅读。基本的排版流程如下图:xelatextexpalatelatexs pdfdvipsd.ps般我们经常用 datex或者 xelatex程序直接从tex文件生成pdf文件如果是中文tex文档,优先使用ⅹ elate程序编译。如何使用编辑器以及编译文档在后面的章节有详细介绍。12文本排版121英文文档最简单的TX英文文档如下:第一章基本使用l hello. texdocumentclass La4paper]articlesusepackagethyperref]egintdocumentyHello worldend]我们来看看上面的tex文档内容。在Ix里面,每行的%符号后面的内容都表示注释,在编译时都会被忽略。因此第一行的内容没有任何结果接着看第二行。在ⅣX文档中,用开始的字母串来表示一个命令,这里的 documentclass是1X文档的基本命令,用于指明文档类。命令后面用花括号包含的内容是该命令的参数,必不可少。对于这个例子, article参数就指明我们撰写的是一篇文章,类似地还可以用book或者 report参数,分别表示书籍和报告。命令后用方括号[]包含的内容是该命令的选项,选项可以省略,省略时必需连冋方括号也去掉。如果选项省略,将会使用默认值。这里例了的a4 paper指明我们文档的页面是A4纸张的大小,改为b5 paper就是B5纸张的大小。第三行的 usepackage命令也是IX的基本命令,用于载入I①X宏包I系统中包含了各种各样的宏包,对IX的基本功能作了各种扩展。我们这一行载入的 hyperref宏包后面将介绍到。接下来在 begin{ document}和 endidocument}之间的部分我们称为正文区,一般用于正文内容的撰写。这个例子的正文内容只有简单的 Hello wor1d!对应的,在 documentclass和 beginidocument}命令之间的部分我们称为导言区,一般用于载入宏包,定义命令和调整格式。X文档把格式和内容部分分开,是一种良好的设计准则。1.2.2输入特殊字符在ⅣX的文本内容中,大部分字符都可以直接输入,但是#,$,%,&,{,}这几个字符由于有特殊用途不能直接输入。我们可以按照下表的方式输入这些特殊字符输入#${}、-O显示#8%k输入 Textless extgreater extbartextbackslash显示1.3列表环境另外, Latex中是区分左右引号的,输入`和‘分别显示左右单引号,输入`和“分别显示左右双引号。连字号、起止号和破折号看起来都是一个差不多的短横线,但输入的方式也是不同的。用-得到连接单词的连字号-,用--得到表示数字范围的起止号,用---得到英文的破折号。123段落换行用一个空行或者par命令可以开始新的段落,同时会有默认的首行缩进。用或者 newline可以强制换行在下一行继续,且在下一行不会有缩进。12.4中文文档Latex中文文档的排版有各种方式,例如CCT,CJK,ⅹeCJK等等。目前最优秀的方式是用ctex文档类来排版中文文档,它在其它各种方式的基础上以一致的方式解决了中文排版的问题。例如:documentclass [UTF8] Ictexart]eginidocument)中文内容测试!endfdocumentH使用这种方式,只需要将文档类从英文的 article改成 ctexart,所有中文环境和章芇编号等等都已绎按照中文习惯设置好了,简单易行。例子屮的UIF8这个可选参数指明了中文文档的编码。编码主要有这两种:GBK和UTF8,而不同的 Latex编辑器对中文文档的默认编码不同。以CTeX套装29版本包含的两个编辑器为例, Winedt编辑器的默认中文编码为GBK,而ReWorks编辑器的默认中文编码为UTF8。因此,对于初学者,为了避免乱码的出现,最好根据编辑器的默认情形来选择编码,如果使用的是 Winedt编辑器,将文档的编码设为GBK,如果使用的是reκ works编辑器,将文档的编码设为UTF8。如果编码不指定,默认为GBK另外,对于bok和 report文档类,也有对应的 ctexbook和 ctexrep中文文档类,其用法类似。1.3列表环境Latex的命令实际上也有不同的类型,形如begin环境名}.lend环境名}第一章基本使用的命令组合我们称为环境。环境一般用于对某种类型的段落用特殊的形式来显示。在文本段落中,常见的环境有列表环境。列表环境有三种:无序列表( itemize)、有序列表( enumerate)和描述列表( description)。它们的使用方式和显示效果如eginfitemize]item无编号的列表无编号的列表item带编号的列表·带编号的列表item带标签的列表带标签的列表end[]Abegintenumeratehitem无编号的列表1.无编号的列表item带编号的列表2.带编号的列表iem带标签的列表3.带标签的列表endtenumeratelegintdescriptionhitem[无序列表]无编号的列表。无序列表无编号的列表。item[有序列表]带编号的列表。有序列表带编号的列表item[描述列表]带标签的列表。描述列表带标签的列表。endidescriptionh14文档结构4.1文档类别前面已经讲过,用下面的命令可以指定文档类documentclass[选项]{文档类其中文档类有文章( article),书籍(book),报告( report),书信( letter)这几种选择。文档类的选项有下面这些。页面大小(a4 paper,a5 paper,b4 paper, letterpaper, legalpaper, executiveper):默认的 letterpaper常见于美国,其大小为216毫米乘以279毫米(即8.5英寸乘以11英寸),而国内常用的a4 paper的大小为210毫米乘以297毫米,两者稍有区别。虽然这里可以指定不同的页面大小,但是纸张却始终为A4大小。比如你指定为A5页面大小,那么生成的PDF文件中,内容只在A4纸张的左上角。
- 2020-11-27下载
- 积分:1