OSDN Git Service

\ltj@overwrite@primitive (ltj-latex.sty) and more tests
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Tue, 11 May 2021 10:45:53 +0000 (19:45 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Tue, 11 May 2021 10:45:53 +0000 (19:45 +0900)
src/ltj-latex.sty
src/luatexja-core.sty
test/test34-primitive.pdf [new file with mode: 0644]
test/test34-primitive.tex

index d3bf538..a96d6ee 100644 (file)
@@ -12,7 +12,7 @@
 \def\luatexjalatexLoaded{\endinput}
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ltj-latex}[2021-03-18 LaTeX support of LuaTeX-ja]
+\ProvidesPackage{ltj-latex}[2021-05-11 LaTeX support of LuaTeX-ja]
 
 \endlinechar=13
 
 
 \RequirePackage{lltjp-geometry}
 
+\def\ltj@@q@stop{\ltj@@q@stop}
 \ifdefined\ltj@stop@overwrite@primitive
   \begingroup
     \def\ltj@loop#1{%
-      \unless\ifx#1\@nil
+      \unless\ifx#1\ltj@@q@stop
         \escapechar-1
         \ifcsname ltj@@orig@\string#1\endcsname
           \ifcsname ltj@@\string#1\endcsname
         \let\ltj@@next\ltj@loop
       \else\let\ltj@@next\relax\fi\ltj@@next
     }%
-    \expandafter\ltj@loop\ltj@stop@overwrite@primitive\@nil
+    \expandafter\ltj@loop\ltj@stop@overwrite@primitive\ltj@@q@stop
   \endgroup
 \fi
+\def\ltj@overwrite@primitive#1{%
+  \begingroup
+    \def\ltj@loop##1{%
+      \unless\ifx##1\ltj@@q@stop
+        \escapechar-1
+        \edef\ltj@@next{\unexpanded{\let\ltj@@temp}\csname ltj@@\string##1\endcsname}\ltj@@next
+        \ifx\ltj@@temp\relax
+           \escapechar92
+           \PackageInfo{luatexja}{Cannot redefine \string##1, since it is not redefined\MessageBreak by LuaTeX-ja}%
+        \else\ifx\ltj@@temp##1
+           \escapechar92
+           \PackageInfo{luatexja}{No need to redefine \string##1, since it is not\MessageBreak
+             overwritten by packages other than LuaTeX-ja\MessageBreak}%
+        \else
+          \edef\ltj@@next{\unexpanded{\global\let##1}\csname ltj@@\string##1\endcsname}%
+           \escapechar92\PackageInfo{luatexja}{Redefining \string##1}\ltj@@next%
+        \fi\fi
+        \let\ltj@@next\ltj@loop
+      \else\let\ltj@@next\relax\fi\ltj@@next
+    }%
+    \ltj@loop#1\ltj@@q@stop
+  \endgroup
+}
 
 %%------------------ all done
 \ltj@latex@AtEnd
index 4d21bcf..9da3d62 100644 (file)
   end
 }
 \begingroup\catcode`\/=11
+\global\let\ltj@@orig@/=\/
 \protected\gdef\ltj@@/{\relax\luafunction\ltj@@italic@inner}
 \global\let\/\ltj@@/ %% PRIMITIVE
 \endgroup
diff --git a/test/test34-primitive.pdf b/test/test34-primitive.pdf
new file mode 100644 (file)
index 0000000..25c50dc
Binary files /dev/null and b/test/test34-primitive.pdf differ
index bf747e2..67faf9a 100644 (file)
@@ -1,13 +1,20 @@
 \makeatletter
-\def\ltj@stop@overwrite@primitive{\insert\vadjust}
+\def\ltj@stop@overwrite@primitive{\insert\vadjust\/\unhbox\vcenter\piyo}
 \makeatother
 
 \documentclass[landscape]{article}
 \usepackage[margin=10mm,centering]{geometry}
 
 \usepackage{luatexja}
+
+\def\vcenter{aaa}
+\makeatletter
+\ltj@overwrite@primitive{\/\vcenter\hoge\moveleft}
+
 \usepackage{breqn}
 
+\expandafter\expandafter\expandafter\ltj@overwrite@primitive\expandafter{\ltj@stop@overwrite@primitive}
+
 \begin{document}
 \ttfamily\parindent0pt\footnotesize
 \def\chk#1{%