用LaTeX寫C語言實(shí)驗(yàn)報告2:封面的制作

繼上回工具已經(jīng)準(zhǔn)備好,接下來就應(yīng)該是正式開始制作了吧?

但在開始之前我們先了解一下基本語法知識吧hhh


TeX文檔由導(dǎo)言區(qū)和正文區(qū)組成,

\documentclass{article}
\usepackage{graphicx} % 圖形拓展庫,導(dǎo)入它才能顯示圖片
\usepackage[a4paper]{geometry} % 調(diào)整紙張大小和頁邊距的包,中括號中規(guī)定了紙張大小
\geometry{left=2.0cm,right=2.0cm,top=2.0cm,bottom=2.0cm} % 頁邊距設(shè)置
% 導(dǎo)言區(qū)的其他內(nèi)容
\begin{document}
   Hello LaTeX
   % 正文部分的其他內(nèi)容
\end{document}

第一行的\documentclass{article},用來標(biāo)注文檔類型,包括article,book,report等等。
從第二行開始到\begin{document}之前,都是導(dǎo)言區(qū)的內(nèi)容,一般用來導(dǎo)入拓展包(就和C語言里的#include<xxx>差不多作用),定義一些全局屬性什么的。例如這里導(dǎo)入了圖形拓展包和geometry拓展包,然后設(shè)置了頁邊距什么的。
\begin{document}\end{document}里面包圍的則是正文,文檔的所有內(nèi)容都在這里。


TeX主要有兩種類型的語句(姑且叫它語句吧)
第一種叫做命令,像\usepackage{graphicx}\documentclass{article}這樣的叫就是命令,只占一行,它的標(biāo)準(zhǔn)格式如下:

\commandname[arg1]{arg2}

也存在多個中括號和大括號的情況,具體我也不是很清楚

第二種叫環(huán)境,環(huán)境有三部分,分別是開始的\begin{environmentname},中間的文本以及結(jié)束的\end{environmentname},支持多級嵌套。


然后你會發(fā)現(xiàn)寫中文會編譯錯誤或者編譯成功了也無法顯示。前面我說了原本TeX的設(shè)計者壓根就沒考慮亞洲國家的語言,所以難怪不支持中文,不過還好我們國人很強(qiáng)大,將中文已經(jīng)適配好了。
只要在導(dǎo)言區(qū)加一個\uscpackage{ctex}就可以完美的支持中文,或者直接用\documentclass{ctexart}代替原來的\documentclass{article}也可以。


基礎(chǔ)知識介紹完畢,接下來開始正式制作吧!

我要做的實(shí)驗(yàn)封面大致上長這樣

首先遇到的難題就是修改字體大小,根據(jù)網(wǎng)上所查,改字體大小有下面的一系列命令:

\tiny
\scriptsize
\footnotesize
\small
\normalsize
\large
\Large
\LARGE
\huge
\Huge

字體大小依次從小變大。

但我試了之后發(fā)現(xiàn)最大的 \Huge依然不夠大,
后來我又想起了ctex自帶的字體大小命令:\zihao{-5},里面的數(shù)字對應(yīng)中文里的字體大小,例如5就是五號字體,-5就是小五號字體,而0則是初號。但我嘗試之后發(fā)現(xiàn)最大的初號還是不夠大。emmm,只能繼續(xù)百度了。

搜尋一整子之后發(fā)現(xiàn)了這個命令\fontsize{24pt}{24pt},它可以任意設(shè)置字體大小,前面的數(shù)字代表字體的大小,這里的單位pt和我們word上的字體單位一樣,后面的數(shù)字百度上說是行距,但我改了以后沒什么變化,改成0也沒事,它的作用我還不清楚,這里存疑。

需要注意的是上面說的這些改變字體大小的命令,只要在某個位置有這個命令,接下來所有的文字的字體都會變成同樣的大小。

如果只想臨時改變字體大小的話可以這樣 {\Huge 最大字體},這樣就不會影響后面文字的大小了。我估計這些命令的作用域(照抄C語言里面的概念hhh)都是在當(dāng)前大括號內(nèi)部。


字體的問題解決之后又遇到了新問題,“南華大學(xué)”和“實(shí)驗(yàn)報告”之間隔得距離太近,要拉開一點(diǎn),要用到\vspace*{24pt},里面的數(shù)字就是垂直間隔的距離。還有類似的命令\hspace*{24pt}是控制水平間隔的。

做完之后整體效果還不錯:
\documentclass[UTF8]{ctexart}
\usepackage[a4paper]{geometry} % 調(diào)整紙張大小和頁邊距的包,中括號中規(guī)定了紙張大小
\geometry{left=2.0cm,right=2.0cm,top=2.0cm,bottom=2.0cm} % 頁邊距設(shè)置
\begin{document}
    \begin{titlepage}
        \heiti
        \vspace*{64pt}
        \begin{center}
            \fontsize{72pt}{0} 南華大學(xué)\\
            \vspace*{36pt}
            \fontsize{48pt}{0}{實(shí)\quad 驗(yàn)\quad 報\quad 告}\\
            \vspace*{48pt}
            \LARGE(20\quad\~{}20\quad 學(xué)年度\qquad 第\quad 學(xué)期)\\
            \vspace*{48pt}
        \end{center}
    \end{titlepage}
\end{document}

這里面還有需要解釋的地方就是TeX里面符號不能直接寫,要改成\~{},還有中文里面空格也不能直接寫,要在前面加一個\,與此類似的標(biāo)點(diǎn)還有:

# 用在宏定義中
$ 數(shù)學(xué)模式符號
% 注釋符號
^ 上標(biāo)符號
& 表格對齊符號 
{ } 分組符號 
_  數(shù)學(xué)模式的下標(biāo)符號
\ 宏命令符號

它們都因?yàn)橛刑厥夂x不能直接使用,基本上都是通過在前面加一個\來輸入,除了 \符號是\textbackslash^符號是\^{}

