\chapter{入门} \section{Hello, World!} \label{sec:hello_world} 把下é¢ä¾‹å用编辑器ä¿å˜ä¸º~\verb|hello_world.tex|,这就是一个最简å•çš„~\LaTeX~æºæ–‡ä»¶ã€‚ \begin{code} %hello_world.tex \documentclass{article} \begin{document} Hello, World! \end{document} \end{code} 有了æºæ–‡ä»¶ï¼Œæˆ‘们å¯ä»¥åœ¨å‘½ä»¤è¡ŒæŠŠå®ƒç¼–译æˆ~DVI~文件(DVI~æ ¼å¼è§\ref{sec:dvi}å°èŠ‚)。æ¤å‘½ä»¤çŸ¥é“输入的是~\LaTeX~æºæ–‡ä»¶ï¼Œæ‰€ä»¥è¿™é‡Œçš„~\verb|.tex|~åŽç¼€å¯ä»¥çœç•¥ã€‚以åŽçš„示例ä¸å¯ä»¥çœç•¥çš„åŽç¼€éƒ½ç”¨~\verb|()|~æ ‡å‡ºï¼Œä¸å†ç‰¹åˆ«å£°æ˜Žã€‚ \begin{code} latex hello_world(.tex) \end{code} 如果系统显示类似下é¢çš„错误信æ¯ï¼Œè¯·æ£€æŸ¥æºæ–‡ä»¶æ˜¯å¦æœ‰æ‹¼å†™é”™è¯¯ã€‚\verb|.log|~文件里有更详细的编译信æ¯ã€‚ \begin{code} ! LaTeX Error: ... ! Emergency stop. ... No pages of output. Transcript written on hello_world.log. \end{code} 如果编译æˆåŠŸï¼Œç³»ç»Ÿä¼šæŠ¥å‡ºç±»ä¼¼ä¸‹é¢çš„ä¿¡æ¯ï¼š \begin{code} Output written on hello_world.dvi (1 page, 232 bytes). Transcript written on hello_world.log. \end{code} æ¯ç§~\LaTeX~å‘行包附带ä¸åŒçš„~DVI~æµè§ˆå™¨ï¼Œæ¯”如~MiKTeX~的是~yap。 \begin{code} yap hello_world(.dvi) \end{code} \section{æ ¼å¼åŠå…¶è½¬æ¢} \subsection{页é¢æè¿°è¯è¨€} \label{sec:pdl} 页é¢æè¿°è¯è¨€ï¼ˆPage Description Language,PDL)是一ç§åœ¨è¾ƒé«˜å±‚次上æ述实际输出结果的è¯è¨€ã€‚本文åªè®¨è®ºå…¶ä¸ä¸‰ç§ä¸Ž~\LaTeX~ç´§å¯†ç›¸å…³çš„æ ¼å¼ï¼šDVIã€PostScriptã€PDF。 \subsubsection{PostScript} 最早的打å°æœºåªç”¨äºŽæ‰“å°å—符,它使用的硬å—符与打å—机类似。åŽæ¥å‡ºçŽ°çš„点阵(dot matrix)打å—机用一系列的点æ¥â€œç”»â€å‡ºå—符,当然它也å¯ä»¥ç”»å‡ºå›¾å½¢ã€‚当时矢é‡å›¾çš„打å°åªèƒ½ç”±ç»˜å›¾ä»ªï¼ˆplotter)æ¥å®Œæˆã€‚ 1976~年,施ä¹ï¼ˆXerox)推出了首å°æ¿€å…‰æ‰“å°æœºï¼Œå®ƒç»“åˆäº†ç‚¹é˜µæ‰“å°æœºå’Œç»˜å›¾ä»ªçš„优点,å¯ä»¥åŒæ—¶æ‰“å°é«˜è´¨é‡çš„图形和文å—。 åŒä¸€æ—¶æœŸï¼ŒJohn Warnock~也在é…酿一ç§ç±»ä¼¼äºŽ~Forth~的图形设计è¯è¨€ï¼Œä¹Ÿå°±æ˜¯åŽæ¥çš„~PostScript(PS),当时他æ£åœ¨æ—§é‡‘山一家电脑图形公å¸~Evans \& Sutherland~工作。1978~å¹´è€æ¿æƒ³è®©~Warnock~æ¬åˆ°ä½äºŽçŠ¹ä»–州的总部,他ä¸æƒ³æ¬å®¶å°±è·³æ§½åˆ°äº†æ–½ä¹ã€‚ Warnock~å’Œ~Martin Newell~å¼€å‘了新的图形系统~JaM(John and Martin),它åŽæ¥è¢«åˆå¹¶åˆ°æ–½ä¹çš„打å°æœºé©±åŠ¨ç¨‹åº~InterPress~ä¸åŽ»ã€‚这两ä½è¿˜å¼€å‘过å¦ä¸€ä¸ªç³»ç»Ÿ~MaJ。 1982~年,Warnock~和施ä¹ç ”究ä¸å¿ƒå›¾å½¢å®žéªŒå®¤ä¸»ä»»~Chuck Geschke~一起离开施ä¹ï¼Œæˆç«‹äº†~Adobe~å…¬å¸ã€‚Newell~åŽæ¥ä¹ŸåŠ 入了~Adobe。 1984~å¹´~Adobe~å‘布~PS~åŽä¸ä¹…,Steve Jobs~è·‘æ¥å‚观,并建议用它æ¥é©±åŠ¨æ¿€å…‰æ‰“å°æœºã€‚次年,æ¦è£…ç€~PS~驱动的~Apple LaserWriter~横空出世,打å“了~80~年代ä¸æœŸæ¡Œé¢å‡ºç‰ˆé©å‘½çš„第一枪。 90~年代ä¸åŽæœŸï¼Œå»‰ä»·å–·å¢¨æ‰“å°æœºçš„æµè¡Œä½¿å¾—~PS~é€æ¸å¼å¾®ï¼Œå› 为~PS~驱动对它们毕竟是一个æˆæœ¬è´Ÿæ‹…。 \subsubsection{PDF} 1993~年,Adobe~推出了一ç§å¼€æ”¾çš„æ ¼å¼ï¼šPortable Document Format(PDF),它于~2007~å¹´æˆä¸º~ISO 32000~æ ‡å‡†ã€‚é™¤äº†å¼€æ”¾ï¼ŒPDF~比起~PS~还有一些其它优势: \begin{itemize} \item PDF~基本上是~PS~的一个åé›†ï¼Œå› æ¤æ›´è½»ä¾¿ã€‚ \item PDF~å¯ä»¥åµŒå…¥æ›´å…ˆè¿›çš„å—体,具体è§\ref{sec:font}节。 \item PDF~支æŒåµŒå…¥ä¹±ä¸ƒå…«ç³Ÿçš„东东,比如动画。 \item PDF~支æŒé€æ˜Žå›¾å½¢ã€‚ \end{itemize} PDF~虽然拥有上述优势,起åˆå®ƒçš„推广å´å¹¶ä¸é¡ºåˆ©ï¼Œå› 为其读写工具~Acrobat~太贵。Adobe~很快推出了å…费的~Acrobat Reader(åŽæ›´å为~Adobe Reader),并ä¸æ–改进~PDF,终于使它超越了曾ç»çš„äº‹å®žæ ‡å‡†~PS,æˆä¸ºç½‘络时代电åæ–‡æ¡£çš„æ–°æ ‡å‡†ã€‚ \subsubsection{DVI} \label{sec:dvi} Knuth~最åˆè®¾è®¡çš„~\TeX~åªèƒ½ç”¨äºŽ~XGP~打å°æœºï¼Œè¿™å°æ‰“å°æœºæœ¬èº«è¿˜éœ€è¦ä¸€å°~PDP-6~主机为它æœåŠ¡ã€‚1979~年,David Fuchs\footnote{Fuchs~本科毕业于普林斯顿,1978~年进入斯å¦ç¦æ”»è¯»åšå£«å¦ä½ã€‚ä»–ä¸æ˜¯~Knuth~çš„å¦ç”Ÿï¼Œä½†æ˜¯å®Œæˆè¿‡ä¸€äº›~\TeX~çš„å¼€å‘任务。他在~Adobe~工作过一段时间,现在混入了娱ä¹åœˆï¼Œæ‹…任过电影《Red Diaper Baby》和《Haiku Tunnel》的制片人。}æ出把~\TeX~çš„è¾“å‡ºæ”¹ä¸ºè®¾å¤‡æ— å…³çš„æ ¼å¼ï¼Œä¹Ÿå°±æ˜¯~Device Independent format(DVI)。 DVI~åªæ˜¯ä¸€ç§ä¸é—´æ ¼å¼ï¼Œç”¨æˆ·è¿˜éœ€è¦å¦å¤–的处ç†ç¨‹åºï¼ˆdriver)把它转æ¢ä¸ºå…¶å®ƒæ ¼å¼ï¼Œæ¯”如~PS~或~PDF~,甚至~PNGã€SVG~ç‰ã€‚DVI~ä¸èƒ½åµŒå…¥å—体和图形,PS~å’Œ~PDF~å¯ä»¥é€‰æ‹©æ˜¯å¦åµŒå…¥å—体。 \subsubsection{Ghostscript} \label{sec:ghostscript} PS~输出时需è¦ä¸€ä¸ªè§£é‡Šå™¨ï¼ˆRaster Image Processor,RIP)æ¥æŠŠå®ƒè½¬æ¢ä¸ºç‚¹é˜µå›¾å½¢ã€‚RIP~å¯ä»¥æ˜¯è½¯ä»¶ï¼Œä¹Ÿå¯ä»¥æ˜¯å›ºä»¶ï¼ˆfirmware)或硬件\footnote{固件~RIP~在打å°æœºå†…置处ç†å™¨ä¸Šè¿è¡Œï¼Œç¡¬ä»¶~RIP~常è§äºŽé«˜ç«¯æ‰“å°è®¾å¤‡ã€‚}。 Ghostscript~是一个基于~RIP~的软件包,除了~RIP~它还有一些其它功能,比如处ç†~EPS,把~PS~转æ¢ä¸º~PDF~ç‰ã€‚Ghostscript~å·²ç»è¢«ç§»æ¤åˆ°~Windowsã€Unix/Linuxã€Mac OS~ç‰å¤šç§æ“作系统,和它匹é…çš„å‰ç«¯å›¾å½¢ç”¨æˆ·ç•Œé¢ï¼ˆGUI)有\href{http://pages.cs.wisc.edu/~ghost/}{GSviewã€Ghostviewã€gv}ç‰ã€‚ \subsection{æ ¼å¼è½¬æ¢} \label{sec:convert_format} DVIã€PSã€PDF~ç‰æ ¼å¼çš„的转æ¢å…³ç³»å¦‚\Fref{fig:convert_format}所示。 \begin{figure}[htbp] \centering \begin{tikzpicture} \node[box] (tex) {.tex}; \node[box] (dvi) [right=5 of tex] {.dvi}; \node[box] (pdf) [right=6 of dvi] {.pdf}; \node[box] (ps) [above=3 of pdf] {.ps}; \path (tex) edge [arrow] node[auto] {latex} (dvi) (dvi) edge [arrow] node[auto] {dvipdfm} (pdf) (dvi.north) [arrow,draw] to node[above,sloped] {dvips} (ps.west) (ps) edge [arrow] node[right] {ps2pdf} (pdf) (tex) edge [arrow,bloop] (pdf); \node [below=.7 of dvi] {pdflatex}; \end{tikzpicture} \caption{æ ¼å¼è½¬æ¢} \label{fig:convert_format} \end{figure} 最早的~driver~是~\verb|dvips|,它把~DVI~转æ¢ä¸º~PS。\verb|dvipdf|~把~DVI~转为~PDF,它åŽæ¥è¢«~\verb|dvipdfm|~所å–代;\verb|dvipdfm|~主è¦ç”¨äºŽå¤„ç†å•å—节å—符,1999~年之åŽåœæ¢å¼€å‘;在~\verb|dvipdfm|~基础上å‘展æ¥çš„~\verb|dvipdfmx|~å¯ä»¥å¤„ç†å¤šå—节编ç (å—符编ç 详è§\ref{sec:encoding}节)。 pdf\TeX~是一ç§ç‰¹æ®Šçš„driver,它跳过~DVI,直接用~\TeX~æºæ–‡ä»¶ç”Ÿæˆ~PDF。基于~pdf\TeX~çš„~pdf\LaTeX~则把\LaTeX~æºæ–‡ä»¶è½¬ä¸º~PDF。 包è€å¸ˆå€¾å‘于~\verb|dvipdfmx|ï¼Œå› ä¸ºå®ƒå¯¹å›¾å½¢æ ¼å¼çš„兼容性较好,而且擅长处ç†ä¸æ–‡ã€‚ 得到~DVI~åŽï¼Œæˆ‘们å¯ä»¥åœ¨æŽ§åˆ¶å°ç”¨ä»¥ä¸‹å‘½ä»¤æŠŠå®ƒè½¬ä¸º~PDF。 \begin{code} dvipdfm hello_world(.dvi) \end{code} 我们也å¯ä»¥æŠŠå®ƒè½¬ä¸º~PS,接ç€ç”¨~Ghostscript~的一个命令行程åºæŠŠå®ƒè½¬æ¢ä¸º~PDF,注æ„第二个命令需è¦~\verb|.ps|~åŽç¼€ã€‚一般情况下ä¸æŽ¨èè¿™ç§æ–¹æ³•ï¼Œå› 为它多了个æ¥éª¤ã€‚ \begin{code} dvips hello_world(.dvi) ps2pdf hello_world.ps \end{code} pdf\LaTeX~用法如下。 \begin{code} pdflatex hello_world(.tex) \end{code} \section{\LaTeX~è¯å¥} \LaTeX~æºæ–‡ä»¶çš„æ¯ä¸€è¡Œç§°ä½œä¸€æ¡è¯å¥ï¼ˆstatement),è¯å¥å¯ä»¥åˆ†ä¸‰ç§ï¼šå‘½ä»¤ï¼ˆcommand)ã€æ•°æ®ï¼ˆdata)和注释(comment)。 命令分为两ç§ï¼šæ™®é€šå‘½ä»¤å’ŒçŽ¯å¢ƒï¼ˆenvironment)。普通命令以\verb|\|~起始,大多åªæœ‰ä¸€è¡Œï¼›è€ŒçŽ¯å¢ƒåŒ…å«ä¸€å¯¹èµ·å§‹å£°æ˜Žå’Œç»“尾声明,用于多行的场åˆã€‚命令和环境å¯ä»¥äº’相嵌套。 æ•°æ®å°±æ˜¯æ™®é€šå†…容。注释è¯å¥ä»¥~\verb|%|~起始,它在编译过程ä¸è¢«å¿½ç•¥ã€‚ 例如在\ref{sec:hello_world}节例1ä¸ï¼Œç¬¬ä¸€è¡Œæ˜¯æ³¨é‡Šï¼Œç¬¬äºŒè¡Œæ˜¯æ™®é€šå‘½ä»¤ï¼›ç¬¬ä¸‰ã€äº”行是环境的起始和结尾声明;第四行是数æ®ã€‚ \section{文档结构} \subsection{文档类ã€åºè¨€ã€æ£æ–‡} \LaTeX~æºæ–‡ä»¶çš„结构分三大部分,ä¾æ¬¡ä¸ºï¼šæ–‡æ¡£ç±»å£°æ˜Žã€åºè¨€ï¼ˆå¯é€‰ï¼‰ã€æ£æ–‡ã€‚ 文档类声明用æ¥æŒ‡å®šæ–‡æ¡£çš„类型;åºè¨€ï¼ˆpreamble)用æ¥å®Œæˆä¸€äº›ç‰¹æ®Šä»»åŠ¡ï¼Œæ¯”如引入å®åŒ…,定义命令,设置环境ç‰ï¼›æ–‡æ¡£çš„实际内容则放在æ£æ–‡éƒ¨åˆ†ã€‚这里的æ£æ–‡æŒ‡å¾—是\verb|\begin{document}|å’Œ\verb|\end|~\verb|{document}|之间的部分,和通常人们心目ä¸çš„“æ£æ–‡â€æ¦‚念有所出入。 这三部分的基本è¯æ³•å¦‚下: \begin{code} \documentclass[options]{class} %文档类声明 \usepackage[options]{package} %引入å®åŒ… ... \begin{document} %æ£æ–‡ ... \end{document} \end{code} 常用的文档类(documentclass)有三ç§ï¼š\verb|articleã€reportã€book|,它们的常用选项è§\fref{tab:class_options}。 \begin{table}[htbp] \centering \caption{文档类常用选项} \label{tab:class_options} \begin{tabularx}{350pt}{lX} \toprule 10pt, 11pt, 12pt & æ£æ–‡å—å·ï¼Œç¼ºçœ10pt。\LaTeX~ä¼šæ ¹æ®æ£æ–‡å—å·é€‰æ‹©æ ‡é¢˜ã€ä¸Šä¸‹æ ‡ç‰çš„å—å·ã€‚\\ letterpaper, a4paper & çº¸å¼ å°ºå¯¸ï¼Œç¼ºçœæ˜¯~letter。\\ notitlepage, titlepage & æ ‡é¢˜åŽæ˜¯å¦å¦èµ·æ–°é¡µã€‚article~缺çœ~notitlepage,report~å’Œ~book~缺çœæœ‰~titlepage。\\ onecolumn, twocolumn & æ 数,缺çœå•æ 。\\ oneside, twoside & å•é¢åŒé¢ã€‚article~å’Œ~report~缺çœå•é¢ï¼Œbook~缺çœåŒé¢ã€‚\\ landscape & 打å°æ–¹å‘横å‘,缺çœçºµå‘。\\ openany, openright & æ¤é€‰é¡¹åªç”¨äºŽ~report~å’Œ~book。report~缺çœ~openany~,book~缺çœ~openright。\\ draft & è‰ç¨¿æ¨¡å¼ã€‚有时æŸäº›è¡ŒæŽ’得过满,draft~模å¼å¯ä»¥åœ¨å®ƒä»¬å³è¾¹æ ‡ä¸Šç²—黑线æ醒用户。\\ \bottomrule \end{tabularx} \end{table} \LaTeX~çš„æ ¸å¿ƒåªæ供基本的功能,系统以å®åŒ…(package)的形å¼æä¾›é™„åŠ åŠŸèƒ½æˆ–å¢žå¼ºåŽŸæœ‰åŠŸèƒ½ã€‚å…¶å®ƒä¸€äº›ç¼–ç¨‹è¯è¨€ä¹Ÿæœ‰ç±»ä¼¼çš„模å—化机制,比如~C/C++~çš„~\verb|#include|,Java~çš„~\verb|import|。 \subsection{æ ‡é¢˜ã€æ‘˜è¦ã€ç« 节} 一份文档æ£æ–‡éƒ¨åˆ†çš„å¼€å¤´é€šå¸¸æœ‰æ ‡é¢˜ã€ä½œè€…ã€æ‘˜è¦ç‰ä¿¡æ¯ï¼Œä¹‹åŽæ˜¯ç« 节ç‰å±‚次结构,内容则散布于层次结构之间。 æ ‡é¢˜ã€ä½œè€…ã€æ—¥æœŸç‰å‘½ä»¤å¦‚下,注æ„\verb|\maketitle|~命令è¦æ”¾åœ¨æœ€åŽã€‚ \begin{code} \title{æ ‡é¢˜} \author{作者} \today \maketitle \end{code} 摘è¦çŽ¯å¢ƒç”¨æ³•å¦‚下: \begin{code} \begin{abstract} ... \end{abstract} \end{code} 常用的层次结构命令如下, \begin{code} \chapter{...} \section{...} \subsection{...} \subsubsection{...} \end{code} æ¯ä¸ªé«˜çº§å±‚次å¯ä»¥åŒ…å«è‹¥å¹²ä½Žçº§å±‚次。\verb|article|~ä¸æ²¡æœ‰~\verb|chapter|,而~\verb|report|~å’Œ~\verb|book|~则支æŒä¸Šé¢æ‰€æœ‰å±‚次。 \subsection{目录} 我们å¯ä»¥ç”¨~\verb|\tableofcontents|~命令æ¥ç”Ÿæˆæ•´ä¸ªæ–‡æ¡£çš„目录,\LaTeX~会自动设定目录包å«çš„ç« èŠ‚å±‚æ¬¡ï¼Œä¹Ÿå¯ä»¥ç”¨~\verb|\setcounter|~命令æ¥æŒ‡å®šç›®å½•å±‚次深度。 \begin{code} \tableofcontents \setcounter{tocdepth}{2} \end{code} 如果ä¸æƒ³è®©æŸä¸ªç« èŠ‚æ ‡é¢˜å‡ºçŽ°åœ¨ç›®å½•ä¸ï¼Œå¯ä»¥ä½¿ç”¨ä»¥ä¸‹å¸¦~\verb|*|~的命令æ¥å£°æ˜Žç« 节。 \begin{code} \chapter*{...} \section*{...} \subsection*{...} \end{code} 类似地,我们也å¯ä»¥ç”¨ä»¥ä¸‹å‘½ä»¤ç”Ÿæˆæ’å›¾å’Œè¡¨æ ¼çš„ç›®å½•ï¼Œæ’å›¾å’Œè¡¨æ ¼åŠŸèƒ½å°†åœ¨åŽé¢ç« 节ä¸ä»‹ç»ã€‚ \begin{code} \listoffigures \listoftables \end{code} å½“ç« èŠ‚æˆ–å›¾è¡¨ç‰ç»“æž„å‘生å˜åŒ–时,我们需è¦æ‰§è¡Œä¸¤é编译命令以获得æ£ç¡®ç»“果。\LaTeX~之所以设计æˆè¿™æ ·å¯èƒ½æ˜¯å› 为当时的电脑内å˜å®¹é‡æœ‰é™ã€‚ \section{æ–‡å—排版} \subsection{å—符输入} 文档ä¸å¯ä»¥è¾“入的内容大致å¯ä»¥åˆ†ä¸ºï¼šæ™®é€šå—符ã€æŽ§åˆ¶ç¬¦ã€ç‰¹æ®Šç¬¦å·ã€æ³¨éŸ³ç¬¦å·ã€é¢„定义å—符串ç‰ã€‚而这些内容有两ç§è¾“入模å¼ï¼šæ–‡æœ¬æ¨¡å¼ï¼ˆç¼ºçœï¼‰å’Œæ•°å¦æ¨¡å¼ï¼Œæ™®é€šçš„行间(inline)数å¦æ¨¡å¼ç”¨\verb|\$...\$|æ¥è¡¨ç¤ºã€‚ \LaTeX~ä¸æœ‰äº›å—符(例如~\verb|# $ % ^ & _ { } ~ \|~ç‰ï¼‰è¢«ç”¨ä½œç‰¹æ®Šçš„控制符,所以ä¸èƒ½ç›´æŽ¥è¾“入,多数需è¦åœ¨å‰é¢åŠ 个~\verb|\|。而~\verb|\|~本身则è¦ç”¨~\verb|\textbackslash|~命令æ¥è¾“å…¥ï¼Œå› ä¸º~\verb|\\|~被用作了æ¢è¡ŒæŒ‡ä»¤ã€‚很奇怪为什么ä¸ç”¨~C~è¯è¨€çš„~\verb|\n|ï¼Œä¹Ÿè®¸æ˜¯å› ä¸º~\TeX~的编程è¯è¨€æ˜¯~Pascal。 \begin{code} \# \$ \% \^{} \& \_ \{ \} \~{} \textbackslash \end{code} \Fref{tab:symbol}~æ供了一些符å·çš„输入方法示例,完整的符å·åˆ—表è§~Scott Pakin的《The Comprehensive \LaTeX~ Symbol List》\citep{Pakin_2008}。 \begin{table}[htbp] \centering \caption{一些符å·å’Œé¢„定义å—符串} \label{tab:symbol} \begin{tabular}{llllll} \toprule \multicolumn{2}{c}{特殊符å·} & \multicolumn{2}{c}{注音符å·} & \multicolumn{2}{c}{预定义å—符串} \\ \cmidrule(lr){1-2} \cmidrule(lr){3-4} \cmidrule(lr){5-6} \textcopyright & \verb|\textcopyright| & \aa & \verb|\aa| & \today & \verb|\today| \\ \textregistered & \verb|\textregistered| & \AA & \verb|\AA| & \TeX & \verb|\TeX| \\ $^\circ$C & \verb|$^\circ$C| & \ae & \verb|\ae| & \LaTeX & \verb|\LaTeX| \\ \textyen & \verb|\textyen| & \o & \verb|\o| & \LaTeXe & \verb|\LaTeXe| \\ \pounds & \verb|\pounds| & \"o & \verb|\"o| & \MF & \verb|\MF| \\ \texteuro & \verb|\texteuro| & \^o & \verb|\^o| & \MP & \verb|\MP| \\ \dots & \verb|\dots| & \~o & \verb|\~o| & \\ \bottomrule \end{tabular} \end{table} \subsection{æ¢è¡Œã€æ¢é¡µã€æ–å—} 通常~\LaTeX~会自动æ¢è¡Œã€æ¢é¡µã€‚用户也å¯ä»¥ç”¨~\verb|\\|~或~\verb|\newline|~æ¥å¼ºåˆ¶æ¢è¡Œï¼›ç”¨~\verb|\newpage|~æ¥å¼ºåˆ¶æ¢é¡µã€‚ 一般情况下~\LaTeX~会尽é‡å‡åŒ€åœ°æ–å—(Hyphenate),使得æ¯ä¸€è¡Œçš„å—é—´è·åˆ†å¸ƒæ•´é½ã€‚但有时我们也需è¦æ˜¾å¼æŒ‡æ˜Žæ–å—ä½ç½®ï¼Œæ¯”如下例就指明~BASIC~这个è¯ä¸èƒ½æ–开,而~blar-blar-blar~å¯ä»¥åœ¨-处æ–开。 \begin{code} \hyphenation{BASIC blar-blar-blar} \end{code} \subsection{å—æ ·ã€å—å·} \LaTeX~会自动调整æ£æ–‡ã€æ ‡é¢˜ã€ç« 节ã€ä¸Šä¸‹æ ‡ã€è„šæ³¨ç‰çš„å—æ ·\footnote{关于å—æ ·è¯¦è§\ref{sec:typeface}节}ã€å—å·ã€‚我们也å¯ä»¥ç”¨\fref{tab:typeface_command}ä¸çš„命令æ¥è®¾ç½®å—æ ·ï¼›ç”¨\fref{tab:fontsize_command}ä¸çš„命令æ¥è®¾ç½®ç›¸å¯¹å—å·ï¼Œæ¯”如æ£æ–‡å—å·æ˜¯~10ptã€11ptã€12pt~时,tinyçš„å—å·å°±åˆ†åˆ«æ˜¯~5ptã€6ptã€6pt。 \LaTeX~有一个特别的å—æ ·å¼ºè°ƒå‘½ä»¤ï¼š\verb|\emph|,它在ä¸åŒå—æ ·å’Œè£…é¥°çŽ¯å¢ƒä¸‹æœ‰ä¸åŒæ•ˆæžœã€‚比如周围文å—是æ£ä½“,它就是斜体;å之它就是æ£ä½“。 \begin{table}[hbtp] \centering \caption{å—æ ·å‘½ä»¤} \label{tab:typeface_command} \begin{tabular}{llll} \toprule \verb|\textrm{...}| & \textrm{roman} & \verb|\textbf{...}| & \textbf{bold face} \\ \verb|\textsf{...}| & \textsf{sans serif} & \verb|\textit{...}| & \textit{italic} \\ \verb|\texttt{...}| & \texttt{typewriter} & \verb|\textsl{...}| & \textsl{slanted} \\ \\ \verb|\emph{...}| & \emph{emphasized} & \verb|\underline{...}| & \underline{underline} \\ \verb|\textsc{...}| & \textsc{Small Caps} & & \\ \bottomrule \end{tabular} \end{table} \begin{table}[htbp] \centering \caption{å—å·å‘½ä»¤} \label{tab:fontsize_command} \begin{tabular}{llll} \toprule & \multicolumn{3}{c}{æ£æ–‡å—å·} \\ \cmidrule(lr){2-4} 命令 & 10pt & 11pt & 12pt \\ \midrule \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 \\ \bottomrule \end{tabular} \end{table} \section{常用命令环境} \subsection{列表} \LaTeX~ä¸æœ‰ä¸‰ç§åˆ—表环境:\verb|itemizeã€enumerateã€description|,它们的一般用法如下: \begin{demo} \begin{itemize} \item C++ \item Java \item HTML \end{itemize} \end{demo} \begin{demo} \begin{enumerate} \item C++ \item Java \item HTML \end{enumerate} \end{demo} \begin{demo} \begin{description} \item{C++} 一ç§ç¼–程è¯è¨€ \item{Java} å¦ä¸€ç§ç¼–程è¯è¨€ \item{HTML} 一ç§æ ‡è®°è¯è¨€ \end{description} \end{demo} \subsection{对é½} \LaTeX~ä¸çš„段è½ç¼ºçœä¸¤ç«¯å¯¹é½ï¼ˆfully justified),我们也å¯ä»¥è®©æ®µè½å±…å·¦ã€å±…å³æˆ–å±…ä¸å¯¹é½ã€‚ \begin{demo} \begin{flushleft} 本段è½\\ å±…å·¦ \end{flushleft} \end{demo} \begin{demo} \begin{flushright} 本段è½\\ å±…å³ \end{flushright} \end{demo} \begin{demo} \begin{center} 本段è½\\ å±…ä¸ \end{center} \end{demo} \subsection{摘录} \LaTeX~ä¸æœ‰ä¸‰ç§æ‘˜å½•çŽ¯å¢ƒï¼š\verb|quoteã€quotationã€verse|。\verb|quote|~两端都缩进,\verb|quotation|~在~\verb|quote|~çš„åŸºç¡€ä¸Šå¢žåŠ äº†é¦–è¡Œç¼©è¿›ï¼Œ\verb|verse|~比~\verb|quote|~多了第二行起的缩进。 \begin{demo} æ£æ–‡ \begin{quote} 引文两端都缩进。 \end{quote} æ£æ–‡ \end{demo} \begin{demo} æ£æ–‡ \begin{quotation} 引文两端缩进,首行缩进。 \end{quotation} æ£æ–‡ \end{demo} \begin{demo} æ£æ–‡ \begin{verse} 引文两端缩进,第二行起缩进。 \end{verse} æ£æ–‡ \end{demo} \subsection{原文照排} 一般文档ä¸ï¼Œå‘½ä»¤å’Œæºä»£ç 通常使用ç‰å®½å—æ ·æ¥è¡¨ç¤ºï¼Œä¹Ÿå°±æ˜¯åŽŸæ–‡ç…§æŽ’。对æ¤~\LaTeX~æ供了~\verb|\verb|~命令(一般用于在æ£æ–‡ä¸æ’入较çŸçš„命令)和~\verb|verbatim|~环境。åŽè€…有带~\verb|*|~的版本用æ¥æ ‡æ˜Žç©ºæ ¼ã€‚ \begin{demo} æ£æ–‡ä¸æ’å…¥\verb|command| \begin{verbatim} printf("Hello, world!"); \end{verbatim} \begin{verbatim*} printf("Hello, world!"); \end{verbatim*} \end{demo} \subsection{交å‰å¼•ç”¨} 我们常常需è¦å¼•ç”¨æ–‡æ¡£ä¸~\verb|sectionã€subsectionã€figureã€table|~ç‰å¯¹è±¡çš„ç¼–å·ï¼Œè¿™ç§åŠŸèƒ½å«ä½œäº¤å‰å¼•ç”¨ï¼ˆcross referencing)。 \LaTeX~ä¸å¯ä»¥ç”¨~\verb|\label{marker}|~命令æ¥å®šä¹‰ä¸€ä¸ªæ ‡è®°ï¼Œæ ‡è®°åå¯ä»¥æ˜¯ä»»æ„å—符串,但是在全文ä¸é¡»ä¿æŒå”¯ä¸€ã€‚之åŽå¯ä»¥ç”¨~\verb|\ref{marker}|~命令æ¥å¼•ç”¨æ ‡è®°å¤„ç« èŠ‚æˆ–å›¾è¡¨çš„ç¼–å·ï¼Œç”¨~\verb|\pageref{marker}|~æ¥å¼•ç”¨æ ‡è®°å¤„的页ç 。 \begin{demo} 被引用处\label{sec}\\ ...\\ 第\pageref{sec}页\ref{sec}节 \end{demo} 文档ä¸æ–°å¢žäº¤å‰å¼•ç”¨åŽï¼Œç¬¬ä¸€æ¬¡æ‰§è¡Œ~\verb|latex|~或~\verb|pdflatex|~编译命令时会得到类似下é¢çš„è¦å‘Šä¿¡æ¯ã€‚å› ä¸ºç¬¬ä¸€æ¬¡ç¼–è¯‘åªä¼šæ‰«æ出有交å‰å¼•ç”¨çš„地方,第二次编译æ‰èƒ½å¾—到æ£ç¡®ç»“果。 \begin{code} LaTeX Warning: There were undefined references. ... LaTeX Warning: Label(s) may have changed. Rerun to get cross- references right. \end{code} \subsection{脚注} 脚注(footnote)的一般用法如下: \begin{demo} 这里是一段æ£æ–‡ã€‚\footnote{这里是一段脚注。} \end{demo} \section{长度å•ä½} \LaTeX~ä¸çš„常用长度å•ä½å¦‚\Fref{tab:unit}~所示。point~æ˜¯ä¸ªä¼ ç»Ÿå°åˆ·ä¸šé‡‡ç”¨çš„å•ä½ï¼Œè€Œ~big point~是~Adobe~推出~PS~时新定义的å•ä½ã€‚em~是个相对å•ä½ï¼Œæ¯”如当å‰å—体是~11pt~时,1em~就是~11pt。 \begin{table}[htbp] \caption{常用长度å•ä½} \label{tab:unit} \centering \begin{tabular}{llllll} \toprule in & 英寸 & pt & point, 1/72.27 in & em & 当å‰å—体ä¸å—æ¯M的宽度 \\ cm & 厘米 & bp & big point, 1/72 in & ex & 当å‰å—体ä¸å—æ¯x的高度 \\ mm & 毫米 & pc & pica, 12 pt & mu & math unit,1/18 em \\ \bottomrule \end{tabular} \end{table} \section{ç›’å} \LaTeX~在排版时把æ¯ä¸ªå¯¹è±¡ï¼ˆå°åˆ°ä¸€ä¸ªå—æ¯ï¼Œå¤§åˆ°ä¸€ä¸ªæ®µè½ï¼‰éƒ½è§†ä¸ºä¸€ä¸ªçŸ©å½¢ç›’å(box),我们在~HTML~å’Œ~CSS~ä¸ä¹Ÿå¯ä»¥è§åˆ°ç±»ä¼¼çš„模型。 \subsection{mbox~å’Œ~fbox} \LaTeX~ä¸æœ€ç®€å•çš„ç›’å是~\verb|\mbox|~å’Œ~\verb|\fbox|。å‰è€…把一组对象组åˆèµ·æ¥ï¼ŒåŽè€…在æ¤åŸºç¡€ä¸ŠåŠ 了个边框。 \begin{demo} \mbox{010 6278 5001} \fbox{010 6278 5001} \end{demo} \subsection{makebox~å’Œ~framebox} ç¨å¤æ‚çš„~\verb|\makebox|~å’Œ~\verb|\framebox|~æ供了宽度和对é½æ–¹å¼æŽ§åˆ¶é€‰é¡¹ã€‚这里用~lã€rã€s~分别代表居左ã€å±…å³å’Œåˆ†æ•£å¯¹é½ã€‚ \begin{demo} %è¯æ³•ï¼š[宽度][对é½æ–¹å¼]{内容} \makebox[100pt][l]{å±…å·¦} \framebox[100pt][r]{å±…å³} \end{demo} \subsection{parbox~å’Œ~minipage} 大一些的对象比如整个段è½å¯ä»¥ç”¨~\verb|\parbox|~命令和~\verb|\minipage|~环境,两者è¯æ³•ç±»ä¼¼ï¼Œä¹Ÿæ供了对é½æ–¹å¼å’Œå®½åº¦çš„选项。但是这里的对é½æ–¹å¼æ˜¯æŒ‡ä¸Žå‘¨å›´å†…容的纵å‘关系,用~tã€cã€b~分别代表居顶ã€å±…ä¸å’Œå±…底对é½ã€‚ \begin{demo} %è¯æ³•ï¼š[对é½æ–¹å¼]{宽度}{内容} \parbox[c]{90pt}{é”¦ç‘Ÿæ— ç«¯äº”å弦,\\一弦一柱æ€åŽå¹´ã€‚}æŽå•†éš \end{demo} 细心的读者会å‘现~\verb|\parbox|~å’Œ~\verb|\minipage|~的选项排列顺åºå’Œ~\verb|\makebox|~å’Œ~\verb~\framebox|~çš„ä¸ä¸€è‡´ï¼Œå¯èƒ½å‡ºè‡ªä¸åŒçš„作者。 \bibliographystyle{unsrtnat} \bibliography{reading} \newpage