虽然说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 人赞同
一些个人建议:

  1. 选取好的发行版并使用 IDE,比如 TeX Live + TeXstudio,勤更新。文本编辑器能给的支持太少了,根本不能应付大型文档。TeXstudio 这种 IDE 有代码折叠,语法句法(不只是拼写)检查、inline 预览、代码和PDF间跳转等重要功能。
  2. 下决心用 LaTeX 了,就不要再使用 LyX、Pandoc 啥的了。那些都是隔靴搔痒,和你用 LaTeX 的初衷相违背,排版强迫症发作起来无药可救。
  3. 处理中文,请使用 XeLaTeX 引擎和 xeCJK 包,不要碰 CTeX 及古老的 CJK 方案。
  4. 善于用 \include 切分文档。
  5. 功能相近的包,选取未停止维护、与引擎兼容且最广受好评的;功能非常丰富的包,如绘图包等,学习最先进的。
  6. 把 amsmath 包的官方文档啃几遍,有问题上 stackexchange 的 TeX 版找方案。能排公式和排对公式之间的区别是很大的。比如函数该用内置的带\的版本(\cos vs cos),绝对值符号究竟是哪个,\dfrac 和 \tfrac 的区别等等,有的出版社都不知道。
  7. 学会换行和缩进,\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}
  8. 遵循最小手动配置原则,尽量不自行定义命令、变量等。杜绝手动几何调整。
  9. 多看文档(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

如何使用LaTeX让自己不乱?的更多相关文章

  1. LaTeX 相对于 Word 有什么优势?

    sjhstone ,本科EE在读 vczh等 276 人赞同 [Word公式进阶请往下翻]有人还写过论文,参见PLOS ONE: An Efficiency Comparison of Documen ...

  2. Latex学习笔记-序

    在写论文的过程中自学了$\LaTeX$, 想总结一下使用心得.刚开始整理了一下发现非常之乱,不知这么多零碎的知识该如何整理的有条理点,至少以后用到还能翻翻自己博客.这次写作论文图省劲用了IEEE的模板 ...

  3. 最近在 OS-10.9下配置opencv, cgal, latex, qt, pillow

    其实我之前使用的Mac os的版本是10.8的雪豹,可是最近想体验一下Mac os10.9新版本,于是就开始更新Mac os,经过10多个小时的下载和成功安装后,发现之前的配置全乱了,首先是发现lat ...

  4. 教你如何在word中像LaTex那样打出漂亮的数学公式

    转载自: http://blog.csdn.net/ibingow/article/details/8613556 记得很久以前在word里打数学公式很痛苦,要用鼠标点啊点,效率奇低,包括像MathT ...

  5. Latex 论文elsevier,手把手如何用Latex写论文

    这几天在开始写论文,准备发的是elsevier,这个网站的instruction有问题,下载的东西基本上好多的错误,所以我就写博客记录. 首先看下:https://www.elsevier.com/a ...

  6. 2019-2-13-Latex-论文elsevier,手把手如何用Latex写论文

    title author date CreateTime categories Latex 论文elsevier,手把手如何用Latex写论文 lindexi 2019-02-13 10:38:20 ...

  7. latex中显示代码

    如何在latex中添加代码模块 首先在开头导入以下的包 \usepackage{listings} \usepackage{ctex} % 用来设置附录中代码的样式 \lstset{ basicsty ...

  8. Linux 中优秀的文本化编辑思想大碰撞(Markdown、LaTeX、MathJax)

    这样一个标题可能不太准确,因为确实无法准确地解释什么叫"文本化编辑思想".其实我这篇随笔主要是想探讨 Markdown.LaTeX.MathJax,有兴趣的朋友可以继续往下看,同时 ...

  9. 再来说说 LaTeX

    在我的上一篇随笔中,我提到了 Markdown.LaTeX 和 MathJax.这几个东西对目前的网络技术文章的写作.展示都有深远的影响.在上一篇中,我还给出了一份 LaTeX 语法的学习资料.在这一 ...

随机推荐

  1. WEP自动破解工具wesside-ng

    WEP自动破解工具wesside-ng   wesside-ng是aircrack-ng套件提供的一个概念验证工具.该工具可以自动扫描无线网络,发现WEP加密的AP.然后,尝试关联该AP.关联成功后, ...

  2. SQL语句之 多表管理

    SQL语句之 多表管理 一个数据库内通常会有不止一张表,有时候我们要把多张表联系起来,这就需要用到多表管理的语句. 1.外键约束 一个表中的非主键字段,如果在另外一张表中是主键,那么这个字段我们叫它做 ...

  3. BZOJ3772精神污染

    参见http://blog.csdn.net/popoqqq/article/details/43122821 #include<bits/stdc++.h> using namespac ...

  4. poj 1797 最短路变形dijkstra

    题意:题目大意:有n个城市,m条道路,在每条道路上有一个承载量,现在要求从1到n城市最大承载量,而最大承载量就是从城市1到城市n所有通路上的最大承载量 链接:点我 解题思路:其实这个求最大边可以近似于 ...

  5. 吴恩达-coursera-机器学习-week7

    十二.支持向量机(Support Vector Machines) 12.1 优化目标 12.2 大边界的直观理解 12.3 数学背后的大边界分类(选修) 12.4 核函数1 12.5 核函数2 12 ...

  6. Ural 2036. Intersect Until You're Sick of It 计算几何

    2036. Intersect Until You're Sick of It 题目连接: http://acm.timus.ru/problem.aspx?space=1&num=2036 ...

  7. Slickflow.NET 开源工作流引擎高级开发(一) -- 流程外部事件的调用和变量存储实现

    前言:流程实现基本流转功能外,通常也需要调用外部事件,用于和业务系统的交互,同时存储一些流程变量,用于追踪和记录业务数据变化对流程流转的影响. 1. 流程事件 流程执行过程中,伴随各种事件的发生,而且 ...

  8. CentOS 7解压安装PHP5.6.13

    自动化脚本: https://github.com/easonjim/centos-shell/blob/master/php/install-php_5.6.13.sh

  9. Revit API创建一个拷贝房间内对象布局命令

    本课程演示创建一个拷贝房间内对象布局命令,完整演示步骤和代码.这个命令把选中房间内的对象复制到其它选中的一个或多个房间中,而且保持与源房间一致的相对位置.通过本讲座使听众知道创建一个二次开发程序很简单 ...

  10. Xamarin.Forms.Xaml.XamlParseException: MarkupExtension not found for trans:Translate using a PCL in Release Mode

    I'm pretty desperate finding the solution for the problem stated below. I have a cross platform solu ...