【LaTeX】E喵的LaTeX新手入门教程(2)基础排版
換了塊硬盤折騰了好久。。聯想的驅動真坑爹。前情回顧【LaTeX】E喵的LaTeX新手入門教程(1)準備篇文檔框架嗯昨天我們已經編寫了一個最基本的文檔,其內容是這樣的:\documentclass{article}
\begin{document}
XXX?is?a?SB.
\end{document}這個文檔呢其實是分為兩部分的:一部分是\begin{document}之前的那部分也就是第一行,這一部分我們稱之為導言區。導言區的內容可以不只一行,它的作用是完成文檔的基礎設定。比如在這個文檔中,我們使用了\documentclass{article}來指定這篇文檔采用的類型是『文章』。LaTeX為我們內置了一些文檔類,它們是一些已經預設好格式的文檔模板,針對各種標題、文字格式的預設。LaTeX提供的文檔類包括短篇文章用的article類、各種報告用的report類,還有書籍用的book類等等。使用的方法就像上面一樣,把article換成別的文檔類就可以了。除此之外,TeX系統還包含很多擴展,使得我們可以使用大量的第三方文檔類,比如專門用于制作幻燈片的beamer類等。LaTeX文檔必須指定一種文檔類,因此使用LaTeX最先輸入的都是\documentclass這個控制序列。導言區后面就是文檔的主體內容了,文檔內容包含于\begin{document}和\end{document}之間,在這中間你可以錄入各種文檔內容。我們將從這個文檔開始逐漸擴充文檔內容,體驗使用LaTeX裝13所帶來的各種神奇之處吧。SB的成長之路我們先來看一下我們已有的成果:段落讓我們來繼續編輯先前的文檔。這個時候你覺得你罵得不夠狠,于是加上一行更狠的:\documentclass{article}
\begin{document}
XXX?is?a?SB.
XXX?is?a?big?SB.
\end{document}但是結果很奇怪:可以看到我們本來的分行被“吃掉”了。這就要說到TeX對于空格和空行的處理了。對于空行和空格,LaTeX是這么干的:
- 多少空格都跟一個空格沒區別。
- 一個回車的作用等于一個空格。
- 兩個回車可以分段。
- 多個回車跟兩個空行回車沒區別。
所以我們修正一下代碼:\documentclass{article}
\begin{document}
XXX?is?a?SB.
XXX?is?a?big?SB.
\end{document}OK,大功告成。正是由于這個原因,代碼XXX?is?a?big?SB.與代碼XXX
is
a????????????big?SB.所產生的文檔是一樣的。因此在寫文檔時,你可以把一個很長的段落分為很多行來寫,這對于不支持自動換行的編輯器來說實在是個好功能。控制序列這個時候你覺得這個文檔不夠具象化,如果一個big SB真的能變成一個大一號的SB就好了。于是,我們可以把文檔稍稍改動一下:\documentclass{article}
\begin{document}
XXX?is?a?SB.
XXX?is?a?\large?SB.
\end{document}這個時候我們就得到了大一號的SB:這也就是說,符號\絕對是一個化腐朽為神奇的東西。在LaTeX中,以\開頭的東西都被叫做控制序列。控制序列的構成有兩種形式:
也就是說,\large是一個控制序列,而\large2就是\large控制序列外加輸出一個字符2;\*、\_乃至\<空格>都是控制序列,而\**則是\*外加輸出一個字符*。控制序列是大小寫敏感的,也就是說,\large和\Large是兩個不同的控制序列。不信你可以把代碼中的\large換成\Large,你會得到一個更大號的SB。調整文字大小剛才我們用到了控制序列\large來讓字體變得稍稍大一些。事實上還有一些類似的控制序列,雖然在正式文檔中用它們實在是太奇怪了,但是你一定會好奇→_→\tiny?tiny
\small?small
\normalsize?normalsize
\large?large
\Large?Large
\huge?huge
\Huge?Huge也就是說,如果我們中途改變了字體大小,再想改回來就必須記住之前到底改成了啥。這對于喜歡偷懶的人實在是不好辦。所以另一個家伙要登場了:它就是傳說中的花括號君{}。使用了它,你可以花括號范圍內隨便作妖,而出了花括號所有的改動就自動變回原形。像這樣:There?is?a?{\huge?SB}?and?a?normal?SB.花括號還有很多神奇的用途,比如:?{?}?{?}a就可以得到四個空格和一個a。前面說過多個空格會被當成一個空格,而有了花括號君你就可以搞出很多空格了。當然這在正式的文檔中似乎也沒什么用。小測試(提示:一定要動手試,很坑爹的。)
1. 如果\LaTeX能生成LaTeX標志的話,猜猜是如何生成的。
2.?又是如何生成的?還有其他的文字格式。。粗體斜體什么的都是有的~\bfseries可以使后面的字體加粗,\itshape可以使后面的字變成斜體,\ttfamily可以使后面的字變成等寬字體族,\rmfamily可以使后面的字變成羅馬字體族(也就是默認字體)。當然更常用的是局部改變字體形狀的控制序列:\textbf{}、\textit{}、\textsl{}←這個才是真·斜體,其實剛才的叫做Italic。。\texttt{}、\textrm{}。這幾個控制序列都是支持參數的,因此要把參數加到它們的花括號中。像這樣:\textbf{Bold}?text.這也是正是花括號都君的另一大用法:對于有參數的控制序列,花括號用于向它們傳遞參數。各種符號君們。。前面提到了\、{}都具有特殊的意義,那么想輸出它們怎么辦?當然還要靠萬能的\啦。。在LaTeX中,這些符號是不能直接輸出的:#?$?%?^?&?_?{?}?\?空格。。有了\之后,\#就可以輸出#,\$就可以輸出$,依次類推。空格是個奇葩,多個空格相當于一個空格,但是用\<空格>就可以再來一個空格了。但是\\不會輸出\的,它跟\newline作用一樣,顧名思義你懂的。要想得到\的話。。。你需要\textbackslash。所以你要是想在LaTeX中打一段Windows路徑的話。。C:\Windows\xxx\yyy\zzz\想想都可怕→_→。好在。。我們有\verb控制序列,可以使它影響范圍內的東西不被變成奇怪的東西。用法是這樣的:\verb|C:\xxx\yyy\zzz|接在\verb后面的第一個符號就被當作分隔符,直到再次遇到這個分隔符之前,所有的文字都不會被轉義。所以\verb+C:\xxx\yyy\zzz+效果一樣的。這樣生成的一定是Typewriter字體族,要想生成默認字體的話。。淡定。。此外,~的獲得方法是\~{}。如果你看它不順眼可以用$\sim$←數學里相似三角形的那個符號'只會單純地輸出右引號’。"也是只會輸出右引號”。想要左引號需要`和``來產生左單引號和左雙引號。其實''也可以產生右雙引號。-產生連字符。--產生短破折號,---產生長破折號。外國人毛病真多→_→偷懶截lshort里的圖標題什么的再次回到原來的文檔。我們對它稍加改動\documentclass{article}
\begin{document}
\section{XXX?is?a?SB.}
XXX?is?a?big?SB.
\section{mei?le}
\end{document}得到了這已經很明顯了:\section{節名}就可以得到一個標題,而且還是自動編號的。LaTeX有許多分級標題:由大到小分別是\part、\chapter、\section、\subsection、\subsubsection、\paragraph、\subparagraph,其中\part和\chapter是只有book文檔類才有的哦。如果你不想要編號,可以在它們后面加個*,像這樣:\section*{節名}就生成了一個臨時不編號的節。好了我們再加點東西:\documentclass{article}
\begin{document}
\tableofcontents
\newpage
\section{XXX?is?a?SB.}
XXX?is?a?big?SB.
\section{mei?le}
\end{document}然后編譯兩遍。居然有目錄了真是炫酷。。。對你沒看錯。。一個\tableofcontents目錄就來了,全自動哦。。至于\newpage是干啥的。。你懂的。。除了目錄之外,簡單的交叉引用還有腳注:blah?blah\footnote{This?is?zhuang?13.}大家可以一試效果。擴展包來了。。再添加一些內容:\documentclass{article}
\usepackage{hyperref}
\begin{document}
\tableofcontents
\newpage
\section{XXX?is?a?SB.}
XXX?is?a?big?SB.
\section{mei?le}
\end{document}我們再來編譯兩遍。打開生成的文檔,發現目錄項外面都多了一圈紅框框,你再在目錄項上單擊一下試試。沒錯居然支持跳轉了。。真是炫酷啊。。我們來看看多了什么:導言區多了一行\usepackage{hyperref}。大概看一下翻譯成中文就是“使用包hyperref”這個樣子。。LaTeX是支持各種擴展的,哪個用戶用著用著不爽就可以寫一個宏包(package)來造福后人,只要被你的TeX發行版收錄了你就可以用了。就用\usepackage。比如說這個hyperref宏包,它就可以把文檔內的各種引用做成超鏈接,還可以定義pdf文檔的各種屬性之類的。我們用了這個宏包,就能使用它所提供的各種功能。編寫復雜的文檔肯定是要用到各種宏包的,因此熟悉一些常用宏包的用法是有必要的,因為有些宏包是需要你“主動”使用其中定義的控制序列的~每個宏包在發布時都會帶有自身用法的文檔,如果你使用TeX Live發行版,可以這樣查看各個宏包的文檔:texdoc?宏包名大部分是英文的,嗯。。。可選項雖然我們有了超鏈接,但是這紅框框什么的實在是賣相不足,就算拿來賣萌估計也沒什么成效。。所以加點東西讓它好看一些好了:\documentclass{article}
\usepackage[colorlinks=true,
????????????linkcolor=blue
????????????]{hyperref}
\begin{document}
\tableofcontents
\newpage
\section{XXX?is?a?SB.}
XXX?is?a?big?SB.
\section{mei?le}
\end{document}再編譯兩遍。這回不僅沒有了紅框框,鏈接顏色也變成藍色了。我們看到新加的選項被放進了方括號[]中間。方括號的意思就是可選項,如果你不寫就可以省略的那種,這是LaTeX宏包所遵循的一般原則。許多宏包都有著很多豐富的選項,都可以使用方括號來進行選擇。連\documentclass也是有可選項的。比如我們把第一行換成\documentclass[landscape]{article}頁面就橫過來了。這些選項可以寫在一行里,也可以分很多行。分很多行的目的是裝13使代碼更美觀。很多平常使用的控制序列也是有可選項的。環境如果我們覺得除了XXX之外,YYY和ZZZ也是SB的話呢。。\begin{itemize}
?\item?XXX?is?a?big?SB.
?\item?YYY?is?a?big?SB.
?\item?ZZZ?is?a?big?SB.
\end{itemize}哇又見到久違的begin和end了。。對于這種\begin{...}和\end{...}包圍的東西我們稱之為環境,花括號里寫什么就叫什么環境。itemize就是一種枚舉環境:它生成無編號的列表。如果我們把itemize環境變成enumerate環境的話,就生成有編號的列表。大家可以一試。下面列出一些正文中常用的環境及其作用。flushleft:環境中的內容居左。
flushright:環境中的內容居右。
center:環境中的內容居中。
itemize:無編號列表
enumerate:有編號列表
description:帶描述列表
quote:引用,使得整段縮進
verse:詩歌專用,\\可以斷行,兩個空行的分段則生成一個空行。注釋什么。。你忘了你寫過的某個地方啥意思了?有了注釋就不會了。。注釋就是LaTeX編譯器遇到就會跳過的東西,所以這東西只有你看。用法是一個百分號%,作用范圍直到這一行結束。--?Can?you?see?it??%?No,?I?can't.
--?Yes,?I?can.今天的內容就這些。。東西太多太雜,可能漏了點啥。。下期預告:LaTeX的拿手好戲——數學公式。。
from:?http://blog.renren.com/blog/339175058/893715994?bfrom=01020110200
總結
以上是生活随笔為你收集整理的【LaTeX】E喵的LaTeX新手入门教程(2)基础排版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【LaTeX】E喵的LaTeX新手入门教
- 下一篇: 【LaTeX】E喵的LaTeX新手入门教