center環(huán)境中的文字會居中,與此類似地還有flushleft和flushright環(huán)境,分別是左對齊和右對齊。至于那個titlepage環(huán)境,本來多頁的文檔會在右上角默認(rèn)顯示當(dāng)前的頁數(shù),封面肯定不需要頁數(shù)嘛,在titlepage環(huán)境中就不會占據(jù)頁數(shù)了,還有自動分頁的功能。

至于那個 \heiti嘛,顧名思義,之后的字體都變成黑體,是CTeX宏包提供的命令,與此類似的還有\fangsong \kaishu \songti,意思大家肯定也可以猜出來。

關(guān)于空格和換行

在latex里多個空格與一個空格效果是一樣的,而且在中文之間普通的空格也沒用,得在前面加一個\,直接這樣說說不明白,干脆上例子吧:

你好      哈哈哈哈hello     world

上面的代碼生成后的文字是這樣的:你好哈哈哈哈hello world,這下就明白了吧。英文中無論多少個空格都只算一個空格,而在中文中emmm無論多少個空格都相當(dāng)于沒有空格......不知道ctex的設(shè)計者怎么想的。
于是想用空格的話得用命令寫,除了前面講的在空格前加\代表一個空格之外,匯總一下有這些命令:

a\qquad b   %四個正??崭?a\quad b    %兩個正常空格
a\ b        %正??崭瘢簿褪俏覀儼聪驴崭矜I所產(chǎn)生的空格
a\;b        %小空格
a\,b        %超小的空格
a\!b        %a和b之間完全緊貼在一起,需要反向縮進(jìn)

至于這個小和超小具體有多小就自己嘗試一下吧,畢竟實(shí)踐出真知hhhhh

關(guān)于回車的話,TeX里面直接回車是不能換行的,得用\newline來換行,或者直接打兩個斜杠\\也是一樣的效果。


接下來便是下面的填空部分


本以為很簡單,只要用下劃線命令\underline{}然后在里面瘋狂加空格就好了,這樣確實(shí)可以實(shí)現(xiàn)功能,但有一個問題,就是我后期是要把它做成模板的,讓用戶可以像\documentclass{report}這樣使用它。那我肯定不能讓用戶自己決定放多少空格,而且單純用空格的話里面的文字改了的話還得修改空格的數(shù)量與位置,非常麻煩。

