TeX学习笔记

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值