虽然说LaTeX声称排版容易,只关注内容,可是混合着源代码的结构很难让我只关注内容,最后看得眼睛疼,找什么都找不到。
匿名用户
30 人赞同
立即想到的几个建议:
选择有折叠功能 (folding) 的编辑软件,把无关内容隐藏。大项目分多个文件,主文件只管结构,各章节内容及复杂作图分别另立文件,由 input 和 include 导入。
网上下载或问别人借的模版不要直接用。见过手动加粗居中来做章节标题的,见过希腊字母用英文字母 define 的,把 LaTeX 当 Word 用,不乱才怪。
养成良好的换行 (不是分段) 、制表、空格和缩进习惯,像编程一样。长公式不要混在文本中间。随手加标签,标签名有体系可循。编辑时善用搜索功能定位。
分享
133赞同反对,不会显示你的姓名
133 人赞同
直接的辦法是應用 TexShop 或 TexWork 之類的編輯器:代碼窗口在屏幕左邊,PDF 預覽器在屏幕右邊。寫作和修改都在 PDF 文檔上查找,再跳回源文件修改,並不容易混亂。
但其實,LaTeX 是用來排版的,不是用來寫作的。
一個解決方案是:除了數學公式,別用 LeTeX 句法寫作,改用 Markdown 或 Markdown 的擴展。
如果不是專業排版師(有這個職業麼?),只想關注內容,儘量少關注格式、宏包、排版,我所知道最合理的方式是使用 pandoc 寫作,然後輸出 PDF(中間也可以轉成 tex 文檔調試)。
Pandoc 的作者是伯克利哲學系的John MacFarlane,這個工具能在數十種格式之間轉換。Pandoc 主頁那個很誇張的圖就展示這種轉換關係。所以,我們可以選擇最簡單的格式來寫作,比如 markdown,然後轉化成我們想要輸出的結果,比如 tex,甚至直接轉成 PDF 文檔或Beamer 文檔。
Pandoc 依然在進化中,就這一年版本更進的思路來看,最終是想讓用戶直接跳過tex這一步,一步轉化成 PDF 文檔。現在短文檔(筆記、作業、講義等)基本可以直接轉化,如果要實現更複雜的功能(比如參考文獻的文檔內跳躍鏈接),轉換成 tex 文檔之後也就是再按個按鈕的工作量。與 Pandoc 相關的生態也發育良好,好些編輯器只需簡單配置,就能馬上上手。
Pandoc 提供了加強版的 markdown 語法,所以要寫帶有圖表、引用、數學公式、參考文獻、目錄的文章時,直接用 pandoc 寫作更方便,而且不用考慮代碼摺疊,不用考慮拆成十幾塊短文檔。
這是一個 pandoc 的 markdown 語法中文翻譯,不妨花幾分鐘閱讀:Pandoc’s Markdown 語法中文翻譯。
使用 pandoc,寫作和輸出可以分兩步:
1. 寫作文檔。例如,這是 pandoc 的整個使用說明,用 pandoc 語法寫好:http://johnmacfarlane.net/pandoc/demo/README。可以看到,整個文檔的格式非常簡單,我們直接關注內容。
2. 輸出文檔。在終端輸入相應的轉化命令,得到上面那個文檔的pdf版本:http://johnmacfarlane.net/pandoc/demo/example14.pdf。可以看到,外部超鏈接、內部鏈接、目錄、代碼塊格式、頁眉、腳註、版本號、表格等等一應俱全。
評論中 @张苏 問到編輯器,我之前用Sublime Text 2。但從2014年6月21日開始,我改用 RStudio 作爲編輯器。最新版 RStudio 引入 R Markdown V2,免去在終端輸入 Pandoc 命令。其實,由於終端可以記住之前執行的命令,每次轉換文檔並不繁瑣,只需調出上次的命令,但 R Markdown V2 把“調出終端+回車鍵”兩個步驟簡化爲一個步驟,並簡化了 HTML 和 PDF 輸出的一些設定,還是提高了效率。
簡而言之,現在我們可在 RStudio 編輯器中用 Pandoc 寫作文檔,按一個轉化鍵,輸出 HTML、PDF 或 Word 文檔,並保證豐富的文檔元素:腳註、超鏈接、引用、目錄等。RStudio 的缺點是 PDF 預覽器還不太好用,希望之後的版本能有改進。
初次使用 RStudio 寫作可按以下步驟:
1. 保證電腦上裝有 Tex 套件。Mac 用戶可在MacTeX - TeX Users Group下載一整個
MacTex 套裝(大約2G多)。(Pandoc 作者 John Macfarlane 本來建議安裝 BasicTex(64M),在需要各類 package 時,在終端用`tlmgr`命令下載。不建議這種做法,因爲 BasicTex 實在太簡單,總需要自行安裝許多packages,同時 tlmgr 命令也不是時時都可用的:每當TeX發行版升級時,舊版本會被凍結,tlmgr 命令也沒辦法下載新的 package。)
2. 保證電腦裝有R 3.0以上版本。下載地址:The Comprehensive R Archive Network(小於100M)。
3. 下載安裝最新的 RStudio,地址:Download RStudio。
4. 打開 RStudio,點擊 File--〉New File--〉R Markdown,會彈出一個簡單的 R Markdown 文檔,再按 Knit PDF 就可以經由 TeX 引擎生成相應的 PDF 了。(中文用戶在執行 RStudio 自帶的 R Markdown 文檔時,日期date那行可能會顯示中文,例如“2014年6月21日”,整行刪掉或改成英文日期,就可以順利執行了。)
===
如果熟悉LaTeX語法,可以很快上手。下載pandoc,在Github上找一份LaTeX模板,修改一下,開始用pandoc寫作就可以了。我現在寫筆記、上課的幻燈片、作業、作業答案都是用pandoc寫後輸出pdf文檔,熟練後比用LaTeX寫快許多。
中文世界裏有兩份對pandoc較好的介紹:
1. Markdown写作进阶:Pandoc入门浅谈 ← 阳志平的个人网站::技术
2. 黑魔法利器pandoc
對初學者,兩個歷史學家給出了文科生使用 pandoc 寫作文檔的指南:
1. Sustainable Authorship in Plain Text using Pandoc and Markdown
分享
2赞同反对,不会显示你的姓名
组诗耶 ,我们躲避村庄/也躲避贫穷/躲避病痛/躲避…
2 人赞同
使用文档结构树
使用include
多用注释
推荐 TeXpen http://sf.net/p/texpen
分享
19赞同反对,不会显示你的姓名
李震 ,计算机科学在读博士
19 人赞同
说说我的建议:
0. 选一个用得顺手的编辑器。语法高亮和代码块折叠应该是两个必备功能。
1. 按章节划分文件,在主文件中引入。这样做的好处有: a) 结构清晰。b) 使用svn做版本控制,多人同时编辑的时候可以避免conflict. c) 更换模板时保持不同版本时只需维护一份正文内容。
2. 需要做特殊处理的地方,尽量不把复杂命令串写在正文中,而是定义成 newcommand. 这样源代码更易读,特别是在表格中包含这些自定义命令的时候。
3. 每个section和subsection都应该有一行注释,说明此处要说的是什么。个人习惯每个(sub)section都是label+注释。
4. 在给段落、表格、图片加标签以便引用的时候,应该有自己统一的风格以便自己区分。个人的习惯是加前缀sec:, tab:, fig:.
5. 在有别人参与修改的时候,应该自定义一些 todo, add, delete, mark等命令。同时应该为这些命令设置一个或几个trigger. 比如设置一个final_print,当这个trigger为true的时候,所有标为delete的段落不会显示,方便迅速预览改动效果。
6. 写作初期不要为浮动元素添加太多的位置限制。这些可以最后微调。
7. 多添加注释,特别是对于不常用的宏包和自定义的命令。
8. 不要乱用硬性的命令,比如vspace. 因为很有可能当你做了一些改动以后,某处距离就不是你上次看到的那样。个人建议只在内容已经完全确定,最后排版微调阶段使用这些距离控制命令。
分享
0赞同反对,不会显示你的姓名
孟繁一 ,但求实用,只知皮毛。
我的做法是将不同部分分成独立文档,在主文档里\include{}进来。
分享
34赞同反对,不会显示你的姓名
34 人赞同
一些个人建议:
- 选取好的发行版并使用 IDE,比如 TeX Live + TeXstudio,勤更新。文本编辑器能给的支持太少了,根本不能应付大型文档。TeXstudio 这种 IDE 有代码折叠,语法句法(不只是拼写)检查、inline 预览、代码和PDF间跳转等重要功能。
- 下决心用 LaTeX 了,就不要再使用 LyX、Pandoc 啥的了。那些都是隔靴搔痒,和你用 LaTeX 的初衷相违背,排版强迫症发作起来无药可救。
- 处理中文,请使用 XeLaTeX 引擎和 xeCJK 包,不要碰 CTeX 及古老的 CJK 方案。
- 善于用 \include 切分文档。
- 功能相近的包,选取未停止维护、与引擎兼容且最广受好评的;功能非常丰富的包,如绘图包等,学习最先进的。
- 把 amsmath 包的官方文档啃几遍,有问题上 stackexchange 的 TeX 版找方案。能排公式和排对公式之间的区别是很大的。比如函数该用内置的带\的版本(\cos vs cos),绝对值符号究竟是哪个,\dfrac 和 \tfrac 的区别等等,有的出版社都不知道。
- 学会换行和缩进,\usepackage 可以以字典序排列;包内设置,缩进后字典序排列。例如:
\documentclass[a4paper]{article} \usepackage{amsmath} \usepackage{fontspec} \setmainfont{Times New Roman} \setsansfont{Arial} ... \usepackage{tikz} \usetikzlibrary{arrows} \usepackage[indentfirst]{xeCJK} \setCJKmainfont[BoldFont={SimHei}]{SimSun} \setCJKsansfont{KaiTi} \begin{document} ... \end{document}
- 遵循最小手动配置原则,尽量不自行定义命令、变量等。杜绝手动几何调整。
- 多看文档(texdoc 调用)和TeX - LaTeX Stack Exchange。
包推荐:
- biber 代替 bibtex
- polyglossia 代替 babel
- xindy 代替 makeindex
- 画图用 TikZ + Asymptote 分工,代替 MetaPost、PSTricks 和 xfig等等其他所有绘图包。
其他的推荐想到后会添加到这里。
分享
15赞同反对,不会显示你的姓名
墨磊 ,不折腾会死星人 // http://github.com/morlay
15 人赞同
GK下载_电子书_pdf_图片
DQDG下载_电子书_pdf_图片
蛋疼的时候弄过的两本书,
用 XeTeX 生成 ……
其中某个的入口文件
% 讲导言区内容移动到不同的文件中
% 样式相关
\input{Styles/Default}
% 调用常用功能的支持
\input{Functions/Bases} % 基本
\input{Functions/Fonts} % 字体
\input{Functions/Graphs} % 插图与表格
\input{Functions/Draws} % 图形绘制
\input{Functions/Notes} % 参考文献,注释相关
\input{Functions/Maths} % 数学公式
\input{Functions/Codes} % 插入代码
% \includeonly{Contents/2_Chap_08} % 单一章节生成和排版调试
\begin{document}
% 封面
\include{Contents/0_Cover}
% 前言(摘要)、目录
\include{Contents/1_Intro}
% 各章节
\include{Contents/2_Chap_01}
\include{Contents/2_Chap_02}
\include{Contents/2_Chap_03}
\include{Contents/2_Chap_04}
\include{Contents/2_Chap_05}
\include{Contents/2_Chap_06}
\include{Contents/2_Chap_07}
\include{Contents/2_Chap_08}
\include{Contents/2_Chap_09}
\include{Contents/2_Chap_10}
\include{Contents/2_Chap_11}
\include{Contents/2_Chap_12}
\include{Contents/2_Chap_13}
\include{Contents/2_Chap_14}
\include{Contents/2_Chap_15}
\include{Contents/2_Chap_16}
\include{Contents/2_Chap_17}
% 附录
\begin{appendices}
\input{Styles/Appendix}
\include{Contents/3_End_A}
\include{Contents/3_End_B}
\include{Contents/3_End_C}
\include{Contents/3_End_D}
\include{Contents/3_End_E}
\end{appendices}
\end{document}
文档结构
总之就是把 内容和样式设置 分离就好。
分享
1赞同反对,不会显示你的姓名
嘉嘉 ,struggling 暂时告别一下知乎
1 人赞同
好多年不用office,基本写东西全部用latex。关于看着乱的问题,其实看习惯就好了,我和老板,朋友们的邮件里要讨论数学问题基本就是latex格式,$$也容易提示这是数学符号了。
编译器一般用kile或者texmaker,都是免费的,而且也有一些简单的折叠和显示文章结构的功能。
分享
1赞同反对,不会显示你的姓名
赵勤 ,从事计算机理论研究,原同济足协裁判,爱…
1 人赞同
我用Vim来编辑LaTeX,插件自带折叠功能,可以很容易地看清楚文章结构。
也曾经用过类似于TeXworks之类的编辑器,似乎这类编辑器都带有文档结构表,应该也能很容易地看清文章架构。
如果文章较长、组织结构较复杂的话,可以考虑分成多个子文件来撰写。
或许也可以尝试下用所见即所得的编辑器如LyX来写tex文档,不过我个人不太喜欢这种方式。
分享
5赞同反对,不会显示你的姓名
Wei Li ,Software/Compiler/EDA Engineer
5 人赞同
说一下我的方案吧,我用的是Ubuntu
笔记/Blog都是用vim+vimwiki写的markdown格式(感谢vimwiki新近支持markdown格式), Blog的话在vim里用wordpress插件直接发布,markdown里几乎可以随意内嵌latex语法,wordpress有很多插件可以支持。笔记的话通过pandoc把markdown转成latex, 再用pdflatex转成pdf。
我觉得关键是结合markdown简洁直白的优势在必要的时候能够嵌入latex复杂丰富的功能
分享
1赞同反对,不会显示你的姓名
1 人赞同
如果你熟悉emacs,则简单的办法是用emacs+org(emacs的扩展包)编辑文档,然后再输出为latex格式,这样就不用记latex的命令了。
分享
1赞同反对,不会显示你的姓名
邵华明 ,博士生
1 人赞同
先得选好模板,latex的优势就在于,自动排版,有个模板定义,你就不用在格式费心了,重点放在内容上。
分享
0赞同反对,不会显示你的姓名
玟清 ,半路学术,半路学数
习惯问题。看得多了,代码中也能看出公式来。
还是习惯问题。严格按照某种固定格式,该缩进就缩进,该高亮就高亮。严格限制屏幕中需要处理的信息量,该分章节就分章节。这样,自然就显得整洁,自然有条理。人的瞬时记忆是有限的,对于固定模式更高效,一次处理少量的数据也更快一些。
如果你不是必须用latex,换工具。如果你只是投稿,可以先把文字编辑好,再来用latex整理。
如果你坚持使用latex,就像整理书桌一样整理自己的文字。按照自己的想法去做想做的事,不要被工具所左右。当然,驾驭一个工具,必然有一定的学习曲线,但一旦学成,它就成了你的习惯。
另外,平时写文档,我也推荐pandoc和markdown,既可发布pdf,也可发布网页。现在一些论坛和博客系统(如jekyll)都是支持markdown的。我自己就是用markdown记笔记,然后发到用github建的jekyll博客上。
分享
0赞同反对,不会显示你的姓名
philo ,I‘m philo
Texlive + TexStudio 能很好的解决你的问题.
刚开始我也很乱.但是后来,写多了就好了.
分享
0赞同反对,不会显示你的姓名
Joseph Shen ,不是港澳同胞,别他妈的用繁体
1. 使用 include
2. 写注释
3. 理清自己的思路
from: https://www.zhihu.com/question/21088362