我的Xelatex 中文报告模板
最后更新于:2022-04-01 16:03:41
下面贴一个我常用的`xelatex` 排版中文简短报告的模板:
### 功能
支持以下效果:
1. 各级标题采用MS word 效果
1. 美化代码插入(代码文件名,边框,行号)
1. 支持MATLAB代码高亮
1. 支持使用基本字体(楷体,宋体,黑体)
1. 中文自动断行
1. 首行缩进两个中文字
1. 页面边距采用默认效果
1. 不带目录
### 模板
~~~
% Compile with XeLaTeX or LuaLaTeX
\documentclass[10pt,a4paper]{article}
\usepackage{xcolor}
\usepackage{titlesec}
\usepackage{fontspec}
\defaultfontfeatures{Mapping=tex-text}
\usepackage{xunicode}
\usepackage{xltxtra}
\usepackage{polyglossia}
\usepackage{indentfirst} % 段首缩进
\setdefaultlanguage{english}
% 设置字体
\setsansfont{Calibri}
\setmainfont[BoldFont=SimHei]{STKaiti}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
% 设置页边距
%\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
% MATLAB代码插入包
\usepackage{listings}
\usepackage[framed,numbered,autolinebreaks,useliterate]{mcode}
% 新定义字体
\newfontfamily\song{SimSun} % 宋体
\newfontfamily\hei{SimHei} % 黑体
\XeTeXlinebreaklocale "zh" % 中文断行
% Define light and dark Microsoft blue colours
\definecolor{MSBlue}{rgb}{.204,.353,.541}
\definecolor{MSLightBlue}{rgb}{.31,.506,.741}
% Define a new fontfamily for the subsubsection font
% Don't use \fontspec directly to change the font
\newfontfamily\subsubsectionfont[Color=MSLightBlue]{Times New Roman}
% Set formats for each heading level
\titleformat*{\section}{\Large\bfseries\sffamily\color{MSBlue}}
\titleformat*{\subsection}{\large\bfseries\sffamily\color{MSLightBlue}\song}
\titleformat*{\subsubsection}{\itshape\subsubsectionfont}
\author{郭大为\footnote{email: guodw3@mail2.sysu.edu.cn}\\[2ex]
国立交通大学应数系\\[2ex]}
\title{Homework \uppercase\expandafter{\romannumeral4}}
\date{November 16, 2015}
\begin{document}
%%%% 段落首行缩进两个字 %%%%
\makeatletter
\let\@afterindentfalse\@afterindenttrue
\@afterindenttrue
\makeatother
\setlength{\parindent}{2em} %中文缩进两个汉字位
\maketitle
\section{A section}
以下为正文部分,可以任意替换或删除
This is some text.
\subsection{A subsection 演示插入MATLAB代码}
各级标题效果演示
\subsubsection{A subsubsection}
演示代码插入效果:
\begin{lstlisting}[title=sd\_method.m, frame=shadowbox]
point = [9; 1];
H = [1, 0; 0, 9];
figure
ezcontour('x^2/2+9*y^2/2',[-9, 9, -6, 6])
% steptest decent method
sdm_points = [9; 1];
count = 0;
while(norm(point) > 1e-5)
count = count + 1;
g = [point(1); 9*point(2)];
point = point - g'*g/(g'*H*g).*g;
sdm_points = [sdm_points, point];
end
hold on
plot(sdm_points(1, :), sdm_points(2, :),'-','LineWidth',3);
count
\end{lstlisting}
图片插入效果图:
\begin{center}
\includegraphics[width=1\textwidth]{1.eps}
\end{center}
\end{document}
~~~
### 效果图
![这里写图片描述](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-07-22_5791c6cdf0a30.jpg "")
![这里写图片描述](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-07-22_5791c6ce1d1c3.jpg "")
latex 插入代码、代码框、代码配色
最后更新于:2022-04-01 16:03:39
### 插入代码
导言区加入listings包
~~~
\usepackage{listings}
~~~
### 代码框
将代码包在如下命令中:
~~~
\begin{lstlisting}[title=Myfile, frame=shadowbox]
% 代码段
\end{lstlisting}
~~~
可以显示代码框,并以 Myfile 做为文件名
### 预先设置模板(from: wikipedia)
~~~
\usepackage{listings}
\usepackage{color}
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}
\lstset{ %
language=Octave, % the language of the code
basicstyle=\footnotesize, % the size of the fonts that are used for the code
numbers=left, % where to put the line-numbers
numberstyle=\tiny\color{gray}, % the style that is used for the line-numbers
stepnumber=2, % the step between two line-numbers. If it's 1, each line
% will be numbered
numbersep=5pt, % how far the line-numbers are from the code
backgroundcolor=\color{white}, % choose the background color. You must add \usepackage{color}
showspaces=false, % show spaces adding particular underscores
showstringspaces=false, % underline spaces within strings
showtabs=false, % show tabs within strings adding particular underscores
frame=single, % adds a frame around the code
rulecolor=\color{black}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. commens (green here))
tabsize=2, % sets default tabsize to 2 spaces
captionpos=b, % sets the caption-position to bottom
breaklines=true, % sets automatic line breaking
breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace
title=\lstname, % show the filename of files included with \lstinputlisting;
% also try caption instead of title
keywordstyle=\color{blue}, % keyword style
commentstyle=\color{dkgreen}, % comment style
stringstyle=\color{mauve}, % string literal style
escapeinside={\%*}{*)}, % if you want to add LaTeX within your code
morekeywords={*,...} % if you want to add more keywords to the set
}
~~~
xelatex 中文排版与字体更换
最后更新于:2022-04-01 16:03:37
### 一个简单的中文文档
下面几行简单的命令,可以实现一份最简单的中文文档
并且全局使用一种字体
~~~
\documentclass[11pt]{article}
\usepackage{xeCJK}
% 设置文档正文字体为宋体
\setCJKmainfont[BoldFont=SimHei]{SimSun}
\setCJKmonofont{SimSun} % 设置缺省中文字体
\parindent 2em % 段首缩进
\begin{document}
\section{举例}
% 无需排版的多行内容
\begin{verbatim}
标点。
\end{verbatim}
汉字Chinese数学$x=y$空格
\end{document}
~~~
### 使用xelatex更换字体
cmd 中命令`fc-list :lang-zh`,会显示中文乱码,这不重要
知道window下的字体映射如下即可
~~~
STCaiyun,华文彩云:style=Regular
YouYuan,幼圆:style=Regular
PMingLiU,新細明體:style=Regular
STHupo,华文琥珀:style=Regular
FZYaoTi,方正姚体:style=Regular
NSimSun,新宋体:style=Regular
FangSong,仿宋:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
DFKai\-SB,標楷體:style=Regular
KaiTi,楷体:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
STSong,华文宋体:style=Regular
Microsoft YaHei,微软雅黑:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
SimSun,宋体:style=Regular
STFangsong,华文仿宋:style=Regular
STXinwei,华文新魏:style=Regular
Arial Unicode MS:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
STXingkai,华文行楷:style=Regular
Microsoft JhengHei,微軟正黑體:style=Negreta,Bold,tučné,fed,Fett,Έντονα,Negrita,Lihavoitu,Gras,Félkövér,Grassetto,Vet,Halvfet,Pogrubiony,Negrito,Полужирный,Fet,Kalın,Krepko,Lodia
STLiti,华文隶书:style=Regular
SimHei,黑体:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
MingLiU,細明體:style=Regular
STZhongsong,华文中宋:style=Regular
Microsoft YaHei,微软雅黑:style=Bold,Negreta,tučné,fed,Fett,Έντονα,Negrita,Lihavoitu,Gras,Félkövér,Grassetto,Vet,Halvfet,Pogrubiony,Negrito,Полужирный,Fet,Kalın,Krepko,Lodia
FZShuTi,方正舒体:style=Regular
MingLiU_HKSCS,細明體_HKSCS:style=Regular
STXihei,华文细黑:style=Regular
Microsoft JhengHei,微軟正黑體:style=Normal,Regular,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
LiSu,隶书:style=Regular
STKaiti,华文楷体:style=Regular
~~~
去掉`\usepackgae{xeCJK}`
并用`\newfonfamily\kai{STKkai}` 定义宏 \kai
使用`\kai 接中文` 即可使用华文楷体
其他字体类似
示例代码如下
~~~
\documentclass[11pt]{article}
%\usepackage{xeCJK}
\usepackage{fontspec,xunicode,xltxtra}
\usepackage{titlesec}
\usepackage[top=1in,bottom=1in,left=1.25in,right=1.25in]{geometry}
\usepackage{indentfirst} % 段首缩进
\setmainfont[BoldFont=SimHei]{SimSun}% 默认字体为宋体
\XeTeXlinebreaklocale "zh" % 中文断行
\newfontfamily\kai{STKaiti} % 楷体
\newfontfamily\hei{SimHei} % 黑体
\begin{document}
\section{举例}
% 无需排版的多行内容
\begin{verbatim}
标点。
\end{verbatim}
汉字Chinese数学$x=y$空格
\section{楷体}
\kai 楷体
\section{黑体}
\hei 黑体
\end{document}
~~~
效果图如下
![这里写图片描述](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-07-22_5791c6cdcff51.jpg "")
Latex 主题设置
最后更新于:2022-04-01 16:03:35
更改下面的命令即可改变 ppt 模板的主题或颜色
### 收集的主题
~~~
\usetheme{Marburg} % TOC tab
%\usetheme{Berkeley}
%\usetheme{PaloAlto}
%\usetheme{Goettingen}
%\usetheme{Hannover} % ok2
%\usetheme{Antibes} % Tree
%\usetheme{JuanLesPins} % ok 3
%\usetheme{Montpellier}
%\usetheme{Bergen} % w/o guide
%\usetheme{boxes}
%\usetheme{Bergen}
%\usetheme{Madrid}
%\usetheme{Pittsburgh}
%\usetheme{Rochester}
%\usetheme{Berlin} % mini guide
%\usetheme{Ilmenau} %ok 4
%\usetheme{Dresden}
%\usetheme{Darmstadt} %ok 1
%\usetheme{Frankfurt}
%\usetheme{Singapore} % ok ok
\usetheme{Szeged} % ok ok ok
%\usetheme{Copenhagen}
%\usetheme{Luebeck}
%\usetheme{Malmoe}
%\usetheme{Warsaw}
~~~
### 收集的颜色
~~~
%\usecolortheme{albatross}
%\usecolortheme{beetle}
%\usecolortheme{dove}
%\usecolortheme{fly}
%\usecolortheme{seagull}
%\usecolortheme{crane}
%\usecolortheme{rose}
%\usecolortheme{lily} % inner color
%\usecolortheme{orchid} % inner color
%\usecolortheme{whale} % outer color
%\usecolortheme{seahorse} % outer color %% ok
%\usecolortheme{sidebartab}
\usecolortheme{dolphin} % ok ok
~~~
Latex 编译错误排查的一些经验
最后更新于:2022-04-01 16:03:32
最开始接触Latex排版是从做ppt开始,所以一开始就与其他人的学习路线不同,但是这种奇葩的路线让自己对latex编译命令更为敏感。
首先介绍自己使用工具和环境:
* Tex 编译器:CTex
* 编辑器:Texmaker
### 错误排查
当在编译出现问题时,不要慌张,查看错误报告,仔细分析问题。
可以尝试下面两则通用的操作:
1.
通过换用不用的编译命令
Texmaker 将一些编译命令集成到 一条命令中,可以在 Tools Toolbar 中进行选择(另外可以定制自己的集成编译指令)
在编译 beamer 模板时一直使用的 Xelatex 命令,但是在编译 article or report 时则应该使用 pdflatex 命令
1.
删掉目录下的 `.aux .log .out .toc` 文件
不同的编译命令之间切换时会出现一些不可预知的错误在日志、输出文件之中,这是可以尝试删掉目录下的相应文件,然后重新编译。
### 概念与原理
- 语言抽象层:
TeX 是一种宏语言。就像别的语言有库一样,TeX 语言有宏的集合。这些宏,就是用这个语言写出来的东西,供大家共用的。TeX 有个最基本的宏集合,与基础语言一起构成一种“格式”,就是 Plain TeX。基本的 TeX 语言和 Plain TeX 的宏,都是 Knuth 完成的。
后来有了 LaTeX,就是 Lamport TeX。LaTeX 也是宏的集合,也构成一种与 Plain TeX 不一样的格式。这种格式提供了不少方便的功能,并强调结构化的文档,因而很快风行起来。
一个语言是抽象的,不能运行就没有结果。
- 再来说软件层面:
1. `tex` :
Knuth 在设计这个语言的同时也给出了一个程序用来把 TeX 语言的代码转换为排版的结果——这个程序当然也叫 TeX。嗯,可以把这个程序看做编译器。直接运行`tex`命令(用小写字母表示你实际使用的命令),默认就是用 Plain TeX 这种格式进行排版。为示区别,我们可以把 Knuth 的这个 TeX 程序叫 Knuth TeX。
1. `tex`+编译选项:
用 tex 加上一个选择格式的命令行编译选项,就可以改用 LaTeX 这种格式进行排版了。但这很麻烦,于是就把 tex 命令与对应编译选项合成为一个命令,叫 latex。简言之,latex 命令就是 tex 命令加一个选项的简写方式。
1. ε-TeX:
Knuth TeX 这个程序有一些功能不好实现,后面就有人进行扩展,得到 ε-TeX 这个程序,一般写成 eTeX。eTeX 程序和 Knuth TeX 都是 TeX 语言的一个实现,eTeX 增加了少量的几个命令,但一般来说是没有太多区别的。
1. pdfTeX:
Knuth TeX 输出的格式是 DVI(DeVice Independent)文件,但后来电子出版业和电子文档交换中常用的格式是 Adobe 公司开发的 PostScript 格式(PS)和 Portable Document Format 格式(PDF)。因此就需要有一些工具完成这样的转换,一些转换程序应运而生:Dvips(把 DVI 转换为 PS);DVIPDF、DVIPDFM、DVIPDFMx(把 DVI 转换为 PDF,可以认为后面的是前面的改进版)。
转换的过程令人不爽,于是就又有了 TeX 语言的又一个实现,pdfTeX。它会把 TeX 语言写的代码直接编译成 PDF 文件。当然,不难理解 pdftex 命令就是用 pdfTeX 这个程序和 Plain TeX 这个格式进行排版,而 pdflatex 这个命令就是用 pdfTeX 这个程序和 LaTeX 格式进行排版。不过 pdfTeX 程序也保留了输出 DVI 格式的能力。
1. XeTeX:
时代在发展,多字节的编码渐渐代替 ASCII 成为主流。为了支持 Unicode 编码和直接访问操作系统字体,又出现了 TeX 语言的新的实现,即 XeTeX。作为一个现代的程序,XeTeX 也直接输出 PDF 文件(我们暂不去管它内部有格式转换的实现方式)。于是,不难理解 xetex 命令就是使用 XeTeX 程序以 Plain TeX 格式排版,而 xelatex 命令就是用 XeTeX 程序以 LaTeX 格式排版
1. LuaTeX:
哦,人们的要求总是在发展,现在又想在 TeX 中嵌入其他语言进行更强有力的扩展了。于是 Lua 脚本语言和 TeX 语言的结合体,LuaTeX 应运而生。LuaTeX 程序也是 TeX 语言的一个完整的有扩展的实现。LuaTeX 支持 Unicode、系统字体和内嵌语言扩展,能直接输出 PDF 格式文件,也可以仍然输出 DVI 格式。
瞧,语言的脉络是简单的,但软件程序总是层出不穷
- 其他相关工具程序
最后说一下 BibTeX 和 MakeIndex。这两个都是与 TeX 相关联的工具程序,一般用在 LaTeX 格式上。BibTeX 处理 LaTeX 格式编译时输出的 .aux 文件,根据其中的引用,从文献数据库中提取生成参考文献列表;而 MakeIndex 处理 LaTeX 格式编译时输出的 .idx 文件(里面是索引条目),生成 .ind 文件(里面是排序整理好的索引条目)。
### 总结
下面将TeX, LaTeX, XeTeX, PdfTeX等基本概念做简单梳理
- TeX:一种宏语言。
- Plain Tex: Tex中的一个最基本的宏集合与TeX的基础语言构成的一种格式。
- LaTex: Tex中的一个宏集合,构成一种与 Plain TeX 不一样的格式。
- Tex程序:把Tex语言转换为排版的程序,也叫Tex。为区别,称这个 TeX 程序叫Knuth TeX。
- tex命令:Tex程序中的编译命令。tex命令默认用Plain TeX格式进行排版。也就是说tex命令后面默认跟的tex文件应该是用Plain Tex格式写的。
- latex命令:tex命令加上某一个选项使用,就会用LaTeX 格式进行排版,也就是说此时后面跟的tex文件应该是用LaTex格式写的。为方便,就把tex 命令与对应编译选项合成为一个命令,叫latex命令。
- ε-TeX 程序:Knuth TeX程序的一个扩展,也是一个程序,一般写成 eTeX。增加了少量的几个命令,但一般来说是与Knuth TeX程序没有太多区别的。
- 实现:在文中的意思就是指“程序”的意思。如文中:eTeX 程序和 Knuth TeX 都是TeX语言的一个实现(也就是说,eTeX 程序和 Knuth TeX 都是把TeX语言转换为排版的程序。程序作用于tex文本文件,把tex文件编译成dvi文件)。
- pdfTeX程序:Tex语言的又一个实现,也就是把Tex语言转换为排版的又一个程序。它会把 TeX 语言写的代码直接编译成 PDF 文件。
- pdftex命令:pdfTex程序中的命令,用来编译用Plain TeX格式写的tex文件。
- pdflatex命令:pdfTex程序中的命令,用来编译用LaTeX格式写的tex文件。
- XeTeX程序:TeX语言的新的实现,即把Tex语言转换为排版的一个新程序。支持Unicode 编码和直接访问操作系统字体。
- xetex命令:XeTeX程序中的命令,用来编译用Plain TeX格式写的tex文件。
- xelatex命令:XeTeX程序中的命令,用来编译用LaTeX格式写的tex文件。
window 7 部署Texmarker 与 CTex
最后更新于:2022-04-01 16:03:30
![texmarker](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-07-22_5791c6cd88e21.jpg "")
### 基本知识
1.
PDFTeX程序:Tex语言的一个实现,也就是把Tex语言转换为排版的一个程序。它会把TeX 语言写的代码直接编译成 PDF文件。
1.
PDFLaTeX命令:PDFTeX程序中的命令,用来编译用LaTeX格式写的tex文件。
1.
XeTeX程序:TeX语言的新的实现,即把Tex语言转换为排版的一个新程序。支持Unicode编码和直接访问操作系统字体。
1.
XeLaTeX命令:XeTeX程序中的命令,用来编译用LaTeX格式写的tex文件。
两者最大的区别是:XeLaTeX对应的XeTeX对字体的支持更好,允许用户使用操作系统字体来代替TeX的标准字体,而且对非拉丁字体的支持更好。
[reference](http://www.linuxidc.com/Linux/2013-09/90330.htm)
### texmaker 没有找到文件
![texmarker2](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-07-22_5791c6cdae4fa.jpg "")
解决:
打开软件之后,选项->配置Texmaker->左侧大图标“快速构建”->选中单选项“用户”
输入以下命令:
~~~
xelatex -interaction=nonstopmode %.tex
~~~
之后你就可以写 xeLaTeX 文档并且用快捷键 F1 自动生成 pdf 文件了,点击F7可以快速浏览文件。
### 调整字体
Latex 设置字体大小命令由小到大依次为:
- \tiny
- \scriptsize
- \footnotesize
- \small
- \normalsize
- \large
- \Large
- \LARGE
- \huge
- \Huge
使用的方法:
1.
直接\tiny,这从此行开始,往后的内容都是tiny大小
1.
将中间的区域设置为tiny大小,而其余部分不变
~~~
\begin{tiny} ... \end{tiny}
~~~
该设置字体的方法可以用于displaymath环境,然而对于算法伪码的描述,即
~~~
\begin{algorithm} ... \end{algorithm}
~~~
是没有效果的。这是因为对于algorithm环境是有自己的字体设置,不会受`\tiny`的影响。可以采用将
~~~
\algsetup{linenosize=\tiny}
\scriptsize
~~~
加入到`\begin{algorithm}`后。
前言
最后更新于:2022-04-01 16:03:28
> 原文出处:[latex 笔记](http://blog.csdn.net/column/details/latexeverywhere.html)
作者:[u012675539](http://blog.csdn.net/u012675539)
**本系列文章经作者授权在看云整理发布,未经作者允许,请勿转载!**
# latex 笔记
> 一份对初学者友好的 latex 笔记,记录自己一点一滴积累地 latex 知识