即使修复错误后,TeXstudio 中的控制序列仍未定义

即使修复错误后,TeXstudio 中的控制序列仍未定义

我在 Windows 10 中使用 TexStudio 编写文本。我最近将 MikTeX 和 TeXstudio 都更新到了最新版本。更新后,之前运行的 tex 文件开始出现错误

Undefined control sequence. ...raphics[width=0.45\textwidth]{network.eps}

然后,我发现了以下问题

未定义控制序列 \includegraphics

TeXstudio 更新后出现“未定义的控制序列 \includegraphics”

问题的根源似乎相同,但其中建议的解决方案不起作用。我意识到该问题只发生在 eps 文件中,如果我包含epstopdf该问题,问题似乎就解决了。

但是,之前 latex 在没有调用 epstopdf 的情况下运行正常。我该如何在没有 的情况下修复此问题\usepackage{epstopdf}?请参阅下面的完整代码

\documentclass[conference]{IEEEtran}

\usepackage{graphicx}
%\usepackage{epstopdf}

\begin{document}
\section{Introduction}

test

\begin{figure}[!htb]
    \centering
    \includegraphics[width=0.45\textwidth]{network.eps}
\end{figure}

\end{document}

更新

实际的日志信息如下

("C:\Users\XXX\AppData\Local\Programs\MiKTeX 2.9\tex/latex/epstopdf-pkg\ep
stopdf-base.sty"
Package: epstopdf-base 2019-12-09 v2.10 Base part for package epstopdf
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
85.
)
! Undefined control sequence.
\ETE@program@epstopdf ->\epstopdf@sys@cmd 

l.13 ...raphics[width=0.45\textwidth]{network.eps}

The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

Package epstopdf Info: Source file: <network.eps>
(epstopdf)                    date: 2019-03-28 04:44:41
(epstopdf)                    size: 141038 bytes
(epstopdf)             Output file: <network-eps-converted-to.pdf>
(epstopdf)             Command: < --outfile=network-eps-converted-to.pdf networ
k.eps>
(epstopdf)             \includegraphics on input line 13.
runsystem( --outfile=network-eps-converted-to.pdf network.eps)...disabled (rest
ricted).

Package epstopdf Info: Result file: <network-eps-converted-to.pdf>.

答案1

epstopdf-base目前假设存在一个文件epstopdf-sys.cfg,该文件设置了一个系统命令来将 EPS 文件从外部转换为 PDF。

在 texlive 中这是

/usr/local/texlive/2019/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg

但显然 miktex 没有设置这个默认值。

包裹不好需要无论如何,一个 cfg 文件,所以我将更新,epstopdf-base因此默认命令是epstopdf

texlive 的 cfg 文件仍然会覆盖这个,就像现在一样,并将默认值设为,repstopdf除非您使用--shell-escape,在这种情况下它将被设置为epstopdf(MikTeX 显然不会做出这种区分)。

直到软件包更新为止(更新于来源),你可以使用

\makeatletter \def\epstopdf@sys@cmd{epstopdf} \makeatother

相关内容