在 WinEdt 中将 bodegraph 与 XeLaTeX 结合使用不会更新 bode 图

在 WinEdt 中将 bodegraph 与 XeLaTeX 结合使用不会更新 bode 图

在下面给出的简单代码中,bode 图没有使用 进行绘制。我确实在控制台窗口中XeLaTeXify放入了:--shell-escape -enable-write18XeLaTeX

在此处输入图片描述 然而,我只看到了网格,没有看到情节。

我确实gnuplot在 WinEdt 路径中看到了。

你能告诉我它是否bodegraph适用于XeLaTeXify吗?如果可以,你能告诉我如何XeLaTex在 WinEdt 中编译此代码吗?谢谢!

代码:

\documentclass[10pt]{article}
\usepackage{amsmath,amssymb}

\usepackage{tikz}
\usepackage{bodegraph}

\usetikzlibrary{intersections}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}


\begin{document}

\begin{tikzpicture}[>=latex',
    ref lines/.style={thin, blue!60},
    ref points/.style={circle, black, opacity=0.7, fill, minimum size= 3pt, inner sep=0},
    every node/.style={font=\small},
    bode lines/.style={very thick, blue},
    Gclabel/.style={text=blue},
    xscale=12/3]
%
\begin{scope}[yshift=-3.5cm,yscale=4/80]
\UnitedB
\semilog{-2}{2}{-60}{80}

%% Bode plot (magnitude) for the original system, 4/(s/(1+2s)).
%% Asymptotic line
\BodeAmp[ref lines, red!60]{-1:1.8}{\POAmpAsymp{18}{2.0}+\IntAmp{1}}
%% Bode plot
\BodeAmp[bode lines, black, name path=Gomagnitude]{-1:1.35}{\POAmp{4}{2.0}+\IntAmp{1}}

%
% Axes label
\node [below=6pt] at (0.5,-60) {Frequency, $\omega$};
\node [rotate=90] at (-2.2,5) {Magnitude, $20\log(|G(\text{j}\omega)|)$};


\end{scope}

\end{tikzpicture}

\end{document} 

答案1

一点背景知识:什么是PDFTexify

PDFTexify 是一个 WinEdt 命令而不是编译器的名称。它texify.exe通过运行 LaTeX 编译器来模仿 MiKTeX 附件的行为,其默认值pdflatex.exe如下图所示:

在此处输入图片描述

与其他处理参考书目、索引、词汇表等的程序一起,以获得完全编译的文档(如果您安装了所需的插件,它还会编译 Asymptote 图形、PythonTeX 代码等)。

编译书目的默认引擎bibtex.exe如下图所示:

在此处输入图片描述

编译器的名称存储在名为的环境变量中,PDFLATEX而其他编译器的名称则存储在 WinEdt 变量中,例如BibTeX-Executable书目编译器。


一点背景知识:什么是XeLaTexify

XeLaTexify 也是一个 WinEdt 命令,安装插件后可用LaTeXify哪个(摘自插件文档):

XeLaTeXify (使用 XeLaTeX 引擎运行 Biber 和 PDFTeXify

捷径:Ctrl+Alt+E

这是其在MainMenu.ini配置脚本中的定义:

ITEM="XeLaTeXify"
  CAPTION="&XeLaTeXify"
  IMAGE="TeXXeLaTeXify"
  SAVE_INPUT=1
  MACRO=`Assign("Old-BibTeX-Executable","%$('BibTeX-Executable');");`+
        `Assign("BibTeX-Executable","biber.exe");`+
        `Assign("OLD-PDFLATEX","%@('PDFLATEX');");`+
        `SetEnvVar("PDFLATEX","xelatex.exe");`+
        `Exe('%b\Exec\TeX\PDFTeXify.edt');`+
        `Assign("BibTeX-Executable","%$('Old-BibTeX-Executable');");`+
        `Release("Old-BibTeX-Executable");`+
        `SetEnvVar("PDFLATEX","%$('OLD-PDFLATEX');");`+
        `Release("OLD-PDFLATEX");`
  SHORTCUT="49221::Ctrl+Alt+E"
  REQ_FILTER=:"%!M=TeX"|"%!M=TeX:STY"|"%!M=TeX:AUX"

这是什么意思?

XeLaTeXify命令是 WinEdt 命令的包装器,PDFTeXify它将环境变量设置PDFLATEX为值xelatex.exe,并将内部变量BibTeX-Executable设置为值biber.exe 调用命令PDFTeXify本身(这些值在执行后恢复)。

换句话说,当你点击按钮时,XeLaTeXify你正在运行

  • 赛莱特

  • 比伯

  • (最终)其他编译器如 makeindex、makeglossaries 等。

  • xelatex(如果需要的话再来一次)

  • biber (如果需要的话再说一次)

  • xelatex(如果需要的话再来一次)

整个过程由宏处理PDFTeXify,由 调用XeLaTeXify


结论和问题的答案

作为XeLaTeXify一个包装器PDFTeXify,这意味着如果您想修改其行为(如添加命令行开关),就像您的情况一样,您必须PDFTeXify在“执行模式”对话框中修改命令的属性。

在此处输入图片描述

答案2

@koleygr 的评论为我指明了解决方案。随着 引擎的XeLaTeXify运行,将 放在标签下有助于解决问题。根据 @koleygr 的说法,我们还需要包括BiberPDFTeXifyXeLaTeX--shell-escapePDFTeXify

\usepackage{polyglossia} 
\setmainlanguage{english} 
\usepackage{avant}
\usepackage{microtype}

此外,根据 @Ulrike Fischer 的评论,我们只需要将其放在--shell-escapePDFTeXify。以下是 的更新PDFTeXify

在此处输入图片描述

完整代码如下:

\documentclass[10pt]{article}
\usepackage{polyglossia} 
\setmainlanguage{english} 
\usepackage{avant}
\usepackage{microtype}

\usepackage{amsmath,amssymb}

\usepackage{tikz}
\usepackage{bodegraph}

\usetikzlibrary{intersections}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}


\begin{document}

\begin{tikzpicture}[>=latex',
    ref lines/.style={thin, blue!60},
    ref points/.style={circle, black, opacity=0.7, fill, minimum size= 3pt, inner sep=0},
    every node/.style={font=\small},
    bode lines/.style={very thick, blue},
    Gclabel/.style={text=blue},
    xscale=12/3]
%
\begin{scope}[yshift=-3.5cm,yscale=4/80]
\UnitedB
\semilog{-2}{2}{-60}{80}

%% Bode plot (magnitude) for the original system, 4/(s/(1+2s)).
%% Asymptotic line
\BodeAmp[ref lines, red!60]{-2:1.8}{\POAmpAsymp{18}{2.0}+\IntAmp{1}}
%% Bode plot
\BodeAmp[bode lines, black, name path=Gomagnitude]{-1:1.35}{\POAmp{4}{2.0}+\IntAmp{1}}

%
% Axes label
\node [below=6pt] at (0.5,-60) {Frequency, $\omega$};
\node [rotate=90] at (-2.2,5) {Magnitude, $20\log(|G(\text{j}\omega)|)$};

\end{scope}

\end{tikzpicture}

\end{document}

相关内容