前言
因爲離散要求寫一篇算法的小文章,實在無法忍受word的數學公式輸入之後,我自(ctrl
)學(c
)了一下LaTeX的寫法,這裏簡單介紹我寫文章時用到的代碼,時隔多日,若有偏差歡迎指出
中文LaTeX
百度上輸出中文的方法各種各樣,在嘗試n多種方法無果後(CJK什麼的),使用了XeLaTeX,只需使用如下文檔類型,中括號內爲可選參數,UTF8表示使用utf8編碼,花括號內爲文檔類型,ctexart表示其文檔類型爲中文article
\documentclass[UTF8]{ctexart}
正文區
形如\begin{環境名}...\end{環境名}
稱爲環境,而\begin{document}...\end{document}
則是正文區,裏面的內容就是文章的內容,而這之前的部分則是用來導入各種宏包
標題摘要
下面代碼較爲易懂,\maketitle
也即打印標題
\title{Notes On LaTeX Typesetting}
\author{Some One}
\date{November 13, 2011}
\maketitle
當然還可以寫摘要
\begin{abstract}
some abstract...
\end{abstract}
章節目錄
代碼如下,其中\chapter
在article中不能使用
\part{部分標題}
\chapter{章標題}這一章我們介紹這些內容。
\section{節標題}這一節我們介紹這些內容。
\subsection{小節標題}這一小節我們介紹這些內容。
\subsubsection{子節標題}這一子節我們介紹這些內容。
\paragraph{段標題}這一段我們介紹這些內容。
\subparagraph{小段標題}這一小段我們介紹這些內容。
使用\tableofcontents
可以生成目錄,而輸入形如
\renewcommand\thesection{§\arabic{section}}
則可以自定義某一類章節標題的格式,在此不作示範
列表環境
這裏列舉三種列表,分別爲無序列表,有序列表,描述列表
\begin{itemize} %無序列表
\item 無編號的列表
\item 帶編號的列表
\item 帶標籤的列表
\end{itemize}
\begin{enumerate} %有序列表
\item 無編號的列表
\item 帶編號的列表
\item 帶標籤的列表
\end{enumerate}
\begin{description} %描述列表
\item[無序列表] 無編號的列表。%中括號內爲描述內容(相當於一種“序號”)
\item[有序列表] 帶編號的列表。
\item[描述列表] 帶標籤的列表。
\end{description}
插入圖片
插入已有圖片需要導入宏包graphicx,即\usepackage{graphicx}
,使用如下
\includegraphics[選項]{圖形文件} %與文字並行的圖片
%將圖片單獨居中插入
\begin{center}
\includegraphics[選項]{圖形文件}
\end{center}
%插入浮動圖片
\begin{figure}[htbp!]
\centering
\includegraphics[選項]{圖形文件}
\caption{圖片} %可以在圖片下方加標註並自動編號
\end{figure}
輸入數學公式
此處即makedown寫法即可,$a=1$
爲行內公式,$$a=1$$
爲塊級公式,具體寫法參考常用數學符號的 LaTeX 表示方法
插入僞代碼
這裏需要導入宏包
\usepackage{caption}
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
插入時則
\begin{algorithm}
\caption{算法名字}
\begin{algorithmic}
\Require 輸入
\Ensure 輸出
\end{algorithmic}
\State ...
\For{...}
\State ...
\EndFor
\If
...
\EndIf
\While
...
\EndWhile
\end{algorithm}
其中還可以對格式進行定製
\floatname{algorithm}{算法}
\renewcommand{\algorithmicrequire}{\textbf{輸入:}}
\renewcommand{\algorithmicensure}{\textbf{輸出:}}
插入代碼
這裏需要導入宏包
\usepackage{listings}
還可以對代碼進行定製
\usepackage{xcolor}
\lstset{
frame=none, % 不顯示背景邊框
backgroundcolor=\color[RGB]{245,245,244}, % 設定背景顏色
keywordstyle=\color[RGB]{116,0,0}, % 設定關鍵字顏色
commentstyle=\it\color[RGB]{0,96,96}, % 設置代碼註釋的格式
stringstyle=\rmfamily\slshape\color[RGB]{255,153,18}, % 設置字符串格式
showstringspaces=false, % 不顯示字符串中的空格
language=c++, % 設置語言
}
插入代碼時使用lstlisting環境即可
\begin{lstlisting}
#include <iostream>
using namespace std;
int main() {
cout << "hello" << endl;
return 0;
}
\end{lstlisting}
參考文獻
\begin{thebibliography}{123456}
\bibitem[Knuth1]{DK1} D. Knuth, T.A.O.C.P. , Vol. 1, Addison-Wesley, 1997.
\bibitem[Knuth2]{DK2} D. Knuth, T.A.O.C.P. , Vol. 2, Addison-Wesley, 1997.
\bibitem[Knuth3]{DK3} D. Knuth, T.A.O.C.P. , Vol. 3, Addison-Wesley, 1998.
\end{thebibliography}
中括號內爲文獻記號,花括號內爲引用名稱,至於那個123456表示我也看不懂。
字體環境
\textrm{Roman Family}
\textsf{Sans Serif Family}
\texttt{Typewriter Family}
花括號內爲字體內容
感謝
本文內容及示例參考LaTeX 排版學習筆記以及 LaTeX實戰經驗:如何插入程序代碼,寫文章時也參考諸多博客,感謝這些博客