latex 三线表_LaTeX学习记录(3):使用图表
學(xué)習(xí)記錄(3):使用圖表
每次跟朋友安利 的時(shí)候我都會(huì)講這么一個(gè)故事:
?當(dāng)時(shí)設(shè)計(jì)天琴一號(hào)加速度計(jì)的控制器參數(shù),出于數(shù)字控制參數(shù)切換的便利性,瘋狂設(shè)計(jì)了十幾套參數(shù)。然而寫報(bào)告的時(shí)候傻了:老板要求每套參數(shù)六個(gè)自由度的詳細(xì)參數(shù)、指標(biāo)都匯總到表格里。要是手動(dòng)錄入,恐怕得折騰一天,于是我想到了一個(gè)騷操作:MATLAB設(shè)計(jì)完參數(shù)后以 表格代碼的形式格式化輸出到 tex 文件,編譯生成 PDF 后用 Acrobat 轉(zhuǎn)成 Word,就可以復(fù)制了。就這樣,10分鐘不到的時(shí)間就把整個(gè)表格做完了。
?每每想到這里都會(huì)想到 miHoYo 里的 「Tech Otakus Save the World」。然而更高技術(shù)的朋友會(huì)問:“你為什么不直接用MATLAB輸出到EXCEL呢?你不會(huì)不知道 writetable 這一系列命令吧?不會(huì)吧不會(huì)吧?” 唔……愛琴海警告。
廢話不多說,趕緊進(jìn)入正題,はじめましょう開始吧。
認(rèn)識(shí)浮動(dòng)體
有很多“環(huán)境”的概念,在代碼里就體現(xiàn)為采用 \begin{} 和 \end{} 括起來的部分。環(huán)境一般用于局部的格式設(shè)置或者功能擴(kuò)展,比如正常寫作時(shí)采用的是兩端對(duì)齊,如果想臨時(shí)居中某內(nèi)容時(shí),可以使用 center 環(huán)境,如
如果采用?$\rm?\LaTeX$?進(jìn)行編譯后,生成的文檔中,這里是正常的兩端對(duì)齊文字。\begin{center}
????這里是居中的文字。
\end{center}
環(huán)境是可以嵌套的,例如上面的內(nèi)容在正文區(qū),而正文區(qū)開始于 \begin{document} ,說明正文是處于 document 環(huán)境下的。
可以想象,一般的圖表都采用居中的格式,應(yīng)當(dāng)分別處于獨(dú)立的環(huán)境中, 為此提供了 table 和 figure 環(huán)境。對(duì)于上例這樣一般的環(huán)境,它僅提供局部的格式變動(dòng),不會(huì)影響上下文之間的位置關(guān)系。而 table 和 figure 卻與之不同,它們被稱作浮動(dòng)體,意思是源碼之間的相對(duì)位置與編譯后生成文檔中的相對(duì)位置可能是不同的。比如源碼中的順序是先寫“如圖 3 所示”,然后再插入圖片,生成的文檔可能會(huì)先插入圖片,再出現(xiàn)“如圖 3 所示”。
圖表采用這種浮動(dòng)體的原因有
- 一般文檔會(huì)以交叉引用的方式指明圖表(比如“如圖 3 所示”,而不是“如下圖所示”),因此圖表與正文的相對(duì)位置沒有過于嚴(yán)格的要求;
- 當(dāng)前頁面內(nèi)的剩余版面可能無法完整插入圖片或者表格,如果留空白會(huì)導(dǎo)致排版不好看,因此可以將圖表移位,用后文填充頁面;
- 默認(rèn)的排版美學(xué):同一頁內(nèi)連續(xù)使用圖表或出現(xiàn)過多圖表會(huì)使頁面顯得比較空洞而不好看。
使用浮動(dòng)體(table 和 figure環(huán)境)時(shí)可以用中括號(hào)添加可選參數(shù),表示可以浮動(dòng)的位置,可選以下幾個(gè)參數(shù)或其組合:
- h:允許在當(dāng)前位置(here),即源碼中插圖與正文的相對(duì)位置保持一致;
- t:允許在當(dāng)前頁面的最頂端(top);
- b:允許在當(dāng)前頁面的最低端(bottom);
- p:允許將圖片放在單獨(dú)一頁(page)。
有時(shí)候 默認(rèn)的排版美學(xué)會(huì)讓人感到困惑,因此浮動(dòng)體還支持采用 ! 選項(xiàng)突破默認(rèn)的限制,例如我自己插圖的時(shí)候經(jīng)常會(huì)采用 \begin{figure}[!htb] 的設(shè)置。
使用插圖
為了在文檔中插入圖片,需要對(duì) 的功能進(jìn)行“擴(kuò)展”,在導(dǎo)言區(qū)使用 \usepackage{graphicx} 宏包即可。這個(gè)宏包提供的 \includegraphics 命令可以方便地插入 pdf、eps、jpg、png 等常見格式的圖片,使用方法和示例如下。
%?導(dǎo)言區(qū)添加?\usepackage{graphicx}%?\includegraphics[]{}
\begin{figure}[!htb]????%?還記得剛說的圖片放在浮動(dòng)體內(nèi)嗎?
????\centering??????????%?設(shè)置圖片居中
????%?插入圖片,圖片寬度為?0.7?倍正文寬度,圖片文件為?misaka.png
????\includegraphics[width=0.7\textwidth]{misaka.png}
????\caption{御坂美琴}???%?正文中的圖名
????\label{fig:misaka}??%?交叉引用的標(biāo)簽,以后再說哈
\end{figure}
以這種方法插圖時(shí),圖片放置的位置必須在搜索路徑中,或者使用絕對(duì)路徑。一般情況下,我們會(huì)把正文圖片收集在 figures 文件夾內(nèi),并在導(dǎo)入宏包后立即將該文件夾添加到圖片的搜索路徑,如下
\usepackage{graphicx}\graphicspath{????%?添加搜索路徑,多個(gè)路徑時(shí)用花括號(hào)區(qū)分
????{./figure/}
????{./figures/}
}
如此就可以實(shí)現(xiàn)正文的插圖了。實(shí)際上, 是支持直接繪圖的,有興趣的小伙伴可以在命令行使用 texdoc pgfmanual 查看具體方法。
?1300 多頁的說明文檔直接給我勸退了……有學(xué)會(huì)的小伙伴教教我哈。通常我還是使用其他軟件繪圖,導(dǎo)出 pdf 后在 中插圖。不過,Inkscape 確實(shí)是一款很好用的矢量繪圖開源軟件。
?繪制表格
繪制表格所需要的基本環(huán)境不需要額外的宏包進(jìn)行擴(kuò)展,但是依然推薦兩個(gè)宏包:tabularx 和 booktabs,前者提供了定寬表格的格式,后者則提供了標(biāo)準(zhǔn)的三線表樣式。下面我們先來看一個(gè)例子
\begin{table}[hbp]?\centering
?\caption{頁碼數(shù)字格式}
?\label{tab:pagenum}
?\begin{tabular}{ll}
??\toprule
??格式?&?說明?\\
??\midrule
??arabic?&?阿拉伯?dāng)?shù)字?\\
??roman?&?小寫的羅馬數(shù)字?\\
??Roman?&?大寫的羅馬數(shù)字?\\
??alph?&?小寫的字符形式?\\
??Alph?&?大寫的字符形式?\\
??\bottomrule
?\end{tabular}
\end{table}
生成文檔的效果如下圖所示。
表格示例我們來分析表格的代碼:我們?cè)谧钔鈬昝髁吮砀袼幍?table 環(huán)境,這是將表格整體作為浮動(dòng)體;然后設(shè)置該環(huán)境下內(nèi)容居中顯示;由于表格的標(biāo)題一般在表格上方,所以先生成標(biāo)題并打上標(biāo)簽;剩下的一大塊便是由 tabular 環(huán)境構(gòu)造的表格。
tabular 環(huán)境是用來構(gòu)造表格本體的,該環(huán)境有一個(gè)參數(shù)用來指明列格式,常用的列格式包括:
- l:本列左對(duì)齊;
- c:本列居中;
- r:本列右對(duì)齊;
- p{}:指定列寬并允許自動(dòng)換行;
- |:畫一條豎線,不占據(jù)表項(xiàng)計(jì)數(shù);
- @{}:任意添加內(nèi)容,不占表項(xiàng)計(jì)數(shù);
- *{}{}:將給定列格式按計(jì)數(shù)重復(fù)多次。
諸位如果記不住這么多格式,只記住 l、c、r 就夠基本使用了,有多少列就寫多少個(gè) l、c、r。
在表內(nèi),采用符號(hào) & 指明對(duì)齊位置, 并使用 \\ 進(jìn)行換行。表格中可以使用 \hline 繪制橫線,或使用\cline{-} 指定橫線的范圍。booktabs 宏包提供了標(biāo)準(zhǔn)三線表的橫線,可使用命令 \toprule 、 \midrule、\bottomrule分別繪制頂部橫線、中間橫線和底部橫線。為了像 \cline 那樣繪制指定位置的橫線,該宏包還提供了 \cmidrule 命令。表格中繪制與單元格等高的豎線可用 \vline 命令。
如上面的例子所示,在不單獨(dú)指定列寬的情況下,tabular 環(huán)境可以根據(jù)內(nèi)容自動(dòng)改變表格寬度,這在絕大多數(shù)情況下是非常好用的。然而有時(shí)候我們希望指定表格的總寬度,這就需要tabularx宏包提供的tabularx 環(huán)境。該環(huán)境在指定列格式之前必須指定表格的總寬度。同時(shí),該宏包提供了一個(gè)特殊的列格式 X,它能夠根據(jù)總寬度和表的內(nèi)容自動(dòng)改變列寬,也可以和其他列格式一起使用。
寫了不少了,更詳細(xì)的使用幫助可使用 texdoc 查看。不過,現(xiàn)在有很多 在線制作 表格[1] 的工具,大家都可以嘗試。
Reference
[1]在線制作 表格: https://tableconvert.com/
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的latex 三线表_LaTeX学习记录(3):使用图表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 磁卡门锁怎么配卡_样式多的铜工艺品怎么设
- 下一篇: 使用通用mapper实现条件查询_【微服