1. 程式人生 > >Latex:基本用法、表格、公式、演算法(持續更新)

Latex:基本用法、表格、公式、演算法(持續更新)

在檢視的時候可以直接使用目錄快捷索引直接定位

基本用法

1、中文例項

\documentclass{cctart}

\begin{document}
  \kaishu 這是中文楷體字
\end{document}
之所以把這個簡單的例子放在這裡,是因為我之前使用一些其他的模板,在輸入漢字的時候,雖然能夠編譯成功,但是在PDF檔案中顯示不出來漢字。

程式碼效果如下:


2、在論文中使用Definition功能,即自己定義一些概念之類的

示例如下:

\documentclass{cctart}

\newtheorem{myDef}{Definition}

\begin{document}

Definitation \ref{mydef:relationship} 是一個簡單例子,主要為了說明怎麼自己在論文中使用“定義”。

\begin{myDef}
\textbf{認識關係}~~
    \label{mydef:relationship}
      假設a和b分別是2個人,若a,b能寫成$(a,b)$的形式,則表示a認識b。
    \end{myDef}
\end{document}

上述程式碼中,注意在newtheorem中和定義時候名稱“myDef”的一致性。

注意:上述程式碼中??部分,應該是程式碼中的ref和csdn部落格本身的ref有衝突,點開“plain”button即可看到具體內容

程式碼效果如下:


3、想在專案符號\Itemize前面加小圓點

(1)普通的小圓點:在\begin{document}前面新增下面這句話:

\renewcommand{\labelitemi}{$\vcenter{\hbox{\tiny$\bullet$}}$}

即:完整的程式碼內容如下:

\documentclass{cctart}

\renewcommand{\labelitemi}{$\vcenter{\hbox{\tiny$\bullet$}}$}  

\begin{document}
下面是一個專案符號的簡單示例:
  \begin{itemize}
    \item Test1
    \item Test2
  \end{itemize}
\end{document} 
程式碼效果如下:

(2)更大一點的小圓點:在正文中使用專案符號的時候加上[$\bullet$],完整程式碼如下:

\documentclass{cctart}

\begin{document}
下面是一個專案符號的簡單示例,這個圓點要稍微偏大一些:
  \begin{itemize}
    \item[$\bullet$] Test1
    \item[$\bullet$] Test2
  \end{itemize}
\end{document} 
程式碼效果如下:

4、給文字新增顏色

\documentclass{cctart}

\usepackage{color}  %新增巨集定義

\begin{document}
{\color{red}
  這個例子是給文字新增顏色,這裡為紅色!
}
\end{document}
程式碼效果如下:

5、上升和下降箭頭怎麼寫?

使用uparrowdownarrow操作,程式碼如下:

\documentclass{cctart}

\begin{document}
利率上浮了3\%$\uparrow$,價格下降了5\%$\downarrow$。
\end{document}
程式碼效果如下:

關於表格的使用

1、在Latex中新增表格,想要使表格標題居中

可以使用下面語句:

\usepackage[justification=centering]{caption}

注意:這個語句會使得文中所有的表格、圖片標題居中,需要在\begin{document}之前新增,即新增到最前面才能起作用(不要新增在表格命令中)。

注意:在一些模板中使用\centering只能實現表格居中,但是表格的標題不居中,需要使用這個語句;但是在一些模板中,使用\centering也能使得表格標題居中,就不需要使用這個語句了。

2、使得整個表格居中(不是文字居中)

使用\centering語句,如下所示:

\documentclass{cctart}

\begin{document}
下面是一個表格的簡單示例,為了看出文字的邊界,這裡文字內容寫的多一些,以方便清晰的看出表格的居中情況:
  \begin{table}[!hbt]
  \centering
  \caption{Information Register}
  \begin{tabular}{|l|l|l|l|}
      \hline
      id & name & sex & age\\
      \hline
      1 & 張三 & 女 & 12 \\
      \hline
      2 & 李四 & 男 & 26 \\
      \hline
  \end{tabular}
  \end{table} 
\end{document}
程式碼效果如圖:

3、可能表格寬度大於文字寬度,想要把表格按比例縮小

使用\scalebox命令,下面是縮小之前和縮小之後的程式碼:
\documentclass{cctart}

\usepackage{graphicx}
\usepackage{algorithmic}
\usepackage[justification=centering]{caption}   % 保證表格標題居中

