最近总有这么几种情况:一、作业很简单,想用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,不易不易!)

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

  1. Latex 环境下“中文字体”的使用

    Latex 环境下“中文字体”的使用 使用CTex自带编辑器WinEdt,在该环境下如何使用中文字体呢?作为一个菜鸟,折腾了好几天,最终基本解决了这个问题.现在整理下,分享给后来者. 对于使用中文字体 ...

  2. 使用 WinEdt 来写中文文章or 建模论文

    找了几乎两个小时…… 后来发现… WinEdt 是可以用来写中文文章的…而并非只能英文文章或演示文稿… \documentclass{article} \usepackage{CJK} \begin{ ...

  3. 解决python中write()函数向文件中写中文时出现乱码的问题

    今天看<python编程从入门到实践>的第10章文件.异常,在做练习的时候,向文件中写内容,但是写中文就不行,后来在百度上查了众多资料,解决方法如下: 解决:在open()函数中添加一个e ...

  4. 用LyX写中文幻灯片

    虽然在虚拟机装了texlive以备使用,但是在不动CTeX的情况下,是否能使用LyX写中文幻灯片呢.网上只是寥寥几篇大神们在Linux用LyX的博文. 最近把论文交完写幻灯片,于是也把这个想法尝试了一 ...

  5. python 在图像上写中文字体 (python write Chinese in image)

    本人处理图像的时候经常使用opencv的包,但是 cv2.putText 显示不了中文,所以查找了如何在python在图像上写中文的方法,在伟大的Stack Overflow上面找到一个方法,分享给大 ...

  6. latex之在windows环境下能够在latex中使用中文

    今天要把前段时间的实验用英语先记录下来,自己就想根据原来会议的模版弄一个简易的页面(英语),突然想到之前用英文模板时是不能输入中文的,于是想着怎么在latex中输入中文,折腾了许久,终于成功了,现在分 ...

  7. 怎样在LaTeX中使用中文

    因为疫情在家中上课,作业提交都必须使用PDF.反正时间充裕,不如趁机回顾一下LaTeX的使用. 之前一直用的是Vimtex,但是感觉还是不太方便,于是改用了Texpad.Texpad的强大之处在于它支 ...

  8. latex ctex 的section不能写中文, /href

    问题描述:再使用超链接 /href 后发现section{}不能写入中文,以前是好使的,经过查询验证,需要在引导区里加入 \hypersetup{CJKbookmarks=true} 即可恢复正常.

  9. Travis-CI与Latex构建开源中文PDF

    博主有一本开源书籍,用 latex 排版,托管在Github上.但用 latex 不像是 Markdown,当tex文本更新时,用于最终浏览的PDF文件很难得到及时的更新, 所以博主一直想找到一套工具 ...

随机推荐

  1. Tomcat 改变localhost主页,映射到应用地址

    <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWA ...

  2. C++ 命名规范小结

    1. #defines and const test.h #ifndef TEST_H #define TEST_H #endif #define FALSE 0 #define TRUE (!FAL ...

  3. 重写boost内存池

    最近在写游戏服务器网络模块的时候,需要用到内存池.大量玩家通过tcp连接到服务器,通过大量的消息包与服务器进行交互.因此要给每个tcp分配收发两块缓冲区.那么这缓冲区多大呢?通常游戏操作的消息包都很小 ...

  4. C++编程规范之19:总是初始化变量

    摘要: 一切从白纸开始,未初始化的变量是C和C++程序中错误的常见来源.养成在使用内存之前先清除的习惯,可以避免这种错误,在定义变量的时候就将其初始化. 按照C和C++相同的低层高效率传统,通常并不要 ...

  5. UUID.randomUUID()方法介绍

    UUID.randomUUID().toString()是javaJDK提供的一个自动生成主键的方法.UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机 ...

  6. repo简介

    高通的Android JellyBean库已经建立完成,目前已经可以正常访问,可以正常提交.Repo获取代码注意:1. 首先应有一个repo脚本,并将脚本放到环境变量里,此脚本的配置方法a) 进入用户 ...

  7. [ES6] WeakMap vs Map

    WeakMap: is a type of Map where only objects can be passed as keys. Primitive data type -- such are ...

  8. 秒杀多线程第八篇 经典线程同步 信号量Semaphore

    阅读本篇之前推荐阅读以下姊妹篇: <秒杀多线程第四篇一个经典的多线程同步问题> <且不超过最大资源数量. 第三个參数能够用来传出先前的资源计数,设为NULL表示不须要传出. 注意:当 ...

  9. cocos2d-x anchorPoint

    之前一直没有用过anchorPoint,也感觉用这个东西的地方相对比较少的,都是直接使用世界坐标来定位的. 但是,在现在这个项目中,却有同事使用了这个anchorPoint,使用是使用了,但是,在碰撞 ...

  10. Java基础知识强化56:经典排序之快速排序(QuickSort)

    1. 快速排序的原理: 快速排序(Quicksort)是对冒泡排序的一种改进. 快速排序由C. A. R. Hoare在1962年提出.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其 ...