LaTeX學習記錄(3):使用圖表

2021-02-20 某春雨的後花園
學習記錄(3):使用圖表

每次跟朋友安利 的時候我都會講這麼一個故事:

當時設計天琴一號加速度計的控制器參數,出於數字控制參數切換的便利性,瘋狂設計了十幾套參數。然而寫報告的時候傻了:老闆要求每套參數六個自由度的詳細參數、指標都匯總到表格裡。要是手動錄入,恐怕得折騰一天,於是我想到了一個騷操作:MATLAB設計完參數後以 表格代碼的形式格式化輸出到 tex 文件,編譯生成 PDF 後用 Acrobat 轉成 Word,就可以複製了。就這樣,10分鐘不到的時間就把整個表格做完了。

每每想到這裡都會想到 miHoYo 裡的 「Tech Otakus Save the World」。然而更高技術的朋友會問:「你為什麼不直接用MATLAB輸出到EXCEL呢?你不會不知道 writetable 這一系列命令吧?不會吧不會吧?」 唔……愛琴海警告。

廢話不多說,趕緊進入正題,はじめましょう開始吧。

認識浮動體

有很多「環境」的概念,在代碼裡就體現為採用 \begin{<env>} 和 \end{<env>} 括起來的部分。環境一般用於局部的格式設置或者功能擴展,比如正常寫作時採用的是兩端對齊,如果想臨時居中某內容時,可以使用 center 環境,如

如果採用 $\rm \LaTeX$ 進行編譯後,生成的文檔中,這裡是正常的兩端對齊文字。

\begin{center}
    這裡是居中的文字。
\end{center}

環境是可以嵌套的,例如上面的內容在正文區,而正文區開始於 \begin{document} ,說明正文是處於 document 環境下的。

可以想像,一般的圖表都採用居中的格式,應當分別處於獨立的環境中, 為此提供了 table 和 figure 環境。對於上例這樣一般的環境,它僅提供局部的格式變動,不會影響上下文之間的位置關係。而 table 和 figure 卻與之不同,它們被稱作浮動體,意思是源碼之間的相對位置與編譯後生成文檔中的相對位置可能是不同的。比如源碼中的順序是先寫「如圖 3 所示」,然後再插入圖片,生成的文檔可能會先插入圖片,再出現「如圖 3 所示」。

圖表採用這種浮動體的原因有

一般文檔會以交叉引用的方式指明圖表(比如「如圖 3 所示」,而不是「如下圖所示」),因此圖表與正文的相對位置沒有過於嚴格的要求;當前頁面內的剩餘版面可能無法完整插入圖片或者表格,如果留空白會導致排版不好看,因此可以將圖表移位,用後文填充頁面; 默認的排版美學:同一頁內連續使用圖表或出現過多圖表會使頁面顯得比較空洞而不好看。

使用浮動體(table 和 figure環境)時可以用中括號添加可選參數,表示可以浮動的位置,可選以下幾個參數或其組合:

h:允許在當前位置(here),即源碼中插圖與正文的相對位置保持一致;

有時候 默認的排版美學會讓人感到困惑,因此浮動體還支持採用 ! 選項突破默認的限制,例如我自己插圖的時候經常會採用 \begin{figure}[!htb] 的設置。

使用插圖

為了在文檔中插入圖片,需要對 的功能進行「擴展」,在導言區使用 \usepackage{graphicx} 宏包即可。這個宏包提供的 \includegraphics 命令可以方便地插入 pdf、eps、jpg、png 等常見格式的圖片,使用方法和示例如下。

% 導言區添加 \usepackage{graphicx}
% \includegraphics[<選項>]{<圖片文件名>}

\begin{figure}[!htb]    % 還記得剛說的圖片放在浮動體內嗎?
    \centering          % 設置圖片居中
    % 插入圖片,圖片寬度為 0.7 倍正文寬度,圖片文件為 misaka.png
    \includegraphics[width=0.7\textwidth]{misaka.png}
    \caption{御坂美琴}   % 正文中的圖名
    \label{fig:misaka}  % 交叉引用的標籤,以後再說哈
\end{figure}

以這種方法插圖時,圖片放置的位置必須在搜索路徑中,或者使用絕對路徑。一般情況下,我們會把正文圖片收集在 figures 文件夾內,並在導入宏包後立即將該文件夾添加到圖片的搜索路徑,如下

\usepackage{graphicx}
\graphicspath{    % 添加搜索路徑,多個路徑時用花括號區分
    {./figure/}
    {./figures/}
}

如此就可以實現正文的插圖了。實際上, 是支持直接繪圖的,有興趣的小夥伴可以在命令行使用 texdoc pgfmanual 查看具體方法。

1300 多頁的說明文檔直接給我勸退了……有學會的小夥伴教教我哈。通常我還是使用其他軟體繪圖,導出 pdf 後在 中插圖。不過,Inkscape 確實是一款很好用的矢量繪圖開源軟體。

❞繪製表格

