texlive[41937] Master/texmf-dist: ctex (27aug16)

commits+karl at tug.org commits+karl at tug.org
Sun Aug 28 00:15:40 CEST 2016


Revision: 41937
          http://tug.org/svn/texlive?view=revision&revision=41937
Author:   karl
Date:     2016-08-28 00:15:39 +0200 (Sun, 28 Aug 2016)
Log Message:
-----------
ctex (27aug16)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/ctex/ctex.pdf
    trunk/Master/texmf-dist/source/latex/ctex/ctex.dtx
    trunk/Master/texmf-dist/tex/generic/ctex/ctxdocstrip.tex
    trunk/Master/texmf-dist/tex/generic/ctex/zhadobefonts.tex
    trunk/Master/texmf-dist/tex/generic/ctex/zhfandolfonts.tex
    trunk/Master/texmf-dist/tex/generic/ctex/zhfounderfonts.tex
    trunk/Master/texmf-dist/tex/generic/ctex/zhubuntufonts.tex
    trunk/Master/texmf-dist/tex/generic/ctex/zhwindowsfonts.tex
    trunk/Master/texmf-dist/tex/latex/ctex/config/ctex-name-gbk.cfg
    trunk/Master/texmf-dist/tex/latex/ctex/config/ctex-name-utf8.cfg
    trunk/Master/texmf-dist/tex/latex/ctex/config/ctex.cfg
    trunk/Master/texmf-dist/tex/latex/ctex/config/ctexopts.cfg
    trunk/Master/texmf-dist/tex/latex/ctex/ctex-article.def
    trunk/Master/texmf-dist/tex/latex/ctex/ctex-beamer.def
    trunk/Master/texmf-dist/tex/latex/ctex/ctex-book.def
    trunk/Master/texmf-dist/tex/latex/ctex/ctex-c5size.clo
    trunk/Master/texmf-dist/tex/latex/ctex/ctex-cs4size.clo
    trunk/Master/texmf-dist/tex/latex/ctex/ctex-report.def
    trunk/Master/texmf-dist/tex/latex/ctex/ctex.sty
    trunk/Master/texmf-dist/tex/latex/ctex/ctexart.cls
    trunk/Master/texmf-dist/tex/latex/ctex/ctexbeamer.cls
    trunk/Master/texmf-dist/tex/latex/ctex/ctexbook.cls
    trunk/Master/texmf-dist/tex/latex/ctex/ctexcap.sty
    trunk/Master/texmf-dist/tex/latex/ctex/ctexheading.sty
    trunk/Master/texmf-dist/tex/latex/ctex/ctexhook.sty
    trunk/Master/texmf-dist/tex/latex/ctex/ctexpatch.sty
    trunk/Master/texmf-dist/tex/latex/ctex/ctexrep.cls
    trunk/Master/texmf-dist/tex/latex/ctex/ctexsize.sty
    trunk/Master/texmf-dist/tex/latex/ctex/ctexspa.def
    trunk/Master/texmf-dist/tex/latex/ctex/ctxdoc.cls
    trunk/Master/texmf-dist/tex/latex/ctex/dictionary/translator-theorem-dictionary-ChineseGBK.dict
    trunk/Master/texmf-dist/tex/latex/ctex/dictionary/translator-theorem-dictionary-ChineseUTF8.dict
    trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-aptex.def
    trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-luatex.def
    trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-pdftex.def
    trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-uptex.def
    trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-xetex.def
    trunk/Master/texmf-dist/tex/latex/ctex/fd/c19rm.fd
    trunk/Master/texmf-dist/tex/latex/ctex/fd/c19sf.fd
    trunk/Master/texmf-dist/tex/latex/ctex/fd/c19tt.fd
    trunk/Master/texmf-dist/tex/latex/ctex/fd/c70rm.fd
    trunk/Master/texmf-dist/tex/latex/ctex/fd/c70sf.fd
    trunk/Master/texmf-dist/tex/latex/ctex/fd/c70tt.fd
    trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-adobe.def
    trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-fandol.def
    trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-founder.def
    trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-mac.def
    trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-ubuntu.def
    trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-windows.def
    trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-windowsnew.def
    trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-windowsold.def
    trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese-article.def
    trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese-beamer.def
    trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese-book.def
    trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese-report.def
    trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese.def
    trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain-article.def
    trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain-beamer.def
    trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain-book.def
    trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain-report.def
    trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain.def

Modified: trunk/Master/texmf-dist/doc/latex/ctex/ctex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/ctex/ctex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/ctex/ctex.dtx	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/source/latex/ctex/ctex.dtx	2016-08-27 22:15:39 UTC (rev 41937)
@@ -413,7 +413,7 @@
 %<*!(c19|c70|ctexspa|dict)>
 %<class|style|ctexcap|ctexhook|ctexpatch|ctxdoc>\NeedsTeXFormat{LaTeX2e}
 %<class|style|ctexcap|ctexhook|ctexpatch|ctxdoc>\RequirePackage{expl3}
-%<+!driver>\GetIdInfo$Id$
+%<+!driver>\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
 %<ctxdoc>  {ctex documentation (CTEX)}
 %<ctxdoc>\ProvidesExplClass{ctxdoc}
 %<ctex>  {Chinese adapter in LaTeX (CTEX)}
@@ -502,7 +502,7 @@
 %<founder>\ProvidesExplFile{ctex-fontset-founder.def}
 %<ubuntu>  {Ubuntu fonts definition (CTEX)}
 %<ubuntu>\ProvidesExplFile{ctex-fontset-ubuntu.def}
-%<!driver>  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+%<!driver>  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 %</!(c19|c70|ctexspa|dict)>
 %<c19&rm>\ProvidesFile{c19rm.fd}%
 %<c19&sf>\ProvidesFile{c19sf.fd}%
@@ -513,9 +513,9 @@
 %<ctexspa>\ProvidesFile{ctexspa.def}%
 %<dict&theorem&GBK>\ProvidesDictionary{translator-theorem-dictionary}{ChineseGBK}%
 %<dict&theorem&UTF8>\ProvidesDictionary{translator-theorem-dictionary}{ChineseUTF8}%
-%<c19|c70>  [2016/05/16 v2.4.2 Chinese font definition (CTEX)]
-%<ctexspa>  [2016/05/16 v2.4.2 Space info for CJKpunct (CTEX)]
-%<dict&theorem>  [2016/05/16 v2.4.2 Chinese translation for theorem name (CTEX)]
+%<c19|c70>  [2016/08/27 v2.4.3 Chinese font definition (CTEX)]
+%<ctexspa>  [2016/08/27 v2.4.3 Space info for CJKpunct (CTEX)]
+%<dict&theorem>  [2016/08/27 v2.4.3 Chinese translation for theorem name (CTEX)]
 %</!(driver|readme|install|zhmap|spa|docstrip)>
 %<*driver>
 \documentclass{ctxdoc}
@@ -537,7 +537,7 @@
 % \changes{v2.4}{2015/02/19}{加强 \pkg{beamer} 宏包支持。}
 %
 %
-% \CheckSum{5600}
+% \CheckSum{5629}
 %
 % \CharacterTable
 %  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -1514,14 +1514,14 @@
 % |subsubsection|, |paragraph|, |subparagraph|;而可用的格式包括 \opt{numbering},
 % \opt{name}, \opt{number}, \opt{format}, \opt{nameformat}, \opt{numberformat},
 % \opt{aftername}, \opt{titleformat}, \opt{aftertitle}, \opt{runin},
-% \opt{afterindent}, \opt{beforeskip}, \opt{afterskip}, \opt{indent},
-% \opt{pagestyle} 等。
+% \opt{afterindent}, \opt{beforeskip}, \opt{afterskip}, \opt{fixskip},
+% \opt{indent}, \opt{pagestyle} 等。
 %
 % 注意,对 \cls{article} 及其衍生的 \cls{ctexart} 等文档类,没有 |chapter|
-% 级别的标题。而对于 \cls{beamer} 文档类,这些选项控制的是由 \tn{partpage}、
-% \tn{sectionpage} 和 \tn{subsectionpage} 产生的标题格式,此时只有 |part|、
-% |section| 和 |subsection| 这三层级别,并且 \opt{runin} 和 \opt{afterindent}
-% 这两个格式无效。
+% 级别的标题。而对于 \cls{beamer} 文档类,这些选项控制的是由 \tn{partpage},
+% \tn{sectionpage} 和 \tn{subsectionpage} 产生的标题格式,此时只有 |part|,
+% |section| 和 |subsection| 这三层级别,并且 \opt{runin}, \opt{afterindent}
+% 和 \opt{fixskip} 这三个格式无效。
 %
 % 多级选项之间用斜线分开,例如,\opt{part/name} 选项设置 \tn{part} 标题的在数
 % 字前后的名称,而 \opt{section/number} 选项设置 \tn{section} 标题的数字类型。
@@ -2001,15 +2001,6 @@
 % \end{tabular}
 % \end{table}
 %
-% \begin{function}[EXP,added=2016-05-10]{part/fixbeforeskip,chapter/fixbeforeskip}
-%   \begin{syntax}
-%   fixbeforeskip = \TFF
-%   \end{syntax}
-%   \cls{book} 和 \cls{report} 类的 \tn{part} 和 \tn{chapter} 标题与正文顶部的距离除了由
-%   \opt{beforeskip} 选项设置的垂直间距外,还会有一个空行。
-%   \opt{fixbeforeskip} 选项用于抑制这个多余空行。
-% \end{function}
-%
 % \begin{function}[EXP,updated=2015-06-27]{.../afterskip}
 %   \begin{syntax}
 %   afterskip = \Arg{弹性间距}
@@ -2074,6 +2065,15 @@
 % \end{minipage}
 % \end{table}
 %
+% \begin{function}[EXP,added=2016-06-03]{.../fixskip}
+%   \begin{syntax}
+%   fixskip = \TFF
+%   \end{syntax}
+%   默认情况下,\cls{article}、\cls{book} 和 \cls{report} 类的标题与正文的距离除了由
+%   \opt{beforeskip} 和 \opt{afterskip} 选项设置的垂直间距外,还会有一些多余的间距。
+%   \opt{fixskip} 选项用于抑制这些多余间距。
+% \end{function}
+%
 % \begin{function}[EXP,updated=2015-06-27]{.../indent}
 %   \begin{syntax}
 %   indent = \Arg{缩进间距}
@@ -2190,13 +2190,13 @@
 % \begin{ctexexam}[labelref=exam:miscopt]
 %   \ctexset {
 %     chapter = {
-%       beforeskip    = 0pt,
-%       fixbeforeskip = true,
-%       format        = \Huge\bfseries,
-%       nameformat    = \rule{\linewidth}{1bp}\par\bigskip\hfill\chapternamebox,
-%       number        = \arabic{chapter},
-%       aftername     = \par\medskip,
-%       aftertitle    = \par\bigskip\nointerlineskip\rule{\linewidth}{2bp}\par
+%       beforeskip = 0pt,
+%       fixskip    = true,
+%       format     = \Huge\bfseries,
+%       nameformat = \rule{\linewidth}{1bp}\par\bigskip\hfill\chapternamebox,
+%       number     = \arabic{chapter},
+%       aftername  = \par\medskip,
+%       aftertitle = \par\bigskip\nointerlineskip\rule{\linewidth}{2bp}\par
 %     }
 %   }
 %   \newcommand\chapternamebox[1]{%
@@ -2220,7 +2220,7 @@
 % \label{sec:useful-commands}
 % \subsection{字号与间距}
 %
-% \begin{function}[updated=2014-03-08]{\zihao}
+% \begin{function}[updated = 2014-03-08, label = ]{\zihao}
 %   \begin{syntax}
 %     \tn{zihao} \Arg{字号}
 %   \end{syntax}
@@ -2559,7 +2559,7 @@
 % 来确定。
 % \end{function}
 %
-% \begin{function}{zhmap, nozhmap}
+% \begin{function}[label = ]{zhmap, nozhmap}
 % \opt{zhmap} 宏包选项增加了参数,扩充了功能,除了支持真假值参数外,还支持选择
 % \pkg{zhmCJK} 作为底层中文处理宏包。(\ref{subs:options-CJK-font}~节)
 %
@@ -2576,7 +2576,7 @@
 % (\ref{subs:options-CJK-font}~节)。
 % \end{function}
 %
-% \begin{function}{punct, nopunct}
+% \begin{function}[label = ]{punct, nopunct}
 % 旧版本中宏包 \opt{punct} 选项没有参数,现在可以用参数设定标点风格
 % (\ref{subs:options-type-style}~节)。原有无参形式的 \opt{punct} 选项相当
 % 于 |punct=quanjiao|。
@@ -2592,7 +2592,7 @@
 % 于 |scheme = plain|。它们均已过时,仅因兼容性而保留。
 % \end{function}
 %
-% \begin{function}{space, nospace}
+% \begin{function}[label = ]{space, nospace}
 % 新版本宏包 \opt{space} 选项增加真假值参数。
 % (\ref{subs:options-type-style}~节)
 %
@@ -2717,6 +2717,12 @@
 %   并设置相应的 \opt{runin} 选项为 \opt{true}。
 % \end{function}
 %
+% \subsection{\CTeX\ 2.4.1 和 2.4.2}
+%
+% \begin{function}{part/fixbeforeskip, chapter/fixbeforeskip}
+%   这两个选项已经被删除,相应功能由新的选项 \opt{fixskip} 提供。
+% \end{function}
+%
 % \section{宏集依赖情况与手工安装方法}
 % \label{sec:dep-ins}
 %
@@ -2730,19 +2736,17 @@
 %
 % \begin{itemize}
 %   \item \pkg{expl3}、\pkg{xparse} 和 \pkg{l3keys2e} 宏包。它们属于 \pkg{l3kernel}
-%   和 \pkg{l3packages} 宏集,它们还依赖
-%   \begin{itemize}
-%     \item \pkg{etex} 宏包。
-%   \end{itemize}
+%   和 \pkg{l3packages} 宏集。
 %   \item \pkg{indentfirst} 宏包,属于 \pkg{tools} 宏集。
 %   \item \pkg{everysel} 宏包,属于 \pkg{ms} 宏集。
+%   \item \pkg{ulem} 宏包。
 %   \item \pkg{zhnumber} 宏包。
 %   \item[\ding{229}] 以上是各种编译方式都必需的依赖项。
-%   \item \pkg{CJK} 宏集,它的下划线功能依赖 \pkg{ulem} 宏包。
+%   \item \pkg{CJK} 宏集。
 %   \item \pkg{CJKpunct} 宏包。
 %   \item \pkg{xCJK2uni} 宏包。
 %   \item \pkg{zhmetrics} 宏包。
-%   \item \pkg{zhmCJK} 宏包。
+%   \item \pkg{zhmCJK} 宏包,它还依赖 \pkg{oberdiek} 宏集。
 %   \item[\ding{229}] 以上是使用 \pdfLaTeX{} 或 \LaTeX{} + \dvipdfmx{} 的编译方式所需要
 %   的依赖项,其中 \pkg{zhmCJK} 是可选的。
 %   \item \pkg{xeCJK} 宏包,它还依赖
@@ -2750,16 +2754,25 @@
 %     \item \pkg{fontspec} 宏包,它还依赖
 %     \begin{itemize}
 %       \item \pkg{euenc} 宏包。
-%       \item \pkg{xunicode} 宏包,它还依赖 \pkg{tipa} 宏包。
+%       \item \pkg{xunicode} 宏包,它还依赖
+%       \begin{itemize}
+%         \item \pkg{graphics} 宏集。
+%         \item \pkg{graphics-cfg} 宏包。
+%         \item \pkg{graphics-def} 宏包。
+%       \end{itemize}
 %     \end{itemize}
 %   \end{itemize}
+%   \item \pkg{environ} 宏包,它还依赖 \pkg{trimspaces} 宏包。
 %   \item[\ding{229}] 以上是使用 \XeLaTeX{} 编译时的依赖项。
 %   \item \pkg{LuaTeX-ja} 宏集,它还依赖
 %   \begin{itemize}
+%     \item \pkg{adobemapping} 宏包。
+%     \item \pkg{fontspec} 宏包。
+%     \item \pkg{lualibs} 宏包。
+%     \item \pkg{luaotfload} 宏包。
+%     \item \pkg{luatexbase} 宏包,它还依赖 \pkg{ctablestack} 宏包。
 %     \item \pkg{oberdiek} 宏集。
 %     \item \pkg{xkeyval} 宏包。
-%     \item \pkg{lualibs} 宏包。
-%     \item \pkg{luaotfload} 宏包,它还依赖 \pkg{luatexbase} 宏包。
 %   \end{itemize}
 %   \item[\ding{229}] 以上是使用 \LuaLaTeX{} 编译时的依赖项。
 %   \item \pkg{zhmetrics-uptex} 宏包。
@@ -4152,66 +4165,53 @@
   }
 \AtEndUTFCommand { \group_end: }
 %    \end{macrocode}
+%
 % \changes{v2.4.2}{2016/05/15}{恢复 \pkg{luatexja} 对 \tn{emshape} 和
 % \tn{eminnershape} 的重定义。}
-% 对 \pkg{fontspec} 沿用 \pkg{LuaTeX-ja} 的补丁。但恢复对 \tn{emshape} 和
-% \tn{eminnershape} 的修改。
+% \changes{v2.4.3}{2016/08/26}{简化 \pkg{fontspec} 补丁。}
+% \begin{macro}[int]{\fontspec_visible_space:}
+% 我们不使用 \pkg{luatexja} 对 \pkg{fontspec} 的补丁,直接处理。
 %    \begin{macrocode}