\begin{document}
\begin{table}[!hbt]
    \centering
    \caption{縮小之前的表格}
    \begin{tabular}{|l|l|l|l|}
    	\hline
        ID & Name & Age & Gender \\
        \hline
        1 & Armstrong  & 19 & 女 \\
        \hline
        2 & Augustine  & 25 & 男 \\
        \hline
    \end{tabular}
    \end{table}

 \begin{table}[!hbt]
    \centering
    \caption{縮小之後的表格}
    \scalebox{0.8}{
    \begin{tabular}{|l|l|l|l|}
    	\hline
        ID & Name & Age & Gender \\
        \hline
        1 & Armstrong  & 19 & 女 \\
        \hline
        2 & Augustine  & 25 & 男 \\
        \hline
    \end{tabular}
    }
    \end{table}
\end{document}
程式碼效果如圖:

4、表格的某一個單元格需要設定為2行顯示

使用\tabincell{c}{   }這裡{c}是使得文字居中,完整設定前和設定之後的程式碼如下:
\documentclass{cctart}

\newcommand{\tabincell}[2]{\begin{tabular}{@{}#[email protected]{}}#2\end{tabular}}

\begin{document}
下面是一個表格的示例,主要內容是在一個單元格內,讓部分文字分成2行顯示:
      \begin{table}[!hbt]
        \centering
    	\caption{表格示例(初始情況)}
    	\begin{tabular}{|l|l|l|}
    		\hline
    	    \textbf{欄位ID}    &    \textbf{\#欄位名稱即文字值}\centering    &    \textbf{\#欄位值} \\
    	    \hline
    		 3135436gdhdfg6464    &    Latex小技巧1 \centering    &    12365412 \\
    		 \hline
    	     6347655fgdfgh6356    &    Latex小技巧2 \centering    &    232133 \\
    		\hline
    	\end{tabular}
    \end{table}
    
    \begin{table}[!hbt]
        \centering
    	\caption{表格示例(設定2行顯示之後的情況)}
    	\label{tab:dbpedia}
    	\begin{tabular}{|l|l|l|}
    		\hline
    	    \textbf{欄位ID}    &     \# \tabincell{c}{\textbf{欄位名稱} \\ \textbf{即文字值}}    &    \textbf{\# 欄位值} \\
    	    \hline
    		 3135436gdhdfg6464    &    Latex小技巧1 \centering    &    12365412 \\
    		 \hline
    	     6347655fgdfgh6356    &    Latex小技巧2 \centering    &    232133 \\
    		\hline
    	\end{tabular}
    \end{table}
\end{document}
注意:上面\newcommand後面的內容由於和html標籤衝突。可以點選"view plain"button可以看到完整程式碼。 程式碼效果如圖:

5、合併單元格

(1)合併行 合併行使用\multirow命令,整體程式碼如下:
\documentclass{cctart}

\usepackage{multirow}    %需要新增巨集定義

\begin{document}
下面是一個表格的示例,主要內容是合併行:
      \begin{table}[!hbt]
        \centering
        \caption{表格行合併示例}
        \begin{tabular}{|l|l|l|}
            \hline
            \textbf{欄位ID} & \textbf{欄位名稱}  &  \textbf{欄位值} \\
            \hline
            \multirow{3}{*}{測試}
            & Latex小技巧1  &  123 \\
            \cline{2-3}
            & Latex小技巧2  &  232 \\
            \cline{2-3}
            & Latex小技巧3  &  122 \\
            \hline
             545454  & Latex小技巧4  &  234 \\
            \hline
        \end{tabular}
    \end{table}
\end{document} 
程式碼注意點:
  • 需要新增巨集定義\usepackage{multirow} 
  • \multirow後面第一個括號內的數字(這裡是3)指的是合併3行,因為是需要合併第一列,因此在1-3行的第一列是沒有內容的
  • 因為需要合併,就不能再使用\hline(這個命令使得行與行之間顯示分割線),這裡使用\cline{m-n},m和n指定需要新增分割線的列數
程式碼效果如下:
(2)合併列 使用\multicolumn命令,完整程式碼如下:
\documentclass{cctart}

\begin{document}
下面是一個表格的示例,主要內容是合併列:
      \begin{table}[!hbt]
        \centering
    	\caption{表格列合併示例}
    	\begin{tabular}{|l|l|l|}
    		\hline
    	    \textbf{欄位ID} & \textbf{欄位名稱}  &  \textbf{欄位值} \\
    	    \hline
    		32  & Latex小技巧1  &  123 \\
            \hline
    	    53  & Latex小技巧2  &  232 \\
            \hline
            \multicolumn{2}{|c|}{合併列示例}  &  122 \\
    		\hline
    	\end{tabular}
    \end{table}
\end{document}
注意點:
  • 因為最後一行1-2列合併為1個值,因為最後一行後面再加上第3列的值即可
程式碼效果如下:
(3)行列同時合併 同時使用\multirow和\multicolumn命令。完整程式碼如下:
\documentclass{cctart}

\usepackage{multirow}    %需要新增巨集定義

\begin{document}
下面是一個表格的示例,主要內容是列行的同時合併:
      \begin{table}[!hbt]
        \centering
        \caption{表格行合併示例}
        \begin{tabular}{|l|l|l|l|}
            \hline
            \textbf{欄位ID} & \textbf{欄位名稱1}  &  \textbf{欄位名稱2}  &  \textbf{欄位值} \\
            \hline
            654  &  Latex小技巧1  &  哈哈哈  &  123 \\
            \hline
            658  &   \multicolumn{2}{|c|}{ \multirow{2}{*}{Latex小技巧合並}}  &  232 \\
            \cline{1-1}  \cline{4-4}
            787  &   \multicolumn{2}{|c|}{} &  122 \\
            \hline
            545  & Latex小技巧4   &  哈哈哈  &  234 \\
            \hline
        \end{tabular}
    \end{table}
\end{document} 
程式碼效果如下:

6、指定表格的寬度並且使單元格內的文字居中

有時候表格列數太少,如果使用Latex自適應,最終生成的表格比較窄,影響美觀,為了指定列寬,我們可以使用p{3cm}指定,但是指定之後表格文字預設左對齊,為了使之居中,我們需要使用p{3cm}<{\centering},注意新增巨集定義\usepackage{array}。下面是指定之前和指定之後的程式碼對比:
\documentclass{cctart}

\usepackage{array}  %注意,使用下面的p{3cm}<{\centering}需要新增arry的usepackage

\begin{document}
下面是一個表格的示例,主要內容是指定表格寬度並且單個元文字居中:

 \begin{table}[!hbt]
  \centering
  \caption{此表格沒有指定表格寬度}
  \begin{tabular}{|c|c|}
      \hline
      姓名 & 畢業學校 \\
      \hline
      張三 & XX小學 \\
      \hline
      李四 & XX中學 \\
      \hline
  \end{tabular}
  \end{table}    

 \begin{table}[!hbt]
  \centering
  \caption{此表格指定表格寬度並且使單元格文字居中}
  \begin{tabular}{|p{3cm}<{\centering}|p{3cm}<{\centering}|}
      \hline
      姓名 & 畢業學校 \\
      \hline
      張三 & XX小學 \\
      \hline
      李四 & XX中學 \\
      \hline
  \end{tabular}
  \end{table}    
 
\end{document}
程式碼效果如下:

公式的使用

1、公式使用簡單示例

(1)若將公式放在文字中間,或者不需要自動生成標號,則可以使用$ $將公式給出,程式碼如下:
\documentclass{cctart}

\begin{document}

給出實數$a$和實數$b$,則sum定義為:$sum=a+b$.

\end{document}
程式碼效果如下:
(2)若將公式以自動標號形式給出,則使用 \begin{equation} 和 \end{equation} 將公式給出,程式碼如下:
\documentclass{cctart}

\begin{document}
給出實數$a$和實數$b$,則sum定義為:
\begin{equation}
    sum=a+b
\end{equation}
\end{document}
程式碼效果如下:

2、如何使2個公式的等號對齊,並使用同一個標號。

\documentclass{cctart}

\usepackage{graphicx}
\usepackage{algorithmic}
\usepackage{amsmath}

\begin{document}
下面是一個使用公式換行的簡單示例:
 \begin{equation}
  \begin{aligned}
    sum &= a+b \\
        &= c+d
  \end{aligned}
 \end{equation}
\end{document}
程式碼效果如下:

3、要使得2個公式自動生成2個標號,且等號對齊。

使用eqnarray命令,命令如下:
\documentclass{cctart}

\usepackage{graphicx}
\usepackage{algorithmic}
\usepackage{amsmath}

\begin{document}
下面是2個公式使用2個標號的簡單示例:
\begin{eqnarray}
a &=& b+c \\
c &=& b+d+e
\end{eqnarray}
\end{document}
程式碼效果如下:

4、符號下面標註條件

使用\underset,完整命令如下:
\documentclass{cctart}

\usepackage{amsmath}  %注意新增巨集定義

\begin{document}
示例:符號下面標註條件:
\begin{equation}
S' = \underset{S\subseteq V}{argmax}f(S)
\end{equation}
\end{document}
程式碼效果如下:

演算法(Algorithm)的使用

1、演算法模板

(1)格式1的模板,程式碼如下:
\documentclass{cctart}

\usepackage[noend]{algpseudocode}
\usepackage{algorithmicx}
\usepackage{algorithm}

\begin{document}
\begin{algorithm}[t]
\caption{演算法示例} %演算法的名字
\hspace*{0.02in} {\bf Input:} \\    %演算法的輸入, \hspace*{0.02in}用來控制位置,同時利用 \\ 進行換行
\hspace*{0.02in} 變數:A\\
\hspace*{0.02in} 變數:B \\
\hspace*{0.02in} {\bf Output:} \\    %演算法的結果輸出
\hspace*{0.02in} 結果:C 
\begin{algorithmic}[1]
\State //some description    % \State 後寫一般語句
\For{condition}     % For 語句,需要和EndFor對應
  \State ...
  \If{condition}     % If 語句,需要和EndIf對應
    \State ...
  \Else
    \State ...
  \EndIf
\EndFor
\While{condition}   % While語句,需要和EndWhile對應
  \State ...
\EndWhile
\State \Return result
\end{algorithmic}
\end{algorithm}
\end{document}
程式碼效果如圖: (2)格式2,程式碼如下:
\documentclass{cctart}

\usepackage{algorithm}
\usepackage{algorithmic}

\renewcommand{\algorithmicrequire}{ \textbf{Input:}} %Use Input in the format of Algorithm
\renewcommand{\algorithmicensure}{ \textbf{Output:}} %UseOutput in the format of Algorithm

\begin{document}
    \begin{algorithm}[htb]
    \caption{演算法示例}
    \label{alg:example}
    \begin{algorithmic}[1] %這個1 表示每一行都顯示數字
    \REQUIRE ~~\\ %演算法的輸入引數:Input
    變數, $A$;\\
    變數, $B$;\\
    \ENSURE ~~\\ %演算法的輸出:Output
    輸出, $C$;
    \STATE {Initialize A=0,  B=0}   % while迴圈,需要以\ENDWHILE作為結尾
    \WHILE {condition}
    \STATE {...}
    \ENDWHILE
    \FOR {condition}
    \STATE {...}
    \IF {condition}
    \STATE {.....}
    \ENDIF
    \ENDFOR
    \RETURN $C$      %return返回值
    \end{algorithmic}
    \end{algorithm}
\end{document}
程式碼效果如圖:

致謝的使用:

致謝一般使用下面的格式命令:
\subsection*{Acknowledges}

致謝的內容




相關推薦

Latex基本用法表格公式演算法持續更新

在檢視的時候可以直接使用目錄快捷索引直接定位 基本用法 1、中文例項 \documentclass{cctart} \begin{document} \kaishu 這是中文楷體字 \end

關於FormModelForm的一些操作持續更新

mit mar rim sub field 後端 錯誤信息 關於 eth 1、前端循環:後端傳到前端的form是可以循環的,以此獲得想要展示的元素 <form method="post" class="form-horizontal" novalidate>

個人常用的適用的網站連結持續更新……

2018-12-11   14:06:59 論壇類: 1、部落格園 2、CSDN-專業IT技術社群 個人部落格類: 1、小尾巴個人部落格 2、https://haremu.com/ 技術網站類: 1、MDN web docs 2、w3cschool 3、尚矽谷 4、菜

C++的一些小操作常用庫及函式持續更新

  1. 強制保留n位小數(位數不足則強制補零)    標頭檔案:    #include <iomanip>    在輸出前:    cout<<setprecision(n);    也有不用標頭檔案的方式,在輸出前:    cout.setf(ios::fixed); 

Java面試題-StrutsServlet持續更新

什麼是Struts2 ?        Struts2 是一款優秀MVC框架   MVC:是一種思想,是一種模式,將軟體分為 Model模型、View檢視、Controller控制器 。MVC由來是web開發 JavaEE軟體三層結構 : web層(表現層)、業

ASP.NET Core微服務 on K8SJessetalk第一章詳解基本物件及服務發現持續更新

課程連結:http://video.jessetalk.cn/course/explore 良心課程,大家一起來學習哈! 任務1:課程介紹 任務2:Labels and Selectors 所有資源物件(包括Pod, Service, Namespace, Volume)都可以打

python 編寫爬蟲常用包下載地址工具網站以及相關安裝問題集合持續更新

轉載請標明出處,謝謝。以下連結出現問題請私戳或留言,我儘快解決。 免費代理ip網站: http://www.xicidaili.com/nn/ geckodriver 下載地址: https://github.com/mozilla/geckodrive

【格式工具】寫作論文中遇到的一些問題及其解決方案持續更新......

論文中一些常見的規則本文更新時間日誌:2018.04.29:以 office-word 為主,整理一些關於公式的問題;2018.05.24:參考文獻(會議論文)的格式及其搜尋方法;===========================================【offi

Python學習筆記——常用庫函式的使用持續更新

一、OS模組 1、當前使用平臺 os.name:指示你正在使用的工作平臺。比如對於Windows,它是'nt',而對於Linux/Unix使用者,它是'posix'。 2、當前路徑和檔案 os.getcwd() :返回當前工作目錄 os.listdir(): 返回指

【2019年大資料福利推薦】MaxCompute教程案例視訊合集彙總持續更新20190111

大資料計算服務(MaxCompute,原名ODPS,產品地址:https://www.aliyun.com/product/odps)是一種快速、完全託管的TB/PB級資料倉庫解決方案。MaxCompute向用戶提供了完善的資料匯入方案以及多種經典的分散式計算模型,能夠更快速的解決使用者海量資料計算問題,有

機器學習深度學習計算機視覺自然語言處理及應用案例——乾貨分享持續更新......

機器學習、深度學習、計算機視覺、自然語言處理及應用案例——乾貨分享(持續更新……) GitChat提問碼: 1、機器學習/深度學習 1.1 對抗生成網路GAN 【2017.04.21】 對抗生成網路GAN變種大集合

【整理自用】統計學習機器學習常見演算法整理更新

K近鄰法 詳見《統計學習》P53頁。 程式碼收藏90Zeng的部落格Kd樹的c++實現。 在利用kd樹搜尋最鄰近點的時候有一句話: 當前最近點一定存在於該結點一個子結點對應的區域,檢查子結點的父結點的另一子結點對應的區域是否有更近的點。具體做法是,

偏頭痛楊推薦給大家的影視劇遊戲持續更新

前戲 從小養成的習慣,喜歡把看過的覺得還可以的東西記錄到本子上, 形成一個LIST。。。只是為了記錄一下自己不太貧瘠的非物質文化世界。 之前跟一老美聊天,聊到電影發現很多經典的電影英文名自己都不知道,

機器學習深度學習計算機視覺自然語言處理及應用案例——乾貨分享持續更新……

人臉檢測與識別的趨勢和分析  【paper】【GitHub】【全域性/區域性一致影象補全】《Globally and Locally Consistent Image Completion》S Iizuka, E Simo-Serra, H Ishikawa (2017)  【paper】【GitHub】【基

linux shell 字串獲取長度替換擷取刪除等操作持續更新

測試字串:str=/xxx/file.txt.gz一、長度、變數:說明 表示式 例子 結果 獲取長度 ${#string} ${#str} 16 列出所有以prefix開頭的變數 ${!prefix*}、${!prefix@} ${!st@} str測試${

設計模式7原則常見設計模式和示例程式碼持續更新

設計模式7條原則 開閉原則:對擴充套件開放,對修改關閉 依賴倒置原則:高層模組不依賴底層模組,二者都依賴其抽象。目的:降低類之間的

重構函數基本原則持續更新

一段 更新 設置 內部類 重構 修改 一個 變化 但是 1. 重構函數時一定要查清有哪些類調用了該函數 修改函數之前要明白函數每一段代碼的作用再做修改(所以體積小的函數好改啊),我就遇到過這樣的問題,修改函數內部有某個常量,但是該常量對於另外一個調用該函數的類來

linux學習類目常見命令持續更新

基礎命令mkdir=make directorys=創建目錄例子: mkdir /data=在根/下創建data目錄ls=list=列表目錄文件例子: ls / =列根/目錄下的目錄和文件參數: -l(long)=長格式 -d(directorys)=查

AWK的用法持續更新

awk方法比較笨,算是做一個總結,習慣用AWK進行取值,下面以free -m為例來舉例!!!持續更新,看到的網友也可以留言的形式來一起更新內容,謝謝例子:[root@130 ~]# free -m total used free shared b

記一些stl的用法持續更新

spa style str https tps sdf sub name span   有些stl不常用真的會忘qwq,不如在這裏記下來,以後常來看看  C++中substr函數的用法 1 #include<string> 2 #include&