繪製表格所需要的基本環境不需要額外的宏包進行擴展,但是依然推薦兩個宏包:tabularx 和 booktabs,前者提供了定寬表格的格式,後者則提供了標準的三線表樣式。下面我們先來看一個例子

\begin{table}[hbp]
 \centering
 \caption{頁碼數字格式}
 \label{tab:pagenum}
 \begin{tabular}{ll}
  \toprule
  格式 & 說明 \\
  \midrule
  arabic & 阿拉伯數字 \\
  roman & 小寫的羅馬數字 \\
  Roman & 大寫的羅馬數字 \\
  alph & 小寫的字符形式 \\
  Alph & 大寫的字符形式 \\
  \bottomrule
 \end{tabular}
\end{table}

生成文檔的效果如下圖所示。

表格示例

我們來分析表格的代碼:我們在最外圍申明了表格所處的 table 環境,這是將表格整體作為浮動體;然後設置該環境下內容居中顯示;由於表格的標題一般在表格上方,所以先生成標題並打上標籤;剩下的一大塊便是由 tabular 環境構造的表格。

tabular 環境是用來構造表格本體的,該環境有一個參數用來指明列格式,常用的列格式包括:

*{<計數>}{<列格式說明>}:將給定列格式按計數重複多次。

諸位如果記不住這麼多格式,只記住 l、c、r 就夠基本使用了,有多少列就寫多少個 l、c、r。

在表內,採用符號 & 指明對齊位置, 並使用 \\ 進行換行。表格中可以使用 \hline 繪製橫線,或使用\cline{<開始>-<結束>} 指定橫線的範圍。booktabs 宏包提供了標準三線表的橫線,可使用命令 \toprule 、 \midrule、\bottomrule分別繪製頂部橫線、中間橫線和底部橫線。為了像 \cline 那樣繪製指定位置的橫線,該宏包還提供了 \cmidrule 命令。表格中繪製與單元格等高的豎線可用 \vline 命令。

如上面的例子所示,在不單獨指定列寬的情況下,tabular 環境可以根據內容自動改變表格寬度,這在絕大多數情況下是非常好用的。然而有時候我們希望指定表格的總寬度,這就需要tabularx宏包提供的tabularx 環境。該環境在指定列格式之前必須指定表格的總寬度。同時,該宏包提供了一個特殊的列格式 X,它能夠根據總寬度和表的內容自動改變列寬,也可以和其他列格式一起使用。

寫了不少了,更詳細的使用幫助可使用 texdoc <宏包名> 查看。不過,現在有很多 在線製作 表格[1] 的工具,大家都可以嘗試。

Reference[1]

在線製作 表格: https://tableconvert.com/

