早先我多用学校授权的MS office或open source的OOo(http://www.openoffice.org/)来编辑文档,后来渐渐转向google docs和LibreOffice,学会了LaTeX后,由于LaTeX所见即所得(WYSIWYG)的特征节省了我不少排版的时间,所以如今成为我撰写文档、幻灯片(beamer)的主要工具。以下主要是我折腾LaTeX的点点滴滴,有些也许很少能被用到(例如插入u3d来显示3D物体),大部分与也主要是一些不错的辅助工具和如何解决我遇到的一些问题,如果你只是初学者、想系统地学习LaTeX,那么我建议你看一下大名鼎鼎的A (Not So) Short Introduction to LaTeX(http://www.ctan.org/tex-archive/info/lshort/);如果你看完这篇文章觉得有些工具不错想继续深入了解,我想最科学的方式还是阅读官方文档、订阅官方的user maillist,当然也欢迎与我交流。XD
关于参考文献
我推荐使用BibTeX,尽管要编译四次,但维护一个文献数据库却常常能重用bib,省得下次要引用同样的文献时要加入重复的bibitem。目前我主要由mendeley desktop(http://www.mendeley.com/)管理文献,也由它来产生.bib文件。
有时候我需要分章节来显示参考文献,这时候要用到chapterbib包(http://www.ctan.org/pkg/chapterbib)。加入:
- \usepackage{sectionbib}{chapterbib}
在对应的章节末尾加入平常在文章末尾加入的这两行代码即可(<bib-file>为.bib文件的名称):
- \bibliographystyle{plain}
- \bibliography{<bib-file>}
如果正文中没有出现引用而想把.bib文件的所有文献放到参考文献中,则需要在以上命令前加上:
- \nocite{*}
关于代码高亮(source code highlight)
我常常有需要在一些文档或幻灯片中加入代码,这时我希望代码在LaTeX生成的目标文件中高亮而且我不需要修改要插入的代码(例如为关键字配置颜色)。
过去我用的是listings(http://www.ctan.org/tex-archive/macros/latex/contrib/listings/),不过default的listings显示出来并不如人意————尤其是在beamer产生的slides里,不进行一些配置会占空间而且很难看。
以下我用以前所用的一些显示shell代码的配置作为一个简单的示例:
- % shell code highlight support
- % adapted from http://www.programmiersprachen.de/forum/board26-our-developer-boards/developer-lounge/7976-latex-shell-code-lstlisting/?s=03579afecc34ba7129d5a0145a93efeaabcfe45f
- \lstdefinestyle{Shell}{delim=[il][\bfseries]{BB}}
- \newcommand{\shellcmd}[1]{\\\indent\indent\texttt{\footnotesize\# #1}\\}
- % adapted from http://stackoverflow.com/questions/3134187/how-to-add-a-jpg-image-in-latex
- \usepackage{xcolor}
- \usepackage{listings}
- \lstdefinestyle{BashInputStyle}{
- language=bash,
- basicstyle=\small\sffamily,
- numbers=left,
- numberstyle=\tiny,