我在网上看到大量的 Ctex 教程(包括刘海洋的 LaTeX 入门 还有那个比较有名气的 lnotes.pdf)都说,写 ctex 的文档需要在导言区声明文档类型为 ctexart ,可以我在 openSUSE + texlive + texlive-ctex 环境下,却发现如果这么做会报错,我这里贴其中的一个错误:
! LaTeX Error: Command CTEXoptions already defined.
图:
如果声明文档类型为 article 反而是正确的,下面的是我的正确的文档,只要把 article 修改为 ctexart 反而出错了。注意都是用 XeLaTeX 编译。
documentclass[a4paper]{article}
usepackage{ctex}
egin{document}
你好~CTeX~ 文档类 extbf{粗体}
section{你好 Hello World}
end{document}
这是为什么呢?是那些教程都太旧了吗?
奇瑞艾瑞泽
(奇瑞艾瑞泽)
#2
我感觉如果修改类型为 ctexart,就要取消usepackage{ctex}
是我用错了,要么声明文档类型为 ctexart,无需再引入 ctex 包,像下面那样:
documentclass[a4paper]{ctexart}
egin{document}
你好~CTeX~ 文档类 extbf{粗体}
section{你好 Hello World}
end{document}
要么声明文档类型为 article,需要再引入 ctex 包,像下面那样:
documentclass[a4paper]{article}
usepackage{ctex}
egin{document}
你好~CTeX~ 文档类 extbf{粗体}
section{你好 Hello World}
end{document}
不过我发现它们还是有区别的,ctexart 时标题默认会居中,默认会把标题加到页眉中。其它的我就不知道了。
gstar
(gstar)
#4
documentclass[a4paper]{article}
usepackage{ctex}
上述用法采用 article 文件类, 载入的 ctex 宏包, 其作用只是提供了一个简单的中文环境, 样式还是 article 的样式. 字形的大小采用西方标准, 常用的除了小四号对应于 12pt 以外, 几乎很少相同的. 因此中文字号难于满足中文排版的需要.
documentclass[a4paper]{ctexart}
这种用法采用 ctexart 文档类, 它有一种默认的样式, 如果需要, 可用 CTEXsetup 命令进行设置. 字号默认为 5 号字, 可以方便地用 zihao{…} 命令指定中文字号, 还可以用 ziju{…} 指定段落中的字距, 方便中文排版.
事实上, 即便
documentclass[a4paper]{ctexart}
这样, 对于 openSUSE 用户而言, 也有很大的误导作用, 因为它默认选用 windows 中的 4 套中文字库, 在 openSUSE 中它们缺省是不存在的.
推荐的方法是
documentclass[a4paper,nofonts,hyperref,fancyhdr]{ctexart}
setCJKmainfont...]{...}
setCJKsansfont{...}
......
其中 “…” 填入你选用的字体名称或字体文件名. 另外, 还可以方便中文标签以及页眉页脚等的设置.
1赞