-
Notifications
You must be signed in to change notification settings - Fork 37
/
custom.tex
1168 lines (1028 loc) · 51.5 KB
/
custom.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Contents: Customising LaTeX output
% $Id: custom.tex,v 1.2 2003/03/19 20:57:45 oetiker Exp $
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 中文~4.20~翻译:[email protected] email: zpxing at gmail dot com
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\chapter{Customising \LaTeX}
\chapter{定制 \LaTeX}
\begin{intro}
%Documents produced with the commands you have learned up to this
%point will look acceptable to a large audience. While they are not
%fancy-looking, they obey all the established rules of good
%typesetting, which will make them easy to read and pleasant to look at.
到目前为止,运用你所学过的命令可以制作出能被绝大多数读者接受的文档。
尽管这些文档看上去不够奇妙,但它们遵循了高质量排版的已有规则,
这些规则可以使得文档易读,同时看起来也非常舒适。
%However, there are situations where \LaTeX{} does not provide a
%command or environment that matches your needs, or the output
%produced by some existing command may not meet your requirements.
然而在一些情况下,\LaTeX{} 也许并没有提供适合你需要的命令或者环境,
或者现有的命令产生的输出和你想要的不同。
%In this chapter, I will try to give some hints on
%how to teach \LaTeX{} new tricks and how to make it produce output
%that looks different from what is provided by default.
本章中,我将尝试给出一些新的技巧,运用这些技巧可以教会 \LaTeX{} 玩
一些新的把戏,也可以使得 \LaTeX{} 产生与众不同的输出。
\end{intro}
%\section{New Commands, Environments and Packages}
\section{新建命令、环境和宏包}
%You may have noticed that all the commands I introduce in this
%book are typeset in a box, and that they show up in the index at the end
%of the book. Instead of directly using the necessary \LaTeX{} commands
%to achieve this, I have created a \wi{package} in which I defined new
%commands and environments for this purpose. Now I can simply write:
你也许已经注意到我在这本书中介绍的所有命令都被包含在一个矩形框里,
并且出现在本书最后的索引中。 我并没有直接使用所需的 \LaTeX{} 命令
来实现这个,而是创建了一个宏包 (\wi{package}),并在其中定义了我
所需要的命令和环境。 现在我可以简单的写:
\begin{example}
\begin{lscommand}
\ci{dum}
\end{lscommand}
\end{example}
%In this example, I am using both a new environment called\\
%\ei{lscommand}, which is responsible for drawing the box around the
%command, and a new command named \ci{ci}, which typesets the command
%name and makes a corresponding entry in the index. You can check
%this out by looking up the \ci{dum} command in the index at the back
%of this book, where you'll find an entry for \ci{dum}, pointing to
%every page where I mentioned the \ci{dum} command.
在这个例子中,我使用了一个新的环境:\ei{lscommand}。这个环境负责在命令
的周围画出一个矩形框。同时我还使用了一个命令:\ci{ci}, 这个命令负责输出
命令的名字,并且在索引中添加相应的条目。你可以在本书最后的索引中查找命令 \ci{dum},
然后你会发现有一个 \ci{dum} 的条目,这个条目中列出了包含有 \ci{dum} 命令
的所有页的页码。
%If I ever decide that I do not like the commands to be typeset in
%a box any more, I can simply change the definition of the
%\texttt{lscommand} environment to create a new look. This is much
%easier than going through the whole document to hunt down all the
%places where I have used some generic \LaTeX{} commands to draw a
%box around some word.
一旦我不再喜欢在一个矩形框中排版命令,我可以轻松的
改变 \texttt{lscommand} 环境的定义,来创建新的外观。跟追踪并修改所有
使用原始的 \LaTeX{} 命令在文字周围画框的地方相比,这种做法容易得多。
%\subsection{New Commands}
\subsection{新建命令}
%To add your own commands, use the
%\begin{lscommand}
%\ci{newcommand}\verb|{|%
% \emph{name}\verb|}[|\emph{num}\verb|]{|\emph{definition}\verb|}|
%\end{lscommand}
%\noindent command.
%Basically, the command requires two arguments: the \emph{name} of the
%command you want to create, and the \emph{definition} of the command.
%The \emph{num} argument in square brackets is optional and specifies the number
%of arguments the new command takes (up to 9 are possible).
%If missing it defaults to 0, i.e. no argument allowed.
为了建立你自己的命令,可以使用如下的命令:
\begin{lscommand}
\ci{newcommand}\verb|{|%
\emph{name}\verb|}[|\emph{num}\verb|]{|\emph{definition}\verb|}|
\end{lscommand}
基本上,这个命令有两个参量,第一个 \emph{name} 是你想要建立的命令
的名称,第二个 \emph{definition} 是命令的定义。方括号里的参数 \emph{num} 是可选的,
用于指定新命令所需的参量数目(最多 9 个)。如果不给
出这个参数,默认就是 0,也就是新建的命令不要任何参量。
%The following two examples should help you to get the idea.
%The first example defines a new command called \ci{tnss}. This is
%short for ``The Not So Short Introduction to \LaTeXe.'' Such a command
%could come in handy if you had to write the title of this book over
%and over again.
接下来的两个例子有助你的理解。第一个例子定义了一个新的命令:\ci{tnss}。
这个命令是句子 ``The\ Not\ So\ Short\ Introduction\ to\ \LaTeXe'' 的简写。
如果你需要在文档中多次使用本书的名称,那么定义这个命令将是非常方便的。
\begin{example}
\newcommand{\tnss}{The not
so Short Introduction to
\LaTeXe}
This is ``\tnss'' \ldots{}
``\tnss''
\end{example}
%The next example illustrates how to define a new
%command that takes one argument.
%The \verb|#1| tag gets replaced by the argument you specify.
%If you wanted to use more than one argument, use \verb|#2| and
%so on.
下一个例子演示了如何建立一个接受单一参数的命令。在命令的定义中,标记 \verb|#1|
将被你指定的参量所代替。如果你想使用多个参量,那么可以依次使用 \verb|#2|、……、
\verb|#9| 等标记。
\begin{example}
\newcommand{\txsit}[1]
{This is the \emph{#1} Short
Introduction to \LaTeXe}
% in the document body:
\begin{itemize}
\item \txsit{not so}
\item \txsit{very}
\end{itemize}
\end{example}
%\LaTeX{} will not allow you to create a new command that would
%overwrite an existing one. But there is a special command in case you
%explicitly want this: \ci{renewcommand}.
%It uses the same syntax as the \verb|\newcommand|
%command.
\LaTeX{} 不允许你新建一个与现有命令重名的命令。 如果你确实需要这么做,有一个专门
的命令用于处理这种情况:\ci{renewcommand}。它使用与命令 \verb|\newcommand|
相同的语法。
%In certain cases you might also want to use the \ci{providecommand}
%command. It works like \ci{newcommand}, but if the command is
%already defined, \LaTeXe{} will silently ignore it.
在某些情况之下,你可能会希望使用 \ci{providecommand} 命令。它完成与 \ci{newcommand}
命令相同的工作。但如果命令已经存在,\LaTeXe{} 将会悄悄忽略原有的那个。
%There are some points to note about whitespace following \LaTeX{} commands. See
%page \pageref{whitespace} for more information.
处理 \LaTeX{} 命令后尾随的空格有一些要注意的事项,参看第 \pageref{whitespace} 页
可以获得更多这方面的信息。
%\subsection{New Environments}
\subsection{新建环境}
%Just as with the \verb|\newcommand| command, there is a command
%to create your own environments. The \ci{newenvironment} command uses the
%following syntax:
与 \verb|\newcommand| 命令类似,有一个命令用于建立新的环境。这个命令就是
\ci{newenvironment},它的语法如下所示:
\begin{lscommand}
\ci{newenvironment}\verb|{|%
\emph{name}\verb|}[|\emph{num}\verb|]{|%
\emph{before}\verb|}{|\emph{after}\verb|}|
\end{lscommand}
%Again \ci{newenvironment} can have
%an optional argument. The material specified
%in the \emph{before} argument is processed before the text in the
%environment gets processed. The material in the \emph{after} argument gets
%processed when the \verb|\end{|\emph{name}\verb|}| command is encountered.
同样地,\ci{newenvironment} 命有一个可选的
参量。在 \emph{before} 中的内容将在此环境包含的文本之前处理,而在
\emph{after} 中的内容将在遇到 \verb|\end{|\emph{name}\verb|}| 命令时处理。
%The example below illustrates the usage of the \ci{newenvironment}
%command.
%\begin{example}
%\newenvironment{king}
% {\rule{1ex}{1ex}%
% \hspace{\stretch{1}}}
% {\hspace{\stretch{1}}%
% \rule{1ex}{1ex}}
%
%\begin{king}
%My humble subjects \ldots
%\end{king}
%\end{example}
下面的例子演示了 \ci{newenvironment} 命令的用法:
\begin{example}
\newenvironment{king}
{\rule{1ex}{1ex}%
\hspace{\stretch{1}}}
{\hspace{\stretch{1}}%
\rule{1ex}{1ex}}
\begin{king}
My humble subjects \ldots
\end{king}
\end{example}
%The \emph{num} argument is used the same way as in the
%\verb|\newcommand| command. \LaTeX{} makes sure that you do not define
%an environment that already exists. If you ever want to change an
%existing command, you can use the \ci{renewenvironment} command. It
%uses the same syntax as the \ci{newenvironment} command.
参量 \emph{num} 的使用方式与 \verb|\newcommand| 命令相同。\LaTeX{} 还同样保证你
不会不小心新建重名的环境。如果你确实希望改变一个现有的环境,你可以使用命令
\ci{renewenvironment},它使用和命令 \ci{newenvironment} 相同的语法。
%The commands used in this example will be explained later. For the
%\ci{rule} command see page \pageref{sec:rule}, for \ci{stretch} go to
%page \pageref{cmd:stretch}, and more information on \ci{hspace} can be
%found on page \pageref{sec:hspace}.
在这个例子中用到一些命令将在随后解释:\ci{rule} 命令的解释可以参看第 \pageref{sec:rule} 页,
\ci{stretch} 命令的解释可以参看第 \pageref{cmd:stretch} 页,关于 \ci{hspace} 的
信息可以在第 \pageref{sec:hspace} 页找到。
%\subsection{Extra Space}
\subsection{额外的空白间距}
%When creating a new environment you may easily get bitten by extra spaces
%creaping in, which can potentially have fatal effects. For example when you
%want to create a title environemnt which supresses its own indentation as
%well as the one on the following paragraph. The \ci{ignorespaces} command in
%the begin block of the environment will make it ignore any space after
%executing the begin block. The end block is a bit more tricky as special
%processing occurs at the end of an environment. With the
%\ci{ignorespacesafterend} \LaTeX{} will issue an \ci{ignorespaces} after the
%special `end' processing has occured.
当创建新的环境时,你或许会为遇到额外的空白间距而烦扰,这些间距可能产生严重的后果。比如当你
建立一个标题环境,既不要自身的缩进也不要紧接着的下一段缩进时,在 begin 中加入
命令 \ci{ignorespaces} 会使新环境忽略执行 begin 之后遇到的一切空白间距,而 end
就需要耍个小花招,因为我们要等到环境结束后才开始处理。使用 \ci{ignorespacesafterend},\LaTeX{} 会
在 end 处理完毕后,产生一个 \ci{ignorespaces}。
\begin{example}
\newenvironment{simple}%
{\noindent}%
{\par\noindent}
\begin{simple}
See the space\\to the left.
\end{simple}
Same\\here.
\end{example}
\begin{example}
\newenvironment{correct}%
{\noindent\ignorespaces}%
{\par\noindent%
\ignorespacesafterend}
\begin{correct}
No space\\to the left.
\end{correct}
Same\\here.
\end{example}
%\subsection{Commandline \LaTeX}
\subsection{命令行的 \LaTeX}
%If you work on a Unix like OS, you might be using Makefiles to build your
%\LaTeX{} projects. In that connection it might be interesting to produce
%different versions of the same document by calling \LaTeX{} with commandline
%parameters. If you add the following structure to your document:
如果使用类 Unix 的操作系统工作,你可能会在使用 Makefiles 建立你的 \LaTeX{} 项目。
那样的话,用命令行参数操控 \LaTeX{} 来创建同一份文档的不同版本可是十分有趣的。如果
把下列配置写入你的文档:
\begin{verbatim}
\usepackage{ifthen}
\ifthenelse{\equal{\blackandwhite}{true}}{
% "black and white" mode; do something..
}{
% "color" mode; do something different..
}
\end{verbatim}
%Now you can call \LaTeX{} like this:
现在,你可以像这样来操作 \LaTeX{}:
\begin{verbatim}
latex '\newcommand{\blackandwhite}{true}\input{test.tex}'
\end{verbatim}
%First the command \verb|\blackandwhite| gets defined and then the actual file is read with input.
%By setting \verb|\blackandwhite| to false the color version of the document would be produced.
首先,定义命令 \verb|\blackandwhite|,然后使用 input 来读入实际的文档。要创建彩色版本文档,需要
设定 \verb|\blackandwhite| 为 false。
%\subsection{Your Own Package}
\subsection{自建宏包}
%If you define a lot of new environments and commands, the preamble of
%your document will get quite long. In this situation, it is a good
%idea to create a \LaTeX{} package containing all your command and
%environment definitions. You can then use the \ci{usepackage}
%command to make the package available in your document.
如果你定义了很多新的环境和命令,你的文档的导言部分将变得相当长,在这种情况下,
建立一个新的 \LaTeX{} 宏包来存放所有你自己定义的命令和环境将是一个好的处理方式。
然后你可以在文档中使用 \ci{usepackage} 命令来引入自定义宏包。
\begin{figure}[!htbp]
\begin{lined}{\textwidth}
\begin{verbatim}
% Demo Package by Tobias Oetiker
\ProvidesPackage{demopack}
\newcommand{\tnss}{The not so Short Introduction
to \LaTeXe}
\newcommand{\txsit}[1]{The \emph{#1} Short
Introduction to \LaTeXe}
\newenvironment{king}{\begin{quote}}{\end{quote}}
\end{verbatim}
\end{lined}
\caption{宏包样例。} \label{package}
\end{figure}
%Writing a package basically consists of copying the contents of
%your document preamble into a separate file with a name ending in
%\texttt{.sty}. There is one special command,
写一个宏包的基本工作就是将你原本很长的文档导言内容拷贝到另外一个的文件中去,
这个文件需要以 \texttt{.sty} 结尾。你还加入一个专用的命令:
\begin{lscommand}
\ci{ProvidesPackage}\verb|{|\emph{package name}\verb|}|
\end{lscommand}
%\noindent for use at the very beginning of your package
%file. \verb|\ProvidesPackage| tells \LaTeX{} the name of the package
%and will allow it to issue a sensible error message when you try to
%include a package twice. Figure \ref{package} shows a small example
%package that contains the commands defined in the examples above.
\noindent 这个命令应该放在你的宏包的最前面。\verb|\ProvidesPackage| 告诉 \LaTeX{}
宏包的名称从而让 \LaTeX{} 在你尝试两次引入同一个宏包的时候给出一个明显的
错误信息,图 \ref{package} 给出了一个小的宏包示例,其中包含了我们之前定义的一些命令。
%\section{Fonts and Sizes}
\section{字体和字号}
%\subsection{Font Changing Commands}
\subsection{字体变换命令}
%\index{font}\index{font size} \LaTeX{} chooses the appropriate font
%and font size based on the logical structure of the document
%(sections, footnotes, \ldots). In some cases, one might like to change
%fonts and sizes by hand. To do this, you can use the commands listed in
%Tables \ref{fonts} and \ref{sizes}. The actual size of each font
%is a design issue and depends on the document class and its options.
%Table \ref{tab:pointsizes} shows the absolute point size for these
%commands as implemented in the standard document classes.
\index{font}\index{font size} \LaTeX{} 根据文档的逻辑结构(章节、脚注……)
来选择合适的字体和字体大小。在某些情况下,你可能会想要手动改变文档使用的
字体及其大小。为了完成这个目的,你可以使用表 \ref{fonts} 和表 \ref{sizes} 中
列出的那些命令。每个字体的实际大小是一个设计问题,并且它依赖于文档所使用
的文档类及其选项。表 \ref{tab:pointsizes} 列出了这些命令在标准文档类中的绝对 pt 大小。
\begin{example}
{\small The small and
\textbf{bold} Romans ruled}
{\Large all of great big
\textit{Italy}.}
\end{example}
%One important feature of \LaTeXe{} is that the font attributes are
%independent. This means that you can issue size or even font
%changing commands, and still keep the bold or slant attribute set
%earlier.
\LaTeXe{} 的一个重要特征是字体的各种属性是相互独立的,这意味着你可以改变字体
的大小而仍然保留字体原有的粗体或者斜体的特性。
%In \emph{math mode} you can use the font changing \emph{commands} to
%temporarily exit \emph{math mode} and enter some normal text. If you want to
%switch to another font for math typesetting you need another
%special set of commands; refer to Table \ref{mathfonts}.
在\textbf{数学模式}中你可以使用字体变换命令来暂时退出\textbf{数学模式},然后输入
一些正常的文字。如果你希望改变数学公式本身所使用的字体,\LaTeX{} 提供了另外一套命令。
参看表 \ref{mathfonts}。
\begin{table}[!bp]
\caption{字体。} \label{fonts}
\begin{lined}{12cm}
%
% Alan suggested not to tell about the other form of the command
% eg \verb|\sffamily| or \verb|\bfseries|. This seems a good thing to me.
%
\begin{tabular}{@{}rl@{\qquad}rl@{}}
\fni{textrm}\verb|{...}| & \textrm{\wi{roman}}&
\fni{textsf}\verb|{...}| & \textsf{\wi{sans serif}}\\
\fni{texttt}\verb|{...}| & \texttt{typewriter}\\[6pt]
\fni{textmd}\verb|{...}| & \textmd{medium}&
\fni{textbf}\verb|{...}| & \textbf{\wi{bold face}}\\[6pt]
\fni{textup}\verb|{...}| & \textup{\wi{upright}}&
\fni{textit}\verb|{...}| & \textit{\wi{italic}}\\
\fni{textsl}\verb|{...}| & \textsl{\wi{slanted}}&
\fni{textsc}\verb|{...}| & \textsc{\wi{Small Caps}}\\[6pt]
\ci{emph}\verb|{...}| & \emph{emphasized} &
\fni{textnormal}\verb|{...}| & \textnormal{document} font
\end{tabular}
\bigskip
\end{lined}
\end{table}
\begin{table}[!bp]
\index{font size} \caption{字号。} \label{sizes}
\begin{lined}{12cm}
\begin{tabular}{@{}ll}
\fni{tiny} & \tiny tiny font \\
\fni{scriptsize} & \scriptsize very small font\\
\fni{footnotesize} & \footnotesize quite small font \\
\fni{small} & \small small font \\
\fni{normalsize} & \normalsize normal font \\
\fni{large} & \large large font
\end{tabular}%
\qquad\begin{tabular}{ll@{}}
\fni{Large} & \Large larger font \\[5pt]
\fni{LARGE} & \LARGE very large font \\[5pt]
\fni{huge} & \huge huge \\[5pt]
\fni{Huge} & \Huge largest
\end{tabular}
\bigskip
\end{lined}
\end{table}
\begin{table}[!tbp]
\caption{标准文档类中的绝对 pt 大小。}\label{tab:pointsizes}
\label{tab:sizes}
\begin{lined}{12cm}
\begin{tabular}{lrrr}
\multicolumn{1}{c}{大小} &
\multicolumn{1}{c}{10pt (默认)} &
\multicolumn{1}{c}{11pt 选项} &
\multicolumn{1}{c}{12pt 选项}\\
\verb|\tiny| & 5pt & 6pt & 6pt\\
\verb|\scriptsize| & 7pt & 8pt & 8pt\\
\verb|\footnotesize| & 8pt & 9pt & 10pt \\
\verb|\small| & 9pt & 10pt & 11pt \\
\verb|\normalsize| & 10pt & 11pt & 12pt \\
\verb|\large| & 12pt & 12pt & 14pt \\
\verb|\Large| & 14pt & 14pt & 17pt \\
\verb|\LARGE| & 17pt & 17pt & 20pt\\
\verb|\huge| & 20pt & 20pt & 25pt\\
\verb|\Huge| & 25pt & 25pt & 25pt\\
\end{tabular}
\bigskip
\end{lined}
\end{table}
\begin{table}[!bp]
\caption{数学字体。} \label{mathfonts}
\begin{lined}{0.7\textwidth}
\begin{tabular}{@{}ll@{}}
\fni{mathrm}\verb|{...}|& $\mathrm{Roman\ Font}$\\
\fni{mathbf}\verb|{...}|& $\mathbf{Boldface\ Font}$\\
\fni{mathsf}\verb|{...}|& $\mathsf{Sans\ Serif\ Font}$\\
\fni{mathtt}\verb|{...}|& $\mathtt{Typewriter\ Font}$\\
\fni{mathit}\verb|{...}|& $\mathit{Italic\ Font}$\\
\fni{mathcal}\verb|{...}|& $\mathcal{CALLIGRAPHIC\ FONT}$\\
\fni{mathnormal}\verb|{...}|& $\mathnormal{Normal\ Font}$\\
\end{tabular}
%\begin{tabular}{@{}lll@{}}
%\textit{Command}&\textit{Example}& \textit{Output}\\[6pt]
%\fni{mathcal}\verb|{...}|& \verb|$\mathcal{B}=c$|& $\mathcal{B}=c$\\
%\fni{mathscr}\verb|{...}|& \verb|$\mathscr{B}=c$|& $\mathscr{B}=c$\\
%\fni{mathrm}\verb|{...}|& \verb|$\mathrm{K}_2$|& $\mathrm{K}_2$\\
%\fni{mathbf}\verb|{...}|& \verb|$\sum x=\mathbf{v}$|& $\sum x=\mathbf{v}$\\
%\fni{mathsf}\verb|{...}|& \verb|$\mathsf{G\times R}$|& $\mathsf{G\times R}$\\
%\fni{mathtt}\verb|{...}|& \verb|$\mathtt{L}(b,c)$|& $\mathtt{L}(b,c)$\\
%\fni{mathnormal}\verb|{...}|& \verb|$\mathnormal{R_{19}}\neq R_{19}$|&
%$\mathnormal{R_{19}}\neq R_{19}$\\
%\fni{mathit}\verb|{...}|& \verb|$\mathit{ffi}\neq ffi$|& $\mathit{ffi}\neq ffi$
%\end{tabular}
\bigskip
\end{lined}
\end{table}
%In connection with the font size commands, \wi{curly braces} play a
%significant role. They are used to build \emph{groups}. Groups
%limit the scope of most \LaTeX{} commands.\index{grouping}
使用字体命令的时候,大括号 (\wi{curly braces}) 扮演了一个重要角色。它们被用于
建立所谓的\textbf{组} (group)。组限制了大多数 \LaTeX{} 命令的作用范围。\index{grouping}
\begin{example}
He likes {\LARGE large and
{\small small} letters}.
\end{example}
%The font size commands also change the line spacing, but only if the
%paragraph ends within the scope of the font size command. The closing curly
%brace \verb|}| should therefore not come too early. Note the position of
%the \ci{par} command in the next two examples. \footnote{\texttt{\bs{}par}
%is equivalent to a blank line}
如果段落在字体的作用范围中结束,那么字号命令还将改变段落中行距。因此
用于分组的反向大括号 \verb|}| 不应该太早出现。注意下面两个例子中
\ci{par} 命令的位置
\footnote{\texttt{\bs{}par} 相当于一个空行}。
\begin{example}
{\Large Don't read this!
It is not true.
You can believe me!\par}
\end{example}
\begin{example}
{\Large This is not true either.
But remember I am a liar.}\par
\end{example}
%If you want to activate a size changing command for a whole paragraph
%of text or even more, you might want to use the environment syntax for
%font changing commands.
如果你希望改变整段甚至更多文本的字体,你可能应该使用字体变换命令的环境语法。
\begin{example}
\begin{Large}
This is not true.
But then again, what is these
days \ldots
\end{Large}
\end{example}
%\noindent This will save you from counting lots of curly braces.
\noindent 这将使你从一堆大括号中解脱出来。
%\subsection{Danger, Will Robinson, Danger}
\subsection{战战兢兢,如履薄冰}
%As noted at the beginning of this chapter, it is dangerous to clutter
%your document with explicit commands like this, because they work in
%opposition to the basic idea of \LaTeX{}, which is to separate the
%logical and visual markup of your document. This means that if you
%use the same font changing command in several places in order to
%typeset a special kind of information, you should use
%\verb|\newcommand| to define a ``logical wrapper command'' for the font
%changing command.
正如本章开头曾经说过的那样,在你的文档中直接运用这些命令来修改格式是非常
危险的事情,因为这种做法和 \LaTeX{} 的基础理念相反。在编写 \LaTeX{} 文档
的时候,要始终注意文章逻辑标记和样式标识的分离。也就是如果你在文
章的多个地方采用某种特殊的格式来排版一类经常使用的内容,
就应该使用 \verb|\newcommand| 来定义一个逻辑封装命令,并通过这个命令来修改相应的表现格式。
\begin{example}
\newcommand{\oops}[1]{%
\textbf{#1}}
Do not \oops{enter} this room,
it's occupied by \oops{machines}
of unknown origin and purpose.
\end{example}
%This approach has the advantage that you can decide at some later
%stage that you want to use some visual representation of danger other
%than \verb|\textbf|, without having to wade through your document,
%identifying all the occurrences of \verb|\textbf| and then figuring out
%for each one whether it was used for pointing out danger or for some other
%reason.
这种方法具有一个明显的优点,你可以在以后决定使用一些不是很有把握实现的特别外观并
使之不同于 \verb|\textbf|,
那时你就不需要遍历你的整篇文章来找出所有 \verb|\textbf| 的地方,
然后一个一个地确定是不是要改成没有把握的外观。
%\subsection{Advice}
\subsection{建议}
%To conclude this journey into the land of fonts and font sizes,
%here is a little word of advice:\nopagebreak
总结这一章中关于字体和字号的命令,下面是一个简短的建议:\nopagebreak
%\begin{quote}
% \underline{\textbf{Remember\Huge!}} \textit{The}
% \textsf{M\textbf{\LARGE O} \texttt{R}\textsl{E}} fonts \Huge you
% \tiny use \footnotesize \textbf{in} a \small \texttt{document},
% \large \textit{the} \normalsize more \textsc{readable} and
% \textsl{\textsf{beautiful} it bec\large o\Large m\LARGE e\huge s}.
%\end{quote}
\begin{quote}
\underline{\textbf{Remember\Huge!}} \textit{The}
\textsf{M\textbf{\LARGE O} \texttt{R}\textsl{E}} fonts \Huge you
\tiny use \footnotesize \textbf{in} a \small \texttt{document},
\large \textit{the} \normalsize more \textsc{readable} and
\textsl{\textsf{beautiful} it bec\large o\Large m\LARGE e\huge s}.\\
记住!你使用的字体越多,文章看起来就越易读越美观。
\end{quote}
%\section{Spacing}
\section{间距}
%\subsection{Line Spacing}
\subsection{行距}
%
%\index{line spacing} If you want to use larger inter-line spacing in a
%document, you can change its value by putting the
\index{line spacing}如果你想在文档中使用更大的行距,你可以在导言中使用
如下命令进行设定:
\begin{lscommand}
\ci{linespread}\verb|{|\emph{factor}\verb|}|
\end{lscommand}
%\noindent command into the preamble of your document.
%Use \verb|\linespread{1.3}| for ``one and a half'' line
%spacing, and \verb|\linespread{1.6}| for ``double'' line spacing. Normally
%the lines are not spread, so the default line spread factor
%is 1.\index{double line spacing}
如 \verb|\linespread{1.3}| 产生 $1.5$ 倍行距,而 \verb|\linespread{1.6}|
则产生双倍行距。缺省情况下的行距为 $1$。 \index{double line spacing}
%Note that the effect of the \ci{linespread} command is rather drastic and
%not appropriate for published work. So if you have a good reason for
%changing the line spacing you might want to use the command:
注意 \ci{linespread} 的效果相当夸张而且不适合出版工作。因此如果你很想改变行距
可能会希望使用如下的命令:
\begin{lscommand}
\verb|\setlength{\baselineskip}{1.5\baselineskip}|
\end{lscommand}
\begin{example}
{\setlength{\baselineskip}%
{1.5\baselineskip}
This paragraph is typeset with
the baseline skip set to 1.5 of
what it was before. Note the par
command at the end of the
paragraph.\par}
This paragraph has a clear
purpose, it shows that after the
curly brace has been closed,
everything is back to normal.
\end{example}
%\subsection{Paragraph Formatting}\label{parsp}
\subsection{段落格式}\label{parsp}
%In \LaTeX{}, there are two parameters influencing paragraph layout.
%By placing a definition like
在 \LaTeX{} 中,有两个参数可以影响段落的布局。在文档的导言部分,可以通过
如下的定义来改变段落的布局。
\begin{code}
\ci{setlength}\verb|{|\ci{parindent}\verb|}{0pt}| \\
\verb|\setlength{|\ci{parskip}\verb|}{1ex plus 0.5ex minus 0.2ex}|
\end{code}
%in the preamble of the input file, you can change the layout of
%paragraphs. These two commands increase the space between two paragraphs
%while setting the paragraph indent to zero.
这两个命令增加了段落间距,并将首行缩进设置为 $0$。
%The \texttt{plus} and \texttt{minus} parts of the length above tell
%\TeX{} that it can compress and expand the inter paragraph skip by the
%amount specified, if this is necessary to properly fit the paragraphs
%onto the page.
例子中,长度设定中的 \texttt{plus} 和 \texttt{minus} 部分将使得 \TeX{} 按照指定大小
压缩和伸展段落间距。为了使得段落正确的显示在页面之上,\TeX{} 将在 0.8ex
到 1.5ex 之间调整段落间距。
%In continental Europe,
%paragraphs are often separated by some space and not indented. But
%beware, this also has its effect on the table of contents. Its lines
%get spaced more loosely now as well. To avoid this, you might want to
%move the two commands from the preamble into your document to some
%place below the command \verb|\tableofcontents| or to not use them at all,
%because you'll find that most professional books use indenting and not
%spacing to separate paragraphs.
在欧洲大陆,段落通常用一些空白分隔并且一般首行不缩进。但是值得注意的是,这也会影响目录。
目录的行距也会变得非常疏松。为了避免这种情况,你可能需要将上面的两个命令从导言中移到文档
中 \verb|\tableofcontents| 以下适合的位置,或者根本不要使用这些,因为一般来说专业的书籍都是用缩进并且
通常不用空白来分离段落。
%
%If you want to indent a paragraph that is not indented, you can use
%\begin{lscommand}
%\ci{indent}
%\end{lscommand}
%\noindent at the beginning of the paragraph.\footnote{To indent the first paragraph after each section head, use
% the \pai{indentfirst} package in the `tools' bundle.} Obviously,
%this will only have an effect when \verb|\parindent| is not set to
%zero.
如果你想缩进一个本来没有缩进的段落\footnote{为了缩进章节标题之后的第一个
段落,可以使用 \pai{indentfirst} 包。},可以在段落的开始使用命令:
\begin{lscommand}
\ci{indent}
\end{lscommand}
当然,这个命令只有在 \verb|\parindent| 不为零的情况下才有效果。
%To create a non-indented paragraph, you can use
%\begin{lscommand}
%\ci{noindent}
%\end{lscommand}
%\noindent as the first command of the paragraph. This might come in handy when
%you start a document with body text and not with a sectioning command.
为了创建一个不缩进的段落,你可以在段落的开始部分使用命令:
\begin{lscommand}
\ci{noindent}
\end{lscommand}
当文档以正文而不是章节命令开始的时候,这个命令会提供方便。
%\subsection{Horizontal Space}
\subsection{水平间距}
\label{sec:hspace}
\LaTeX{} 系统自动决定单词和句子之间的距离。为了增加水平距离,
使用命令:\index{horizontal!space}
\begin{lscommand}
\ci{hspace}\verb|{|\emph{length}\verb|}|
\end{lscommand}
%If such a space should be kept even if it falls at the end or the
%start of a line, use \verb|\hspace*| instead of \verb|\hspace|. The
%\emph{length} in the simplest case is just a number plus a unit. The
%most important units are listed in Table \ref{units}.
%\index{units}\index{dimensions}
如果这个水平间距即使在行首或者行末也应该保持的话,用命令 \verb|\hspace*| 代替 \verb|\hspace|。命令的 \emph{length} 参数在简单的情况下只是一个带有单位
的数字。最重要的长度单位在表 \ref{units} 中列了出来。
\index{units}\index{dimensions}
\begin{example}
This\hspace{1.5cm}is a space
of 1.5 cm.
\end{example}
\suppressfloats
\begin{table}[tbp]
\caption{\TeX{} 单位。} \label{units}\index{units}
\begin{lined}{9.5cm}
\begin{tabular}{@{}ll@{}}
\texttt{mm} & millimetre $\approx 1/25$ inch \quad \demowidth{1mm} \\
\texttt{cm} & centimetre = 10 mm \quad \demowidth{1cm} \\
\texttt{in} & inch $=$ 25.4 mm \quad \demowidth{1in} \\
\texttt{pt} & point $\approx 1/72$ inch $\approx \frac{1}{3}$ mm \quad\demowidth{1pt}\\
\texttt{em} & approx width of an `M' in the current font \quad \demowidth{1em}\\
\texttt{ex} & approx height of an `x' in the current font \quad \demowidth{1ex}
\end{tabular}
\bigskip
\end{lined}
\end{table}
%\label{cmd:stretch}
%The command
%\begin{lscommand}
%\ci{stretch}\verb|{|\emph{n}\verb|}|
%\end{lscommand}
%\noindent generates a special rubber space. It stretches until all the
%remaining space on a line is filled up. If two
%\verb|\hspace{\stretch{|\emph{n}\verb|}}| commands are issued on the
%same line, they grow according to the stretch factor.
\label{cmd:stretch}
下面的命令
\begin{lscommand}
\ci{stretch}\verb|{|\emph{n}\verb|}|
\end{lscommand}
\noindent 将产生一个特殊的橡皮长度:一个能把行内剩余所有空隙填满的空白。
如果两个 \verb|\hspace{\stretch{|\emph{n}\verb|}}| 命令位于同一行,那么它们将根据伸缩因子分配空间。
\begin{example}
x\hspace{\stretch{1}}
x\hspace{\stretch{3}}x
\end{example}
%When using horizontal space together with text, it may make sense to make
%the space adjust its size relative to the size of the current font.
%This can be done by using the text-relative units \texttt{em} and
%\texttt{ex}:
当在正文中使用水平间距的时候,相对于字号来调整间距大小会更有道理。这可以通过使用
与文本有关的单位 \texttt{em} 和 \texttt{ex} 来实现:
\begin{example}
{\Large{}big\hspace{1em}y}\\
{\tiny{}tin\hspace{1em}y}
\end{example}
%\subsection{Vertical Space}
\subsection{垂直间距}
%The space between paragraphs, sections, subsections, \ldots\ is
%determined automatically by \LaTeX. If necessary, additional vertical
%space \emph{between two paragraphs} can be added with the command:
在段落、节、小节…… 之间的距离是由 \LaTeX{} 系统自动决定的。如果必要的话,可以在两段之间
增加额外的距离,使用的命令如下所示:
\begin{lscommand}
\ci{vspace}\verb|{|\emph{length}\verb|}|
\end{lscommand}
%This command should normally be used between two empty lines. If the
%space should be preserved at the top or at the bottom of a page, use
%the starred version of the command, \verb|\vspace*|, instead of \verb|\vspace|.
%\index{vertical space}
这个命令通常用于两个空行之间。如果这个额外的行距应该在于页的顶部和末尾也保留下来,那么使用
这个命令的星号版本 \verb|\vspace*| 来代替 \verb|\vspace|。
\index{vertical space}
%The \verb|\stretch| command, in connection with \verb|\pagebreak|, can
%be used to typeset text on the last line of a page, or to centre text
%vertically on a page.
命令 \verb|\stretch| 和 \verb|\pagebreak| 结合使用可以在页的最后一行输出文本,也可以
用来保证文本在页面上垂直居中。
\begin{code}
\begin{verbatim}
Some text \ldots
\vspace{\stretch{1}}
This goes onto the last line of the page.\pagebreak
\end{verbatim}
\end{code}
%Additional space between two lines of \emph{the same} paragraph or
%within a table is specified with the
\textbf{同一}段或\textbf{同一}个表格中两行之间的距离可以用如下命令来指定:
\begin{lscommand}
\ci{\bs}\verb|[|\emph{length}\verb|]|
\end{lscommand}
%\noindent command.
%With \ci{bigskip} and \ci{smallskip} you can skip a predefined amount of
%vertical space without having to worry about exact numbers.
使用命令 \ci{bigskip} 和 \ci{smallskip} 你可以获得一个预定义的垂直间距。
%\section{Page Layout}
\section{页面布局}
\begin{figure}[!hp]
\begin{center}
\makeatletter\@mylayout\makeatother
\end{center}
\vspace*{1.8cm}
\caption{页面布局参数。}
\label{fig:layout}
\cih{footskip}
\cih{headheight}
\cih{headsep}
\cih{marginparpush}
\cih{marginparsep}
\cih{marginparwidth}
\cih{oddsidemargin}
\cih{paperheight}
\cih{paperwidth}
\cih{textheight}
\cih{textwidth}
\cih{topmargin}
\end{figure}
%\index{page layout}
%\LaTeXe{} allows you to specify the \wi{paper size} in the
%\verb|\documentclass| command. It then automatically picks the right
%text \wi{margins}, but sometimes you may not be happy with
%the predefined values. Naturally, you can change them.
%%no idea why this is needed here ...
%\thispagestyle{fancyplain}
%Figure \ref{fig:layout} shows all the parameters that can be changed.
%The figure was produced with the \pai{layout} package from the tools bundle.%
%\footnote{\CTANref|macros/latex/required/tools|}
\index{page layout}
\LaTeXe{} 允许你在 \verb|\documentclass| 命令中指定纸张尺寸 (\wi{paper size})。
然后它将自动的选择合适的页边距。但有些时候你可能不满意 \LaTeX{} 的预设值,这个
时候你可以自己改变这些参数。
%no idea why this is needed here ...
\thispagestyle{fancyplain}
图 \ref{fig:layout} 中显示了所有能改变的页面参数。这个图是用 \pai{layout} 宏包
产生的\footnote{\CTANref|macros/latex/required/tools|}。
%\textbf{WAIT!} \ldots before you launch into a ``Let's make that
%narrow page a bit wider'' frenzy, take a few seconds to think. As with
%most things in \LaTeX, there is a good reason for the page layout to
%be as it is.
\textbf{先等等!} ……在你开始幻想“让这个狭窄的页面看起来宽一点”之前,先花一些时间
想想。和 \LaTeX{} 中的大多数规定一样,缺省的页面布局是有其合理原因的。
%Sure, compared to your off-the-shelf MS Word page, it looks awfully
%narrow. But take a look at your favourite book\footnote{I mean a real
% printed book produced by a reputable publisher.} and count the number
%of characters on a standard text line. You will find that there are no
%more than about 66 characters on each line. Now do the same on your
%\LaTeX{} page. You will find that there are also about 66 characters
%per line. Experience shows that the reading gets difficult as soon as
%there are more characters on a single line. This is because it is
%difficult for the eyes to move from the end of one line to the start of the next one.
%This is also why newspapers are typeset in multiple columns.
确实,相对于你的 MS\ Word 页面来说,它看上去非常的狭窄。但是看看你喜欢的书籍
\footnote{我说的是卓有声誉的出版商正式出版的书籍。}并且统计每个标准文本行的字符数目。
你会发现每行的字符不超过 66 个。现在你的 \LaTeX{} 页面也正是如此。经验显示,如果在
一行中塞入更多的字符,阅读将变得困难。这是因为眼睛从行的开始移动到行的结束变得困难了。
这也是报纸为何要排版成多栏形式的原因。
%So if you increase the width of your body text, keep in mind that you
%are making life difficult for the readers of your paper. But enough
%of the cautioning, I promised to tell you how you do it \ldots
因此如果你决定增加版芯的宽度,头脑中要明白你正在使给你的读者制造困难。警告已经
说的够多了,接下来我将告诉你如何去做……
%\LaTeX{} provides two commands to change these parameters. They are
%usually used in the document preamble.
\LaTeX{} 提供了两个命令来改变这些参数。他们通常在文章的导言部分使用。
%The first command assigns a fixed value to any of the parameters:
第一个命令给某些参数一个固定的值:
\begin{lscommand}
\ci{setlength}\verb|{|\emph{parameter}\verb|}{|\emph{length}\verb|}|
\end{lscommand}
%The second command adds a length to any of the parameters:
第二个命令给某些参数增加一个长度:
\begin{lscommand}
\ci{addtolength}\verb|{|\emph{parameter}\verb|}{|\emph{length}\verb|}|
\end{lscommand}
%This second command is actually more useful than the \ci{setlength}
%command, because you can now work relative to the existing settings.
%To add one centimetre to the overall text width, I put the
%following commands into the document preamble:
第二个命令实际上比 \ci{setlength} 命令更为实用,因为你可以相对于现有的设置来获得
所需的结果。为了给文本的宽度增加 1 厘米,我将如下的命令放置到文档导言:
\begin{code}
\verb|\addtolength{\hoffset}{-0.5cm}|\\
\verb|\addtolength{\textwidth}{1cm}|
\end{code}
%In this context, you might want to look at the \pai{calc} package.
%It allows you to use arithmetic operations in the argument of \ci{setlength}
%and other places where you can enter numeric values into function
%arguments.
这时候,你可能会想要看看 \pai{calc} 包,它允许你在 \ci{setlength} 的参量
中进行算术运算。它也可以运用到任何用数值作为函数参量的地方。
%\section{More Fun With Lengths}
\section{更有趣的长度}
%Whenever possible, I avoid using absolute lengths in
%\LaTeX{} documents. I rather try to base things on the width or height
%of other page elements. For the width of a figure this could
%be \verb|\textwidth| in order to make it fill the page.
只要可能,就应该避免在 \LaTeX{} 文档中使用绝对长度。我更愿意通过页面
中其他元素的宽度或高度来指定长度。比如一个图形,我指定 \verb|\textwidth| 作为
它的宽度从而使得图形恰好充满整个页面。
%The following 3 commands allow you to determine the width, height and
%depth of a text string.
下面的三个命令允许你获得一个文本串的宽度、高度以及深度。
\begin{lscommand}
\ci{settoheight}\verb|{|\emph{variable}\verb|}{|\emph{text}\verb|}|\\
\ci{settodepth}\verb|{|\emph{variable}\verb|}{|\emph{text}\verb|}|\\
\ci{settowidth}\verb|{|\emph{variable}\verb|}{|\emph{text}\verb|}|
\end{lscommand}
%\noindent The example below shows a possible application of these commands.
\noindent 下面的例子显示了如何应用这些命令:
\begin{example}
\flushleft
\newenvironment{vardesc}[1]{%
\settowidth{\parindent}{#1:\ }
\makebox[0pt][r]{#1:\ }}{}
\begin{displaymath}
a^2+b^2=c^2
\end{displaymath}
\begin{vardesc}{Where}$a$,
$b$ -- are adjoin to the right
angle of a right-angled triangle.
$c$ -- is the hypotenuse of
the triangle and feels lonely.
$d$ -- finally does not show up
here at all. Isn't that puzzling?
\end{vardesc}
\end{example}
%\section{Boxes}
\section{盒子}
%\LaTeX{} builds up its pages by pushing around boxes. At first, each
%letter is a little box, which is then glued to other letters to form
%words. These are again glued to other words, but with special glue,
%which is elastic so that a series of words can be squeezed or
%stretched as to exactly fill a line on the page.
\LaTeX{} 使用盒子来建立页面。首先,每个字符都是一个小的盒子,
这些盒子粘结起来构成单词,单词粘结起来构成一行。值得注意的是,单词
之间粘结的是一种特殊的“胶水” (glue),它是有弹性的,可以使 \LaTeX{} 压缩或者延伸使得单词将恰好构成页面的一行。
%I admit, this is a very simplistic version of what really happens, but
%the point is that \TeX{} operates on glue and boxes. Letters are not the only things that
%can be boxes. You can put virtually everything into a box, including
%other boxes. Each box will then be handled by \LaTeX{} as if it were a
%single letter.
我承认,这里的描述是实际情况一个极度简化了的版本,但关键在于 \TeX{}
对盒子和胶水进行操作。不是只有字母才能成为盒子,你几乎可以把
任何东西包括其他盒子放到一个盒子中。 然后 \LaTeX{} 将会像处理
单个字母一样处理这个盒子。
%In the past chapters you have already encountered some boxes, although
%I did not tell you. The \ei{tabular} environment and the
%\ci{includegraphics}, for example, both produce a box. This means that you can
%easily arrange two tables or images side by side. You just have to
%make sure that their combined width is not larger than the textwidth.
在过去的章节中,尽管我并没有明确的说出来,你已经遇到了一些盒子。例如
\ei{tabular} 环境和 \ci{includegraphics} 命令就都产生了一个盒子。这就
意味着你可以轻松的将两个表格或图像并列。你唯一需要保证的就是它们
宽度的总和不大于文本宽度。
%You can also pack a paragraph of your choice into a box with either
%the
使用如下命令可以把一个段落放置到盒子中:
\begin{lscommand}