空间与位置.docx
- 文档编号:5338876
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:19
- 大小:104.50KB
空间与位置.docx
《空间与位置.docx》由会员分享,可在线阅读,更多相关《空间与位置.docx(19页珍藏版)》请在冰豆网上搜索。
空间与位置
【次页】:
6.LaTeX的标准文稿类别【标题页】:
latex123【前页】:
4.实际上排版玩看看 目录 索引
5.空间与位置
前一章曾提到过,学会控制空间就学会排版了!
Knuth教授在他的TheTeXbook一书中也曾形容使用TeX排版的情形:
一个版面就像一个含有胶水(glue)的页面,然后每一个要排版的内容就是各种不同的box,在这些box还没有固定正确位置时,都是可以移动的(胶水还没有干),一旦排版完成,胶水就干了,于是每个box的位置就固定无法再移动了,除非又从头再来。
一个字母、一个单字、一个句子、一个段落、一个符号、一个图形、一个表格都可能构成一个TeX的box,甚至box中还有box的情形。
这章想讨论的,就是这个box如何安置他们到正确的位置,让每个box之间的空间都能达到恰到好处,所以,到底是在控制boxes的属性、位置,还是调整glue的空间,就看各位怎么去看待了(请注意,box不一定是可见的!
在TeX里头,glue是可以调整的。
)。
我们前面所讨论到的英文句点后空白的调整、italiccorrection、\linespread及\parindent这些都是在调整glue。
通常,在LaTeX系统里头,指定单位常常不会是绝对固定的,会视情形做小限度的自动微调,这是版面空间配置上的需要。
5.1LaTeX中使用的度量单位
要精确描述和调整LaTeX中的空间及位置,我们必需要有个标准的度量单位。
以下都是在LaTeX常会用到的单位。
这里有绝对单位及相对单位之分,除非必要,不然,一般是建议使用相对单位,原因是,他会随着文稿字号改变时跟着做适当的调整。
当然,在很讲求精确、固定大小的显示时,就得使用绝对单位了。
这里如果是阅览HTML格式版本,请另参考PDF格式版本,以免表示上失真。
以下表格中所画出来的长度仅供参考用。
5.1.1绝对单位
这里要注意的是TeX/LaTeX系统中所谓的点(point),指的是一般的printerpoint,也就是
inch,但在Adobe的规格中,例如POSTSCRIPT语言中的所谓点,他是bigpoint,等于
inch(小数点的部份舍去了),会比一般的printpoint稍微大一点点。
5.1.2相对单位
在TeX里头所谓的em,其实,精确而言是指在Knuth教授设计的ComputerModern字型里头的em-dash的宽度,由于字母M实际上是包在字型上所谓的em-square假想方格中,而em所指的宽度是指这个em-square的宽度,但字母M本身并不全占有这个em-square,因此这样就会造成差异了。
所以以字母M的宽度来说明的话容易有疑义。
LaTeX有个指令\quad这就是产生一个正确em的宽度的空白,所以在Knuth教授的TheTeXbook中,说明em就直接说他是一个`quad'的宽度。
5.2版面大小
我们对于所能控制的一整张纸的范围都可以称为版面。
当然,我们的内文(body)并不是占满整张纸的范围,上下左右都会留有一定的空白。
小时候在宣纸上练习写毛笔,老一辈的都会要我们留「天地」,这就是指内文四周的空白,除了视觉上的理由,大概也是人生的哲理吧?
:
-)
在编辑上,也有人称内文(body)的部份为「版心」或「版口」,四周的空白部份,则称为「版边」。
突破版心、版边的设计,就称之为「出血」,例如,以背景图布满整张纸当做是背景的场合,以这个背景图而言,就无所谓版边了。
但这在LaTeX通常是不会有这种情况出现,除非特意去指定内文和纸张大小同样范围。
当然,在内文以外的空白,也并非全是空白,他包含了页足(footer),页眉(header)及边注(marginalnote)的部份,记载关于页数、批注等信息。
5.2.1版面图解
这里所谓的纸张大小,指的是paperwidth和paperheight所围成的范围,并非实际上手上拿到的纸张大小,实际在手上的纸张通常会略大于我们这里的所谓纸张,所以,正式打印时,还需做微调或截切才会是真正的这里所谓的纸张大小(版面大小)。
这是10pt内文大小,如果不指定纸张的话,LaTeX预设会使用美式letterpaper的大小,如要使用欧、日式的a4paper的话,要另行指定。
我们可以稍微看一下LaTeX预设是如何安排版面空间的。
其中Header(页眉)、Footer(页足)及边注的空间是不含括在内文Body里头的,这里是只是单面的图,如果是双面的话,那偶数页和奇数页的边注是要左右对换的,也就是说这个图是奇数页,偶数页的话,边注是在左边。
这里我们来看一下这些值所代表的意义:
指令(值)
意义
\paperwidth
纸张的宽度
\paperheight
纸张的高度
\textwidth
内文(body)的宽度
\textheight
内文(body)的高度
\headheight
页眉(header)长度
\headsep
页眉与内文间的距离
\footskip
内文底至页足底之距离
\topmargin
页眉上方的空白
\marginparwidth
边注的宽度
\marginparsep
边注与内文的距离
\marginparpush
两边注间距
\oddsidemargin
内文左边的空白大小
\hoffset
微调版面在实际纸张的左右位置
\voffset
微调版面在实际纸张的上下位置
\hoffset及\voffset就是在调整版面在实际纸张上的正确位置,这样印出来的时候才会在实际纸张的中央。
头昏了吗?
这很正常,因为LaTeX的版面设定对初接触的人来说,是恶名昭彰的困难、麻烦,因此这里不多谈他的设定,刚开始实在没有必要把时间花在这个地方。
如果实际想调整版面,建议使用geometrypackage。
举个例子,想让各边缘是2cm就好,那只要在preamble区设定:
\usepackage[margin=2cm]{geometry}
就可以了,如果以12pt大小的字,a4paper纸张大小的设定的话,以中文而言,大约是每行40个中文字,这是内文的宽度。
可以视情形自行调整margin的值就行了。
我们很希望,下一版的LaTeX能对这方面做改善,以方便使用者设定。
5.2.2纸张大小
纸张
大小
纸张
大小
a4paper
21x29.7cm
letterpaper
8.5x11in
a5paper
14.8x21cm
legalpaper
8.5x14in
b5paper
17.6x25cm
executivepaper
7.25x10.5in
至于如何指定纸张大小,这里先简单说明一下这篇文章的设定,谈到LaTeX的文稿类别时会再详细说明。
%本文的设类别设定
\documentclass[12pt,a4paper]{report}
所以,这篇文章使用的是a4paper,内文字型的大小是12pt。
方括号的参数是选项,可以省略,如果省略的话,默认值就是10pt/letterpaper。
5.3调整横向空间
这里的横向空间,例如~这单字间正常空白,及\quad这个em宽度空白,都是在调整横向的空白。
但如果是要更大、或更小的空白时该如何调整呢?
底下我们就来看看LaTeX中有什么控制指令可以运用:
5.3.1调整横向空间的指令
指令
意义
\hspace{单位}
向右空出某个度量单位的空白,如果是负数,则是向左
\hfill
让左右两旁的文字往两边扩张至一个行宽为止
\quad
空出一个em单位的空白
\qquad
空出二个em单位的空白
\thinspace
空出
个em单位的空白
\enspace
空出
个em单位的空白
\dotfill
作用和\hfill相同,只是空白变成点
\hrulefill
作用和\hfill相同,只是空白变成一横线
\centering
此指令以后的文字将会居中排列,左右沿将不切齐
\raggedright
此指令以后的文字将会居左排列,右沿将不切齐
\raggedleft
此指令以后的文字将会居右排列,左沿将不切齐
\centerline{}
将大括号内的文字居中排列
一行的行首使用\hspace{单位}时将会失效,这时可以加个星号,例如\hspace*{3em}。
在使用\centerline{}的场合,对于短文句很方便,因为他不会影响以下的文字,但他也不会折行,甚至加入换行符号也无效。
所以如果文句长度超过一行的行宽,他会超出边界,甚至就首尾的文字就看不到了。
其中\thinspace又可以使用简化的\,来代替,主要是用在引号中又有引号的情形,通常这种情形,两引号之间要有个间隔,以便区分,例如:
``\,`Superman',hesaid.''
表现出来会是:
这样才能区分出不同引号,否则会变成一个连三个graveaccent的引号。
请注意,由于这个指令是由非字母符号构成,所以,他的作用范围在遇到符号本身后就结束了,后面不必空白或以大括号来限制其作用范围,就好像曾提到过的\@一样的情形。
5.3.2调整横向空间的环境
\begin{center}...\end{center}
让这个环境内的内容置中
\begin{flushleft}...\end{flushleft}
让这个环境内的内容靠左
\begin{flushright}...\end{flushright}
让这个环境内的内容靠右
\begin{raggedright}...\end{raggedright}
让这个环境内的内容靠左,右沿将不切齐
\begin{raggedleft}...\end{raggedleft}
让这个环境内的内容靠右,左沿将不切齐
进入环境,和上一节提到的指令,两者有什么不同呢?
最大的不同是,这可以方便的指定一个范围的文句让他作用,而不会影响环境以外的文句。
其次,进入环境,纵使和上下行连在一起,没有空出空白行,他也会自动的在上、下行空出个空白行出来,使用指令的话则不会。
咦!
这里怎么又有个raggedright及raggedleft?
原来他也是可以当环境来使用。
由于这两个指令会使以下的内容的左、右沿不切齐,因此使用上要非常小心,除非本来就想让内文的左、右沿不切齐,否则,最好是使用有范围限制的方式。
当然,如果这两个指令是用在某个其他环境范围内,他的作用也将仅限于这个环境内,不会影响这个环境外的文句。
5.3.3引文环境
引文通常就是引用他人的文句,在引文的段落,两旁都会出现内缩的情形,以便和正文相区隔,这也是一种空间的配置,可增加文章的易读性。
在LaTeX里头有三种引文环境:
quote,quotation,verse。
这三者看起来很像,但有些微的差异。
环境
适用时机
特性
quote
较短的短引文
每个段落第一行不内缩
quotation
多个段落的长引文
每个段落第一行会内缩
verse
诗歌、词引文
每个段落的第一行不内缩,但第二行起会内缩
在verse的情形,通常会使用\\来换行以便控制每一行的宽度。
而且段落间距将不受外在设定的影响,其中quote和verse环境会预插入适当的段落间距,而quotation环境则不会。
底下我们来看看调整横向空间的一个综合实例:
%example11.tex
\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK}{Bg5}{hwmm}
\section{hspace}
\hspace*{2em}这是一个横向空间调整的测试。
\\
这是一个\hspace{2em}横向空间调整的测试。
\\
这是一个\hspace{2em}横向空间调整的测试。
\section{hfill}
这是一个\hfill{}横向空间调整的测试。
\section{quad}
这是一个\quad{}横向空间调整的测试。
\\
这是一个\quad{}横向空间调整的测试。
\\
这是一个\qquad{}横向空间调整的测试。
\section{dotfill}
这是一个\dotfill{}横向空间调整的测试。
\\
这是一个\dotfill{}横向空间调整的测试。
\section{hrulefill}
这是一个\hrulefill{}横向空间调整的测试。
\section{center}
\begin{center}
这是一个横向空间调整的测试。
\end{center}
\section{flushleft}
\begin{flushleft}
这是一个横向空间调整的测试。
\end{flushleft}
\section{flushright}
\begin{flushright}
这是一个横向空间调整的测试。
\end{flushright}
\section{quote}
这是节录自伊索寓言的节录故事:
\begin{quote}
Anantwenttothebankofarivertoquenchitsthirst,and
beingcarriedawaybytherushofthestream,wasonthe
pointofdrowning.
ADovesittingonatreeoverhangingthewaterpluckeda
leafandletitfallintothestreamclosetoher.TheAnt
climbedontoitandfloatedinsafetytothebank.
\end{quote}
\section{quotation}
这是节录自伊索寓言的节录故事:
\begin{quotation}
Anantwenttothebankofarivertoquenchitsthirst,and
beingcarriedawaybytherushofthestream,wasonthe
pointofdrowning.
ADovesittingonatreeoverhangingthewaterpluckeda
leafandletitfallintothestreamclosetoher.TheAnt
climbedontoitandfloatedinsafetytothebank.
\end{quotation}
\section{verse}
这是节录自伊索寓言的节录故事,这是节录自伊索寓言的节录故事,%
这是节录自伊索寓言的节录故事,这是节录自伊索寓言的节录故事:
\begin{verse}
Anantwenttothebankofarivertoquenchitsthirst,and
beingcarriedawaybytherushofthestream,wasonthe
pointofdrowning.
ADovesittingonatreeoverhangingthewaterpluckeda
leafandletitfallintothestreamclosetoher.TheAnt
climbedontoitandfloatedinsafetytothebank.
\end{verse}
\section{centering}
\centering
这是一个横向空间调整的测试。
\\%这里要换行,否则会是\raggedright的作用
\raggedright
\section{centerline}
\centerline{这是一个横向空间调整的测试。
}
\section{raggedright}
\raggedright
这是一个横向空间调整的测试。
\section{raggedleft}
\raggedleft
这是一个横向空间调整的测试。
\end{CJK}
\end{document}
编译好的结果如下:
http:
//edt1023.sayya.org/tex/latex123/example11.tex
http:
//edt1023.sayya.org/tex/latex123/example11.pdf
要注意是指令前后的空白,像\hspace,\dotfill,\hrulell这类指令,指令前后空白都会算进去的。
\quad,\qquad这类指令,则后面的空白也是会算入的。
另外,由例子中可以看出来,一个em的宽度,大约是一个中文字的宽度,所以,我们预设使用10pt的字,这个em宽度就相当于10pt的宽度,所以,我们在第一行插入了2em宽度的空白,也就好像是内缩了两个中文字一样。
5.4调整纵向空间
\vspace{单位}
向下空出某个单位的空白(行),负数则是向上
\bigskip
产生12pt(11-12pt)的垂直空白(行)
\medskip
产生6pt(5-7pt)的垂直空白(行)
\smallskip
产生3pt(2-4pt)的垂直空白(行)
\vfill
和\hfill类似,作用是将某段落向上顶,或往下挤
\parskip单位=
调整全文每个段落间的距离为某个单位
其中的\bigskip,\medskip,\smallskip并非固定的,他们会视上下文脉络的需要自动做微调,以达到一整页较一致的空间配置。
\vspace如果是出现在一页的第一行或最后一行时,将会失去作用,这时可以加个星号,\vspace*{单位}。
为了维持版面的一致性,使用纵向空间调整的指令时要特别留意,例如章节标题上下的空间、各段落间的空间,进入环境前后所空出的空间,这都有一个固定值,LaTeX会自动去调整,不必由使用者自行动手,除非是封面这种单独页。
所以,使用纵向空间调整指令时,要非常注意整体的一致性,这也是排版上的一个很重要的原则。
这里举这篇文章的内页封面为例来综合说明,横、纵向空间的运用。
还记得第4.3节的titlepage的指令吗?
其实我们也可以自行设计一个独立的内页封面,使用的是LaTeX本身的titlepage环境。
这里的图档引用是我们还没有学习到的,没关系,只要大原则抓住就行了。
%example12.tex
\documentclass[12pt,a4paper]{report}
\usepackage{CJK}%引入所需要的packages
\usepackage{graphicx}
\begin{document}
\begin{CJK}{Bg5}{hwmm}
\begin{titlepage}%使用titlepage环境
\vspace*{5ex}
\begin{flushright}%大标题靠右
\Huge\textbf{大家来学\LaTeX}
\end{flushright}
\rule{\textwidth}{.256ex}
\begin{flushleft}%版本号码及日期靠左,和大标题之间以一横线隔开
Version0.1draft\\
\today
\end{flushleft}%图档位于中央偏左
\vspace{8ex}%空出8ex的垂直空间
\hspace{2em}\includegraphics[scale=.75]{cover2.1}%引入图档,并将这个
\vspace{8ex}%图档横向右移2em
\begin{flushright}%作者信息靠右
ByEdwardG.J.Lee李果正\\
Email:
\texttt{edt1023@info.sayya.org}
\end{flushright}
\end{titlepage}
\end{CJK}
\end{document}
由于配合版面的问题,其中有一些数据有更动,而且也省略了一些我们还没有学习到的packages,但大结构则和原始文稿一样。
所以,和这篇文章的PDF格式比较会发现,大标题的字体小了一点,而且没有颜色,也没有超链接。
使用titlepage环境后,在report/book文稿他会自成一没有页数的单独页,在article类别,因为会和内文连接,所以,在选项的部份要多加一个titlepage的选项。
另外,在titlepage里头就不能再使用\title,\author指令了,在本文的地方也不必再下\maketitle指令。
编译好的例子如下:
http:
//edt1023.sayya.org/tex/latex123/example12.tex
http:
//edt1023.sayya.org/tex/latex123/example12.pdf
这里要特别说明的是,引入图档要使用graphicxpackage(这是最常用的,也有其他的方法来引用),引入的指令是\includegraphics,这个我们会在第9章会讨论,在这里我们把图档缩小成为原图的75%,否则整个封面会超出一页。
这个图档是由MetaPost档案所编译而来的,他是一种eps图档(简单的说,是含有边界数据去除不必要周围空白的ps档,方便引入或输出至文稿中),编译的方法如下:
mpostcover2.mp
这样就会产生cover2.1这个eps图档,这样就可以直接引入了。
他的原始码及eps图档在:
http:
//edt1023.sayya.org/tex/latex123/cover2.mp
http:
//edt1023.sayya.org/tex/latex123/cover2.1
5.5条列环境
条列环境也是属于一种空间的控制,他把一些文字按一定的方式来排列,条列环境中一些起头的符号、文数字或字符串,我们称之为项目卷标(itemlabel),利用这些不一样的排列位置及不一样的项目卷标起头来叙述文句,就可以达到醒目的作用。
这是以章节分隔以外,相当常用让内容一目了然的方法,建议多多利用。
请千万记得,环境中还可以有环境,而且以下三种的条列方式可以混合交叉使用。
5.5.1项目式条列环境(itemize)
这是以符号来起头醒目的一种条列方式。
例如:
\begin{itemize}
\item第一大项,这里是第一大项。
\i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 空间 位置