gnuplot 和 babel Greek 错误

gnuplot 和 babel Greek 错误

在我的前言中,我使用babel加载希腊语以及txfontsb希腊字母包。为了使用 gnuplot 创建图,我在命令-synctex=1 -interaction=nonstopmode -enable-write18旁边使用了以下代码:。pdflatex

\documentclass[a4paper,11pt]{article}
\usepackage{pgfplots}
\usepackage{tkz-fct}
\usepackage{psfrag}
\usepackage[english,greek]{babel}
\usepackage[iso-8859-7]{inputenc}
\usepackage{amsmath}
\usepackage[T1]{fontenc}
 \usepackage{txfontsb}
\begin{document}
%Γράφημα
\begin{tikzpicture}[scale=1.25]
\tkzInit[xmin=-5,xmax=5,ymax=2]
\tkzGrid
\tkzAxeXY
\tkzFct[color=red]{2*x**2/(x**2+1)}
\end{tikzpicture}
\end{document}

当我禁用该\usepackage[english,greek]{babel}命令时%,一切都正常。但是当我使用它时,我收到以下错误:

Missing \endcsname inserted \tkzFct[color=red]{2*x**2/(x**2+1)}
Extra \fi \tkzFct[color=red]{2*x**2/(x**2+1)}
Extra \fi \tkzFct[color=red]{2*x**2/(x**2+1)}
Extra \fi \tkzFct[color=red]{2*x**2/(x**2+1)}
Extra \fi \tkzFct[color=red]{2*x**2/(x**2+1)}
Extra \endcsname \tkzFct[color=red]{2*x**2/(x**2+1)}
Missing \endcsname inserted \tkzFct[color=red]{2*x**2/(x**2+1)}
Extra \fi \tkzFct[color=red]{2*x**2/(x**2+1)}
Extra \fi \tkzFct[color=red]{2*x**2/(x**2+1)}
Extra \fi \tkzFct[color=red]{2*x**2/(x**2+1)}
Extra \endcsname \tkzFct[color=red]{2*x**2/(x**2+1)}
Missing $ inserted \tkzFct[color=red]{2*x**2/(x**2+1)}
Extra }, or forgotten $ \tkzFct[color=red]{2*x**2/(x**2+1)}
Extra \fi \tkzFct[color=red]{2*x**2/(x**2+1)}
Missing $ inserted \end{tikzpicture}
Missing } inserted \end{tikzpicture}
running in backwards compatibility mode (unsuitable tick labels; missing features). Consider writing \pgfplotsset{compat=1.11} into your preamble.
Overfull \hbox (41.38289pt too wide) in paragraph

我怎样才能让它们一起工作?

答案1

tkz-fct包用于制作内部标签,但在加载\alph时失败,因为(实际上是内部版本)被重新定义为产生希腊字母。babel-greek\alph\@alph

这应该被认为是 中的一个错误tkz-fct,但是有一个解决方法,尽管有点丑陋。

\documentclass[a4paper,11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\makeatletter
% save a copy of the original \@alph command
\let\latex@alph\@alph
% a command to (locally) restore the original \@alph command
\newcommand{\safealph}{\let\@alph\latex@alph}
\makeatother

\usepackage[english,greek]{babel}

\usepackage{pgfplots}
\usepackage{tkz-fct}
\usepackage{amsmath}

\begin{document}
%Γράφημα
\begin{tikzpicture}[scale=1.25]
\safealph
\tkzInit[xmin=-5,xmax=5,ymax=2]
\tkzGrid
\tkzAxeXY
\tkzFct[color=red]{2*x**2/(x**2+1)}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容