%% %% File ctxdocstrip.tex %% %% Copyright (C) 2016--2020 %% CTEX.ORG and any individual authors listed in the documentation. %%--------------------------------------------------------------------- %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either %% version 1.3c of this license or (at your option) any later %% version. This version of this license is in %% http://www.latex-project.org/lppl/lppl-1-3c.txt %% and the latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of %% LaTeX version 2005/12/01 or later. %% %% This work has the LPPL maintenance status "maintained". %% %%--------------------------------------------------------------------- %% \csname ctxDocstripLoaded\endcsname \let\ctxDocstripLoaded\endinput \input l3docstrip % \edef\ctxResetCatcode{% \catcode\number`\$=\the\catcode`\$\relax \catcode\number`\@=\the\catcode`\@\relax } \makeOther\$ \catcode`\@=11\relax \def\plusOption+#1>#2$#3$\endLine{% \maybeMsg{<+#1 . >}% \Evaluate{#1}% \def\ctxCMD{#2}% \def\ctxID{$#3$}% \def\do##1##2##3{% \if1\Expr{##2}% \ctxReadIDFile \StreamPut##1{\inLine}% \fi }% \activefiles } \def\ctxReadIDFile{% \openin\inputcheck=\jobname.id\relax \ifeof\inputcheck\else \read \inputcheck to \inLine \closein\inputcheck \ifx\inLine\empty\else \let\ctxID\inLine \fi \fi \maybeMsg{^^J\ctxID^^J}% \def\inLine{\ctxCMD\ctxID}% } \keepsilent \askforoverwritefalse \declarepreamble\emptypreamble \endpreamble \declarepostamble\emptypostamble \endpostamble \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname directlua\endcsname\relax \expandafter\ctxResetCatcode\expandafter\endinput \fi \let\OriginalStreamClose\StreamClose \def\ctxStreamClose#1{% \OriginalStreamClose{#1}% \ctxConvFile{#1}% } \def\ctxConvFile#1{% \ifcsname zhconv@\csstring#1\endcsname \ctxConv{\lastnamedcs}% {\begincsname pth@\csstring#1\endcsname}% \fi } \def\ctxLuaFunc{% \directlua{ local zhconv = require("ctex-zhconv").conv local scan_arg = token.scan_argument local t = lua.get_functions_table() local id = 233 while t[id] do id = id + 1 end t[id] = function () local enc = scan_arg() local file = scan_arg() return zhconv(enc, file, file) end token.set_lua("ctxConv", id, "global", "protected") }% \global\let\ctxLuaFunc\relax } \def\convfile{% \ifx\@file\file \expandafter\ctxfile\else \expandafter\setconvfile\fi } \def\setconvfile#1#2{% \ctxLuaFunc \Name\def{zhconv@#2}{#1}% \let\StreamClose\ctxStreamClose } \def\ctxfile#1#2{% \setconvfile{#1}{#2}% \file{#2}% } \ctxResetCatcode %% %% %% End of file ctxdocstrip.tex