Thmtools 与 tkz-euclide 冲突

Thmtools 与 tkz-euclide 冲突

我无法同时使用这两个包thm工具tkz-euclide

以下是使用“pdfTeX,版本 3.14159265-2.6-1.40.18”的最小非工作示例:

\documentclass{article}

\usepackage{thmtools}
\usepackage{tkz-euclide}

\begin{document}
a
\end{document}

这种给予

/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty:433: Extra \endc
sname.
\kv@processor@default ...fincsname\@xa \endcsname 
                                                  \csname iftrue\endcsname \...
l.433 }
/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty:433:  ==> Fatal 
error occurred, no output PDF file produced!

以下是使用“XeTeX,版本 3.14159265-2.6-0.99998”的最小非工作示例:

\usepackage{amsmath}
\usepackage{thmtools}
\usepackage{tkz-euclide}

\newtheorem{thm}{Theorem}

\begin{document}
a
\end{document}

这种给予

.test.tex.swp:8: LaTeX Error: Missing \begin{
document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.8 

No pages of output.

答案1

改变加载顺序是不够的。正如tkz-fct 和 thmtools 之间有冲突吗?,这会中断tkz-euclide

这是一个有效的补丁。

\documentclass{article}

\usepackage{tkz-euclide}
\usepackage{thmtools}
\usepackage{etoolbox}

\makeatletter
%%% patch tkz-tools-base.tex
\let\tkz@g@xa\tkz@init@xmin % don't undef \@xa or thmtools will be upset
\let\tkz@g@xb\tkz@init@xmax\undef\@xb
\let\tkz@g@ya\tkz@init@ymin\undef\@ya
\let\tkz@g@yb\tkz@init@ymax\undef\@yb
\patchcmd{\tkz@Init}
 {\global\let\@xa\tkz@init@xmin
  \global\let\@xb\tkz@init@xmax
  \global\let\@ya\tkz@init@ymin
  \global\let\@yb\tkz@init@ymax}
 {\global\let\tkz@g@xa\tkz@init@xmin
  \global\let\tkz@g@xb\tkz@init@xmax
  \global\let\tkz@g@ya\tkz@init@ymin
  \global\let\tkz@g@yb\tkz@init@ymax}
 {}{}
\patchcmd{\tkz@Grid}
 {(\@xa,\@ya)(\@xb,\@yb)}
 {(\tkz@g@xa,\tkz@g@ya)(\tkz@g@xb,\tkz@g@yb)}
 {}{}
\makeatother

\newtheorem{thm}{Theorem}

\begin{document}
a
\end{document}

相关内容