-\RequirePackage { lltjp-fontspec }
-\cs_set:Npn \emshape { \itshape }
-\cs_set:Npn \eminnershape { \upshape }
+\cs_set_protected:Npn \fontspec_visible_space:
+  {
+    \font_glyph_if_exist:NnTF \font { "2423 }
+      { \ltjalchar "2423 \exp_stop_f: }
+      { \fontspec_visible_space_fallback: }
+  }
 %    \end{macrocode}
-% \pkg{lltjp-unicode-math} 让数学符号命令成为普通的文字宏。为了避免它被展开,应该
-% 用 \tn{protected} 来定义。
+% \end{macro}
+%
+% \changes{v2.4.3}{2016/08/25}{更新 \pkg{unicode-math} 补丁。}
+% 对 \pkg{unicode-math} 的补丁主要是将 \file{unicode-math-table.tex} 中的数学符号设置为
+% \pkg{luatexja} 中的数学字母。
 %    \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_um_define_math_chars:
+\cs_new_protected:Npn \ctex_ltj_set_math_letter:NN #1#2
   {
     \group_begin:
-      \cs_set_protected:Npn \__um_sym:nnn ##1##2##3
-        {
-          \tl_if_in:nnT
-            {
-              \mathord \mathalpha \mathbin \mathrel
-              \mathpunct \mathop \mathfence
-            }
-            { ##3 }
-            { \@@_um_char:Nn ##2 { ##1 } }
-        }
-      \__um_input_math_symbol_table:
+      \cs_set_protected:Npn #1 ##1##2##3
+        { \ltjsetmathletter { ##1 } }
+      #2
     \group_end:
   }
-\cs_new_protected:Npn \@@_um_char:Nn #1#2
+\ctex_at_end_package:nn { unicode-math }
   {
-    \@@_um_char_aux:Nx #1 { \char_generate:nn {#2} { 12 } }
-    \ltjsetmathletter {#2}
-  }
-\cs_new_protected:Npn \@@_um_char_aux:Nn #1#2
-  {
-    \cs_gset_protected_nopar:Npn #1
+    \cs_if_exist:NTF \um_input_math_symbol_table:
       {
-        \mode_if_math:TF
-          {#2}
-          {
-            {
-              \lua_now_x:n { tex.globaldefs = 0 }
-              \ltj at allalchar #2
-            }
-          }
+        \ctex_ltj_set_math_letter:NN
+          \um_sym:nnn
+          \um_input_math_symbol_table:
       }
-  }
-\cs_generate_variant:Nn \@@_um_char_aux:Nn { Nx }
-\ctex_at_end_package:nn { unicode-math }
-  {
-    \cs_set_eq:NN \__um_define_math_chars: \@@_um_define_math_chars:
-    \@ifpackagelater { unicode-math } { 2015/06/28 }
       {
         \cs_set_eq:NN \use at mathgroup \ctex_ltj_use_math_group:Nn
         \cs_set_protected_nopar:Npn \ctex_ltj_math_group_hook:
           { \__um_switchto_literal: }
+        \ctex_ltj_set_math_letter:NN
+          \__um_sym:nnn
+          \__um_input_math_symbol_table:
       }
-      { }
   }
 %    \end{macrocode}
+%
 % 对 \pkg{listings} 的补丁是让代码环境支持 JAchar 类。\pkg{LuaTeX-ja} 的补丁会将
 % 代码目录标题改为日文,我们不需要。
 %    \begin{macrocode}
@@ -4986,12 +4986,12 @@
   {
     \prop_if_empty:NF \g_@@_family_font_name_prop
       {
-        \ctex_ltj_family_if_exist:xNF { \CJKfamilydefault } \l_@@_tmpa_tl
+        \ctex_ltj_family_if_exist:xNF { \CJKfamilydefault } \l_@@_tmp_tl
           {
             \str_if_eq_x:nnTF { \CJKfamilydefault } { \CJKrmdefault }
               { \use:n }
               {
-                \ctex_ltj_family_if_exist:xNTF { \CJKrmdefault } \l_@@_tmpa_tl
+                \ctex_ltj_family_if_exist:xNTF { \CJKrmdefault } \l_@@_tmp_tl
                   { \tl_gset:Nn \CJKfamilydefault { \CJKrmdefault } \use_none:n }
                   { \use:n }
               }
@@ -5558,7 +5558,7 @@
 \ctex_at_end_preamble:n { \ctex_update_default_family: }
 %    \end{macrocode}
 %
-% \begin{macro}{\em}
+% \begin{macro}[int]{\em}
 % \changes{v2.4.2}{2016/05/15}{兼容 \upLaTeX{} 2016/05/07u00 的定义。}
 % 取消 \upLaTeX{} 对 \tn{em} 使用 |\mcfamily|、|\gtfamily| 命令的重定义,恢复
 % \LaTeXe{} 对 \tn{em} 的原始定义。如果用户已经重定义了 \tn{em},则新定义保持
@@ -6550,8 +6550,20 @@
 % \subsection{其它中文标题定义}
 %
 % \changes{v2.0}{2014/03/08}{将标题汉化功能加入 \pkg{ctex.sty}。}
+% \changes{v2.4.3}{2016/08/18}{确保 \tn{proofname} 非空。}
 %
+% \begin{macro}[int]{\proofname}
+% \tn{proofname} 未在标准文档类中定义,需要确保它非空。
 %    \begin{macrocode}
+\tl_if_exist:NF \proofname
+  {
+    \tl_new:N \proofname
+    \tl_set:Nn \proofname { Proof }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
 \keys_define:nn { ctex }
   {
     contentsname   .tl_set:N = \contentsname ,
@@ -6691,6 +6703,7 @@
 %   不再有特殊意义。}
 % \changes{v2.2}{2015/06/27}{新的标题格式选项 \opt{afterindent}。}
 % \changes{v2.2}{2015/06/27}{新的标题格式选项 \opt{runin}。}
+% \changes{v2.4.3}{2016/06/03}{新的标题格式选项 \opt{fixskip}。}
 %
 % \begin{macro}[int]{\@@_def_heading_keys:n}
 %    \begin{macrocode}
@@ -6714,6 +6727,7 @@
         #1 / numbering   .bool_set:N = \exp_not:c { CTEX@#1 at numbering } ,
 %<*article|book|report>
         #1 / afterindent .bool_set:N = \exp_not:c { CTEX@#1 at afterindent } ,
+        #1 / fixskip     .bool_set:N = \exp_not:c { CTEX@#1 at fixskip } ,
         #1 / runin       .bool_set:N = \exp_not:c { CTEX@#1 at runin } ,
 %</article|book|report>
         #1 / format+         .code:n =
@@ -6763,9 +6777,10 @@
 % \changes{v2.0}{2014/03/21}{标题设置新增 \opt{pagestyle} 选项。}
 % \changes{v2.4.1}{2016/05/10}{新的标题格式选项 \opt{part/fixbeforeskip} 和
 %   \opt{chapter/fixbeforeskip}。}
+% \changes{v2.4.3}{2016/06/03}{删除选项 \opt{part/fixbeforeskip} 和
+%   \opt{chapter/fixbeforeskip}。}
 %
-% \begin{macro}{part/pagestyle,chapter/pagestyle,
-%   part/fixbeforeskip,chapter/fixbeforeskip}
+% \begin{macro}{part/pagestyle,chapter/pagestyle}
 % 只在 \cls{ctexbook} 和 \cls{ctexrep} 下有定义。
 %    \begin{macrocode}
 \group_begin:
@@ -6772,10 +6787,8 @@
 %<*book|report>
 \tl_set:Nn \l_@@_tmp_tl
   {
-    part    / pagestyle       .tl_set:N = \CTEX at part@pagestyle ,
-    chapter / pagestyle       .tl_set:N = \CTEX at chapter@pagestyle ,
-    part    / fixbeforeskip .bool_set:N = \CTEX at part@fixbeforeskip ,
-    chapter / fixbeforeskip .bool_set:N = \CTEX at chapter@fixbeforeskip ,
+    part    / pagestyle .tl_set:N = \CTEX at part@pagestyle ,
+    chapter / pagestyle .tl_set:N = \CTEX at chapter@pagestyle ,
   }
 %</book|report>
 %<*article|beamer>
@@ -6813,26 +6826,39 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}[int]{\CTEX at fixbeforeskip}
+% \begin{macro}[int]{\CTEX at fixtopskip}
 % 修正 \cls{book} 和 \cls{report} 类的 \tn{part} 和 \tn{chapter} 标题之前的多余空行。
-% 事实上,减掉 \tn{parskip} 有一定的风险。如果接下来的内容不会进入水平模式(例如在 \opt{format}
-% 选项中使用 \tn{hrule} 或者 \tn{hbox}),\TeX{} 就不会加上 \tn{parskip}。这时候就需要用户把
-% \tn{parskip} 加到 \opt{beforeskip} 上作为修正。
 %    \begin{macrocode}
 %<*book|report>
-\cs_new_protected_nopar:Npn \CTEX at fixbeforeskip
+\cs_new_protected_nopar:Npn \CTEX at fixtopskip
   {
-    \par
-    \ifdim \pagegoal = \maxdimen
-      \advance \@tempskipa -\topskip
-      \advance \@tempskipa -\parskip
-      \nointerlineskip
-    \fi
+    \CTEX at fixheadingskip
+    \dim_compare:nNnF \tex_pagegoal:D < \c_max_dim
+      { \skip_sub:Nn \l_@@_heading_skip { \tex_topskip:D } }
   }
 %</book|report>
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}[int]{\CTEX at fixheadingskip}
+% 抑制行间粘连,修正标题前后的多余间距。事实上,减掉 \tn{parskip},有一定的风险。
+% 如果接下来的内容不会进入水平模式(例如在 \opt{format} 选项中使用 \tn{hrule} 或者 \tn{hbox}),
+% \TeX{} 就不会加上 \tn{parskip}。这时候就需要用户把 \tn{parskip} 加到 \opt{beforeskip}
+% 或者 \opt{afterskip} 作为修正。
+%    \begin{macrocode}
+\cs_new_protected_nopar:Npn \CTEX at fixheadingskip
+  {
+    \par
+    \dim_set:Nn \tex_prevdepth:D { -1000pt }
+    \skip_sub:Nn \l_@@_heading_skip { \tex_parskip:D }
+  }
+\skip_new:N \l_@@_heading_skip
+\cs_new_protected_nopar:Npn \CTEX at setheadingskip
+  { \skip_set:Nn \l_@@_heading_skip }
+\cs_new_eq:NN \CTEX at headingskip \l_@@_heading_skip
+%    \end{macrocode}
+% \end{macro}
+%
 % \changes{v2.2}{2015/06/27}{\opt{beforeskip}、\opt{afterskip} 和 \opt{indent}
 %   选项支持表达式。}
 %
@@ -6852,7 +6878,9 @@
    \if at noskipsec \leavevmode \fi
    \par
 %  \addvspace{4ex}%
-   \addvspace{\glueexpr\CTEX at part@beforeskip\relax}%
+   \CTEX at setheadingskip \CTEX at part@beforeskip
+   \ifodd \CTEX at part@fixskip \CTEX at fixheadingskip \fi
+   \addvspace \CTEX at headingskip
    \ifodd \CTEX at part@afterindent
      \@afterindenttrue
    \else
@@ -6876,11 +6904,9 @@
     \@tempswafalse
   \fi
 % \null\vfil
-  \@tempskipa = \glueexpr \CTEX at part@beforeskip \relax
-  \ifodd \CTEX at part@fixbeforeskip
-    \CTEX at fixbeforeskip
-  \fi
-  \vspace*{\@tempskipa}%
+  \CTEX at setheadingskip \CTEX at part@beforeskip
+  \ifodd \CTEX at part@fixskip \CTEX at fixtopskip \fi
+  \vspace*{\CTEX at headingskip}%
   \secdef\@part\@spart}
 %</book|report>
 %    \end{macrocode}
@@ -6915,7 +6941,9 @@
    \CTEX at part@aftertitle}%
   \nobreak
 % \vskip 3ex
-  \vskip \glueexpr \CTEX at part@afterskip \relax
+  \CTEX at setheadingskip \CTEX at part@afterskip
+  \ifodd \CTEX at part@fixskip \CTEX at fixheadingskip \fi
+  \vskip \CTEX at headingskip
   \@afterheading}
 %</article>
 %<*book|report>
@@ -6961,7 +6989,9 @@
      \CTEX at part@aftertitle}%
      \nobreak
 %    \vskip 3ex
-     \vskip \glueexpr \CTEX at part@afterskip \relax
+     \CTEX at setheadingskip \CTEX at part@afterskip
+     \ifodd \CTEX at part@fixskip \CTEX at fixheadingskip \fi
+     \vskip \CTEX at headingskip
      \@afterheading}
 %</article>
 %<*book|report>
@@ -6982,7 +7012,9 @@
 %<*book|report>
 \def\@endpart{%
 %             \vfil
-              \vskip \glueexpr \CTEX at part@afterskip \relax
+              \CTEX at setheadingskip \CTEX at part@afterskip
+              \ifodd \CTEX at part@fixskip \CTEX at fixheadingskip \fi
+              \vskip \CTEX at headingskip
               \newpage
               \if at twoside
                \if at openright
@@ -7058,11 +7090,9 @@
 %    \begin{macrocode}
 \def\@makechapterhead#1{%
 % \vspace*{50\p@}%
-  \@tempskipa = \glueexpr \CTEX at chapter@beforeskip \relax
-  \ifodd \CTEX at chapter@fixbeforeskip
-    \CTEX at fixbeforeskip
-  \fi
-  \vspace*{\@tempskipa}%
+  \CTEX at setheadingskip \CTEX at chapter@beforeskip
+  \ifodd \CTEX at chapter@fixskip \CTEX at fixtopskip \fi
+  \vspace*{\CTEX at headingskip}%
 % {\normalfont \parindent \z@ \raggedright
   {\normalfont \parindent \dimexpr \CTEX at chapter@indent \relax
    \CTEX at chapter@format
@@ -7080,7 +7110,9 @@
    \CTEX at chapter@aftertitle
    \nobreak
 %  \vskip 40\p@
-   \vskip \glueexpr \CTEX at chapter@afterskip \relax
+   \CTEX at setheadingskip \CTEX at chapter@afterskip
+   \ifodd \CTEX at chapter@fixskip \CTEX at fixheadingskip \fi
+   \vskip \CTEX at headingskip
   }}
 %    \end{macrocode}
 % \end{macro}
@@ -7089,11 +7121,9 @@
 %    \begin{macrocode}
 \def\@makeschapterhead#1{%
 % \vspace*{50\p@}%
-  \@tempskipa = \glueexpr \CTEX at chapter@beforeskip \relax
-  \ifodd \CTEX at chapter@fixbeforeskip
-    \CTEX at fixbeforeskip
-  \fi
-  \vspace*{\@tempskipa}%
+  \CTEX at setheadingskip \CTEX at chapter@beforeskip
+  \ifodd \CTEX at chapter@fixskip \CTEX at fixtopskip \fi
+  \vspace*{\CTEX at headingskip}%
 % {\normalfont \parindent \z@ \raggedright
   {\normalfont \parindent \dimexpr \CTEX at chapter@indent \relax
    \CTEX at chapter@format
@@ -7103,7 +7133,9 @@
    \CTEX at chapter@aftertitle
    \nobreak
 %  \vskip 40\p@
-   \vskip \glueexpr \CTEX at chapter@afterskip \relax
+   \CTEX at setheadingskip \CTEX at chapter@afterskip
+   \ifodd \CTEX at chapter@fixskip \CTEX at fixheadingskip \fi
+   \vskip \CTEX at headingskip
   }}
 %    \end{macrocode}
 % \end{macro}
@@ -7134,7 +7166,10 @@
     \everypar{}%
   \else
 %   \addpenalty\@secpenalty\addvspace\@tempskipa
-    \addpenalty\@secpenalty\addvspace{\glueexpr #4\relax}%
+    \addpenalty\@secpenalty
+    \CTEX at setheadingskip{#4}%
+    \ifodd \CTEX at fixskip \CTEX at fixheadingskip \fi
+    \addvspace \CTEX at headingskip
   \fi
   \@ifstar
     {\@ssect{#3}{#4}{#5}{#6}}%
@@ -7236,7 +7271,9 @@
   \unless \ifodd \CTEX at runin
     \par \nobreak
 %   \vskip \@tempskipa
-    \vskip\glueexpr #1\relax
+    \CTEX at setheadingskip{#1}%
+    \ifodd \CTEX at fixskip \CTEX at fixheadingskip \fi
+    \vskip \CTEX at headingskip
     \@afterheading
   \else
     \@nobreakfalse
@@ -7272,11 +7309,13 @@
     \cs_set_eq:Nc \CTEX at titleformat@n { CTEX@#1 at titleformat }
     \cs_set_eq:Nc \CTEX at aftertitle { CTEX@#1 at aftertitle }
     \cs_set_eq:Nc \CTEX at afterindent { CTEX@#1 at afterindent }
+    \cs_set_eq:Nc \CTEX at fixskip { CTEX@#1 at fixskip }
     \cs_set_eq:Nc \CTEX at runin { CTEX@#1 at runin }
   }
 \cs_new_eq:NN \CTEX at titleformat@n \use:n
 \cs_new_eq:NN \CTEX at aftertitle \prg_do_nothing:
 \cs_new_eq:NN \CTEX at afterindent \c_true_bool
+\cs_new_eq:NN \CTEX at fixskip \c_false_bool
 \cs_new_eq:NN \CTEX at runin \c_false_bool
 %    \end{macrocode}
 % \end{macro}
@@ -9467,7 +9506,7 @@
 %    \begin{macrocode}
 %<*windows>
 \ProvidesFile{zhwindowsfonts.tex}%
-  [2016/05/16 v2.4.2 Windows font map loader for pdfTeX and DVIPDFMx (CTEX)]
+  [2016/08/27 v2.4.3 Windows font map loader for pdfTeX and DVIPDFMx (CTEX)]
 
 \ifzhmappdf
   \pdfmapline{=gbk at UGBK@     <simsun.ttc}
@@ -9539,7 +9578,7 @@
 %    \begin{macrocode}
 %<*adobe>
 \ProvidesFile{zhadobefonts.tex}%
-  [2016/05/16 v2.4.2 Adobe font map loader for DVIPDFMx (CTEX)]
+  [2016/08/27 v2.4.3 Adobe font map loader for DVIPDFMx (CTEX)]
 
 \ifzhmappdf
 %% pdfTeX does not support OTF fonts
@@ -9575,7 +9614,7 @@
 %    \begin{macrocode}
 %<*fandol>
 \ProvidesFile{zhfandolfonts.tex}%
-  [2016/05/16 v2.4.2 Fandol font map loader for DVIPDFMx (CTEX)]
+  [2016/08/27 v2.4.3 Fandol font map loader for DVIPDFMx (CTEX)]
 
 \ifzhmappdf
 %% pdfTeX does not support OTF fonts
@@ -9611,7 +9650,7 @@
 %    \begin{macrocode}
 %<*founder>
 \ProvidesFile{zhfounderfonts.tex}%
-  [2016/05/16 v2.4.2 Founder font map loader for pdfTeX and DVIPDFMx (CTEX)]
+  [2016/08/27 v2.4.3 Founder font map loader for pdfTeX and DVIPDFMx (CTEX)]
 
 \ifzhmappdf
   \pdfmapline{=gbk at UGBK@     <FZSSK.TTF}
@@ -9683,7 +9722,7 @@
 %    \begin{macrocode}
 %<*ubuntu>
 \ProvidesFile{zhubuntufonts.tex}%
-  [2016/05/16 v2.4.2 Ubuntu font map loader for pdfTeX and DVIPDFMx (CTEX)]
+  [2016/08/27 v2.4.3 Ubuntu font map loader for pdfTeX and DVIPDFMx (CTEX)]
 
 \ifzhmappdf
   \pdfmapline{=gbk at UGBK@     <uming.ttc}
@@ -10478,7 +10517,15 @@
 %
 %    \begin{macrocode}
 %<*ctxdoc>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<@@=ctxdoc>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
 \ExplSyntaxOff
+\let\pdfmdfivesum\mdfivesum
 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{l3doc}}
 \PassOptionsToClass{a4paper,full}{l3doc}
 \ProcessOptions
@@ -10620,8 +10667,6 @@
 \appto\MacroFont{\hyphenchar\font\m at ne\ctexdocverbaddon}
 \preto\AltMacroFont{\linespread{1}}
 \appto\AltMacroFont{\hyphenchar\font\m at ne\ctexdocverbaddon}
-\def\Module#1{\mbox{%
-  \color{purple}\footnotesize\normalfont\sffamily\textlangle#1\textrangle}}
 \newcommand*\exptarget{\Hy at raisedlink{\hypertarget{expstar}{}}}
 \newcommand*\rexptarget{\Hy at raisedlink{\hypertarget{rexpstar}{}}}
 \newcommand*\expstar{\hyperlink{expstar}{$\star$}}
@@ -10632,7 +10677,7 @@
 \cs_new_nopar:Npn \zihaopt #1
   {
     \exp_last_unbraced:Nf \tl_head:w
-      { \prop_item:Nn \c_@@_font_size_prop {#1} } { } \q_stop
+      { \prop_item:Nn \c__ctex_font_size_prop {#1} } { } \q_stop
   }
 %% 抑制首段的 \parskip
 \ctex_patch_cmd_once:NnnnTF \__codedoc_function_descr_start:w
@@ -10655,62 +10700,41 @@
       { \skip_zero:N \medskipamount }
       { \skip_add:Nn \medskipamount { \parskip } }
   }
-%% 用 \vtop 让函数名字和语法盒子首行对齐
-\ctex_patch_cmd_once:NnnnTF \__codedoc_syntax:w
+%% 左侧边注的函数列表采用单倍行距
+\ctex_preto_cmd:NnnTF \__codedoc_typeset_functions:
   { }
-  { { minipage } { \l__codedoc_syntax_dim } }
-  { { minipage } [t] { \l__codedoc_syntax_dim } }
+  { \MacroFont }
   { \iow_term:n { *** ~ SUCCESS ~ *** } }
   { \iow_term:n { *** ~ FAIL ~ *** } }
-%% 左侧边注的函数列表采用单倍行距
-\ctex_preto_cmd:NnnTF \__codedoc_typeset_names:
+\ctex_patch_cmd_once:NnnnTF \__codedoc_macro_init:
   { }
-  { \linespread { 1 } }
+  { \hbox:n }
+  { \MacroFont \hbox:n }
   { \iow_term:n { *** ~ SUCCESS ~ *** } }
   { \iow_term:n { *** ~ FAIL ~ *** } }
-\ctex_patch_cmd_once:NnnnTF \__codedoc_macro_typeset_one:n
+\ctex_patch_cmd_once:NnnnTF \__codedoc_macro_typeset_one:nN
   { }
   { \vbox_unpack_clear:N }
-  { \linespread { 1 } \selectfont \vbox_unpack_clear:N }
+  { \MacroFont \vbox_unpack_clear:N }
   { \iow_term:n { *** ~ SUCCESS ~ *** } }
   { \iow_term:n { *** ~ FAIL ~ *** } }
-%% 不重复使用 \HD at target,避免索引出现重复页码
-\cs_set_protected:Npn \__codedoc_special_index_aux:nnnnn #1#2#3#4#5
-  {
-    \__codedoc_special_index_set:Nn \l__codedoc_index_escaped_macro_tl {#2}
-    \str_if_eq:onTF { \@currenvir } { macrocode }
-      { \codeline at wrindex }
-      {
-        \HD at target
-        \index
-      }
-      {
-        \tl_if_empty:nF { #3 #4 }
-          { #3 \actualchar #4 \levelchar }
-        #1
-        \actualchar
-        {
-          \token_to_str:N \verbatim at font \c_space_tl
-          \l__codedoc_index_escaped_macro_tl
-        }
-        \encapchar
-        hdclindex{\the\c at HD@hypercount}{#5}
-      }
-  }
-\DeclareDocumentCommand \cs { O{} m }
-  { \__codedoc_cmd_aux:no {#1} { \c__codedoc_backslash_tl #2 } }
-\DeclareDocumentCommand \tn { O{} m }
-  {
-    \__codedoc_cmd_aux:no
-      { index = TeX , replace = false , #1 }
-      { \c__codedoc_backslash_tl #2 }
-  }
-\DeclareDocumentCommand \meta { +m }
-  { \__codedoc_meta_aux:n {#1} }
-\DeclareExpandableDocumentCommand \bookmarkcstn { O{} m }
-  { \textbackslash \tl_to_str:n {#2} }
-\cs_new:Npn \bookmarkmeta #1 { < \tl_to_str:n {#1} > }
-\cs_generate_variant:Nn \__codedoc_cmd_aux:nn { no }
+\ctex_patch_cmd_once:NnnnTF \__codedoc_macro_dump:
+  { }
+  { \hbox_unpack_clear:N }
+  { \MacroFont \hbox_unpack_clear:N }
+  { \iow_term:n { *** ~ SUCCESS ~ *** } }
+  { \iow_term:n { *** ~ FAIL ~ *** } }
+\ctex_patch_cmd_once:NnnnTF \__codedoc_macro_end:
+  { }
+  { \endtrivlist }
+  { \@noparlisttrue \endtrivlist }
+  { \iow_term:n { *** ~ SUCCESS ~ *** } }
+  { \iow_term:n { *** ~ FAIL ~ *** } }
+\ctex_appto_cmd:NnnTF \__codedoc_macro_end_style:n
+  { }
+  { \@endparenv }
+  { \iow_term:n { *** ~ SUCCESS ~ *** } }
+  { \iow_term:n { *** ~ FAIL ~ *** } }
 \AtBeginEnvironment { syntax }
   {
     \char_set_catcode_active:N \|
@@ -10720,7 +10744,7 @@
   }
 %% 不对目录中出现的 \cs 和 \tn 等编索引
 \DeclareDocumentCommand \StopSpecialIndexModule { }
-  { \cs_set_eq:NN \__codedoc_special_index_module:nnnn \use_none:nnnn }
+  { \cs_set_eq:NN \__codedoc_special_index_module:nnnnN \use_none:nnnnn }
 \tl_map_inline:nn { \actualchar \encapchar \levelchar }
   { \exp_args:Nx \DoNotIndex { \bslash \tl_to_str:N #1 } }
 \DeclareDocumentCommand \package { o m }
@@ -10735,22 +10759,410 @@
 \DeclareDocumentCommand \GetFileId { m }
   {
     \GetFileInfo {#1}
-    \ior_open:NnTF \g_@@_doc_ior { \c_sys_jobname_str .id }
+    \ior_open:NnTF \g_@@_id_ior { \c_sys_jobname_str .id }
       {
-        \ior_get:NN \g_@@_doc_ior \l_@@_tmp_tl
-        \ior_close:N \g_@@_doc_ior
+        \ior_get:NN \g_@@_id_ior \l_@@_tmp_tl
+        \ior_close:N \g_@@_id_ior
         \exp_after:wN \GetIdInfo \l_@@_tmp_tl
       }
       { \GetIdInfo $Id$ }
       { \fileinfo }
   }
-\ior_new:N \g_@@_doc_ior
+\ior_new:N \g_@@_id_ior
+\ctex_patch_cmd:Nnn \changes@
+  { \space \actualchar }
+  { \actualchar }
+\cs_new_eq:NN \@@_ltx_changes:nnn \changes@
+\cs_set_protected:Npn \changes@ #1#2
+  {
+    \@@_save_version_date:nn {#1} {#2}
+    \tl_if_empty:nTF {#1}
+      { \@@_ltx_changes:nnn }
+      { \@@_version_zfill:wnnn #1 \q_stop }
+      {#1} {#2}
+  }
+\cs_new_protected:Npn \@@_version_zfill:wnnn #1#2 \q_stop
+  {
+    \str_if_eq:nnTF {#1} { v }
+      { \@@_version_zfill:nnnn {#2} }
+      { \@@_ltx_changes:nnn }
+  }
+\cs_new_protected:Npn \@@_version_zfill:nnnn #1#2
+  {
+    \tl_clear:N \l_@@_tmp_tl
+    \seq_set_split:Nnn \l_@@_tmp_seq { . } {#1}
+    \seq_map_function:NN \l_@@_tmp_seq \@@_version_zfill:n
+    \@@_ltx_changes:nnn { \l_@@_tmp_tl \actualchar #2 }
+  }
+\tl_new:N \l_@@_tmp_tl
+\seq_new:N \l_@@_tmp_seq
+\cs_new_protected:Npn \@@_version_zfill:n #1
+  {
+    \tl_put_right:Nx \l_@@_tmp_tl
+      {
+        \prg_replicate:nn
+          { \int_max:nn { 0 } { 10 - \tl_count:n {#1} } } { 0 }
+        \exp_not:n {#1}
+      }
+  }
+\cs_new_protected:Npn \@@_save_version_date:nn #1#2
+  {
+    \prop_get:NnNTF \g_@@_version_date_prop {#1} \l_@@_tmp_tl
+      { \exp_after:wN \@@_save_version_date:nnnn \l_@@_tmp_tl {#2} {#1} }
+      { \@@_save_version_date:nnn {#1} {#2} {#2} }
+  }
+\cs_new_protected:Npn \@@_save_version_date:nnnn #1#2#3#4
+  {
+    \@@_if_date_later:nnTF {#1} {#3}
+      { \@@_save_version_date:nnn {#4} {#3} {#2} }
+      {
+        \@@_if_date_later:nnT {#3} {#2}
+          { \@@_save_version_date:nnn {#4} {#1} {#3} }
+      }
+  }
+\prg_new_conditional:Npnn \@@_if_date_later:nn #1#2 { TF , T }
+  {
+    \if_int_compare:w \@@_parse_date:w #1 / / / 0 \q_stop >
+                      \@@_parse_date:w #2 / / / 0 \q_stop \exp_stop_f:
+      \prg_return_true: \else: \prg_return_false: \fi:
+  }
+\cs_new:Npn \@@_parse_date:w #1/#2/#3/ #4 \q_stop
+  { #1#2#3 }
+\cs_new_protected:Npn \@@_save_version_date:nnn #1#2#3
+  { \prop_gput:Nnn \g_@@_version_date_prop {#1} { {#2} {#3} } }
+\cs_new_protected:Npn \CTEX at versionitem #1 \efill
+  {
+    \@idxitem
+    \prop_get:NnNTF \g_@@_version_date_prop {#1} \l_@@_tmp_tl
+      { \exp_after:wN \@@_version_item:nnn \l_@@_tmp_tl {#1} }
+      { \BOOM }
+  }
+\cs_new_protected:Npn \@@_version_item:nnn #1#2#3
+  {
+    \noindent
+    \Hy at raisedlink { \belowpdfbookmark {#3} { HD.#3 } }
+    \textbf {#3} \hfill
+    \hbox:n
+      {
+        \footnotesize
+        \str_if_eq:nnTF {#1} {#2}
+          { ( #1 ) }
+          { ( #1 ~ -- ~ #2 ) }
+      }
+    \par \nopagebreak
+  }
+\prop_new:N \g_@@_version_date_prop
+\ctex_patch_cmd:Nnn \HDorg at theglossary
+  { \let \item \@idxitem }
+  { \let \item \CTEX at versionitem }
+\ctex_patch_cmd:Nnn \l at section    { 2.5em } { 1.5em }
+\ctex_patch_cmd:Nnn \l at subsection { 2.5em } { 1.5em }
+\ctex_patch_cmd:Nnn \@wrglossary
+  { hdpindex }
+  {
+    \ifnum \c at HD@hypercount = \z@
+      hdpindex
+    \else
+      hdclindex { \the \c at HD@hypercount }
+    \fi
+  }
+%% 重定义 macrocode 环境的实现,逐行处理
+\cs_set_protected_nopar:Npn \xmacro at code
+  { \@@_marco_code:w }
+\cs_set_protected_nopar:Npn \sxmacro at code
+  {
+    \fontspec_print_visible_spaces:
+    \xmacro at code
+  }
+\cs_new_protected_nopar:Npn \@@_marco_code:w
+  {
+    \ifcodeline at index
+      \@@_marco_every_par:n { \@@_code_line_no: }
+    \else:
+      \@@_marco_every_par:n { }
+    \fi:
+    \exp_args:Nx \@@_make_finish_tag:n { \@currenvir }
+    \@@_verbatim_start:w
+  }
+\cs_new_protected:Npn \@@_marco_every_par:n #1
+  {
+    \everypar
+      {
+        \everypar {#1}
+        \if at inlabel
+          \global \@inlabelfalse
+          \llap { \box \@labels \hskip \leftskip }
+        \fi
+        #1
+      }
+  }
+\ctex_patch_cmd:Nnn \macro at code
+  { \if at inlabel \leavevmode \fi }
+  { }
+\group_begin:
+  \int_set_eq:NN \tex_endlinechar:D \c_minus_one
+  \use:n
+    {
+      \char_set_catcode_active:n { 32 }
+      \tl_const:Nn \c_@@_active_space_tl
+    }
+    { }
+\group_end:
+\group_begin:
+  \char_set_catcode_active:n { 13 }
+  \cs_new_protected:Npx \@@_make_finish_tag:n #1
+    {
+      \tl_set:Nn \exp_not:N \l_@@_verbatim_finish_tl
+        {
+          \c_percent_str
+          \prg_replicate:nn { 4 }
+            { \exp_not:o { \c_@@_active_space_tl } }
+          \exp_not:o { \active at escape@char } end
+          \c_left_brace_str #1 \c_right_brace_str
+          \exp_not:N ^^M
+        }
+    }
+  \cs_new_protected:Npn \@@_verbatim_start:w #1
+    {
+      \str_if_eq:nnTF {#1} { ^^M }
+        { \@@_verbatim_read_line:w }
+        { \@@_verbatim_read_line:w #1 }
+    }
+  \cs_new_protected:Npn \@@_verbatim_read_line:w #1 ^^M
+    {
+      \tl_set:Nn \l_@@_verbatim_line_tl { #1 ^^M }
+      \tl_if_eq:NNTF \l_@@_verbatim_line_tl \l_@@_verbatim_finish_tl
+        { \exp_args:Nx \end { \@currenvir } }
+        {
+          \@@_verbatim_process_line:
+          \@@_verbatim_read_line:w
+        }
+    }
+  \tl_const:Nn \c_@@_active_cr_tl { ^^M }
+\group_end:
+\tl_new:N \l_@@_verbatim_line_tl
+\tl_new:N \l_@@_verbatim_finish_tl
+\tl_new:N \g_@@_verbatim_verb_stop_tl
+\cs_new_protected_nopar:Npn \@@_process_normal_line:
+  {
+    \str_if_eq_x:nnTF
+      { \str_head:N \l_@@_verbatim_line_tl } { \c_percent_str }
+      { \@@_check_angle:x { \tl_tail:N \l_@@_verbatim_line_tl } }
+      { \@@_output_line: }
+  }
+\cs_new_protected_nopar:Npn \@@_process_verb_line:
+  {
+    \tl_if_eq:NNTF \l_@@_verbatim_line_tl \g_@@_verbatim_verb_stop_tl
+      {
+        \tl_gclear:N \g_@@_verbatim_verb_stop_tl
+        \cs_gset_eq:NN \@@_verbatim_process_line: \@@_process_normal_line:
+        \@@_output_module:nn
+          { slash at guard }
+          { \@@_module_pop:n { \l_@@_verbatim_line_tl } }
+      }
+      { \tl_use:N \l_@@_verbatim_line_tl }
+  }
+\cs_new_eq:NN \@@_verbatim_process_line: \@@_process_normal_line:
+\DeclareDocumentCommand \CheckModules { }
+  { \cs_set_eq:NN \@@_verbatim_process_line: \@@_process_normal_line: }
+\DeclareDocumentCommand \DontCheckModules { }
+  { \cs_set_eq:NN \@@_verbatim_process_line: \@@_output_line: }
+\cs_new_protected:Npn \@@_check_angle:n #1
+  {
+     \str_if_eq_x:nnTF { \str_head:n {#1} } { < }
+      { \@@_check_module:x { \tl_tail:n {#1} } }
+      { \@@_output_percent_line: }
+  }
+\cs_generate_variant:Nn \@@_check_angle:n { x }
+\cs_new_protected:Npn \@@_check_module:n #1
+  {
+    \exp_args:Nx \str_case:nnF { \str_head:n {#1} }
+      {
+        { * } { \@@_module_star:w }
+        { / } { \@@_module_slash:w }
+        { @ } { \@@_module_at:w }
+        { < } { \@@_module_verb:w }
+      }
+      { \@@_module_pm:w }
+    #1 \q_stop
+  }
+\cs_generate_variant:Nn \@@_check_module:n { x }
+\group_begin:
+  \char_set_catcode_active:N \>
+  \cs_new_protected:Npn \@@_module_star:w #1 > #2 \q_stop
+    {
+      \@@_output_module:nn
+        { star at guard }
+        { \@@_module_push:n { \@@_module_angle:n {#1} } }
+      \int_compare:nNnF \guard at level < \c at StandardModuleDepth
+        {
+          \cs_gset_eq:NN \macro at font \AltMacroFont
+          \macro at font
+        }
+      \int_gincr:N \guard at level
+      \@@_output_line:n {#2}
+    }
+  \cs_new_protected:Npn \@@_module_slash:w #1 > #2 \q_stop
+    {
+      \@@_output_module:nn
+        { slash at guard }
+        { \@@_module_pop:n { \@@_module_angle:n {#1} } }
+      \int_gdecr:N \guard at level
+      \int_compare:nNnF \guard at level < \c at StandardModuleDepth
+        {
+          \cs_gset_eq:NN \macro at font \MacroFont
+          \macro at font
+        }
+      \@@_output_line:n {#2}
+    }
+  \cs_new_protected:Npn \@@_module_at:w @ @ = #1 > #2 \q_stop
+    {
+      \@@_output_module:nn
+        { at at guard }
+        { \@@_module_angle:n { @ @ = #1 } }
+      \tl_gset:Nn \g__codedoc_module_name_tl {#1}
+      \@@_output_line:n {#2}
+    }
+  \cs_new_protected:Npn \@@_module_pm:w #1 > #2 \q_stop
+    {
+      \@@_output_module:nn
+        { pm at guard }
+        { \@@_module_angle:n {#1} }
+      \group_begin:
+        \int_compare:nNnF \guard at level < \c at StandardModuleDepth
+          { \AltMacroFont }
+        \@@_output_line:n {#2}
+      \group_end:
+    }
+  \cs_new_protected:Npn \@@_module_verb:w #1 \q_stop
+    {
+      \cs_gset_eq:NN \@@_verbatim_process_line: \@@_process_verb_line:
+      \tl_gset:Nx \g_@@_verbatim_verb_stop_tl
+        { \c_percent_str \tl_tail:n {#1} }
+      \@@_output_module:nn
+        { star at guard }
+        { \@@_module_push:n { \l_@@_verbatim_line_tl } }
+    }
+\group_end:
+\cs_new_protected_nopar:Npn \@@_output_line:
+  {
+    \tex_noindent:D
+    \@@_replace_at_at:N \l_@@_verbatim_line_tl
+    \tl_use:N \l_@@_verbatim_line_tl
+  }
+\cs_new_protected:Npn \@@_replace_at_at:N #1
+  {
+    \tl_if_empty:NF \g__codedoc_module_name_tl
+      {
+        \exp_args:NNo \@@_replace_at_at_aux:Nn
+          #1 \g__codedoc_module_name_tl
+      }
+  }
+\cs_new_protected:Npn \@@_replace_at_at_aux:Nn #1#2
+  {
+    \tl_replace_all:Nnn #1 { _ @ @ } { _ _ #2 }
+    \tl_replace_all:Nnn #1 {   @ @ } { _ _ #2 }
+  }
+\cs_new_protected:Npn \@@_output_line:n #1
+  {
+    \tl_set:Nn \l_@@_verbatim_line_tl {#1}
+    \tl_if_eq:NNTF \l_@@_verbatim_line_tl \c_@@_active_cr_tl
+      { \tl_use:N \l_@@_verbatim_line_tl }
+      {
+        \str_if_eq_x:nnTF
+          { \str_head:N \l_@@_verbatim_line_tl }
+          { \c_percent_str }
+          { \@@_output_percent_line: }
+          { \@@_output_line: }
+      }
+  }
+\cs_new_protected:Npn \@@_output_percent_line:
+  {
+    \tex_noindent:D
+    \group_begin:
+      \color { code at gray }
+      \str_if_eq_x:nnTF { \f at shape } { \updefault }
+        { \slshape }
+        { \upshape }
+      \@@_output_line:
+    \group_end:
+  }
+\cs_new_protected_nopar:Npn \@@_module_push:n
+  { \exp_args:Nx \@@_module_push_aux:nn { \int_use:N \c at HD@hypercount } }
+\cs_new_protected:Npn \@@_module_push_aux:nn #1
+  {
+    \seq_gpush:Nn \g_@@_module_dest_seq {#1}
+    \HD at savedest@add {#1}
+    \cs_if_exist:cTF { r at HD. #1 }
+      {
+        \hypersetup { hidelinks }
+        \hyperref [ HD. #1 ]
+      }
+      { \use:n }
+  }
+\cs_new_protected_nopar:Npn \@@_module_pop:n
+  {
+    \seq_gpop:NNTF \g_@@_module_dest_seq \l_@@_tmp_tl
+      {
+        \tl_set:Nx \@currentlabel { \int_use:N \c at HD@hypercount }
+        \HD at savedest@add { \@currentlabel }
+        \Hy at MakeCurrentHref { HD. \@currentlabel }
+        \label { HD. \l_@@_tmp_tl }
+        \hypersetup { hidelinks }
+        \hdclindex { \l_@@_tmp_tl } { }
+      }
+      { \BOOM \use:n }
+  }
+\seq_new:N \g_@@_module_dest_seq
+\cs_new_protected:Npn \@@_output_module:nn #1#2
+  {
+    \tex_noindent:D
+    \group_begin:
+      \color {#1} \footnotesize \normalfont \sffamily #2
+    \group_end:
+  }
+\definecolor { star at guard }  { rgb } { 0    , 0   , 0.55 }
+\definecolor { slash at guard } { rgb } { 0.75 , 0   , 0.25 }
+\definecolor { pm at guard }    { rgb } { 0.5  , 0.5 , 0 }
+\definecolor { at at guard }    { rgb } { 0.5  , 0   , 0.5 }
+\definecolor { code at gray }  { gray } { 0.5 }
+\cs_new_protected:Npn \@@_module_angle:n #1
+  { \textlangle #1 \textrangle }
+\cs_new_protected_nopar:Npn \@@_code_line_no:
+  {
+    \int_gincr:N \c at CodelineNo
+    \hbox_overlap_left:n
+      {
+        \hbox_to_wd:nn
+          { \MacroIndent }
+          {
+            \HD at target
+            \tex_hss:D
+            \@@_code_line_no_style:
+            \theCodelineNo \enspace
+          }
+        \tex_kern:D \@totalleftmargin
+      }
+  }
+\tl_set:Nn \theCodelineNo
+  { \arabic { CodelineNo } }
+\cs_new_protected_nopar:Npn \@@_code_line_no_style:
+  { \color { code at gray } \normalfont \sffamily \tiny }
+\cs_set_protected:Npn \HD at SetMacroIndent #1
+  {
+    \group_begin:
+      \settowidth \MacroIndent
+        {
+          \@@_code_line_no_style:
+          \prg_replicate:nn { \tl_count:n {#1} } { 0 }
+          \enspace
+        }
+      \dim_gset_eq:NN \MacroIndent \MacroIndent
+    \group_end:
+  }
 \ExplSyntaxOff
 \AtBeginDocument{\addtocontents{toc}{\StopSpecialIndexModule}}
 \pdfstringdefDisableCommands{%
-  \let\cs\bookmarkcstn
-  \let\tn\bookmarkcstn
-  \let\meta\bookmarkmeta
   \let\path\meta
   \let\opt\@firstofone}
 \preto\@thehead{\cslet{MakeUppercase\space}{\@iden}}
@@ -10788,19 +11200,12 @@
 \def\ctexkit{\href{https://github.com/CTeX-org/ctex-kit/}{\texttt{ctex-kit}}}
 \def\ctexkitrev#1{%
   \href{https://github.com/CTeX-org/ctex-kit/commit/#1}{\texttt{ctex-kit} rev. #1}}
-\patchcmd\theCodelineNo{\sffamily\tiny}{\normalfont\sffamily\tiny}{}{}
 \appto\GlossaryParms{%
+  \raggedcolumns
+  \let\Hy at writebookmark\HDorg at writebookmark
   \def\@idxitem{\par\hangindent 2em }%
   \def\subitem{\@idxitem\hspace*{1em}}%
   \def\subsubitem{\@idxitem\hspace*{2em}}}
-\patchcmd\l at section{2.5em}{1.5em}{}{}
-\patchcmd\l at subsection{2.5em}{1.5em}{}{}
-\patchcmd\changes@{\space}{\lbrack}{}{}
-\patchcmd\@wrglossary{hdpindex}{%
-  \ifnum\c at HD@hypercount=\z@
-    hdpindex%
-  \else
-    hdclindex{\the\c at HD@hypercount}\fi}{}{}
 \def\glossaryname{版本历史}
 \GlossaryPrologue{\section{\glossaryname}}
 \IndexPrologue{%
@@ -10816,6 +11221,9 @@
 \EnableCrossrefs
 \CodelineIndex
 \RecordChanges
+%    \end{macrocode}
+%
+%    \begin{macrocode}
 %</ctxdoc>
 %    \end{macrocode}
 %
@@ -10847,10 +11255,10 @@
   \ifeof\inputcheck\else
     \read \inputcheck to \inLine
     \closein\inputcheck
+    \ifx\inLine\empty\else
+      \let\ctxID\inLine
+    \fi
   \fi
-  \ifx\inLine\empty\else
-    \let\ctxID\inLine
-  \fi
   \maybeMsg{^^J\ctxID^^J}%
   \def\inLine{\ctxCMD\ctxID}%
 }

Modified: trunk/Master/texmf-dist/tex/generic/ctex/ctxdocstrip.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/ctex/ctxdocstrip.tex	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/generic/ctex/ctxdocstrip.tex	2016-08-27 22:15:39 UTC (rev 41937)
@@ -50,10 +50,10 @@
   \ifeof\inputcheck\else
     \read \inputcheck to \inLine
     \closein\inputcheck
+    \ifx\inLine\empty\else
+      \let\ctxID\inLine
+    \fi
   \fi
-  \ifx\inLine\empty\else
-    \let\ctxID\inLine
-  \fi
   \maybeMsg{^^J\ctxID^^J}%
   \def\inLine{\ctxCMD\ctxID}%
 }

Modified: trunk/Master/texmf-dist/tex/generic/ctex/zhadobefonts.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/ctex/zhadobefonts.tex	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/generic/ctex/zhadobefonts.tex	2016-08-27 22:15:39 UTC (rev 41937)
@@ -76,7 +76,7 @@
 \fi
 \endgroup
 \ProvidesFile{zhadobefonts.tex}%
-  [2016/05/16 v2.4.2 Adobe font map loader for DVIPDFMx (CTEX)]
+  [2016/08/27 v2.4.3 Adobe font map loader for DVIPDFMx (CTEX)]
 
 \ifzhmappdf
 %% pdfTeX does not support OTF fonts

Modified: trunk/Master/texmf-dist/tex/generic/ctex/zhfandolfonts.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/ctex/zhfandolfonts.tex	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/generic/ctex/zhfandolfonts.tex	2016-08-27 22:15:39 UTC (rev 41937)
@@ -76,7 +76,7 @@
 \fi
 \endgroup
 \ProvidesFile{zhfandolfonts.tex}%
-  [2016/05/16 v2.4.2 Fandol font map loader for DVIPDFMx (CTEX)]
+  [2016/08/27 v2.4.3 Fandol font map loader for DVIPDFMx (CTEX)]
 
 \ifzhmappdf
 %% pdfTeX does not support OTF fonts

Modified: trunk/Master/texmf-dist/tex/generic/ctex/zhfounderfonts.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/ctex/zhfounderfonts.tex	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/generic/ctex/zhfounderfonts.tex	2016-08-27 22:15:39 UTC (rev 41937)
@@ -76,7 +76,7 @@
 \fi
 \endgroup
 \ProvidesFile{zhfounderfonts.tex}%
-  [2016/05/16 v2.4.2 Founder font map loader for pdfTeX and DVIPDFMx (CTEX)]
+  [2016/08/27 v2.4.3 Founder font map loader for pdfTeX and DVIPDFMx (CTEX)]
 
 \ifzhmappdf
   \pdfmapline{=gbk at UGBK@     <FZSSK.TTF}

Modified: trunk/Master/texmf-dist/tex/generic/ctex/zhubuntufonts.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/ctex/zhubuntufonts.tex	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/generic/ctex/zhubuntufonts.tex	2016-08-27 22:15:39 UTC (rev 41937)
@@ -76,7 +76,7 @@
 \fi
 \endgroup
 \ProvidesFile{zhubuntufonts.tex}%
-  [2016/05/16 v2.4.2 Ubuntu font map loader for pdfTeX and DVIPDFMx (CTEX)]
+  [2016/08/27 v2.4.3 Ubuntu font map loader for pdfTeX and DVIPDFMx (CTEX)]
 
 \ifzhmappdf
   \pdfmapline{=gbk at UGBK@     <uming.ttc}

Modified: trunk/Master/texmf-dist/tex/generic/ctex/zhwindowsfonts.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/ctex/zhwindowsfonts.tex	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/generic/ctex/zhwindowsfonts.tex	2016-08-27 22:15:39 UTC (rev 41937)
@@ -76,7 +76,7 @@
 \fi
 \endgroup
 \ProvidesFile{zhwindowsfonts.tex}%
-  [2016/05/16 v2.4.2 Windows font map loader for pdfTeX and DVIPDFMx (CTEX)]
+  [2016/08/27 v2.4.3 Windows font map loader for pdfTeX and DVIPDFMx (CTEX)]
 
 \ifzhmappdf
   \pdfmapline{=gbk at UGBK@     <simsun.ttc}

Modified: trunk/Master/texmf-dist/tex/latex/ctex/config/ctex-name-gbk.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/config/ctex-name-gbk.cfg	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/config/ctex-name-gbk.cfg	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Caption with encoding GBK (CTEX)}
 \ProvidesExplFile{ctex-name-gbk.cfg}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \keys_set_known:nn { ctex }
   {
     contentsname   = Ŀ¼ ,

Modified: trunk/Master/texmf-dist/tex/latex/ctex/config/ctex-name-utf8.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/config/ctex-name-utf8.cfg	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/config/ctex-name-utf8.cfg	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Caption with encoding UTF8 (CTEX)}
 \ProvidesExplFile{ctex-name-utf8.cfg}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \keys_set_known:nn { ctex }
   {
     contentsname   = 目录 ,

Modified: trunk/Master/texmf-dist/tex/latex/ctex/config/ctex.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/config/ctex.cfg	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/config/ctex.cfg	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Configuration file (CTEX)}
 \ProvidesExplFile{\ExplFileName.cfg}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 %%
 %% 
 %%

Modified: trunk/Master/texmf-dist/tex/latex/ctex/config/ctexopts.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/config/ctexopts.cfg	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/config/ctexopts.cfg	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Option configuration file (CTEX)}
 \ProvidesExplFile{ctexopts.cfg}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 %%
 %% \keys_set:nn { ctex / option } { fontset = windowsnew }
 %% 

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctex-article.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctex-article.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctex-article.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Heading modification for article (CTEX)}
 \ProvidesExplFile{ctex-article.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \seq_new:N \c__ctex_section_headings_seq
 \seq_gset_from_clist:Nn \c__ctex_section_headings_seq
   { section , subsection , subsubsection , paragraph , subparagraph }
@@ -85,6 +85,7 @@
         #1 / indent        .tl_set:N = \exp_not:c { CTEX@#1 at indent } ,
         #1 / numbering   .bool_set:N = \exp_not:c { CTEX@#1 at numbering } ,
         #1 / afterindent .bool_set:N = \exp_not:c { CTEX@#1 at afterindent } ,
+        #1 / fixskip     .bool_set:N = \exp_not:c { CTEX@#1 at fixskip } ,
         #1 / runin       .bool_set:N = \exp_not:c { CTEX@#1 at runin } ,
         #1 / format+         .code:n =
           { \tl_put_right:Nn \exp_not:c { CTEX@#1 at format } { ####1 } } ,
@@ -132,10 +133,22 @@
 \cs_new_protected_nopar:Npn \CTEX at makeheadinganchor { }
 \ctex_at_end_package:nn { hyperref }
   { \cs_gset_protected_nopar:Npn \CTEX at makeheadinganchor { \phantomsection } }
+\cs_new_protected_nopar:Npn \CTEX at fixheadingskip
+  {
+    \par
+    \dim_set:Nn \tex_prevdepth:D { -1000pt }
+    \skip_sub:Nn \l__ctex_heading_skip { \tex_parskip:D }
+  }
+\skip_new:N \l__ctex_heading_skip
+\cs_new_protected_nopar:Npn \CTEX at setheadingskip
+  { \skip_set:Nn \l__ctex_heading_skip }
+\cs_new_eq:NN \CTEX at headingskip \l__ctex_heading_skip
 \renewcommand\part{%
    \if at noskipsec \leavevmode \fi
    \par
-   \addvspace{\glueexpr\CTEX at part@beforeskip\relax}%
+   \CTEX at setheadingskip \CTEX at part@beforeskip
+   \ifodd \CTEX at part@fixskip \CTEX at fixheadingskip \fi
+   \addvspace \CTEX at headingskip
    \ifodd \CTEX at part@afterindent
      \@afterindenttrue
    \else
@@ -163,7 +176,9 @@
    \markboth{}{}%
    \CTEX at part@aftertitle}%
   \nobreak
-  \vskip \glueexpr \CTEX at part@afterskip \relax
+  \CTEX at setheadingskip \CTEX at part@afterskip
+  \ifodd \CTEX at part@fixskip \CTEX at fixheadingskip \fi
+  \vskip \CTEX at headingskip
   \@afterheading}
 \def\@spart#1{%
     {\interlinepenalty \@M
@@ -172,7 +187,9 @@
      \CTEX at part@titleformat{#1}%
      \CTEX at part@aftertitle}%
      \nobreak
-     \vskip \glueexpr \CTEX at part@afterskip \relax
+     \CTEX at setheadingskip \CTEX at part@afterskip
+     \ifodd \CTEX at part@fixskip \CTEX at fixheadingskip \fi
+     \vskip \CTEX at headingskip
      \@afterheading}
 \def\@startsection#1#2#3#4#5#6{%
   \if at noskipsec \leavevmode \fi
@@ -186,7 +203,10 @@
   \if at nobreak
     \everypar{}%
   \else
-    \addpenalty\@secpenalty\addvspace{\glueexpr #4\relax}%
+    \addpenalty\@secpenalty
+    \CTEX at setheadingskip{#4}%
+    \ifodd \CTEX at fixskip \CTEX at fixheadingskip \fi
+    \addvspace \CTEX at headingskip
   \fi
   \@ifstar
     {\@ssect{#3}{#4}{#5}{#6}}%
@@ -254,7 +274,9 @@
 \def\@xsect#1{%
   \unless \ifodd \CTEX at runin
     \par \nobreak
-    \vskip\glueexpr #1\relax
+    \CTEX at setheadingskip{#1}%
+    \ifodd \CTEX at fixskip \CTEX at fixheadingskip \fi
+    \vskip \CTEX at headingskip
     \@afterheading
   \else
     \@nobreakfalse
@@ -278,11 +300,13 @@
     \cs_set_eq:Nc \CTEX at titleformat@n { CTEX@#1 at titleformat }
     \cs_set_eq:Nc \CTEX at aftertitle { CTEX@#1 at aftertitle }
     \cs_set_eq:Nc \CTEX at afterindent { CTEX@#1 at afterindent }
+    \cs_set_eq:Nc \CTEX at fixskip { CTEX@#1 at fixskip }
     \cs_set_eq:Nc \CTEX at runin { CTEX@#1 at runin }
   }
 \cs_new_eq:NN \CTEX at titleformat@n \use:n
 \cs_new_eq:NN \CTEX at aftertitle \prg_do_nothing:
 \cs_new_eq:NN \CTEX at afterindent \c_true_bool
+\cs_new_eq:NN \CTEX at fixskip \c_false_bool
 \cs_new_eq:NN \CTEX at runin \c_false_bool
 \int_zero:N \l__ctex_tmp_int
 \seq_map_inline:Nn \c__ctex_section_headings_seq

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctex-beamer.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctex-beamer.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctex-beamer.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Heading modification for beamer (CTEX)}
 \ProvidesExplFile{ctex-beamer.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \seq_new:N \c__ctex_headings_seq
 \seq_gset_from_clist:Nn \c__ctex_headings_seq
   { part , section , subsection }

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctex-book.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctex-book.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctex-book.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Heading modification for book (CTEX)}
 \ProvidesExplFile{ctex-book.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \seq_new:N \c__ctex_section_headings_seq
 \seq_gset_from_clist:Nn \c__ctex_section_headings_seq
   { section , subsection , subsubsection , paragraph , subparagraph }
@@ -86,6 +86,7 @@
         #1 / indent        .tl_set:N = \exp_not:c { CTEX@#1 at indent } ,
         #1 / numbering   .bool_set:N = \exp_not:c { CTEX@#1 at numbering } ,
         #1 / afterindent .bool_set:N = \exp_not:c { CTEX@#1 at afterindent } ,
+        #1 / fixskip     .bool_set:N = \exp_not:c { CTEX@#1 at fixskip } ,
         #1 / runin       .bool_set:N = \exp_not:c { CTEX@#1 at runin } ,
         #1 / format+         .code:n =
           { \tl_put_right:Nn \exp_not:c { CTEX@#1 at format } { ####1 } } ,
@@ -121,10 +122,8 @@
 \group_begin:
 \tl_set:Nn \l__ctex_tmp_tl
   {
-    part    / pagestyle       .tl_set:N = \CTEX at part@pagestyle ,
-    chapter / pagestyle       .tl_set:N = \CTEX at chapter@pagestyle ,
-    part    / fixbeforeskip .bool_set:N = \CTEX at part@fixbeforeskip ,
-    chapter / fixbeforeskip .bool_set:N = \CTEX at chapter@fixbeforeskip ,
+    part    / pagestyle .tl_set:N = \CTEX at part@pagestyle ,
+    chapter / pagestyle .tl_set:N = \CTEX at chapter@pagestyle ,
   }
 \seq_map_inline:Nn \c__ctex_headings_seq
   {
@@ -139,15 +138,22 @@
 \cs_new_protected_nopar:Npn \CTEX at makeheadinganchor { }
 \ctex_at_end_package:nn { hyperref }
   { \cs_gset_protected_nopar:Npn \CTEX at makeheadinganchor { \phantomsection } }
-\cs_new_protected_nopar:Npn \CTEX at fixbeforeskip
+\cs_new_protected_nopar:Npn \CTEX at fixtopskip
   {
+    \CTEX at fixheadingskip
+    \dim_compare:nNnF \tex_pagegoal:D < \c_max_dim
+      { \skip_sub:Nn \l__ctex_heading_skip { \tex_topskip:D } }
+  }
+\cs_new_protected_nopar:Npn \CTEX at fixheadingskip
+  {
     \par
-    \ifdim \pagegoal = \maxdimen
-      \advance \@tempskipa -\topskip
-      \advance \@tempskipa -\parskip
-      \nointerlineskip
-    \fi
+    \dim_set:Nn \tex_prevdepth:D { -1000pt }
+    \skip_sub:Nn \l__ctex_heading_skip { \tex_parskip:D }
   }
+\skip_new:N \l__ctex_heading_skip
+\cs_new_protected_nopar:Npn \CTEX at setheadingskip
+  { \skip_set:Nn \l__ctex_heading_skip }
+\cs_new_eq:NN \CTEX at headingskip \l__ctex_heading_skip
 \renewcommand\part{%
   \if at openright
     \cleardoublepage
@@ -161,11 +167,9 @@
   \else
     \@tempswafalse
   \fi
-  \@tempskipa = \glueexpr \CTEX at part@beforeskip \relax
-  \ifodd \CTEX at part@fixbeforeskip
-    \CTEX at fixbeforeskip
-  \fi
-  \vspace*{\@tempskipa}%
+  \CTEX at setheadingskip \CTEX at part@beforeskip
+  \ifodd \CTEX at part@fixskip \CTEX at fixtopskip \fi
+  \vspace*{\CTEX at headingskip}%
   \secdef\@part\@spart}
 \def\@part[#1]#2{%
   \ifnum \c at secnumdepth >-2\relax
@@ -195,7 +199,9 @@
      \CTEX at part@aftertitle}%
     \@endpart}
 \def\@endpart{%
-              \vskip \glueexpr \CTEX at part@afterskip \relax
+              \CTEX at setheadingskip \CTEX at part@afterskip
+              \ifodd \CTEX at part@fixskip \CTEX at fixheadingskip \fi
+              \vskip \CTEX at headingskip
               \newpage
               \if at twoside
                \if at openright
@@ -244,11 +250,9 @@
   \@afterheading
   \fi}
 \def\@makechapterhead#1{%
-  \@tempskipa = \glueexpr \CTEX at chapter@beforeskip \relax
-  \ifodd \CTEX at chapter@fixbeforeskip
-    \CTEX at fixbeforeskip
-  \fi
-  \vspace*{\@tempskipa}%
+  \CTEX at setheadingskip \CTEX at chapter@beforeskip
+  \ifodd \CTEX at chapter@fixskip \CTEX at fixtopskip \fi
+  \vspace*{\CTEX at headingskip}%
   {\normalfont \parindent \dimexpr \CTEX at chapter@indent \relax
    \CTEX at chapter@format
    \ifnum \c at secnumdepth >\m at ne
@@ -262,14 +266,14 @@
    \CTEX at chapter@titleformat{#1}%
    \CTEX at chapter@aftertitle
    \nobreak
-   \vskip \glueexpr \CTEX at chapter@afterskip \relax
+   \CTEX at setheadingskip \CTEX at chapter@afterskip
+   \ifodd \CTEX at chapter@fixskip \CTEX at fixheadingskip \fi
+   \vskip \CTEX at headingskip
   }}
 \def\@makeschapterhead#1{%
-  \@tempskipa = \glueexpr \CTEX at chapter@beforeskip \relax
-  \ifodd \CTEX at chapter@fixbeforeskip
-    \CTEX at fixbeforeskip
-  \fi
-  \vspace*{\@tempskipa}%
+  \CTEX at setheadingskip \CTEX at chapter@beforeskip
+  \ifodd \CTEX at chapter@fixskip \CTEX at fixtopskip \fi
+  \vspace*{\CTEX at headingskip}%
   {\normalfont \parindent \dimexpr \CTEX at chapter@indent \relax
    \CTEX at chapter@format
    \interlinepenalty\@M
@@ -276,7 +280,9 @@
    \CTEX at chapter@titleformat{#1}
    \CTEX at chapter@aftertitle
    \nobreak
-   \vskip \glueexpr \CTEX at chapter@afterskip \relax
+   \CTEX at setheadingskip \CTEX at chapter@afterskip
+   \ifodd \CTEX at chapter@fixskip \CTEX at fixheadingskip \fi
+   \vskip \CTEX at headingskip
   }}
 \def\@startsection#1#2#3#4#5#6{%
   \if at noskipsec \leavevmode \fi
@@ -290,7 +296,10 @@
   \if at nobreak
     \everypar{}%
   \else
-    \addpenalty\@secpenalty\addvspace{\glueexpr #4\relax}%
+    \addpenalty\@secpenalty
+    \CTEX at setheadingskip{#4}%
+    \ifodd \CTEX at fixskip \CTEX at fixheadingskip \fi
+    \addvspace \CTEX at headingskip
   \fi
   \@ifstar
     {\@ssect{#3}{#4}{#5}{#6}}%
@@ -358,7 +367,9 @@
 \def\@xsect#1{%
   \unless \ifodd \CTEX at runin
     \par \nobreak
-    \vskip\glueexpr #1\relax
+    \CTEX at setheadingskip{#1}%
+    \ifodd \CTEX at fixskip \CTEX at fixheadingskip \fi
+    \vskip \CTEX at headingskip
     \@afterheading
   \else
     \@nobreakfalse
@@ -382,11 +393,13 @@
     \cs_set_eq:Nc \CTEX at titleformat@n { CTEX@#1 at titleformat }
     \cs_set_eq:Nc \CTEX at aftertitle { CTEX@#1 at aftertitle }
     \cs_set_eq:Nc \CTEX at afterindent { CTEX@#1 at afterindent }
+    \cs_set_eq:Nc \CTEX at fixskip { CTEX@#1 at fixskip }
     \cs_set_eq:Nc \CTEX at runin { CTEX@#1 at runin }
   }
 \cs_new_eq:NN \CTEX at titleformat@n \use:n
 \cs_new_eq:NN \CTEX at aftertitle \prg_do_nothing:
 \cs_new_eq:NN \CTEX at afterindent \c_true_bool
+\cs_new_eq:NN \CTEX at fixskip \c_false_bool
 \cs_new_eq:NN \CTEX at runin \c_false_bool
 \int_zero:N \l__ctex_tmp_int
 \seq_map_inline:Nn \c__ctex_section_headings_seq

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctex-c5size.clo
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctex-c5size.clo	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctex-c5size.clo	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {c5size option (CTEX)}
 \ProvidesExplFile{ctex-c5size.clo}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \ctex_set_font_size:Nnn \normalsize { 5 }
   {
     \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctex-cs4size.clo
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctex-cs4size.clo	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctex-cs4size.clo	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {cs4size option (CTEX)}
 \ProvidesExplFile{ctex-cs4size.clo}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \ctex_set_font_size:Nnn \normalsize { -4 }
   {
     \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctex-report.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctex-report.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctex-report.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Heading modification for report (CTEX)}
 \ProvidesExplFile{ctex-report.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \seq_new:N \c__ctex_section_headings_seq
 \seq_gset_from_clist:Nn \c__ctex_section_headings_seq
   { section , subsection , subsubsection , paragraph , subparagraph }
@@ -86,6 +86,7 @@
         #1 / indent        .tl_set:N = \exp_not:c { CTEX@#1 at indent } ,
         #1 / numbering   .bool_set:N = \exp_not:c { CTEX@#1 at numbering } ,
         #1 / afterindent .bool_set:N = \exp_not:c { CTEX@#1 at afterindent } ,
+        #1 / fixskip     .bool_set:N = \exp_not:c { CTEX@#1 at fixskip } ,
         #1 / runin       .bool_set:N = \exp_not:c { CTEX@#1 at runin } ,
         #1 / format+         .code:n =
           { \tl_put_right:Nn \exp_not:c { CTEX@#1 at format } { ####1 } } ,
@@ -121,10 +122,8 @@
 \group_begin:
 \tl_set:Nn \l__ctex_tmp_tl
   {
-    part    / pagestyle       .tl_set:N = \CTEX at part@pagestyle ,
-    chapter / pagestyle       .tl_set:N = \CTEX at chapter@pagestyle ,
-    part    / fixbeforeskip .bool_set:N = \CTEX at part@fixbeforeskip ,
-    chapter / fixbeforeskip .bool_set:N = \CTEX at chapter@fixbeforeskip ,
+    part    / pagestyle .tl_set:N = \CTEX at part@pagestyle ,
+    chapter / pagestyle .tl_set:N = \CTEX at chapter@pagestyle ,
   }
 \seq_map_inline:Nn \c__ctex_headings_seq
   {
@@ -139,15 +138,22 @@
 \cs_new_protected_nopar:Npn \CTEX at makeheadinganchor { }
 \ctex_at_end_package:nn { hyperref }
   { \cs_gset_protected_nopar:Npn \CTEX at makeheadinganchor { \phantomsection } }
-\cs_new_protected_nopar:Npn \CTEX at fixbeforeskip
+\cs_new_protected_nopar:Npn \CTEX at fixtopskip
   {
+    \CTEX at fixheadingskip
+    \dim_compare:nNnF \tex_pagegoal:D < \c_max_dim
+      { \skip_sub:Nn \l__ctex_heading_skip { \tex_topskip:D } }
+  }
+\cs_new_protected_nopar:Npn \CTEX at fixheadingskip
+  {
     \par
-    \ifdim \pagegoal = \maxdimen
-      \advance \@tempskipa -\topskip
-      \advance \@tempskipa -\parskip
-      \nointerlineskip
-    \fi
+    \dim_set:Nn \tex_prevdepth:D { -1000pt }
+    \skip_sub:Nn \l__ctex_heading_skip { \tex_parskip:D }
   }
+\skip_new:N \l__ctex_heading_skip
+\cs_new_protected_nopar:Npn \CTEX at setheadingskip
+  { \skip_set:Nn \l__ctex_heading_skip }
+\cs_new_eq:NN \CTEX at headingskip \l__ctex_heading_skip
 \renewcommand\part{%
   \if at openright
     \cleardoublepage
@@ -161,11 +167,9 @@
   \else
     \@tempswafalse
   \fi
-  \@tempskipa = \glueexpr \CTEX at part@beforeskip \relax
-  \ifodd \CTEX at part@fixbeforeskip
-    \CTEX at fixbeforeskip
-  \fi
-  \vspace*{\@tempskipa}%
+  \CTEX at setheadingskip \CTEX at part@beforeskip
+  \ifodd \CTEX at part@fixskip \CTEX at fixtopskip \fi
+  \vspace*{\CTEX at headingskip}%
   \secdef\@part\@spart}
 \def\@part[#1]#2{%
   \ifnum \c at secnumdepth >-2\relax
@@ -195,7 +199,9 @@
      \CTEX at part@aftertitle}%
     \@endpart}
 \def\@endpart{%
-              \vskip \glueexpr \CTEX at part@afterskip \relax
+              \CTEX at setheadingskip \CTEX at part@afterskip
+              \ifodd \CTEX at part@fixskip \CTEX at fixheadingskip \fi
+              \vskip \CTEX at headingskip
               \newpage
               \if at twoside
                \if at openright
@@ -240,11 +246,9 @@
   \@afterheading
   \fi}
 \def\@makechapterhead#1{%
-  \@tempskipa = \glueexpr \CTEX at chapter@beforeskip \relax
-  \ifodd \CTEX at chapter@fixbeforeskip
-    \CTEX at fixbeforeskip
-  \fi
-  \vspace*{\@tempskipa}%
+  \CTEX at setheadingskip \CTEX at chapter@beforeskip
+  \ifodd \CTEX at chapter@fixskip \CTEX at fixtopskip \fi
+  \vspace*{\CTEX at headingskip}%
   {\normalfont \parindent \dimexpr \CTEX at chapter@indent \relax
    \CTEX at chapter@format
    \ifnum \c at secnumdepth >\m at ne
@@ -256,14 +260,14 @@
    \CTEX at chapter@titleformat{#1}%
    \CTEX at chapter@aftertitle
    \nobreak
-   \vskip \glueexpr \CTEX at chapter@afterskip \relax
+   \CTEX at setheadingskip \CTEX at chapter@afterskip
+   \ifodd \CTEX at chapter@fixskip \CTEX at fixheadingskip \fi
+   \vskip \CTEX at headingskip
   }}
 \def\@makeschapterhead#1{%
-  \@tempskipa = \glueexpr \CTEX at chapter@beforeskip \relax
-  \ifodd \CTEX at chapter@fixbeforeskip
-    \CTEX at fixbeforeskip
-  \fi
-  \vspace*{\@tempskipa}%
+  \CTEX at setheadingskip \CTEX at chapter@beforeskip
+  \ifodd \CTEX at chapter@fixskip \CTEX at fixtopskip \fi
+  \vspace*{\CTEX at headingskip}%
   {\normalfont \parindent \dimexpr \CTEX at chapter@indent \relax
    \CTEX at chapter@format
    \interlinepenalty\@M
@@ -270,7 +274,9 @@
    \CTEX at chapter@titleformat{#1}
    \CTEX at chapter@aftertitle
    \nobreak
-   \vskip \glueexpr \CTEX at chapter@afterskip \relax
+   \CTEX at setheadingskip \CTEX at chapter@afterskip
+   \ifodd \CTEX at chapter@fixskip \CTEX at fixheadingskip \fi
+   \vskip \CTEX at headingskip
   }}
 \def\@startsection#1#2#3#4#5#6{%
   \if at noskipsec \leavevmode \fi
@@ -284,7 +290,10 @@
   \if at nobreak
     \everypar{}%
   \else
-    \addpenalty\@secpenalty\addvspace{\glueexpr #4\relax}%
+    \addpenalty\@secpenalty
+    \CTEX at setheadingskip{#4}%
+    \ifodd \CTEX at fixskip \CTEX at fixheadingskip \fi
+    \addvspace \CTEX at headingskip
   \fi
   \@ifstar
     {\@ssect{#3}{#4}{#5}{#6}}%
@@ -352,7 +361,9 @@
 \def\@xsect#1{%
   \unless \ifodd \CTEX at runin
     \par \nobreak
-    \vskip\glueexpr #1\relax
+    \CTEX at setheadingskip{#1}%
+    \ifodd \CTEX at fixskip \CTEX at fixheadingskip \fi
+    \vskip \CTEX at headingskip
     \@afterheading
   \else
     \@nobreakfalse
@@ -376,11 +387,13 @@
     \cs_set_eq:Nc \CTEX at titleformat@n { CTEX@#1 at titleformat }
     \cs_set_eq:Nc \CTEX at aftertitle { CTEX@#1 at aftertitle }
     \cs_set_eq:Nc \CTEX at afterindent { CTEX@#1 at afterindent }
+    \cs_set_eq:Nc \CTEX at fixskip { CTEX@#1 at fixskip }
     \cs_set_eq:Nc \CTEX at runin { CTEX@#1 at runin }
   }
 \cs_new_eq:NN \CTEX at titleformat@n \use:n
 \cs_new_eq:NN \CTEX at aftertitle \prg_do_nothing:
 \cs_new_eq:NN \CTEX at afterindent \c_true_bool
+\cs_new_eq:NN \CTEX at fixskip \c_false_bool
 \cs_new_eq:NN \CTEX at runin \c_false_bool
 \int_zero:N \l__ctex_tmp_int
 \seq_map_inline:Nn \c__ctex_section_headings_seq

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctex.sty	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctex.sty	2016-08-27 22:15:39 UTC (rev 41937)
@@ -28,10 +28,10 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Chinese adapter in LaTeX (CTEX)}
 \ProvidesExplPackage{\ExplFileName}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \tl_const:Nx \c__ctex_version_tl
   { \cs_if_exist_use:cF { ver@ \@currname . \@currext } { 9999/99/99 } }
 \msg_new:nnnn { ctex } { subpackage-loaded }
@@ -564,6 +564,11 @@
 \msg_new:nnnn { ctex } { today-undef }
   { Today~format~`#1'~is~undefined. }
   { Available~today~formats~are~`old',~`small',~and~`big'. }
+\tl_if_exist:NF \proofname
+  {
+    \tl_new:N \proofname
+    \tl_set:Nn \proofname { Proof }
+  }
 \keys_define:nn { ctex }
   {
     contentsname   .tl_set:N = \contentsname ,

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctexart.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctexart.cls	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctexart.cls	2016-08-27 22:15:39 UTC (rev 41937)
@@ -28,10 +28,10 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Chinese adapter for class article (CTEX)}
 \ProvidesExplClass{ctexart}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \tl_const:Nx \c__ctex_version_tl
   { \cs_if_exist_use:cF { ver@ \@currname . \@currext } { 9999/99/99 } }
 \cs_new_eq:cN { ver at ctex.        \@pkgextension } \c__ctex_version_tl
@@ -575,6 +575,11 @@
 \msg_new:nnnn { ctex } { today-undef }
   { Today~format~`#1'~is~undefined. }
   { Available~today~formats~are~`old',~`small',~and~`big'. }
+\tl_if_exist:NF \proofname
+  {
+    \tl_new:N \proofname
+    \tl_set:Nn \proofname { Proof }
+  }
 \keys_define:nn { ctex }
   {
     contentsname   .tl_set:N = \contentsname ,
@@ -643,6 +648,7 @@
         #1 / indent        .tl_set:N = \exp_not:c { CTEX@#1 at indent } ,
         #1 / numbering   .bool_set:N = \exp_not:c { CTEX@#1 at numbering } ,
         #1 / afterindent .bool_set:N = \exp_not:c { CTEX@#1 at afterindent } ,
+        #1 / fixskip     .bool_set:N = \exp_not:c { CTEX@#1 at fixskip } ,
         #1 / runin       .bool_set:N = \exp_not:c { CTEX@#1 at runin } ,
         #1 / format+         .code:n =
           { \tl_put_right:Nn \exp_not:c { CTEX@#1 at format } { ####1 } } ,
@@ -690,10 +696,22 @@
 \cs_new_protected_nopar:Npn \CTEX at makeheadinganchor { }
 \ctex_at_end_package:nn { hyperref }
   { \cs_gset_protected_nopar:Npn \CTEX at makeheadinganchor { \phantomsection } }
+\cs_new_protected_nopar:Npn \CTEX at fixheadingskip
+  {
+    \par
+    \dim_set:Nn \tex_prevdepth:D { -1000pt }
+    \skip_sub:Nn \l__ctex_heading_skip { \tex_parskip:D }
+  }
+\skip_new:N \l__ctex_heading_skip
+\cs_new_protected_nopar:Npn \CTEX at setheadingskip
+  { \skip_set:Nn \l__ctex_heading_skip }
+\cs_new_eq:NN \CTEX at headingskip \l__ctex_heading_skip
 \renewcommand\part{%
    \if at noskipsec \leavevmode \fi
    \par
-   \addvspace{\glueexpr\CTEX at part@beforeskip\relax}%
+   \CTEX at setheadingskip \CTEX at part@beforeskip
+   \ifodd \CTEX at part@fixskip \CTEX at fixheadingskip \fi
+   \addvspace \CTEX at headingskip
    \ifodd \CTEX at part@afterindent
      \@afterindenttrue
    \else
@@ -721,7 +739,9 @@
    \markboth{}{}%
    \CTEX at part@aftertitle}%
   \nobreak
-  \vskip \glueexpr \CTEX at part@afterskip \relax
+  \CTEX at setheadingskip \CTEX at part@afterskip
+  \ifodd \CTEX at part@fixskip \CTEX at fixheadingskip \fi
+  \vskip \CTEX at headingskip
   \@afterheading}
 \def\@spart#1{%
     {\interlinepenalty \@M
@@ -730,7 +750,9 @@
      \CTEX at part@titleformat{#1}%
      \CTEX at part@aftertitle}%
      \nobreak
-     \vskip \glueexpr \CTEX at part@afterskip \relax
+     \CTEX at setheadingskip \CTEX at part@afterskip
+     \ifodd \CTEX at part@fixskip \CTEX at fixheadingskip \fi
+     \vskip \CTEX at headingskip
      \@afterheading}
 \def\@startsection#1#2#3#4#5#6{%
   \if at noskipsec \leavevmode \fi
@@ -744,7 +766,10 @@
   \if at nobreak
     \everypar{}%
   \else
-    \addpenalty\@secpenalty\addvspace{\glueexpr #4\relax}%
+    \addpenalty\@secpenalty
+    \CTEX at setheadingskip{#4}%
+    \ifodd \CTEX at fixskip \CTEX at fixheadingskip \fi
+    \addvspace \CTEX at headingskip
   \fi
   \@ifstar
     {\@ssect{#3}{#4}{#5}{#6}}%
@@ -812,7 +837,9 @@
 \def\@xsect#1{%
   \unless \ifodd \CTEX at runin
     \par \nobreak
-    \vskip\glueexpr #1\relax
+    \CTEX at setheadingskip{#1}%
+    \ifodd \CTEX at fixskip \CTEX at fixheadingskip \fi
+    \vskip \CTEX at headingskip
     \@afterheading
   \else
     \@nobreakfalse
@@ -836,11 +863,13 @@
     \cs_set_eq:Nc \CTEX at titleformat@n { CTEX@#1 at titleformat }
     \cs_set_eq:Nc \CTEX at aftertitle { CTEX@#1 at aftertitle }
     \cs_set_eq:Nc \CTEX at afterindent { CTEX@#1 at afterindent }
+    \cs_set_eq:Nc \CTEX at fixskip { CTEX@#1 at fixskip }
     \cs_set_eq:Nc \CTEX at runin { CTEX@#1 at runin }
   }
 \cs_new_eq:NN \CTEX at titleformat@n \use:n
 \cs_new_eq:NN \CTEX at aftertitle \prg_do_nothing:
 \cs_new_eq:NN \CTEX at afterindent \c_true_bool
+\cs_new_eq:NN \CTEX at fixskip \c_false_bool
 \cs_new_eq:NN \CTEX at runin \c_false_bool
 \int_zero:N \l__ctex_tmp_int
 \seq_map_inline:Nn \c__ctex_section_headings_seq

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctexbeamer.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctexbeamer.cls	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctexbeamer.cls	2016-08-27 22:15:39 UTC (rev 41937)
@@ -28,10 +28,10 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Chinese adapter for class beamer (CTEX)}
 \ProvidesExplClass{ctexbeamer}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \tl_const:Nx \c__ctex_version_tl
   { \cs_if_exist_use:cF { ver@ \@currname . \@currext } { 9999/99/99 } }
 \cs_new_eq:cN { ver at ctex.        \@pkgextension } \c__ctex_version_tl
@@ -568,6 +568,11 @@
 \msg_new:nnnn { ctex } { today-undef }
   { Today~format~`#1'~is~undefined. }
   { Available~today~formats~are~`old',~`small',~and~`big'. }
+\tl_if_exist:NF \proofname
+  {
+    \tl_new:N \proofname
+    \tl_set:Nn \proofname { Proof }
+  }
 \keys_define:nn { ctex }
   {
     contentsname   .tl_set:N = \contentsname ,

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctexbook.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctexbook.cls	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctexbook.cls	2016-08-27 22:15:39 UTC (rev 41937)
@@ -28,10 +28,10 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Chinese adapter for class book (CTEX)}
 \ProvidesExplClass{ctexbook}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \tl_const:Nx \c__ctex_version_tl
   { \cs_if_exist_use:cF { ver@ \@currname . \@currext } { 9999/99/99 } }
 \cs_new_eq:cN { ver at ctex.        \@pkgextension } \c__ctex_version_tl
@@ -575,6 +575,11 @@
 \msg_new:nnnn { ctex } { today-undef }
   { Today~format~`#1'~is~undefined. }
   { Available~today~formats~are~`old',~`small',~and~`big'. }
+\tl_if_exist:NF \proofname
+  {
+    \tl_new:N \proofname
+    \tl_set:Nn \proofname { Proof }
+  }
 \keys_define:nn { ctex }
   {
     contentsname   .tl_set:N = \contentsname ,
@@ -644,6 +649,7 @@
         #1 / indent        .tl_set:N = \exp_not:c { CTEX@#1 at indent } ,
         #1 / numbering   .bool_set:N = \exp_not:c { CTEX@#1 at numbering } ,
         #1 / afterindent .bool_set:N = \exp_not:c { CTEX@#1 at afterindent } ,
+        #1 / fixskip     .bool_set:N = \exp_not:c { CTEX@#1 at fixskip } ,
         #1 / runin       .bool_set:N = \exp_not:c { CTEX@#1 at runin } ,
         #1 / format+         .code:n =
           { \tl_put_right:Nn \exp_not:c { CTEX@#1 at format } { ####1 } } ,
@@ -679,10 +685,8 @@
 \group_begin:
 \tl_set:Nn \l__ctex_tmp_tl
   {
-    part    / pagestyle       .tl_set:N = \CTEX at part@pagestyle ,
-    chapter / pagestyle       .tl_set:N = \CTEX at chapter@pagestyle ,
-    part    / fixbeforeskip .bool_set:N = \CTEX at part@fixbeforeskip ,
-    chapter / fixbeforeskip .bool_set:N = \CTEX at chapter@fixbeforeskip ,
+    part    / pagestyle .tl_set:N = \CTEX at part@pagestyle ,
+    chapter / pagestyle .tl_set:N = \CTEX at chapter@pagestyle ,
   }
 \seq_map_inline:Nn \c__ctex_headings_seq
   {
@@ -697,15 +701,22 @@
 \cs_new_protected_nopar:Npn \CTEX at makeheadinganchor { }
 \ctex_at_end_package:nn { hyperref }
   { \cs_gset_protected_nopar:Npn \CTEX at makeheadinganchor { \phantomsection } }
-\cs_new_protected_nopar:Npn \CTEX at fixbeforeskip
+\cs_new_protected_nopar:Npn \CTEX at fixtopskip
   {
+    \CTEX at fixheadingskip
+    \dim_compare:nNnF \tex_pagegoal:D < \c_max_dim
+      { \skip_sub:Nn \l__ctex_heading_skip { \tex_topskip:D } }
+  }
+\cs_new_protected_nopar:Npn \CTEX at fixheadingskip
+  {
     \par
-    \ifdim \pagegoal = \maxdimen
-      \advance \@tempskipa -\topskip
-      \advance \@tempskipa -\parskip
-      \nointerlineskip
-    \fi
+    \dim_set:Nn \tex_prevdepth:D { -1000pt }
+    \skip_sub:Nn \l__ctex_heading_skip { \tex_parskip:D }
   }
+\skip_new:N \l__ctex_heading_skip
+\cs_new_protected_nopar:Npn \CTEX at setheadingskip
+  { \skip_set:Nn \l__ctex_heading_skip }
+\cs_new_eq:NN \CTEX at headingskip \l__ctex_heading_skip
 \renewcommand\part{%
   \if at openright
     \cleardoublepage
@@ -719,11 +730,9 @@
   \else
     \@tempswafalse
   \fi
-  \@tempskipa = \glueexpr \CTEX at part@beforeskip \relax
-  \ifodd \CTEX at part@fixbeforeskip
-    \CTEX at fixbeforeskip
-  \fi
-  \vspace*{\@tempskipa}%
+  \CTEX at setheadingskip \CTEX at part@beforeskip
+  \ifodd \CTEX at part@fixskip \CTEX at fixtopskip \fi
+  \vspace*{\CTEX at headingskip}%
   \secdef\@part\@spart}
 \def\@part[#1]#2{%
   \ifnum \c at secnumdepth >-2\relax
@@ -753,7 +762,9 @@
      \CTEX at part@aftertitle}%
     \@endpart}
 \def\@endpart{%
-              \vskip \glueexpr \CTEX at part@afterskip \relax
+              \CTEX at setheadingskip \CTEX at part@afterskip
+              \ifodd \CTEX at part@fixskip \CTEX at fixheadingskip \fi
+              \vskip \CTEX at headingskip
               \newpage
               \if at twoside
                \if at openright
@@ -802,11 +813,9 @@
   \@afterheading
   \fi}
 \def\@makechapterhead#1{%
-  \@tempskipa = \glueexpr \CTEX at chapter@beforeskip \relax
-  \ifodd \CTEX at chapter@fixbeforeskip
-    \CTEX at fixbeforeskip
-  \fi
-  \vspace*{\@tempskipa}%
+  \CTEX at setheadingskip \CTEX at chapter@beforeskip
+  \ifodd \CTEX at chapter@fixskip \CTEX at fixtopskip \fi
+  \vspace*{\CTEX at headingskip}%
   {\normalfont \parindent \dimexpr \CTEX at chapter@indent \relax
    \CTEX at chapter@format
    \ifnum \c at secnumdepth >\m at ne
@@ -820,14 +829,14 @@
    \CTEX at chapter@titleformat{#1}%
    \CTEX at chapter@aftertitle
    \nobreak
-   \vskip \glueexpr \CTEX at chapter@afterskip \relax
+   \CTEX at setheadingskip \CTEX at chapter@afterskip
+   \ifodd \CTEX at chapter@fixskip \CTEX at fixheadingskip \fi
+   \vskip \CTEX at headingskip
   }}
 \def\@makeschapterhead#1{%
-  \@tempskipa = \glueexpr \CTEX at chapter@beforeskip \relax
-  \ifodd \CTEX at chapter@fixbeforeskip
-    \CTEX at fixbeforeskip
-  \fi
-  \vspace*{\@tempskipa}%
+  \CTEX at setheadingskip \CTEX at chapter@beforeskip
+  \ifodd \CTEX at chapter@fixskip \CTEX at fixtopskip \fi
+  \vspace*{\CTEX at headingskip}%
   {\normalfont \parindent \dimexpr \CTEX at chapter@indent \relax
    \CTEX at chapter@format
    \interlinepenalty\@M
@@ -834,7 +843,9 @@
    \CTEX at chapter@titleformat{#1}
    \CTEX at chapter@aftertitle
    \nobreak
-   \vskip \glueexpr \CTEX at chapter@afterskip \relax
+   \CTEX at setheadingskip \CTEX at chapter@afterskip
+   \ifodd \CTEX at chapter@fixskip \CTEX at fixheadingskip \fi
+   \vskip \CTEX at headingskip
   }}
 \def\@startsection#1#2#3#4#5#6{%
   \if at noskipsec \leavevmode \fi
@@ -848,7 +859,10 @@
   \if at nobreak
     \everypar{}%
   \else
-    \addpenalty\@secpenalty\addvspace{\glueexpr #4\relax}%
+    \addpenalty\@secpenalty
+    \CTEX at setheadingskip{#4}%
+    \ifodd \CTEX at fixskip \CTEX at fixheadingskip \fi
+    \addvspace \CTEX at headingskip
   \fi
   \@ifstar
     {\@ssect{#3}{#4}{#5}{#6}}%
@@ -916,7 +930,9 @@
 \def\@xsect#1{%
   \unless \ifodd \CTEX at runin
     \par \nobreak
-    \vskip\glueexpr #1\relax
+    \CTEX at setheadingskip{#1}%
+    \ifodd \CTEX at fixskip \CTEX at fixheadingskip \fi
+    \vskip \CTEX at headingskip
     \@afterheading
   \else
     \@nobreakfalse
@@ -940,11 +956,13 @@
     \cs_set_eq:Nc \CTEX at titleformat@n { CTEX@#1 at titleformat }
     \cs_set_eq:Nc \CTEX at aftertitle { CTEX@#1 at aftertitle }
     \cs_set_eq:Nc \CTEX at afterindent { CTEX@#1 at afterindent }
+    \cs_set_eq:Nc \CTEX at fixskip { CTEX@#1 at fixskip }
     \cs_set_eq:Nc \CTEX at runin { CTEX@#1 at runin }
   }
 \cs_new_eq:NN \CTEX at titleformat@n \use:n
 \cs_new_eq:NN \CTEX at aftertitle \prg_do_nothing:
 \cs_new_eq:NN \CTEX at afterindent \c_true_bool
+\cs_new_eq:NN \CTEX at fixskip \c_false_bool
 \cs_new_eq:NN \CTEX at runin \c_false_bool
 \int_zero:N \l__ctex_tmp_int
 \seq_map_inline:Nn \c__ctex_section_headings_seq

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctexcap.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctexcap.sty	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctexcap.sty	2016-08-27 22:15:39 UTC (rev 41937)
@@ -28,10 +28,10 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Chinese adapter in LaTeX (CTEX)}
 \ProvidesExplPackage{ctexcap}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \clist_new:N \l__ctex_ctexcap_options_clist
 \clist_set:Nx \l__ctex_ctexcap_options_clist
   { \exp_not:v { opt@ \@currname . \@currext } , heading }

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctexheading.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctexheading.sty	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctexheading.sty	2016-08-27 22:15:39 UTC (rev 41937)
@@ -28,10 +28,10 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Heading style modification (CTEX)}
 \ProvidesExplPackage{ctexheading}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \RequirePackage { xparse , l3keys2e }
 \RequirePackage { ctexhook , ctexpatch }
 \tl_new:N \l__ctex_tmp_tl

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctexhook.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctexhook.sty	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctexhook.sty	2016-08-27 22:15:39 UTC (rev 41937)
@@ -28,10 +28,10 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Document and package hooks (CTEX)}
 \ProvidesExplPackage{ctexhook}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \cs_new_protected:Npn \ctex_at_end_preamble:n #1
   { \tl_gput_right:Nn \g__ctex_end_preamble_hook_tl {#1} }
 \cs_new_protected:Npn \ctex_after_end_preamble:n #1

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctexpatch.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctexpatch.sty	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctexpatch.sty	2016-08-27 22:15:39 UTC (rev 41937)
@@ -28,10 +28,10 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Patching commands (CTEX)}
 \ProvidesExplPackage{ctexpatch}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \cs_if_exist:NF \str_new:N { \RequirePackage { l3str } }
 \cs_new_protected:Npn \ctex_patch_cmd_once:NnnnTF #1#2
   {

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctexrep.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctexrep.cls	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctexrep.cls	2016-08-27 22:15:39 UTC (rev 41937)
@@ -28,10 +28,10 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Chinese adapter for class report (CTEX)}
 \ProvidesExplClass{ctexrep}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \tl_const:Nx \c__ctex_version_tl
   { \cs_if_exist_use:cF { ver@ \@currname . \@currext } { 9999/99/99 } }
 \cs_new_eq:cN { ver at ctex.        \@pkgextension } \c__ctex_version_tl
@@ -575,6 +575,11 @@
 \msg_new:nnnn { ctex } { today-undef }
   { Today~format~`#1'~is~undefined. }
   { Available~today~formats~are~`old',~`small',~and~`big'. }
+\tl_if_exist:NF \proofname
+  {
+    \tl_new:N \proofname
+    \tl_set:Nn \proofname { Proof }
+  }
 \keys_define:nn { ctex }
   {
     contentsname   .tl_set:N = \contentsname ,
@@ -644,6 +649,7 @@
         #1 / indent        .tl_set:N = \exp_not:c { CTEX@#1 at indent } ,
         #1 / numbering   .bool_set:N = \exp_not:c { CTEX@#1 at numbering } ,
         #1 / afterindent .bool_set:N = \exp_not:c { CTEX@#1 at afterindent } ,
+        #1 / fixskip     .bool_set:N = \exp_not:c { CTEX@#1 at fixskip } ,
         #1 / runin       .bool_set:N = \exp_not:c { CTEX@#1 at runin } ,
         #1 / format+         .code:n =
           { \tl_put_right:Nn \exp_not:c { CTEX@#1 at format } { ####1 } } ,
@@ -679,10 +685,8 @@
 \group_begin:
 \tl_set:Nn \l__ctex_tmp_tl
   {
-    part    / pagestyle       .tl_set:N = \CTEX at part@pagestyle ,
-    chapter / pagestyle       .tl_set:N = \CTEX at chapter@pagestyle ,
-    part    / fixbeforeskip .bool_set:N = \CTEX at part@fixbeforeskip ,
-    chapter / fixbeforeskip .bool_set:N = \CTEX at chapter@fixbeforeskip ,
+    part    / pagestyle .tl_set:N = \CTEX at part@pagestyle ,
+    chapter / pagestyle .tl_set:N = \CTEX at chapter@pagestyle ,
   }
 \seq_map_inline:Nn \c__ctex_headings_seq
   {
@@ -697,15 +701,22 @@
 \cs_new_protected_nopar:Npn \CTEX at makeheadinganchor { }
 \ctex_at_end_package:nn { hyperref }
   { \cs_gset_protected_nopar:Npn \CTEX at makeheadinganchor { \phantomsection } }
-\cs_new_protected_nopar:Npn \CTEX at fixbeforeskip
+\cs_new_protected_nopar:Npn \CTEX at fixtopskip
   {
+    \CTEX at fixheadingskip
+    \dim_compare:nNnF \tex_pagegoal:D < \c_max_dim
+      { \skip_sub:Nn \l__ctex_heading_skip { \tex_topskip:D } }
+  }
+\cs_new_protected_nopar:Npn \CTEX at fixheadingskip
+  {
     \par
-    \ifdim \pagegoal = \maxdimen
-      \advance \@tempskipa -\topskip
-      \advance \@tempskipa -\parskip
-      \nointerlineskip
-    \fi
+    \dim_set:Nn \tex_prevdepth:D { -1000pt }
+    \skip_sub:Nn \l__ctex_heading_skip { \tex_parskip:D }
   }
+\skip_new:N \l__ctex_heading_skip
+\cs_new_protected_nopar:Npn \CTEX at setheadingskip
+  { \skip_set:Nn \l__ctex_heading_skip }
+\cs_new_eq:NN \CTEX at headingskip \l__ctex_heading_skip
 \renewcommand\part{%
   \if at openright
     \cleardoublepage
@@ -719,11 +730,9 @@
   \else
     \@tempswafalse
   \fi
-  \@tempskipa = \glueexpr \CTEX at part@beforeskip \relax
-  \ifodd \CTEX at part@fixbeforeskip
-    \CTEX at fixbeforeskip
-  \fi
-  \vspace*{\@tempskipa}%
+  \CTEX at setheadingskip \CTEX at part@beforeskip
+  \ifodd \CTEX at part@fixskip \CTEX at fixtopskip \fi
+  \vspace*{\CTEX at headingskip}%
   \secdef\@part\@spart}
 \def\@part[#1]#2{%
   \ifnum \c at secnumdepth >-2\relax
@@ -753,7 +762,9 @@
      \CTEX at part@aftertitle}%
     \@endpart}
 \def\@endpart{%
-              \vskip \glueexpr \CTEX at part@afterskip \relax
+              \CTEX at setheadingskip \CTEX at part@afterskip
+              \ifodd \CTEX at part@fixskip \CTEX at fixheadingskip \fi
+              \vskip \CTEX at headingskip
               \newpage
               \if at twoside
                \if at openright
@@ -798,11 +809,9 @@
   \@afterheading
   \fi}
 \def\@makechapterhead#1{%
-  \@tempskipa = \glueexpr \CTEX at chapter@beforeskip \relax
-  \ifodd \CTEX at chapter@fixbeforeskip
-    \CTEX at fixbeforeskip
-  \fi
-  \vspace*{\@tempskipa}%
+  \CTEX at setheadingskip \CTEX at chapter@beforeskip
+  \ifodd \CTEX at chapter@fixskip \CTEX at fixtopskip \fi
+  \vspace*{\CTEX at headingskip}%
   {\normalfont \parindent \dimexpr \CTEX at chapter@indent \relax
    \CTEX at chapter@format
    \ifnum \c at secnumdepth >\m at ne
@@ -814,14 +823,14 @@
    \CTEX at chapter@titleformat{#1}%
    \CTEX at chapter@aftertitle
    \nobreak
-   \vskip \glueexpr \CTEX at chapter@afterskip \relax
+   \CTEX at setheadingskip \CTEX at chapter@afterskip
+   \ifodd \CTEX at chapter@fixskip \CTEX at fixheadingskip \fi
+   \vskip \CTEX at headingskip
   }}
 \def\@makeschapterhead#1{%
-  \@tempskipa = \glueexpr \CTEX at chapter@beforeskip \relax
-  \ifodd \CTEX at chapter@fixbeforeskip
-    \CTEX at fixbeforeskip
-  \fi
-  \vspace*{\@tempskipa}%
+  \CTEX at setheadingskip \CTEX at chapter@beforeskip
+  \ifodd \CTEX at chapter@fixskip \CTEX at fixtopskip \fi
+  \vspace*{\CTEX at headingskip}%
   {\normalfont \parindent \dimexpr \CTEX at chapter@indent \relax
    \CTEX at chapter@format
    \interlinepenalty\@M
@@ -828,7 +837,9 @@
    \CTEX at chapter@titleformat{#1}
    \CTEX at chapter@aftertitle
    \nobreak
-   \vskip \glueexpr \CTEX at chapter@afterskip \relax
+   \CTEX at setheadingskip \CTEX at chapter@afterskip
+   \ifodd \CTEX at chapter@fixskip \CTEX at fixheadingskip \fi
+   \vskip \CTEX at headingskip
   }}
 \def\@startsection#1#2#3#4#5#6{%
   \if at noskipsec \leavevmode \fi
@@ -842,7 +853,10 @@
   \if at nobreak
     \everypar{}%
   \else
-    \addpenalty\@secpenalty\addvspace{\glueexpr #4\relax}%
+    \addpenalty\@secpenalty
+    \CTEX at setheadingskip{#4}%
+    \ifodd \CTEX at fixskip \CTEX at fixheadingskip \fi
+    \addvspace \CTEX at headingskip
   \fi
   \@ifstar
     {\@ssect{#3}{#4}{#5}{#6}}%
@@ -910,7 +924,9 @@
 \def\@xsect#1{%
   \unless \ifodd \CTEX at runin
     \par \nobreak
-    \vskip\glueexpr #1\relax
+    \CTEX at setheadingskip{#1}%
+    \ifodd \CTEX at fixskip \CTEX at fixheadingskip \fi
+    \vskip \CTEX at headingskip
     \@afterheading
   \else
     \@nobreakfalse
@@ -934,11 +950,13 @@
     \cs_set_eq:Nc \CTEX at titleformat@n { CTEX@#1 at titleformat }
     \cs_set_eq:Nc \CTEX at aftertitle { CTEX@#1 at aftertitle }
     \cs_set_eq:Nc \CTEX at afterindent { CTEX@#1 at afterindent }
+    \cs_set_eq:Nc \CTEX at fixskip { CTEX@#1 at fixskip }
     \cs_set_eq:Nc \CTEX at runin { CTEX@#1 at runin }
   }
 \cs_new_eq:NN \CTEX at titleformat@n \use:n
 \cs_new_eq:NN \CTEX at aftertitle \prg_do_nothing:
 \cs_new_eq:NN \CTEX at afterindent \c_true_bool
+\cs_new_eq:NN \CTEX at fixskip \c_false_bool
 \cs_new_eq:NN \CTEX at runin \c_false_bool
 \int_zero:N \l__ctex_tmp_int
 \seq_map_inline:Nn \c__ctex_section_headings_seq

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctexsize.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctexsize.sty	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctexsize.sty	2016-08-27 22:15:39 UTC (rev 41937)
@@ -28,10 +28,10 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Chinese font size definition (CTEX)}
 \ProvidesExplPackage{ctexsize}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \RequirePackage { xparse , l3keys2e }
 \cs_new_eq:NN \g__ctex_font_size_flag \c_minus_one
 \keys_define:nn { ctex / option }

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctexspa.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctexspa.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctexspa.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -28,7 +28,7 @@
 %% ------------------------------------------------------------------------------
 %% 
 \ProvidesFile{ctexspa.def}%
-  [2016/05/16 v2.4.2 Space info for CJKpunct (CTEX)]
+  [2016/08/27 v2.4.3 Space info for CJKpunct (CTEX)]
 \ctexspadef{adobezhsong}{70,15,61,8,63,14,58,7,64,13,62,12,60,11,61,15,62,14,51,6,58,5,58,8,7,5,12,12,10,68,13,63,17,63,20,69,19,69,17,63,19,70,17,55,10,10,14,63,10,65,10,61,13,62,15,61,7,49,7,56,8,58,15,69,8,61,14,63,8,57,,,}
 \ctexspadef{adobezhhei}{78,3,64,3,64,2,61,3,72,3,70,3,72,3,70,3,60,3,51,3,62,3,66,3,0,0,10,10,3,70,5,70,6,75,6,78,17,67,13,67,17,67,4,50,8,8,3,72,3,70,3,72,3,70,3,60,3,51,3,62,3,66,3,78,7,62,3,63,3,61,,,}
 \ctexspadef{adobezhkai}{76,10,55,8,63,4,62,4,71,4,65,4,71,4,74,4,54,4,54,4,62,4,62,4,0,0,11,11,5,72,6,71,7,78,7,79,18,68,18,68,18,68,2,46,14,12,4,71,4,65,4,71,4,74,4,54,4,54,4,62,4,62,10,76,8,55,4,63,4,62,,,}

Modified: trunk/Master/texmf-dist/tex/latex/ctex/ctxdoc.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/ctxdoc.cls	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/ctxdoc.cls	2016-08-27 22:15:39 UTC (rev 41937)
@@ -28,11 +28,12 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {ctex documentation (CTEX)}
 \ProvidesExplClass{ctxdoc}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \ExplSyntaxOff
+\let\pdfmdfivesum\mdfivesum
 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{l3doc}}
 \PassOptionsToClass{a4paper,full}{l3doc}
 \ProcessOptions
@@ -174,8 +175,6 @@
 \appto\MacroFont{\hyphenchar\font\m at ne\ctexdocverbaddon}
 \preto\AltMacroFont{\linespread{1}}
 \appto\AltMacroFont{\hyphenchar\font\m at ne\ctexdocverbaddon}
-\def\Module#1{\mbox{%
-  \color{purple}\footnotesize\normalfont\sffamily\textlangle#1\textrangle}}
 \newcommand*\exptarget{\Hy at raisedlink{\hypertarget{expstar}{}}}
 \newcommand*\rexptarget{\Hy at raisedlink{\hypertarget{rexpstar}{}}}
 \newcommand*\expstar{\hyperlink{expstar}{$\star$}}
@@ -209,62 +208,41 @@
       { \skip_zero:N \medskipamount }
       { \skip_add:Nn \medskipamount { \parskip } }
   }
-%% 用 \vtop 让函数名字和语法盒子首行对齐
-\ctex_patch_cmd_once:NnnnTF \__codedoc_syntax:w
+%% 左侧边注的函数列表采用单倍行距
+\ctex_preto_cmd:NnnTF \__codedoc_typeset_functions:
   { }
-  { { minipage } { \l__codedoc_syntax_dim } }
-  { { minipage } [t] { \l__codedoc_syntax_dim } }
+  { \MacroFont }
   { \iow_term:n { *** ~ SUCCESS ~ *** } }
   { \iow_term:n { *** ~ FAIL ~ *** } }
-%% 左侧边注的函数列表采用单倍行距
-\ctex_preto_cmd:NnnTF \__codedoc_typeset_names:
+\ctex_patch_cmd_once:NnnnTF \__codedoc_macro_init:
   { }
-  { \linespread { 1 } }
+  { \hbox:n }
+  { \MacroFont \hbox:n }
   { \iow_term:n { *** ~ SUCCESS ~ *** } }
   { \iow_term:n { *** ~ FAIL ~ *** } }
-\ctex_patch_cmd_once:NnnnTF \__codedoc_macro_typeset_one:n
+\ctex_patch_cmd_once:NnnnTF \__codedoc_macro_typeset_one:nN
   { }
   { \vbox_unpack_clear:N }
-  { \linespread { 1 } \selectfont \vbox_unpack_clear:N }
+  { \MacroFont \vbox_unpack_clear:N }
   { \iow_term:n { *** ~ SUCCESS ~ *** } }
   { \iow_term:n { *** ~ FAIL ~ *** } }
-%% 不重复使用 \HD at target,避免索引出现重复页码
-\cs_set_protected:Npn \__codedoc_special_index_aux:nnnnn #1#2#3#4#5
-  {
-    \__codedoc_special_index_set:Nn \l__codedoc_index_escaped_macro_tl {#2}
-    \str_if_eq:onTF { \@currenvir } { macrocode }
-      { \codeline at wrindex }
-      {
-        \HD at target
-        \index
-      }
-      {
-        \tl_if_empty:nF { #3 #4 }
-          { #3 \actualchar #4 \levelchar }
-        #1
-        \actualchar
-        {
-          \token_to_str:N \verbatim at font \c_space_tl
-          \l__codedoc_index_escaped_macro_tl
-        }
-        \encapchar
-        hdclindex{\the\c at HD@hypercount}{#5}
-      }
-  }
-\DeclareDocumentCommand \cs { O{} m }
-  { \__codedoc_cmd_aux:no {#1} { \c__codedoc_backslash_tl #2 } }
-\DeclareDocumentCommand \tn { O{} m }
-  {
-    \__codedoc_cmd_aux:no
-      { index = TeX , replace = false , #1 }
-      { \c__codedoc_backslash_tl #2 }
-  }
-\DeclareDocumentCommand \meta { +m }
-  { \__codedoc_meta_aux:n {#1} }
-\DeclareExpandableDocumentCommand \bookmarkcstn { O{} m }
-  { \textbackslash \tl_to_str:n {#2} }
-\cs_new:Npn \bookmarkmeta #1 { < \tl_to_str:n {#1} > }
-\cs_generate_variant:Nn \__codedoc_cmd_aux:nn { no }
+\ctex_patch_cmd_once:NnnnTF \__codedoc_macro_dump:
+  { }
+  { \hbox_unpack_clear:N }
+  { \MacroFont \hbox_unpack_clear:N }
+  { \iow_term:n { *** ~ SUCCESS ~ *** } }
+  { \iow_term:n { *** ~ FAIL ~ *** } }
+\ctex_patch_cmd_once:NnnnTF \__codedoc_macro_end:
+  { }
+  { \endtrivlist }
+  { \@noparlisttrue \endtrivlist }
+  { \iow_term:n { *** ~ SUCCESS ~ *** } }
+  { \iow_term:n { *** ~ FAIL ~ *** } }
+\ctex_appto_cmd:NnnTF \__codedoc_macro_end_style:n
+  { }
+  { \@endparenv }
+  { \iow_term:n { *** ~ SUCCESS ~ *** } }
+  { \iow_term:n { *** ~ FAIL ~ *** } }
 \AtBeginEnvironment { syntax }
   {
     \char_set_catcode_active:N \|
@@ -274,7 +252,7 @@
   }
 %% 不对目录中出现的 \cs 和 \tn 等编索引
 \DeclareDocumentCommand \StopSpecialIndexModule { }
-  { \cs_set_eq:NN \__codedoc_special_index_module:nnnn \use_none:nnnn }
+  { \cs_set_eq:NN \__codedoc_special_index_module:nnnnN \use_none:nnnnn }
 \tl_map_inline:nn { \actualchar \encapchar \levelchar }
   { \exp_args:Nx \DoNotIndex { \bslash \tl_to_str:N #1 } }
 \DeclareDocumentCommand \package { o m }
@@ -289,22 +267,410 @@
 \DeclareDocumentCommand \GetFileId { m }
   {
     \GetFileInfo {#1}
-    \ior_open:NnTF \g__ctex_doc_ior { \c_sys_jobname_str .id }
+    \ior_open:NnTF \g__ctxdoc_id_ior { \c_sys_jobname_str .id }
       {
-        \ior_get:NN \g__ctex_doc_ior \l__ctex_tmp_tl
-        \ior_close:N \g__ctex_doc_ior
-        \exp_after:wN \GetIdInfo \l__ctex_tmp_tl
+        \ior_get:NN \g__ctxdoc_id_ior \l__ctxdoc_tmp_tl
+        \ior_close:N \g__ctxdoc_id_ior
+        \exp_after:wN \GetIdInfo \l__ctxdoc_tmp_tl
       }
       { \GetIdInfo $Id$ }
       { \fileinfo }
   }
-\ior_new:N \g__ctex_doc_ior
+\ior_new:N \g__ctxdoc_id_ior
+\ctex_patch_cmd:Nnn \changes@
+  { \space \actualchar }
+  { \actualchar }
+\cs_new_eq:NN \__ctxdoc_ltx_changes:nnn \changes@
+\cs_set_protected:Npn \changes@ #1#2
+  {
+    \__ctxdoc_save_version_date:nn {#1} {#2}
+    \tl_if_empty:nTF {#1}
+      { \__ctxdoc_ltx_changes:nnn }
+      { \__ctxdoc_version_zfill:wnnn #1 \q_stop }
+      {#1} {#2}
+  }
+\cs_new_protected:Npn \__ctxdoc_version_zfill:wnnn #1#2 \q_stop
+  {
+    \str_if_eq:nnTF {#1} { v }
+      { \__ctxdoc_version_zfill:nnnn {#2} }
+      { \__ctxdoc_ltx_changes:nnn }
+  }
+\cs_new_protected:Npn \__ctxdoc_version_zfill:nnnn #1#2
+  {
+    \tl_clear:N \l__ctxdoc_tmp_tl
+    \seq_set_split:Nnn \l__ctxdoc_tmp_seq { . } {#1}
+    \seq_map_function:NN \l__ctxdoc_tmp_seq \__ctxdoc_version_zfill:n
+    \__ctxdoc_ltx_changes:nnn { \l__ctxdoc_tmp_tl \actualchar #2 }
+  }
+\tl_new:N \l__ctxdoc_tmp_tl
+\seq_new:N \l__ctxdoc_tmp_seq
+\cs_new_protected:Npn \__ctxdoc_version_zfill:n #1
+  {
+    \tl_put_right:Nx \l__ctxdoc_tmp_tl
+      {
+        \prg_replicate:nn
+          { \int_max:nn { 0 } { 10 - \tl_count:n {#1} } } { 0 }
+        \exp_not:n {#1}
+      }
+  }
+\cs_new_protected:Npn \__ctxdoc_save_version_date:nn #1#2
+  {
+    \prop_get:NnNTF \g__ctxdoc_version_date_prop {#1} \l__ctxdoc_tmp_tl
+      { \exp_after:wN \__ctxdoc_save_version_date:nnnn \l__ctxdoc_tmp_tl {#2} {#1} }
+      { \__ctxdoc_save_version_date:nnn {#1} {#2} {#2} }
+  }
+\cs_new_protected:Npn \__ctxdoc_save_version_date:nnnn #1#2#3#4
+  {
+    \__ctxdoc_if_date_later:nnTF {#1} {#3}
+      { \__ctxdoc_save_version_date:nnn {#4} {#3} {#2} }
+      {
+        \__ctxdoc_if_date_later:nnT {#3} {#2}
+          { \__ctxdoc_save_version_date:nnn {#4} {#1} {#3} }
+      }
+  }
+\prg_new_conditional:Npnn \__ctxdoc_if_date_later:nn #1#2 { TF , T }
+  {
+    \if_int_compare:w \__ctxdoc_parse_date:w #1 / / / 0 \q_stop >
+                      \__ctxdoc_parse_date:w #2 / / / 0 \q_stop \exp_stop_f:
+      \prg_return_true: \else: \prg_return_false: \fi:
+  }
+\cs_new:Npn \__ctxdoc_parse_date:w #1/#2/#3/ #4 \q_stop
+  { #1#2#3 }
+\cs_new_protected:Npn \__ctxdoc_save_version_date:nnn #1#2#3
+  { \prop_gput:Nnn \g__ctxdoc_version_date_prop {#1} { {#2} {#3} } }
+\cs_new_protected:Npn \CTEX at versionitem #1 \efill
+  {
+    \@idxitem
+    \prop_get:NnNTF \g__ctxdoc_version_date_prop {#1} \l__ctxdoc_tmp_tl
+      { \exp_after:wN \__ctxdoc_version_item:nnn \l__ctxdoc_tmp_tl {#1} }
+      { \BOOM }
+  }
+\cs_new_protected:Npn \__ctxdoc_version_item:nnn #1#2#3
+  {
+    \noindent
+    \Hy at raisedlink { \belowpdfbookmark {#3} { HD.#3 } }
+    \textbf {#3} \hfill
+    \hbox:n
+      {
+        \footnotesize
+        \str_if_eq:nnTF {#1} {#2}
+          { ( #1 ) }
+          { ( #1 ~ -- ~ #2 ) }
+      }
+    \par \nopagebreak
+  }
+\prop_new:N \g__ctxdoc_version_date_prop
+\ctex_patch_cmd:Nnn \HDorg at theglossary
+  { \let \item \@idxitem }
+  { \let \item \CTEX at versionitem }
+\ctex_patch_cmd:Nnn \l at section    { 2.5em } { 1.5em }
+\ctex_patch_cmd:Nnn \l at subsection { 2.5em } { 1.5em }
+\ctex_patch_cmd:Nnn \@wrglossary
+  { hdpindex }
+  {
+    \ifnum \c at HD@hypercount = \z@
+      hdpindex
+    \else
+      hdclindex { \the \c at HD@hypercount }
+    \fi
+  }
+%% 重定义 macrocode 环境的实现,逐行处理
+\cs_set_protected_nopar:Npn \xmacro at code
+  { \__ctxdoc_marco_code:w }
+\cs_set_protected_nopar:Npn \sxmacro at code
+  {
+    \fontspec_print_visible_spaces:
+    \xmacro at code
+  }
+\cs_new_protected_nopar:Npn \__ctxdoc_marco_code:w
+  {
+    \ifcodeline at index
+      \__ctxdoc_marco_every_par:n { \__ctxdoc_code_line_no: }
+    \else:
+      \__ctxdoc_marco_every_par:n { }
+    \fi:
+    \exp_args:Nx \__ctxdoc_make_finish_tag:n { \@currenvir }
+    \__ctxdoc_verbatim_start:w
+  }
+\cs_new_protected:Npn \__ctxdoc_marco_every_par:n #1
+  {
+    \everypar
+      {
+        \everypar {#1}
+        \if at inlabel
+          \global \@inlabelfalse
+          \llap { \box \@labels \hskip \leftskip }
+        \fi
+        #1
+      }
+  }
+\ctex_patch_cmd:Nnn \macro at code
+  { \if at inlabel \leavevmode \fi }
+  { }
+\group_begin:
+  \int_set_eq:NN \tex_endlinechar:D \c_minus_one
+  \use:n
+    {
+      \char_set_catcode_active:n { 32 }
+      \tl_const:Nn \c__ctxdoc_active_space_tl
+    }
+    { }
+\group_end:
+\group_begin:
+  \char_set_catcode_active:n { 13 }
+  \cs_new_protected:Npx \__ctxdoc_make_finish_tag:n #1
+    {
+      \tl_set:Nn \exp_not:N \l__ctxdoc_verbatim_finish_tl
+        {
+          \c_percent_str
+          \prg_replicate:nn { 4 }
+            { \exp_not:o { \c__ctxdoc_active_space_tl } }
+          \exp_not:o { \active at escape@char } end
+          \c_left_brace_str #1 \c_right_brace_str
+          \exp_not:N ^^M
+        }
+    }
+  \cs_new_protected:Npn \__ctxdoc_verbatim_start:w #1
+    {
+      \str_if_eq:nnTF {#1} { ^^M }
+        { \__ctxdoc_verbatim_read_line:w }
+        { \__ctxdoc_verbatim_read_line:w #1 }
+    }
+  \cs_new_protected:Npn \__ctxdoc_verbatim_read_line:w #1 ^^M
+    {
+      \tl_set:Nn \l__ctxdoc_verbatim_line_tl { #1 ^^M }
+      \tl_if_eq:NNTF \l__ctxdoc_verbatim_line_tl \l__ctxdoc_verbatim_finish_tl
+        { \exp_args:Nx \end { \@currenvir } }
+        {
+          \__ctxdoc_verbatim_process_line:
+          \__ctxdoc_verbatim_read_line:w
+        }
+    }
+  \tl_const:Nn \c__ctxdoc_active_cr_tl { ^^M }
+\group_end:
+\tl_new:N \l__ctxdoc_verbatim_line_tl
+\tl_new:N \l__ctxdoc_verbatim_finish_tl
+\tl_new:N \g__ctxdoc_verbatim_verb_stop_tl
+\cs_new_protected_nopar:Npn \__ctxdoc_process_normal_line:
+  {
+    \str_if_eq_x:nnTF
+      { \str_head:N \l__ctxdoc_verbatim_line_tl } { \c_percent_str }
+      { \__ctxdoc_check_angle:x { \tl_tail:N \l__ctxdoc_verbatim_line_tl } }
+      { \__ctxdoc_output_line: }
+  }
+\cs_new_protected_nopar:Npn \__ctxdoc_process_verb_line:
+  {
+    \tl_if_eq:NNTF \l__ctxdoc_verbatim_line_tl \g__ctxdoc_verbatim_verb_stop_tl
+      {
+        \tl_gclear:N \g__ctxdoc_verbatim_verb_stop_tl
+        \cs_gset_eq:NN \__ctxdoc_verbatim_process_line: \__ctxdoc_process_normal_line:
+        \__ctxdoc_output_module:nn
+          { slash at guard }
+          { \__ctxdoc_module_pop:n { \l__ctxdoc_verbatim_line_tl } }
+      }
+      { \tl_use:N \l__ctxdoc_verbatim_line_tl }
+  }
+\cs_new_eq:NN \__ctxdoc_verbatim_process_line: \__ctxdoc_process_normal_line:
+\DeclareDocumentCommand \CheckModules { }
+  { \cs_set_eq:NN \__ctxdoc_verbatim_process_line: \__ctxdoc_process_normal_line: }
+\DeclareDocumentCommand \DontCheckModules { }
+  { \cs_set_eq:NN \__ctxdoc_verbatim_process_line: \__ctxdoc_output_line: }
+\cs_new_protected:Npn \__ctxdoc_check_angle:n #1
+  {
+     \str_if_eq_x:nnTF { \str_head:n {#1} } { < }
+      { \__ctxdoc_check_module:x { \tl_tail:n {#1} } }
+      { \__ctxdoc_output_percent_line: }
+  }
+\cs_generate_variant:Nn \__ctxdoc_check_angle:n { x }
+\cs_new_protected:Npn \__ctxdoc_check_module:n #1
+  {
+    \exp_args:Nx \str_case:nnF { \str_head:n {#1} }
+      {
+        { * } { \__ctxdoc_module_star:w }
+        { / } { \__ctxdoc_module_slash:w }
+        { @ } { \__ctxdoc_module_at:w }
+        { < } { \__ctxdoc_module_verb:w }
+      }
+      { \__ctxdoc_module_pm:w }
+    #1 \q_stop
+  }
+\cs_generate_variant:Nn \__ctxdoc_check_module:n { x }
+\group_begin:
+  \char_set_catcode_active:N \>
+  \cs_new_protected:Npn \__ctxdoc_module_star:w #1 > #2 \q_stop
+    {
+      \__ctxdoc_output_module:nn
+        { star at guard }
+        { \__ctxdoc_module_push:n { \__ctxdoc_module_angle:n {#1} } }
+      \int_compare:nNnF \guard at level < \c at StandardModuleDepth
+        {
+          \cs_gset_eq:NN \macro at font \AltMacroFont
+          \macro at font
+        }
+      \int_gincr:N \guard at level
+      \__ctxdoc_output_line:n {#2}
+    }
+  \cs_new_protected:Npn \__ctxdoc_module_slash:w #1 > #2 \q_stop
+    {
+      \__ctxdoc_output_module:nn
+        { slash at guard }
+        { \__ctxdoc_module_pop:n { \__ctxdoc_module_angle:n {#1} } }
+      \int_gdecr:N \guard at level
+      \int_compare:nNnF \guard at level < \c at StandardModuleDepth
+        {
+          \cs_gset_eq:NN \macro at font \MacroFont
+          \macro at font
+        }
+      \__ctxdoc_output_line:n {#2}
+    }
+  \cs_new_protected:Npn \__ctxdoc_module_at:w @ @ = #1 > #2 \q_stop
+    {
+      \__ctxdoc_output_module:nn
+        { at at guard }
+        { \__ctxdoc_module_angle:n { @ @ = #1 } }
+      \tl_gset:Nn \g__codedoc_module_name_tl {#1}
+      \__ctxdoc_output_line:n {#2}
+    }
+  \cs_new_protected:Npn \__ctxdoc_module_pm:w #1 > #2 \q_stop
+    {
+      \__ctxdoc_output_module:nn
+        { pm at guard }
+        { \__ctxdoc_module_angle:n {#1} }
+      \group_begin:
+        \int_compare:nNnF \guard at level < \c at StandardModuleDepth
+          { \AltMacroFont }
+        \__ctxdoc_output_line:n {#2}
+      \group_end:
+    }
+  \cs_new_protected:Npn \__ctxdoc_module_verb:w #1 \q_stop
+    {
+      \cs_gset_eq:NN \__ctxdoc_verbatim_process_line: \__ctxdoc_process_verb_line:
+      \tl_gset:Nx \g__ctxdoc_verbatim_verb_stop_tl
+        { \c_percent_str \tl_tail:n {#1} }
+      \__ctxdoc_output_module:nn
+        { star at guard }
+        { \__ctxdoc_module_push:n { \l__ctxdoc_verbatim_line_tl } }
+    }
+\group_end:
+\cs_new_protected_nopar:Npn \__ctxdoc_output_line:
+  {
+    \tex_noindent:D
+    \__ctxdoc_replace_at_at:N \l__ctxdoc_verbatim_line_tl
+    \tl_use:N \l__ctxdoc_verbatim_line_tl
+  }
+\cs_new_protected:Npn \__ctxdoc_replace_at_at:N #1
+  {
+    \tl_if_empty:NF \g__codedoc_module_name_tl
+      {
+        \exp_args:NNo \__ctxdoc_replace_at_at_aux:Nn
+          #1 \g__codedoc_module_name_tl
+      }
+  }
+\cs_new_protected:Npn \__ctxdoc_replace_at_at_aux:Nn #1#2
+  {
+    \tl_replace_all:Nnn #1 { _ @ @ } { _ _ #2 }
+    \tl_replace_all:Nnn #1 {   @ @ } { _ _ #2 }
+  }
+\cs_new_protected:Npn \__ctxdoc_output_line:n #1
+  {
+    \tl_set:Nn \l__ctxdoc_verbatim_line_tl {#1}
+    \tl_if_eq:NNTF \l__ctxdoc_verbatim_line_tl \c__ctxdoc_active_cr_tl
+      { \tl_use:N \l__ctxdoc_verbatim_line_tl }
+      {
+        \str_if_eq_x:nnTF
+          { \str_head:N \l__ctxdoc_verbatim_line_tl }
+          { \c_percent_str }
+          { \__ctxdoc_output_percent_line: }
+          { \__ctxdoc_output_line: }
+      }
+  }
+\cs_new_protected:Npn \__ctxdoc_output_percent_line:
+  {
+    \tex_noindent:D
+    \group_begin:
+      \color { code at gray }
+      \str_if_eq_x:nnTF { \f at shape } { \updefault }
+        { \slshape }
+        { \upshape }
+      \__ctxdoc_output_line:
+    \group_end:
+  }
+\cs_new_protected_nopar:Npn \__ctxdoc_module_push:n
+  { \exp_args:Nx \__ctxdoc_module_push_aux:nn { \int_use:N \c at HD@hypercount } }
+\cs_new_protected:Npn \__ctxdoc_module_push_aux:nn #1
+  {
+    \seq_gpush:Nn \g__ctxdoc_module_dest_seq {#1}
+    \HD at savedest@add {#1}
+    \cs_if_exist:cTF { r at HD. #1 }
+      {
+        \hypersetup { hidelinks }
+        \hyperref [ HD. #1 ]
+      }
+      { \use:n }
+  }
+\cs_new_protected_nopar:Npn \__ctxdoc_module_pop:n
+  {
+    \seq_gpop:NNTF \g__ctxdoc_module_dest_seq \l__ctxdoc_tmp_tl
+      {
+        \tl_set:Nx \@currentlabel { \int_use:N \c at HD@hypercount }
+        \HD at savedest@add { \@currentlabel }
+        \Hy at MakeCurrentHref { HD. \@currentlabel }
+        \label { HD. \l__ctxdoc_tmp_tl }
+        \hypersetup { hidelinks }
+        \hdclindex { \l__ctxdoc_tmp_tl } { }
+      }
+      { \BOOM \use:n }
+  }
+\seq_new:N \g__ctxdoc_module_dest_seq
+\cs_new_protected:Npn \__ctxdoc_output_module:nn #1#2
+  {
+    \tex_noindent:D
+    \group_begin:
+      \color {#1} \footnotesize \normalfont \sffamily #2
+    \group_end:
+  }
+\definecolor { star at guard }  { rgb } { 0    , 0   , 0.55 }
+\definecolor { slash at guard } { rgb } { 0.75 , 0   , 0.25 }
+\definecolor { pm at guard }    { rgb } { 0.5  , 0.5 , 0 }
+\definecolor { at at guard }    { rgb } { 0.5  , 0   , 0.5 }
+\definecolor { code at gray }  { gray } { 0.5 }
+\cs_new_protected:Npn \__ctxdoc_module_angle:n #1
+  { \textlangle #1 \textrangle }
+\cs_new_protected_nopar:Npn \__ctxdoc_code_line_no:
+  {
+    \int_gincr:N \c at CodelineNo
+    \hbox_overlap_left:n
+      {
+        \hbox_to_wd:nn
+          { \MacroIndent }
+          {
+            \HD at target
+            \tex_hss:D
+            \__ctxdoc_code_line_no_style:
+            \theCodelineNo \enspace
+          }
+        \tex_kern:D \@totalleftmargin
+      }
+  }
+\tl_set:Nn \theCodelineNo
+  { \arabic { CodelineNo } }
+\cs_new_protected_nopar:Npn \__ctxdoc_code_line_no_style:
+  { \color { code at gray } \normalfont \sffamily \tiny }
+\cs_set_protected:Npn \HD at SetMacroIndent #1
+  {
+    \group_begin:
+      \settowidth \MacroIndent
+        {
+          \__ctxdoc_code_line_no_style:
+          \prg_replicate:nn { \tl_count:n {#1} } { 0 }
+          \enspace
+        }
+      \dim_gset_eq:NN \MacroIndent \MacroIndent
+    \group_end:
+  }
 \ExplSyntaxOff
 \AtBeginDocument{\addtocontents{toc}{\StopSpecialIndexModule}}
 \pdfstringdefDisableCommands{%
-  \let\cs\bookmarkcstn
-  \let\tn\bookmarkcstn
-  \let\meta\bookmarkmeta
   \let\path\meta
   \let\opt\@firstofone}
 \preto\@thehead{\cslet{MakeUppercase\space}{\@iden}}
@@ -342,19 +708,12 @@
 \def\ctexkit{\href{https://github.com/CTeX-org/ctex-kit/}{\texttt{ctex-kit}}}
 \def\ctexkitrev#1{%
   \href{https://github.com/CTeX-org/ctex-kit/commit/#1}{\texttt{ctex-kit} rev. #1}}
-\patchcmd\theCodelineNo{\sffamily\tiny}{\normalfont\sffamily\tiny}{}{}
 \appto\GlossaryParms{%
+  \raggedcolumns
+  \let\Hy at writebookmark\HDorg at writebookmark
   \def\@idxitem{\par\hangindent 2em }%
   \def\subitem{\@idxitem\hspace*{1em}}%
   \def\subsubitem{\@idxitem\hspace*{2em}}}
-\patchcmd\l at section{2.5em}{1.5em}{}{}
-\patchcmd\l at subsection{2.5em}{1.5em}{}{}
-\patchcmd\changes@{\space}{\lbrack}{}{}
-\patchcmd\@wrglossary{hdpindex}{%
-  \ifnum\c at HD@hypercount=\z@
-    hdpindex%
-  \else
-    hdclindex{\the\c at HD@hypercount}\fi}{}{}
 \def\glossaryname{版本历史}
 \GlossaryPrologue{\section{\glossaryname}}
 \IndexPrologue{%

Modified: trunk/Master/texmf-dist/tex/latex/ctex/dictionary/translator-theorem-dictionary-ChineseGBK.dict
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/dictionary/translator-theorem-dictionary-ChineseGBK.dict	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/dictionary/translator-theorem-dictionary-ChineseGBK.dict	2016-08-27 22:15:39 UTC (rev 41937)
@@ -27,7 +27,7 @@
 %% ------------------------------------------------------------------------------
 %% 
 \ProvidesDictionary{translator-theorem-dictionary}{ChineseGBK}%
-  [2016/05/16 v2.4.2 Chinese translation for theorem name (CTEX)]
+  [2016/08/27 v2.4.3 Chinese translation for theorem name (CTEX)]
 \providetranslation{Comments}{\xC6\xC0\xC2\xDB}
 \providetranslation{comments}{\xC6\xC0\xC2\xDB}
 \providetranslation{Comment}{\xC6\xC0\xC2\xDB}

Modified: trunk/Master/texmf-dist/tex/latex/ctex/dictionary/translator-theorem-dictionary-ChineseUTF8.dict
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/dictionary/translator-theorem-dictionary-ChineseUTF8.dict	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/dictionary/translator-theorem-dictionary-ChineseUTF8.dict	2016-08-27 22:15:39 UTC (rev 41937)
@@ -27,7 +27,7 @@
 %% ------------------------------------------------------------------------------
 %% 
 \ProvidesDictionary{translator-theorem-dictionary}{ChineseUTF8}%
-  [2016/05/16 v2.4.2 Chinese translation for theorem name (CTEX)]
+  [2016/08/27 v2.4.3 Chinese translation for theorem name (CTEX)]
 \providetranslation{Comments}{评论}
 \providetranslation{comments}{评论}
 \providetranslation{Comment}{评论}

Modified: trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-aptex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-aptex.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-aptex.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Asian pTeX adapter (CTEX)}
 \ProvidesExplFile{ctex-engine-aptex.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \cs_new_protected_nopar:Npn \ctex_set_zhmap:n #1
   {
     \AtBeginDvi { #1 }

Modified: trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-luatex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-luatex.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-luatex.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {LuaLaTeX adapter (CTEX)}
 \ProvidesExplFile{ctex-engine-luatex.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \msg_new:nnn { ctex } { luatexja-loaded }
   {
     Package~`luatexja'~can~not~be~loaded~before~`ctex'.\\
@@ -82,55 +82,36 @@
     \ltj at allalchar
   }
 \AtEndUTFCommand { \group_end: }
-\RequirePackage { lltjp-fontspec }
-\cs_set:Npn \emshape { \itshape }
-\cs_set:Npn \eminnershape { \upshape }
-\cs_new_protected_nopar:Npn \__ctex_ltj_um_define_math_chars:
+\cs_set_protected:Npn \fontspec_visible_space:
   {
+    \font_glyph_if_exist:NnTF \font { "2423 }
+      { \ltjalchar "2423 \exp_stop_f: }
+      { \fontspec_visible_space_fallback: }
+  }
+\cs_new_protected:Npn \ctex_ltj_set_math_letter:NN #1#2
+  {
     \group_begin:
-      \cs_set_protected:Npn \__um_sym:nnn ##1##2##3
-        {
-          \tl_if_in:nnT
-            {
-              \mathord \mathalpha \mathbin \mathrel
-              \mathpunct \mathop \mathfence
-            }
-            { ##3 }
-            { \__ctex_ltj_um_char:Nn ##2 { ##1 } }
-        }
-      \__um_input_math_symbol_table:
+      \cs_set_protected:Npn #1 ##1##2##3
+        { \ltjsetmathletter { ##1 } }
+      #2
     \group_end:
   }
-\cs_new_protected:Npn \__ctex_ltj_um_char:Nn #1#2
+\ctex_at_end_package:nn { unicode-math }
   {
-    \__ctex_ltj_um_char_aux:Nx #1 { \char_generate:nn {#2} { 12 } }
-    \ltjsetmathletter {#2}
-  }
-\cs_new_protected:Npn \__ctex_ltj_um_char_aux:Nn #1#2
-  {
-    \cs_gset_protected_nopar:Npn #1
+    \cs_if_exist:NTF \um_input_math_symbol_table:
       {
-        \mode_if_math:TF
-          {#2}
-          {
-            {
-              \lua_now_x:n { tex.globaldefs = 0 }
-              \ltj at allalchar #2
-            }
-          }
+        \ctex_ltj_set_math_letter:NN
+          \um_sym:nnn
+          \um_input_math_symbol_table:
       }
-  }
-\cs_generate_variant:Nn \__ctex_ltj_um_char_aux:Nn { Nx }
-\ctex_at_end_package:nn { unicode-math }
-  {
-    \cs_set_eq:NN \__um_define_math_chars: \__ctex_ltj_um_define_math_chars:
-    \@ifpackagelater { unicode-math } { 2015/06/28 }
       {
         \cs_set_eq:NN \use at mathgroup \ctex_ltj_use_math_group:Nn
         \cs_set_protected_nopar:Npn \ctex_ltj_math_group_hook:
           { \__um_switchto_literal: }
+        \ctex_ltj_set_math_letter:NN
+          \__um_sym:nnn
+          \__um_input_math_symbol_table:
       }
-      { }
   }
 \ctex_at_end_package:nn { listings }
   {
@@ -631,12 +612,12 @@
   {
     \prop_if_empty:NF \g__ctex_ltj_family_font_name_prop
       {
-        \ctex_ltj_family_if_exist:xNF { \CJKfamilydefault } \l__ctex_ltj_tmpa_tl
+        \ctex_ltj_family_if_exist:xNF { \CJKfamilydefault } \l__ctex_ltj_tmp_tl
           {
             \str_if_eq_x:nnTF { \CJKfamilydefault } { \CJKrmdefault }
               { \use:n }
               {
-                \ctex_ltj_family_if_exist:xNTF { \CJKrmdefault } \l__ctex_ltj_tmpa_tl
+                \ctex_ltj_family_if_exist:xNTF { \CJKrmdefault } \l__ctex_ltj_tmp_tl
                   { \tl_gset:Nn \CJKfamilydefault { \CJKrmdefault } \use_none:n }
                   { \use:n }
               }

Modified: trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-pdftex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-pdftex.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-pdftex.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {(pdf)LaTeX adapter (CTEX)}
 \ProvidesExplFile{ctex-engine-pdftex.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \cs_new_protected_nopar:Npn \ctex_set_zhmap:n #1
   {
     \AtBeginDvi { #1 }

Modified: trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-uptex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-uptex.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-uptex.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {upTeX adapter (CTEX)}
 \ProvidesExplFile{ctex-engine-uptex.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \cs_new_protected_nopar:Npn \ctex_set_zhmap:n #1
   {
     \AtBeginDvi { #1 }

Modified: trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-xetex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-xetex.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-xetex.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {XeLaTeX adapter (CTEX)}
 \ProvidesExplFile{ctex-engine-xetex.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \RequirePackage { xeCJK }
 \exp_args:Nx \xeCJKsetup
   {

Modified: trunk/Master/texmf-dist/tex/latex/ctex/fd/c19rm.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/fd/c19rm.fd	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/fd/c19rm.fd	2016-08-27 22:15:39 UTC (rev 41937)
@@ -27,7 +27,7 @@
 %% ------------------------------------------------------------------------------
 %% 
 \ProvidesFile{c19rm.fd}%
-  [2016/05/16 v2.4.2 Chinese font definition (CTEX)]
+  [2016/08/27 v2.4.3 Chinese font definition (CTEX)]
 %%
 %% Chinese characters
 %%

Modified: trunk/Master/texmf-dist/tex/latex/ctex/fd/c19sf.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/fd/c19sf.fd	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/fd/c19sf.fd	2016-08-27 22:15:39 UTC (rev 41937)
@@ -27,7 +27,7 @@
 %% ------------------------------------------------------------------------------
 %% 
 \ProvidesFile{c19sf.fd}%
-  [2016/05/16 v2.4.2 Chinese font definition (CTEX)]
+  [2016/08/27 v2.4.3 Chinese font definition (CTEX)]
 %%
 %% Chinese characters
 %%

Modified: trunk/Master/texmf-dist/tex/latex/ctex/fd/c19tt.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/fd/c19tt.fd	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/fd/c19tt.fd	2016-08-27 22:15:39 UTC (rev 41937)
@@ -27,7 +27,7 @@
 %% ------------------------------------------------------------------------------
 %% 
 \ProvidesFile{c19tt.fd}%
-  [2016/05/16 v2.4.2 Chinese font definition (CTEX)]
+  [2016/08/27 v2.4.3 Chinese font definition (CTEX)]
 %%
 %% Chinese characters
 %%

Modified: trunk/Master/texmf-dist/tex/latex/ctex/fd/c70rm.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/fd/c70rm.fd	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/fd/c70rm.fd	2016-08-27 22:15:39 UTC (rev 41937)
@@ -27,7 +27,7 @@
 %% ------------------------------------------------------------------------------
 %% 
 \ProvidesFile{c70rm.fd}%
-  [2016/05/16 v2.4.2 Chinese font definition (CTEX)]
+  [2016/08/27 v2.4.3 Chinese font definition (CTEX)]
 %%
 %% Chinese characters
 %%

Modified: trunk/Master/texmf-dist/tex/latex/ctex/fd/c70sf.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/fd/c70sf.fd	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/fd/c70sf.fd	2016-08-27 22:15:39 UTC (rev 41937)
@@ -27,7 +27,7 @@
 %% ------------------------------------------------------------------------------
 %% 
 \ProvidesFile{c70sf.fd}%
-  [2016/05/16 v2.4.2 Chinese font definition (CTEX)]
+  [2016/08/27 v2.4.3 Chinese font definition (CTEX)]
 %%
 %% Chinese characters
 %%

Modified: trunk/Master/texmf-dist/tex/latex/ctex/fd/c70tt.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/fd/c70tt.fd	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/fd/c70tt.fd	2016-08-27 22:15:39 UTC (rev 41937)
@@ -27,7 +27,7 @@
 %% ------------------------------------------------------------------------------
 %% 
 \ProvidesFile{c70tt.fd}%
-  [2016/05/16 v2.4.2 Chinese font definition (CTEX)]
+  [2016/08/27 v2.4.3 Chinese font definition (CTEX)]
 %%
 %% Chinese characters
 %%

Modified: trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-adobe.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-adobe.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-adobe.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Adobe fonts definition (CTEX)}
 \ProvidesExplFile{ctex-fontset-adobe.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \sys_if_engine_pdftex:TF
   {
     \sys_if_output_pdf:TF

Modified: trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-fandol.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-fandol.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-fandol.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Fandol fonts definition (CTEX)}
 \ProvidesExplFile{ctex-fontset-fandol.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \sys_if_engine_pdftex:TF
   {
     \sys_if_output_pdf:TF

Modified: trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-founder.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-founder.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-founder.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Founder fonts definition (CTEX)}
 \ProvidesExplFile{ctex-fontset-founder.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \sys_if_engine_pdftex:TF
   {
     \ctex_zhmap_case:nnn

Modified: trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-mac.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-mac.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-mac.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Mac OS X fonts definition (CTEX)}
 \ProvidesExplFile{ctex-fontset-mac.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \sys_if_engine_pdftex:TF
   { \ctex_fontset_error:n { mac } }
   {

Modified: trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-ubuntu.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-ubuntu.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-ubuntu.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Ubuntu fonts definition (CTEX)}
 \ProvidesExplFile{ctex-fontset-ubuntu.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \sys_if_engine_pdftex:TF
   {
     \ctex_zhmap_case:nnn

Modified: trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-windows.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-windows.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-windows.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Windows fonts definition (CTEX)}
 \ProvidesExplFile{ctex-fontset-windows.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \file_if_exist:nTF { C:/bootfont.bin }
   { \ctex_file_input:n { ctex-fontset-windowsold.def } }
   { \ctex_file_input:n { ctex-fontset-windowsnew.def } }

Modified: trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-windowsnew.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-windowsnew.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-windowsnew.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Windows fonts definition for Vista or later version (CTEX)}
 \ProvidesExplFile{ctex-fontset-windowsnew.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \tl_new:N \l__ctex_msyh_suffix_tl
 \tl_set:Nn \l__ctex_msyh_suffix_tl { .ttc }
 \file_if_exist:nF { C:/Windows/Fonts/msyh.ttc }

Modified: trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-windowsold.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-windowsold.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-windowsold.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Windows fonts definition for XP or earlier version (CTEX)}
 \ProvidesExplFile{ctex-fontset-windowsold.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \sys_if_engine_pdftex:TF
   {
     \ctex_zhmap_case:nnn

Modified: trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese-article.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese-article.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese-article.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Chinese scheme for article (CTEX)}
 \ProvidesExplFile{ctex-scheme-chinese-article.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \keys_set:nn { ctex / part }
   {
     aftertitle  = \par ,

Modified: trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese-beamer.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese-beamer.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese-beamer.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Chinese scheme for beamer (CTEX)}
 \ProvidesExplFile{ctex-scheme-chinese-beamer.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \keys_set:nn { ctex / part }
   {
     aftertitle  = \par ,

Modified: trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese-book.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese-book.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese-book.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Chinese scheme for book (CTEX)}
 \ProvidesExplFile{ctex-scheme-chinese-book.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \keys_set:nn { ctex / part }
   {
     aftertitle  = \par ,

Modified: trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese-report.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese-report.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese-report.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Chinese scheme for report (CTEX)}
 \ProvidesExplFile{ctex-scheme-chinese-report.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \keys_set:nn { ctex / part }
   {
     aftertitle  = \par ,

Modified: trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-chinese.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Chinese scheme for generic (CTEX)}
 \ProvidesExplFile{ctex-scheme-chinese.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \keys_set:nn { ctex } { today = small }
 \ctex_if_autoindent_touched:F
   { \keys_set:nn { ctex } { autoindent = true } }

Modified: trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain-article.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain-article.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain-article.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Plain scheme for article (CTEX)}
 \ProvidesExplFile{ctex-scheme-plain-article.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \keys_set:nn { ctex / part }
   {
     aftertitle  = \par ,

Modified: trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain-beamer.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain-beamer.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain-beamer.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Plain scheme for beamer (CTEX)}
 \ProvidesExplFile{ctex-scheme-plain-beamer.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \keys_set:nn { ctex / part }
   {
     aftertitle  = \par ,

Modified: trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain-book.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain-book.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain-book.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Plain scheme for book (CTEX)}
 \ProvidesExplFile{ctex-scheme-plain-book.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \keys_set:nn { ctex / part }
   {
     aftertitle  = \par ,

Modified: trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain-report.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain-report.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain-report.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Plain scheme for report (CTEX)}
 \ProvidesExplFile{ctex-scheme-plain-report.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 \keys_set:nn { ctex / part }
   {
     aftertitle  = \par ,

Modified: trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain.def	2016-08-27 01:11:03 UTC (rev 41936)
+++ trunk/Master/texmf-dist/tex/latex/ctex/scheme/ctex-scheme-plain.def	2016-08-27 22:15:39 UTC (rev 41937)
@@ -26,10 +26,10 @@
 %% 
 %% ------------------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: ctex.dtx f12457f 2016-05-16 00:55:34 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: ctex.dtx e653f84 2016-08-27 11:05:06 +0800 Qing Lee <sobenlee at gmail.com> $
   {Plain scheme for generic (CTEX)}
 \ProvidesExplFile{ctex-scheme-plain.def}
-  {\ExplFileDate}{2.4.2}{\ExplFileDescription}
+  {\ExplFileDate}{2.4.3}{\ExplFileDescription}
 %% 
 %%
 %% End of file `ctex-scheme-plain.def'.



More information about the tex-live-commits mailing list