latex索引格式语法

一本书的引文、人名和专有名词索引是非常重要的,能够给读者提供很多帮助。在Latex里面,引文比较简单,用bib文件和\cite命令就可以自动完成。索引稍微麻烦一点。

首先,需要一个索引列表,类似下面的定义的每一个人名或者专有名词。

\newglossaryentry{name:Newton}{type=name, name=Newton, text=Newton, description={Isaac Newton(牛顿)}, sort=Newton}
\newglossaryentry{term:经典力学}{type=term, name=经典力学, text=经典力学, description=Classical Mechanics, sort=JingDianLiXue}
\newglossaryentry{term:Newton力学}{type=term, name=Newton力学,text=Newton力学, description=以Newton第二定律为核心的力学, sort=Newton力学, parent=term:经典力学}

其次,需要在正文中功过\gls{name:Newton}使用这些索引项。

接着,只要在Latex的声明部分做过如下的说明,在系统运行下面的命令之后,就会自动产生高质量的索引。

\usepackage[nomain,acronym,xindy,toc, style=alttreehypergroup,nolong,nosuper]{glossaries}
% The alttree type of glossary styles need to know the
% widest entry name for each level
\glssetwidest{term:Lagrangian方程} % level 0 widest name,找出来你的列表中最长(0级索引项)的名字,这样系统好对齐
\glssetwidest[1]{term:Lagrangian方程} % level 1 widest name,找出来你的列表中最长(1级索引项)的名字
\glssetwidest[2]{term:Lagrangian方程} % level 2 widest name,找出来你的列表中最长(2级索引项)的名字

\usepackage[xindy]{imakeidx}
\usepackage{listings}
\newglossary[tm]{term}{term}{te}{名词索引}
\newglossary[nm]{name}{name}{na}{人名与常用翻译}
\makeglossaries

编译阶段,在xelatex 文件名以及bibtex 文件名之间,加入运行一个makeglossaries 文件名,就会自动的到索引。为了索引格式正确,需要多次运行xelatex 文件名 这个命令。

万能格式转换器pandoc用于书稿格式转换

一直打算把我的latex格式的书稿变成markdown格式和mediawiki格式,或者html格式。原来latex2html可用,不过遇到中文,会出很多问题。现在终于找到了pandoc万能格式转换器。太牛了,基本上转换了以后是可读的,需要额外修改的工作量不是很大。

按照pandoc的介绍,它能够把Markdown, reStructuredText, textile, HTML, DocBook, LaTeX, MediaWiki markup, TWiki markup, TikiWiki markup, Creole 1.0, Vimwiki markup, OPML, Emacs Org-Mode, Emacs Muse, txt2tags, Microsoft Word docx, LibreOffice ODT, EPUB 和 Haddock markup 转化成HTML, Word,Ebooks,TeX家族,PDF。实在太强大了。

pdflatex 包含字体

转自http://www.boekenenproefschriften.nl/proefschriften/sites/default/files/EmbedLaTeXfonts.pdf

To ensure that pdflatex embeds the fonts in your document, edit the updmap config file by locating updmap.cfg (for MikTeX it’s in MikTeX_install_dir/miktex/config) and editing it. On Linux systems you can also enter the command
updmap –edit
to edit the config file. Find the lines
#

pdftexDownloadBase14

#

Should pdftex download the base 14 pdf fonts? Since some configurations

(ps / pdf tools / printers) use bad default fonts, it is safer to download

the fonts. The pdf files will get bigger, though.

Valid settings are true (download the fonts) or false (don’t download

the fonts).

pdftexDownloadBase14 true

Make sure pdftexDownloadBase14 is set to true. If it is not, change it, and run updmap once. That’s it!

latex中文参考文献

GBT7714-2005规定外文作者姓名强制全大写。第一和其他的标准都不一样。第二,如果是个西班牙人,有国际字符的,例如Cañas这样的,程序没法直接改写成大写,更不要说有没有相应的大写。制定这个标准的人……

目前流行的几个参考文献格式文件:

  • \bibliographystyle{GBT7714-2005N} :多作者会出问题,随机丢掉作者
  • \bibliographystyle{gbt7714-2005} :多作者会出问题,全大写,愚蠢的GB标准,当有西班牙语字符的时候
  • \bibliographystyle{buptthesis} :非常好用。北邮牛。
  • \bibliographystyle{GBT7714-2005NLang-UTF8} :全大写,愚蠢的GB标准,当有西班牙语字符的时候

texlive中使用ctex遇到的字体问题

首先,texlive提供了cjklatex、xecjk(xelatex)来解决中文字体的问题,一般说来,中文字体都没有问题了。

但是,如果要写一本书,直接用book模版的话,需要修改很多章节标题、标点符号的问题。ctex宏包通过集中中文处理的相关的其他宏包解决了这个问题。

安装方法是:手动下载texlive最新版本并安装。由于在linux下,字体和文件名大小写不是完全与windows下的一致,开发者写的一部分程序有bug。直接用xelatex编译会出现如下错误:

fontspec error: “font-not-found”
The font “[SIMKAI.TTF]” cannot be found.

解决方法:第一、安装adobe字体,然后加入adobefonts参数,\documentclass[adobefonts]{ctexbook};第二、安装linux下的相应字体,然后利用
fc-list :lang=zh-cn
命令来显示所有中文字体的名称,记住其中楷体和仿宋对应的名称(通常是 KaiTi和FangSong),然后修改ctex-xecjk-winfonts.def文件,把其中的SIMKAI.TTF和SIMFANG.TTF换成前面记下来的字体名称。


% ctex-xecjk-winfonts.def: Windows 的 xeCJK 字体设置,默认为六种中易字体
% vim:ft=tex

\setCJKmainfont[BoldFont={SimHei},ItalicFont={KaiTi}]
{SimSun}
\setCJKsansfont{SimHei}
\setCJKmonofont{FangSong}

\setCJKfamilyfont{zhsong}{SimSun}
\setCJKfamilyfont{zhhei}{SimHei}
\setCJKfamilyfont{zhkai}{KaiTi}
\setCJKfamilyfont{zhfs}{FangSong}
% \setCJKfamilyfont{zhli}{LiSu}
% \setCJKfamilyfont{zhyou}{YouYuan}

\newcommand{\songti}{\CJKfamily{zhsong}} % 宋体
\newcommand
{\heiti}{\CJKfamily{zhhei}} % 黑体
\newcommand{\kaishu}{\CJKfamily{zhkai}} % 楷书
\newcommand
{\fangsong}{\CJKfamily{zhfs}} % 仿宋
% \newcommand{\lishu}{\CJKfamily{zhli}} % 隶书
% \newcommand
{\youyuan}{\CJKfamily{zhyou}} % 幼圆

\endinput

部分内容转自http://huxuan.org/2012/07/14/chinese-font-problem-of-ctex-in-texlive-under-linux/