1. 获取宏包使用帮助:在命令行中输入texdoc 宏包名,如texdoc pstricks。
2. (2012.03.12 18:06) 今天在\subsubsection里面添加\footnote后编译报错:“! TeX capacity exceeded, sorry [input stack size=5000].”。后来想起lshort文档提到\protect命令,应用场景似乎很相似。于是在/footnote前面加上/protect,果然编译通过。不知道真正原因是不是在这里。
3. (2012.03.13 18:14) 今天发现使用PDFTeXify生成的PDF出现中文书签乱码,而用PDFLaTeX生成没问题。(文档类型:ctexart,hyperref已经配置CJKbookmarks=true)
4. CTEX中自定义TeX宏包的安装
参考的是ctex-faq.pdf Version 0.4 beta (89)的Q16和Q23。
在CTEX安装目录下的MiKTeX\tex\latex\目录新建一个以宏包命名的文件夹,并将sty文件拷贝到该文件夹。然后打开WinEdt的菜单TeX->MiKTeX->MiKTeX Options,在General标签上点击Refresh FNDB。
假如自己制作宏包,而宏包中又包含图片的话,上述方法同样适用。不过图片最好同时带有eps和pdf两种格式。因为我试过,如果不带pdf格式,使用pdflatex时出错,即使加了epstopdf宏包也没用。而我看了一下TeX目录下宏包也是这么做的。
5. (2012.03.23 09:07) datatool宏包与tabular结合使用的问题
\begin{tabular}{|c|c|}
\DTLforeach{...}{...}{...}
\end{tabular}
只要表格中带有竖线,形如上述的代码,竖线都会在表格底部多出一行。
6. (2012.03.23 15:22) \def命令似乎可以毫无限制地定义,对于已经存在的命令,无需\renewcommand:
\documentclass{article}
\def\TeX{oh yeah!}
\begin{document}
\TeX
\end{document}
输出:oh yeah!
但是如果用\providecommand,则没有任何效果。
7. (2012.03.23 15:22) 环境中命令引用环境参数:
\documentclass{article}
\newenvironment{myenv}[1]{\def\mycmd{\gcmd{#1}}}{}
\newcommand{\gcmd}[2]{#1, #2}
\begin{document}
\begin{myenv}{envpara}
\mycmd{cmdpara}
\end{myenv}
\end{document}
输出:envpara, cmdpara
更为有趣的环境参数嵌套例子:
\documentclass{article}
\newenvironment{myenv}[1]{\def\mysub{\subenv{#1}}}{}
\newenvironment{subenv}[2]{\def\mycmd{\gcmd{#1}{#2}}}{}
\newcommand{\gcmd}[3]{#1, #2, #3}
\begin{document}
\begin{myenv}{envpara}
\begin{mysub}{subenvpara}
\mycmd{cmdpara}
\end{mysub}
\end{myenv}
\end{document}
输出:envpara, subenvpara, cmdpara
不过对于环境参数嵌套的例子,这样用的话会导致subenv环境的{enddef}无法执行。说不定还导致其它问题,还是不用的好。
8. (2012.03.28 14:46) 开始使用TeX时,用的是PDFLaTeX生成PDF,一直觉得很好用。后来发现生成的PDF在Acrabot Read里面的中文字体墨迹很不均匀,在SumatraPDF里面却没有这个问题;打印没有问题。进一步发现是由于PDF的某些字体没有嵌入而导致的问题。我觉得应该把所有字体都嵌入到PDF文档,虽然这样文件会大一些,但是不管在哪里打开,都不会因为找不到字体而出现显示上的问题。网上看了一下,要把所有字体嵌入,需要输出DVI格式(也就是说不能用PDFLaTeX,而要用LaTeX);而我又要用到书签和超链接,因此觉得dvipdfmx符合我的要求。
使用LaTeX+dvipdfmx有以下额外好处:
1) PDF文档支持中文复制(似乎是dvipdfmx的功劳);
2) 插入的EPS图片无需转换成PDF;
为了使用dvipdfmx,需要作如下修改:
1) 如果使用了PGF作图,在引用tikz 宏包之前,用户需要设置PGF系统驱动(lnotes2.pdf):
\def\pgfsysdriver{pgfsys-dvipdfmx.def}
\usepackage{tikz}
2) 如果使用了超链接,引用hyperref宏包时要加上dvipdfm选项:
\usepackage[dvipdfm,CJKbookmarks=true,]{hyperref}
最后,文档的生成方式是:先在WinEdt 6.0的工具栏中按LaTeX生成DVI文件,然后用命令行生成PDF文件:
dvipdfmx dvi文件
9. (2012.03.29 11:16) 利用\makeatletter命令将反斜杠“\”输出到文件的例子:
\documentclass{article}
\makeatletter
\def\filebackslash{\@backslashchar}
\makeatother
\newcommand{\writetxtfile}[2]%
{%
\newwrite\file
\immediate\openout\file=#1
\immediate\write\file{#2}
\closeout\file
}
\begin{document}
\writetxtfile{./aa1.txt}{abc\filebackslash efg}
\end{document}
输出:abc\efg