相關焦點

  • LaTeX學習記錄(1):安裝與使用
    學習記錄在之前Linux安裝記錄我推薦了TeXstudio作為編輯器,這款軟體對新手非常友好,基本上不需要進行特別的配置。對於我們需要編寫中文文檔的,只需要將編譯器改為xelatex即可。另一個好看的編輯器莫過於 VS Code 了,我們僅需要安裝插件 LaTeX Workshop,並在設置中引入如下配置即可:"latex-workshop.view.pdf.viewer": "tab","latex-workshop.latex.tools": [
  • LaTeX|圖表的排版
    這樣的操作其實是非常麻煩的,因此在這裡為大家推薦 excel2latex,有網站也有同名的 Excel 插件,可以用 Excel 做好表格之後導出成 LaTeX 源碼。長表格與三線表有的時候我們需要製作的表格,用一整張紙都裝不下。這樣的話我們在新的一頁上需要重新排版一個表頭,同時在頁面接續處需要有一些文字來說明這個表格是跨頁排版的。
  • 八一LaTeX學習的完整過程
    然後就搜集學習資料,準備狠狠地學習一下,那時已經是大二寒假了,因為在 12 月份之前浪費了太多時間在玩各類比賽中。不過在向老師的幫助下,我對LaTeX有了更深的了解,後來我又第一次接觸到了 tcolorbox 這麼漂亮的盒子代碼,然後開始了beamer 的學習,到後面的插圖與表格,再後來第一次熬夜通宵並參考了湯的試卷模板寫了一份全國大學生數學競賽模板,並同時命題了一份模擬考卷。
  • 學習|Latex排版
    補充之前發的latex排版!💕友情提醒,不用刻意去學習latex,等準備投稿了,再去學一下。
  • Markdown與LaTeX公式的使用入門指南
    它允許人們使用易讀易寫的純文本格式編寫文檔,然後轉換成有效的XHTML(或者HTML)文檔。這種語言吸收了很多在電子郵件中已有的純文本標記的特性。由於Markdown的輕量化、易讀易寫特性,並且對於圖片,圖表、數學式都有支持,目前許多網站都廣泛使用Markdown來撰寫幫助文檔或是用於論壇上發表消息。
  • Life姐教你使用LaTeX
    作者/Life姐 編輯/Life姐Sayings:在學習或辦公時
  • LaTeX學習指南(三)
    documentclass{standalone}\begin{document}  \LARGE \LaTeX\end{document}而編譯輸出的 pdf, 利用 R 語言中的 pdftools 包的 pdf_convert() 函數將其轉為 png 格式,代碼如下:pdf_convert('latex.pdf
  • LaTeX簡單學習筆記
    本文只適合任何人進行系統性的學習,僅作為自己的一段軟體預裝1.     LaTeX2.     TexLive       (LaTeX文本編輯器)3.     Adobe Illustrator       用於編輯eps格式的圖片4.
  • 不會用latex寫公式? 看看這個python轉latex的庫
    公式的庫一. python2latex相信大家都用latex編輯過自己的論文,但是對於一些比較複雜的公式,在latex的代碼中會比較複雜,對於初學者有一定難度,而這個庫可以把python下的數學公式轉換成latex代碼和公式,對於初學者會有非常大的幫助。
  • 收藏 | 科研工作者不能錯過的3個latex工具
    子時:打開texstudio,在網上下載一個論文模板丑時:完成了文字部分,忘記公式怎麼敲了,學習中寅時:敲完公式,編譯之,BUG好多.卯時:Google搜索,Debug中.本文總結了3個在線latex工具,讓你在短時間內也能成為latex排版高手。想用latex寫論文,但是第一行都忘記怎麼寫了,怎麼辦?其實你需要的只是一個模板。Overleaf是一個在線的latex編輯平臺,模板齊全,包含科研工作者常用的論文、牆報、ppt、作業、報告、簡歷等。即使是小白也可以在10分鐘內寫出排版精美的文檔。
  • LaTeX 搞定學術論文排版王者 (上)
    對於致力於「研究學術」的同學,latex是一項必需的技能,尤其對於理工科同學來說。  對於文科同學,進一步學術研究也需要接觸latex,但是也推薦markdown,畢竟更輕量更簡單易學。markdown教程見歷史記錄,或在小菜單自查。  這系列文章整理了我自己學習latex的一些心得,希望幫助大家快速上手latex。
  • 數學公式編輯神器——LaTeX
    初次使用的國內用戶,不妨安裝[CTeX](http://www.ctex.org/CTeXDownload/)。同類的其他知名編輯器還有Sublime Text、Atom等,使用這些編輯器可以編寫markdown文件,高效的整理記錄數學內容。
  • AutoLaTeX | 從 Excel 數據到 LaTeX 表格
    本文在完全不使用 word 語境下展開。半年未見,實驗他又轟轟烈烈的來了。他不僅來的隆重,還來的劈頭蓋臉。
  • 論文寫作與Latex 使用(十六)
    1、公式編輯:https://zh.numberempire.com/latexequationeditor.php
  • LaTeX極簡入門指南
    本文面向日常電腦使用的大學生介紹最快入門LaTeX的方法,如需知道LaTeX有什麼用?好在哪裡? 請在知乎檢索LaTeX或查閱lshort-zh-cn(見下文)1.1概述。本文內容實際操作時間約3-4小時,其中約2.5小時用於安裝軟體,餘下時間用於第一次嘗試學習寫LaTeX文檔。
  • 【入門教程】使用LaTeX撰寫你的實驗報告
    預計學習時間50min以內,文末還有幾個版本的教程供參考。LaTeX的強大之處非常擅長排版數學公式,包括自動添加序號和文本內引用。(通過鍵入一些指令)來調整圖片和表格的位置,不需要再用滑鼠拖拉,費力不討好。文段對齊也很舒服,還記得自己在word裡面混著用tab和空格換行引發的事故嗎?顯著減少使用滑鼠次數,使得你的操作更為優♂雅 / 優♀雅。
  • 學術寫作利器LaTeX入門,再也不用為word的排版頭痛
    Credit:講座是敝系的幾個技術宅辦的,作者只負責記錄和整理。後面的更新是個人心得。寫這篇日誌的初衷是小圈子分享和個人心得記錄,適合完全不了解tex的入門者閱讀,我的水平有限所以肯定有所疏漏,歡迎提出建議。具體使用什麼寫作工具,還要看寫作內容和個人習慣,畢竟優化工作效率才是最終目標 :) 有興趣的可以翻翻推薦語,有不少高人給出了相關資源和意見。
  • 科研軟體 | LaTeX介紹與簡易教程
    與Word相比,使用LaTeX編輯數學公式與圖表更加方便美觀,當公式較多時使用LaTeX效率更高。並且LaTeX排版大氣規範、顏值高,大家只要對比一下用Word排版和用LaTeX排版的數學試卷就能看出來(x)。
  • LaTeX學習筆記(十九)
    關於推薦書籍:LaTeX學習筆記關於latex編譯軟體Latex
  • 教程 | Matlab畫圖插入Latex公式
    我們使用matlab對數據或模型進行計算處理之後,時常會需要輸出結果呈現Latex的格式,或者能方便轉換成latex格式方便後續編輯。Matlab中使用Latex大體可分為兩種情境:1.使用Latex公式標註Matlab生成的各類圖形;2.把Matlab的運行結果轉換成Latex格式。