于是我上網(wǎng)尋找,找到了一個非常好的命令:

\makebox[寬度]{文本}

這個命令可以創(chuàng)造一個看不見的矩形,將文本包圍在里面,里面的文本默認(rèn)是居中,如果不想居中的話可以這樣:\makebox[寬度][位置]{文本},位置那里可以輸入的值有l(wèi):左端;r:右端;s:兩端。
這個命令就很舒服了,還可以精準(zhǔn)控制下劃線的寬度,豈不美哉?

還有類似的命令叫framebox,區(qū)別是會有一個黑色的框框?qū)⑽谋景鼑饋怼?/p>


經(jīng)過多次努力,封面完成了
代碼如下:

\documentclass[UTF8]{ctexart}
\usepackage[a4paper]{geometry} % 調(diào)整紙張大小和頁邊距的包,中括號中規(guī)定了紙張大小
\geometry{left=2.0cm,right=2.0cm,top=2.0cm,bottom=2.0cm} % 頁邊距設(shè)置
\begin{document}
    \begin{titlepage}
        \heiti
        \vspace*{64pt}
        \begin{center}
            \fontsize{72pt}{0} 南華大學(xué)\\
            \vspace*{36pt}
            \fontsize{48pt}{0}{實(shí)\quad 驗(yàn)\quad 報\quad 告}\\
            \vspace*{48pt}
            \LARGE(20\quad\~{}20\quad 學(xué)年度\qquad 第\quad 學(xué)期)\\
            \vspace*{48pt}
        
            \LARGE 課程名稱\ \ \underline{\makebox[200pt]{C程序設(shè)計}}\\
            \LARGE 實(shí)驗(yàn)名稱\ \ \underline{\makebox[200pt]{成績管理系統(tǒng) V2.0}}\\
            \vspace*{72pt}
        
            \Large 姓名\ \ \underline{\makebox[108pt]{}}\ \ 學(xué)號\ \ \underline{\makebox[108pt]{}}\\
            \Large 學(xué)院\ \ \underline{\makebox[108pt]{}}\ \ 班級\ \ \underline{\makebox[108pt]{}}\\
            \Large 地點(diǎn)\ \ \underline{\makebox[108pt]{}}\ \ 教師\ \ \underline{\makebox[108pt]{}}\\
        \end{center}
    \end{titlepage}
\end{document}

生成后的pdf是這樣的:

哇,簡直是太完美了。


總結(jié)

由于本期新學(xué)了很多東西,在這里總結(jié)一下
首先TeX有兩種語句:\commandname[arg1]{arg2}\begin{environmentname}中間文本\end{environmentname},分別叫命令和環(huán)境
然后一個TeX文檔有兩部分,分別是導(dǎo)言區(qū)和正文區(qū),它們各有各的作用
接著是不能直接輸入,而是要轉(zhuǎn)義的符號:~#$%^&{}_\
最后是一堆命令:

\documentclass{article}  %定義文檔類型
\uscpackage{ctex}  %導(dǎo)入拓展包,這里是中文支持包

%從小到大的各種字體大小
\tiny  \scriptsize  \footnotesize   \small   \normalsize
\large \Large    \LARGE   \huge   \Huge

\zihao{-5}  %設(shè)置中文字號
\fontsize{24pt}{24pt}  %設(shè)置具體的字體大小,第二個參數(shù)作用不明
\vspace*{24pt}    \hspace*{24pt}  %設(shè)置垂直和水平間距
\\   \newline  %換行
\qquad \quad \  a\; \, \!  %從大到小的各種空格
\underline{文本}  %給文本加下劃線
\makebox[寬度][位置]{文本}  %在文本外面包圍一個虛擬的矩形,默認(rèn)為居中
\framebox[寬度][位置]{文本} %周圍有黑色的邊框,其他與上面一致
\heiti \fangsong \kaishu \songti %各種中文字體

還有兩種環(huán)境

\begin{titlepage} 封面內(nèi)容 \end{titlepage} %設(shè)置里面的內(nèi)容為封面,不占據(jù)一個頁數(shù)
\begin{center|flushleft|flushright} %居中,左對齊和右對齊

本期到此結(jié)束,讓我們下期再見

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容