【Latex】怎么写中文?

最近总有这么几种情况:一、作业很简单,想用Latex敲,但是英语不过硬,用中文吧配中文环境就要配置半天。二、越来越多的朋友问我怎么搞中文输入,我也确实没啥帮助人家的好办法,所以只好自己研究研究怎么配置Latex中文环境了。

先说环境

编译:Ctex包(真的好用,省的配来配去。给链接:http://www.ctex.org/CTeXDownload

编辑器:Sublime Text 3(但是要安装一个插件:LatexTools)

嗯,在安装ctex的时候就听说这家伙完全支持中文输入,但是一直都没有尝试。今天,我学习了以下方法:

\documentclass{ctexart}

\begin{document}

我靠添加代码居然不支持Latex!

\end{document}

那么现在问题来了,报了这么多错:

这个问题是显然不是语法问题。哥写语法怎么会错。很显然,是编码方式的错,我的Sublime默认编码不是UTF8,所以大概就是这么个错误。

改改看:

\documentclass[UTF8]{ctexart}

\begin{document}

我靠添加代码居然不支持Latex!

\end{document}

成功。(一会再说这个“UTF8”是干啥的)

那么现在问题来了,ctexart到底干啥的呢?

我们用ctexart,ctexrep和ctexbook代替英文文类中的article,report和book就可以在正文中自由添加中文。前提是必须要安装了CJK这个宏包。我要怎么看看到底有没有安装呢?

大家去找找这个东西,点开搜一下“CJK”就行了,如果没有的话就去安装一下,很方便的。(但是根据笔者的经验,有的包不FQ好像下载不下来。)

而且可以看到,叫CJK的居然有两个包,我们可以稍后研究研究它是干啥用的。

话说回去昂,ctexart那几个环境相当于是在“\begin{document}”和“\end{document}”之间自动加入CJK环境了。也就是说上面的栗子是与下面的相同的:

\documentclass[UTF8]{article}

\usepackage{ctex}

\begin{document}

我靠添加代码居然不支持Latex!

\end{document}

下面我们看看这个这个这个ctexart文类的选项:

cs4size、c5size:使用小四号、五号为缺省字号(后者为缺省)

GBK、UTF8:使用GBK、UTF8编码(前者为缺省,一开始没改悲剧了。)

winfonts:使用Windows字体,只有六种:宋体,仿宋,黑体,楷体、隶书和幼圆(默认设置)

cap:使用中文的标题样式

nocap:保留英文的标题样式

punct:对中文表点进行调整(宽度)(默认选项)

nopunct:与punct相反

space:使用 CJK 的保留空格模式,保留中文字符间的空格(类似英文的习惯)。你需要自己处理中文字符间的空格以及换行产生的空格(在行尾加上% 符号可以避免),否则排版结果可能不符合中文习惯。这种模式可以通过 \CTEXnospace 转换到 nospace 模式。

nospace:使用 CJK 的忽略空格模式,也就是 CJK* 环境的模式。CJK 会自动忽略中文字符间的空格,比较符合中文习惯。在这种模式下,可以使用 ~ 来分隔中英文字符,产生的间距稍小于普通空格,排版效果比较美观。这种模式可以通过 \CTEXspace 命令转换到 space 模式。这个是 ctex 宏包的缺省模式。

indent:段首空两格

noindent:段首不空格

再看看命令:

字体命令:\songti   \heiti   \fangsong   \kaishu   \lishu   \youyuan

字号命令:\zihao{字号大小}(有16个选项 0—6,-0—-6,7和8)

字间距命令:\ziju{字宽的倍数}

数字转汉字:\CTEXnumber{result}{number}  (这个命令相当于定义了一个新命令,当在使用result定义的命令时,会自动输出number定义的数字的汉字版本。)

                 \CTEXdigits{result}{number} (与上一条类似,只不过就是变成一位一位的变数字了。)

(举一个栗子:

输出结果就是:

宏包的章节标题设置:\CTEXsetup[<key1>=<value1>,<key2>=<value2>,…]{<type>}

这里比较复杂,暂时就不写了。等到我需要的时候再去研究吧!

参考文献:ctex.pdf

最后向开发人员致以崇高的敬意!(毕竟这是我见到的第一篇中文的Manual,不易不易!)

时间: 2024-10-12 09:12:33

【Latex】怎么写中文?的相关文章

在overleaf上使用LaTeX写中文论文出现错误:The font “XXX” cannot be found

在overleaf上使用LaTeX写中文论文,编译时报错:The font “XXX” cannot be found 首先:确保compiler编译器是选择 “XeLaTeX” 其次:了解到 诸如: {Times New Roman PS Std} .{Mosquito Formal Std} .{Lucida Sans Typewriter Std}.{Lucida Sans Typewriter} 等这些英文字体 和 {Adobe Song Std} .{Adobe Song Std}.{

Latex写中文论文的各种模板

[Latex写中文论文的各种模板] LaTeX 工作室 > TeX模板 :https://www.latexstudio.net/category/5.html LaTeX 工作室 > TeX模板 > 国内高校 :https://www.latexstudio.net/archives/category/latex-templates/internal-university-tex-template.html 厦门大学硕士博士毕业论文LaTeX模板:https://www.latexst

VC中使用CFile正确的追加写中文数据到文件不出现乱码-unicode字符集

CFile saveFile; CString file_name = getFileName(); BOOL isOpenOK = saveFile.Open(file_name, CFile::modeCreate | CFile::modeWrite | CFile::modeNoTruncate, NULL); if (false == isOpenOK) { MessageBox(L"文件打开失败!"); return; } //是文件保存为unicode格式 //为了uni

阿拉伯数字转换老写中文

首先明确银行的输入的数字是字符串还是数值类型,因为要转换为中文,你需要事先定义位数读法,比如两位数是十,三位数是千,四位数是万,然后最终有一个基准,比如最大后面都是以亿计,然后计数以亿为标准,比如9位:以及你要定义数字读法,比如1为一,2为二等待.如果是数值类型,则采用除10方法,即不断除10,比如6666,则统计次数,6666%10=6,count+=1,为六,接下来(6666/10)%10=6,count+=1,此时count为2,你定义位数为2为十,则是六十.以此类推.字符串类型的和数值相

为什么不写中文软件?

朋友都去了西班牙,或者德国,进了国外软件外包企业,最后又独立开发开发软件,写的都是共享软件,界面是英文的,或者多语言,德语,西班牙语,就是没有中文的.一般发布在国外下载站,download.com.cnet.等下载站.他们常用的聊天软件icq,googl+,aim.他们很少写中文软件,认为写中文软件没有前途,生意不好做.他们与外商打交道多,他们不用支付宝,而是用paypal,vascard银行卡.支付宝很少用.其网站界面内容是西班牙文字,后台界面是英文.令你想不到,这是中国人设计开发的.

JAVA 写中文字符串到指定文件 中文乱码 问题解决

之前试过下面代码里面的注释掉的 方法,都不行,后来想到了不如指定编码格式试试,果真可以了. String as= “中文字符”; //byte[] b = as.getBytes(); try{ File file=new File("F:test.txt"); if(!json.exists()){ file.createNewFile(); } Writer writer = new OutputStreamWriter(new FileOutputStream(file.getA

ios 网络请求总结加强对中文的处理 问题:URL不允许写中文 在GET请求中,相关代码段打断点以验证。

开发还是需要多多练习的 ,下面是一些常用的步骤: 一.简单说明 创建Get 请求 //    1.设置请求路径 NSString *urlStr=[NSString stringWithFormat:@"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.username.text,self.pwd.text]; NSURL *url=[NSURL URLWithString:urlStr]; //

用LyX写中文幻灯片

虽然在虚拟机装了texlive以备使用,但是在不动CTeX的情况下,是否能使用LyX写中文幻灯片呢.网上只是寥寥几篇大神们在Linux用LyX的博文. 最近把论文交完写幻灯片,于是也把这个想法尝试了一下. 首先LyX有自己的英文幻灯片模板,但是如果直接往里面敲入中文是不能直接进行编译的. 于是研究了两个小时,终于取得突破. 首先“文档”->"语言“中修改为汉语,Unicode(CJK)(utf8) 字体里,CJK字体可增加主字体名,如song,kai等 在导言区加入 在“文档”->&

Mysql5写中文乱码问题解决

我插入Mysql5的中文一直是乱码.但是直接使用mysqlAdmin,EMS等工具插入DB就不是乱码.而且我还可以使用程序正常地读出来.原因是:DBDriverClass=com.mysql.jdbc.DriverDBURL=jdbc:mysql://10.4.2.52:3306/srx?useUnicode=true&characterEncoding=utf-8这样的URL中useUnicode=true和characterEncoding=utf-8两个属性都不好用.所以,数据库服务器无法