天字第一号原则:不要到网上抄代码,尤其是似懂非懂的阶段。
除非代码的作者给出了对代码的解释,并说明了代码的适用范围和使用效果。
解释:
虽然 TeX 及 LaTeX 内核本身相对稳定,但是 LaTeX 相关的宏包则不那么稳定。对于中文用户来说,LaTeX 的中文处理技术近十年进步得非常快。[1]
所以,在网上抄代码很容易抄到过时的代码。
网上的代码适用范围通常没有指明。在不同的引擎、格式、驱动下 [2],LaTeX 书写代码的要求会有细微的差异,如果作者没有给出相应的说明,那么很可能编译出错。
网上的代码颇有些「吾但管其直,哪管其死」的意思,经常是解决了一个问题,又引出一堆问题。用@李阿玲 的话说,「新手经常会把 LaTeX 往死里折腾,但往往是笨招、蠢招」,就是这个道理。
第二个原则:提问题要给代码 [3]
LaTeX 是一个相对精确的系统,其运行结果几乎完全由用户输入的代码确定。用户使用过程中遇到的错误、效果不对等问题,都是由用户写的代码决定的。所谓「巧妇难为无米之炊」,提问的时候不给代码,问题是无法解决的。
还有些用户提问的时候,会给编辑器截图,让人「看图说话」。大多数问题,并不是看一眼就能解决的,需要在我们的计算机上重复运行。你总不能指望我们在计算机上对照截图重新敲一遍代码,对吧?
还有的问题就是,有些用户会给一个代码片段,或者给出成百上千行的代码。这些都是不推荐的。更多内容参见 [3]。
- 提问题要给代码
- 代码不要截图,请直接复制粘贴
- 代码要给全,要从 \documentclass 开始,到 \end{document} 结束
- 代码要足够精简,尽可能剔除与问题无关的部分
第三个原则:完整阅读一本入门资料、学会阅读说明手册、学会使用搜索引擎
绝大多数问题,在说明手册里都能找到解决办法。大多数问题,特别是新手遇到的那些问题,网上也都到处都是,可以被轻易检索到。不经检索和阅读手册的提问,在任何社区都是不被欢迎的。
入门资料推荐可见:
自学 LaTeX 可以读什么书入门? - 知乎用户的回答
关于如何查找宏包、文档类的说明手册可见:
新手请先读我
关于搜索引擎的使用,这里有一个例子:
用 TeX 编辑论文时,如何选择合适的 Packages ? - 知乎用户的回答
----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
[2015-05-04]
剩下的就是一些涉及到代码书写规范、数学公式处理、中文处理等的内容了。这部分内容琐碎且繁杂,一口气估计是答不完了。先挖个坑,不定期更新。
第四个原则:除非被明确地要求,否则不要修改 LaTeX 的默认行为
这里依然要借用 @李阿玲 的名言:新手经常会把 LaTeX 往死里折腾,但往往是笨招、蠢招。相信我,你所认为的「这样更好」、甚至「这样更好看」,都是你常年为不正确的排版习惯熏陶出来的幻觉。所以,如果没有被明确地要求(比如学校的论文格式要求、出版社的编辑要求),让 LaTeX 在默认情况下工作就好了。
比如这个问题:LaTeX数学公式的默认字体是什么? - LaTeX 排版与设计
题主嫌弃在行文中写变量 $x$ 太麻烦,所以想把整篇文章的字体都改成数学斜体,以此偷懒。这就是瞎搞,是昏招,是蠢招,是邪道。
无独有偶,TeX.SX 上也有人希望把所有的数学字体变成直立体。How to change default font style in math mode?
又比如,LaTeX 中,自然对数 应该用直立体,并且有对应的命令(类似的情况还有 \sin, \cos, \max 等函数)。但总有人觉得,「直接写 $ln$ 多舒服啊,凑合一下就行了,我觉着『斜体』蛮漂亮的,干嘛要多加一条反斜线」。无它,这就是邪道。
----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
[1] 中文处理技术按照时间顺序大致有:
- 天元系统
- CCT
- CJK
- zhspacing
- xeCJK
- LuaTeX-ja
- pTeX-ng (ApTeX)
当前(2015-05-04)相对成熟且稳定的技术是 xeCJK,推荐使用;更早的技术则不推荐使用;LuaTeX-ja 是日本方面开发的,基于 LuaTeX 引擎,有诸多问题,建议观望;pTeX-ng 是 @李阿玲 的作品,尚在开发中,个人比较期待。
[2] 除了LaTeX以外, 还有什么其他TeX编译器? - 李阿玲的回答
[3] http://ptex.tk
我给学生说的新手指南是:把东西赶快写完。
我想看的是你写的内容。
请把 LaTeX 的字母大小写写对。
请把 LaTeX 的字母大小写写对。
请把 LaTeX 的字母大小写写对。
(抖机灵完毕)
新手须知第一条:(也是非常重要,重复三遍)
用 LaTeX 排版中文,请先学会使用 xeCJK 宏包。
用 LaTeX 排版中文,请先学会使用 xeCJK 宏包。
用 LaTeX 排版中文,请先学会使用 xeCJK 宏包。
可以说几乎每个人都走过使用 CJK 宏包然后搞一大堆问题出来的弯路,我也不例外。不怪新手,百度一下“LaTeX 中文”,有一半以上还在拿 CJK 宏包说事儿的。这在十年前不是弯路,而是支持中文的几乎唯二的道路之一(另一条是CCT)。但是这是一个很难配置的宏包,中文字体这一关就烦死个人,而且和其他宏包在一起用的时候会出大大小小各种问题。所以为了你自己方便,也为了方便他人帮助你解决问题,用 LaTeX 排版中文请先学会使用 xeCJK 宏包。
(多重复一遍算我送你的XD)
新手须知第二条:
最好的帮助来自于宏包的帮助文档,请学会查阅。
不管是 MikTeX (CTeX 套装)还是 TeX Live,都可以在命令行下敲 texdoc <宏包名称> 来得到宏包的帮助文档。不可能有比之更详细的文档了,没有人比宏包开发者更了解他们写出来的东西。可以说,有问题第一个想到看宏包文档,能省下你在论坛上发帖等回复的许多时间。遇到宏包文档实在看不懂的情况再提问。
新手须知第三条:
学会清楚地提问。
去 http://bbs.ctex.org 翻一下提问,不用明白怎么回答,只消看一眼问题的问法,以及回答问题的人的态度,你就能明白怎么问问题会得到很好的答复,而不是被人指着鼻子训半天。
提问的原则,其他人的回答已经总结得很好了,重复一下:
- 先搜问题,搜到的问题没解决再提问(连知乎都这么干了,你有什么理由不这么干……)。不厌其烦回答重复提问的好心人这年头很少的说。
- 学会缩小问题的范围(参考 http://minimalbeispiel.de/mini-en.html )。如果是用的模板出了问题,因为模板会用到很多宏包,你在提问前需要做很多工作:找到出错提示,定位到你的错误出处 => 注释掉与问题无关的宏包和其它代码(就是你注释掉之后也会报相同错误)=> 直到这个模板被你缩得足够小,还是出一模一样的解决不了的问题,OK,提问。
- 注重一些操作的细节。特别是新上手 LaTeX 的用户,除了提供代码外,还要提供你用什么命令(编辑器按钮)操作。
- 如果论文模板什么的用到了 CJK 宏包,试着换成 xeCJK 再来问……
新手须知第四五六条:
多写东西;
多写结构清楚、自己熟悉的东西;
尽可能不提出过多需求。
多写东西,是因为 LaTeX 终究不是一个一天能学会的东西,和 PS 一个道理;
多写结构清楚、自己熟悉的东西,是为了不让自己掉沟里,整出一大堆无法解决的问题,no zuo no die why you try;
尽可能不提出过多需求,是因为 LaTeX 也不是万能的,不是所有需求都符合 LaTeX 当初设计的初衷,或者有的需求用 LaTeX 不见得能解决得多好。
半新手须知第七条:
了解怎么使用命令行。
WinEdt 只是个壳子。TeXstudio 只是个壳子。Sublime Text 只是个壳子。编辑器上的按钮、脚本等都是调用实际的命令行程序来操作的。说句难听话,如果不能抛开特定的编辑器使用 LaTeX,可能永远都无法成为 LaTeX 老手。
1. 英文文档比中文文档好写好改。相关事项是给李阿玲捐钱看什么时候我们可以舒舒服服的写中文和编译中文
1. 不要试图引入 tex 编写复杂逻辑
1. 多看好看的例子,比如 TeXExample之类
作为万年不变的“新手”,自我感觉回答这个问题简直太合适了!于是曾经试图写一些什么东西出来,作为当前大家能看得到的各路教程的补充,——当然我要写的东西肯定跟他们那些不一样哈哈哈。
于是我也挖了一个大坑。
于是这个坑接满了雨水 - -b
然后看到这个题目就又想起我那个坑来,坑太大填不上了,所以将我觉得需要的东西弄个 todo list 放这儿,谁有空可以帮忙顺着这个思路写个东西出来方便我广大新手童鞋。
(!!不定期更新!!)
作为一个新手,但如果作为一个有理想有抱负想要进阶的新手,以下内容很可能找不到其他地方把它们放一起说了,不过我觉得你真的需要知道(而且知道了之后不仅仅针对 LaTeX 有用):
* CLI VS GUI,CLI 应用程序的几种交互方式;
* 命令行参数;
* 命令提示符/终端模拟器;
* 批处理/脚本,和脚本中的参数;(咦跑题跑远了)
* 文本文件的编码;
* 编码之间的转换;
* wtf is 字体;
* 显示与印刷;
* 打印机原理;(我勒个去又有点远了)
* 占位符;
* 辅助文件;
########## 以上为第一阶段 ###########
(咦似乎又挖了一个大坑……遁走~)
http://Detexify.kirelabs.org/classify.html
什么符号的编码都有。
还有还有还有!latex君真的超级萌…
比如:
又比如:
有一次编错了码,就一直不停追问我到底哪里写错了,然后他暖暖的都我开心说:
我已经教过你啦,不然不问问人类?
我告诉你这里错啦,想运行你自己祈福吧。
2. 会用谷歌搜索。
3. 会提问,这个可以简略地参考《提问的智慧》。
做到以上三点基本上可以很愉快地用 LaTeX 啦~
你需要高效率的编辑,修改文档,以及在文本文档中高效率的移动。没有一个靠谱的文本编辑器会很影响效率跟心情。
1. 找一本通俗的LaTeX入门教程作为参考。
推荐LaTeX Notes 2.03可以下载PDF和源码,非常优秀的学习资料。作者语言幽默,内容难度适中,接近当前的配置方案。至于TeX原本就不用了,你不是学习TeX的。此外评价不错的有《LaTeX入门》(刘海洋),纸质书,可作为参考。
2. 配置好你的LaTeX输入、编译和PDF显示方案。
(1) 我在Windows下用的CTEX套装。CTEX集成了WinEdt作为编辑器,MiKTeX作为编译器,安装完后基本可以立即开始使用。该方案被诟病已久,因为WinEdt是收费软件,CTEX这么做是盗版,而且也有吐槽CTEX中文和Unicode支持不好的。但我目前仍然使用它,因为最方便上手。而且我并没有发现中文支持糟糕之处。我写文章默认XeCJK宏包+fontspec宏包+XeLaTeX编译,输入过CJK Extension B C D区的汉字,也输入过各种欧洲语言文字,编译的PDF没有问题。
(2) LaTeX编译出的都是PDF文件,请先安装PDF阅读器,Adobe Reader,Foxit Reader都行,安装时会识别并自动关联。好像CTEX自带Sumatra,如没有也可以去这里下载:Download Sumatra PDF,安装后手动关联。好处是可以反向定位LaTeX代码(比如,用Sumatra显示的PDF,选择几个字,双击后可以定位到LaTeX代码段,方便调试和找到错误之处)。
(3) 如果你用Mac OS,MacTeX是一个不错的选择。我在Mac下安装了,但几乎没用过,因为工作原因必须长期待在Windows下。MacTeX是TeX Live的Mac安装版本,以TeXworks作为编辑器。具体使用可以Google之,似乎中文(或Unicode支持)需要配置一下,而且个人认为TeXworks的代码高亮做得不如WinEdt好。
(4) 除了安装TeX Live外,其他配置方案并不一定适合新手,新手可能连TeX,LaTeX,XeTeX,XeLaTeX,MiKTeX,TeX Live都分辨不清,也不一定是程序员,推荐用Sublime Text和Emacs编辑并不适当。新手重要的是快速解决问题,享受写出LaTeX文档的乐趣,而不是学习如何配置一个「高效」的编辑器或编译器。
3. 保存自己写过的所有LaTeX文档(.tex文件)。
我最开始就是从网上找的简单示范代码,拷到编辑器中编译。如果想学数学公式,就翻到书的那一章,添加合适的宏包,照葫芦画瓢输入代码,编译,查看,更改,再看看。渐渐的,我想生成的效果越来越复杂,也添加了越来越多的宏包,自定义了很多命令,有了很多模板代码,它们定义了页面大小、边框间距、页眉页脚、字体格式、表格和图形的排列、各类数学符号和公式。这些都是很宝贵的资料,应当及时保存,日后需要用到的时候就翻出来,直接拷贝代码,就能实现想要的效果。因为LaTeX的代码相对稳定,就算几十年前的源码给我编译也是基本一样的效果。
如今我写文章就是从保存的LaTeX文档中找到最接近我想要的排版效果的那个,在其之上补充、修改,增删几个宏包就可以开始写文章了。于是每次都能学习一些新排版效果(比如今天加了rotating宏包把很宽的回归结果表格旋转90度,很多paper都会这么做),非常有意思。
4. 学会向他人求助
遇到问题,网上查找资料也未果,可以去专业的论坛求助。中文论坛推荐CTeX社区和ChinaTeX论坛。有不少牛人,但最近都很旱,等回答期间可能我自己就解决了。
这是我提的几个问题:
求助文章中间改页面大小
求问目录出现“第零章”怎么修改
他们给的代码至今我都经常使用,而且这种代码很难找,都是他们花时间认真写的。
英文论坛推荐TeX - LaTeX Stack Exchange
牛人更多,热心网友会及时回答你的问题,前提是按要求附上了完整、关键的源码。
这是我提的问题:
hyperref - MakeIndex fails to locate some index items
回答者看上去是一位大牛……
5. 耐心调试
LaTeX作为一种标记语言,不是所见既所得,而是像程序一样,你写的是源代码,交给编辑器编译,生成PDF文件的。因此出错或显示效果不正常那太正常了。对于我这种排版强迫症患者而言,调试出自己想要的效果本身就很有乐趣,但一定要耐心,利用好网上的资源,加以鉴别,必要时问别人,反复测试,总会找到合适的解决方案。LaTeX的自由度比Word高一些,你可以尽情排版出鬼斧神工,变幻莫测的效果。进阶的我见过做出能当计算器用的PDF。
我排版过章回体的红楼梦(中文章回体目录和页眉是难点),排版过陈景润“1+2”的证明(变态复杂度的数学公式),也排版过PDF版的《萌典》(字典格式的生成是难点,我还用了Python生成符合要求的LaTeX代码,不然一个个粘贴不会累死?),当然最多的是写小论文。偶尔兴趣来了,排版几个要求刁钻的文档,亦不失为一种乐趣。
接触LaTeX时间不长,大部分时候在百度和Google中磕磕碰碰地写出代码,希望讲的这些对各位有帮助。
在没有人教 看不进书(书很系统 但是进度也慢)
可以先试着逼自己用英文写一次LaTeX
(LaTeX编译即可 有很多不同的编译器 LaTeX是入门的很好选择)
逼自己一定要完成!比如某个要交的英文论文作业
如果可以FQ的话 推荐一个LaTeX template资源
http://www.latextemplates.com/
(似乎要FQ打开。。。)
第一次用LaTeX 推荐找篇这个网站上你喜欢的论文模板(论文模板的填充个人感觉比较容易,你只需要把内容都换成自己的即可)
在这过程中,你可能会遇到问题的地方如下:
换行
LaTeX的空格 空几下都是空一下 换行比较醒目的也是我最常用的就是直接回车再回车 这些你的LaTeX文本也是有分开的 看着也很清晰吧(^_^)
如何在文本中添加特殊符号和公式?
$\alpha$ %美元符号把公式包起来就好啦
好多符号的写法都不太一样 怎么办 宝宝记不住>_以我使用的texshop为例
在菜单选择显示 LaTeX面板 各种符号都想word一样显示出来辣~
不过有些东西我用过但是里面没有 比如平方,下标,这个你在使用到的时候去网上搜索一下就好啦 其实用起来很方便简单呢
关于插入编号的公式 图片 表格
我猜你下载的模板里都有哦 好好学习一下吧 没有的也可以搜索引擎
图片的格式问题 我当初搜索 好像有点讲究 MATLAB可以出的图的类型很多 可以自行匹配
第一次用LaTeX 难免有奇怪的地方 多加油写写 就会觉得 想要装×的时候 还是很有意思的~
当初就是抱着我要写英文报告装× 不如再加LaTeX飞└(^o^)┘
第一次用英文写LaTeX 其实也是一种循序渐进 暂时先不要考虑中午输入问题 把公式 文字 基本的LaTeX排版的写法(模板)看一看
下一次 就可以试着写中文啦 中文的话
用xeLaTeX吧 还是先从模板开始哦
这样 几次下来 你还可以尝试用他们做slides 作业 笔记等等
虽然除了为了装× 我还是很少使用LaTeX 所以 还是模板级新手
点个赞吧 伦家是知乎小透明('▽'〃)
- 从一个现代的TeX版本开始使用。我推荐XeLaTeX。
- 宏包一般都能在CTAN上找到最新版本和对应的文档。如果你用的宏包在CTAN上找不到,除非它是你们学校/课程/会议/期刊规定必须用的模版,否则就别用它了,不然一定被坑死。
- 这一点是废话,但是我觉得还是有必要说:遇到除了中文处理以外的任何问题,用英文在Google上搜索,不要把时间浪费在中文网站里。
- 然后,对于中文处理的问题,先看xeCJK和fontspec的文档(CTAN里都有),应该很大概率你就不需要其他文档了。
然后一些常识(然而带有强烈的感情色彩):
- TeX是个很好用的排版引擎,但是他初衷不是做编程语言,只是在用户的强烈要求下加了编程功能,所以用TeX编程会很吃屎。
- LaTeX是一套TeX下的宏包,前面说了TeX下硬要写程序很吃屎,但是这个世界上还有Leslie Lamport这种写个paxos如履平地的人,所以吃点屎硬用TeX写程序他也做得到,于是有了LaTeX。
- XeTeX是TeX的一个修改版本,增加了对Unicode和现代字体格式的支持。用XeTeX跑LaTeX的那些宏包的命令是XeLaTeX。
最后,一个比较无关的内容:学会了TeX的数学模式输入以后,回到Office 2007及以上版本里输入数学公式,有惊喜。
EDIT:
顺便补充一下@孟晨的观点除非被明确地要求,否则不要修改 LaTeX 的默认行为:
你改不对。
你抖机灵不用\lim非要用\mathrm{lim},感觉好像字体一样了吧?但是下标的位置不对。
你自己写个\mathrm{sin},这下字体一样,下标的位置也没区别了吧?2\mathrm{sin}x和2\sin x的间距不一样。
等你搞清楚TeX到底偷偷帮你做了多少事,你就有能力自己写一个跟系统自带的\sin一样的\sin了,那时候随便你怎么折腾。在你搞清楚之前,好好按手册写。再说,为什么要浪费时间折腾这些细节?
还有,别理那些好为人师的天天教你怎么提问的人,他们只是想炫耀优越感。
1.哪里获得你想要公式的LaTeX 比如MathType(我用的是Mac自带的graph)
2.哪里获得LaTeX模版(新手不用模版是闹哪样)推荐http://sharelatex.com 还可以在上面在线编辑
3.下一个 LaTeX cheat sheet 已备不时之需 百度文库就有
4.知道如何支持中文,如果你确实需要的话。
吐槽:楼上那些真的是写给新手的吗,赶上玄学了都。
所以,有问题,尽量自己找资料解决,别一遇到问题就去问人,绝大多数问题都是可以通过查资料加上自己分析就能解决掉的,有时候你去问,人家给你甩下几个字就走了,再问人家不理你了,还不如不问时候明白呢;你要是等到人家给你写出一大篇来的时候,差不多也就是你把人家的耐心耗尽了的时候,等着好话听吧,比唱的还好听呢。
倒也不是一棍子打死,还是有真耐心会好好说话解答问题的,写一大篇也不会招出好话给你听的的,顶多是不理你,但那种脾气大的也是有的,往往还偏爱蹦出来,一边烦着,一边高尚着。