使用 pdflatex 而不是 xelatex 运行 msc 包

使用 pdflatex 而不是 xelatex 运行 msc 包

我在用硕士用于构建序列图的 Latex 包,但我只能用 Xelatex 来运行它,我不喜欢它,但显然这是可能的如果我使用以下命令运行 pdflatex,则可以使用它:

pdflatex -shell-escape <file>选项。

但是我正在使用 Vim-Latex,我应该在哪里指定此选项?我不明白。

这是我的 vimrc:

let g:Tex_DefaultTargetFormat='pdf'
function CompileXeTex()
    let oldCompileRule=g:Tex_CompileRule_pdf
    let g:Tex_CompileRule_pdf = 'xelatex -aux-directory=F:/Vim/my_latex_doc/temp --synctex=-1 -src-specials -interaction=nonstopmode $*'
    call Tex_RunLaTeX()
    let g:Tex_CompileRule_pdf=oldCompileRule
endfunction

附言说最新的 msc 版本所有 PSTricks 依赖项都已被删除,但我下载了该版本,并用它代替旧版本,但在使用 pdflatex 运行时仍然出现这样的错误:

error| Undefined control sequence. \c@lor@to@ps

所以我猜这仍然取决于 PSTricks。或者除非更改 msc.sty 还不够?我只是将文件的内容更改为新版本。

所以我的目标是用 Pdflatex 而不是 Xelatex 来运行它

我的代码:

\documentclass[a4paper,11pt]{article}
\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{eurosym}
\usepackage{wasysym}
\usepackage{todonotes}
\usepackage{geometry}
\usepackage{enumitem}
\usepackage{ulem}
\usepackage{msc}
\usepackage[pdf]{pstricks}
\title{aaa}
\author{aaaaa}

\begin{document}
\normalsize
\maketitle
\tableofcontents
\newpage
\section{In}

\section{aa}
\subsection{}

\begin{center}
\begin{msc}{Deactivate cc}
\setlength{\instdist}{9cm}
\setlength{\envinstdist}{2\envinstdist}
\declinst{cc}{}{C}
\declinst{tt}{}{T}
\nextlevel
\mess{NonceC}{cc}{tt}
\nextlevel[2]
\mess{\{$pu_C$, $[byebye]_{pr_C}\}_{pu_T}$}{cc}{tt}
\end{msc}
\end{center}


\end{document}

编辑:我补充道:

let g:Tex_CompileRule_pdf = 'pdflatex -interaction=nonstopmode -shell-escape $*'

按照建议添加到我的 vimrc 中,但我仍然收到 PSTricks 错误:

error| Option clash for package pstricks.

答案1

使用方式如下:PSTricks运行时不应加载使用 的包pdflatex,当然运行时tikz也不todonotes应加载latex。我的示例使用的postscript环境如下:

\documentclass[a4paper,11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{eurosym}
\usepackage{wasysym}
\usepackage{geometry}
\usepackage{enumitem}
\usepackage{ulem}
\usepackage{auto-pst-pdf}
\ifpdf
  \usepackage{todonotes}
  \usepackage{tikz}
  \usetikzlibrary{arrows,automata}
\else
  \usepackage{msc}
\fi
\title{aaa}
\author{aaaaa}

\begin{document}
\maketitle
\tableofcontents
\newpage
\section{In}

\section{aa}
\subsection{b}

\begin{center}
\begin{postscript}
\begin{msc}{Deactivate cc}
\setlength{\instdist}{5cm}
\setlength{\envinstdist}{2\envinstdist}
\declinst{cc}{}{C}
\declinst{tt}{}{T}
\nextlevel
\mess{NonceC}{cc}{tt}
\nextlevel[2]
\mess{\{$pu_C$, $[byebye]_{pr_C}\}_{pu_T}$}{cc}{tt}
\end{msc}
\end{postscript}
\end{center}

\subsection{e}

\begin{center}
\begin{tikzpicture}[>=stealth',shorten >=1pt,auto,node distance=4cm]
  \node[initial,state,accepting] (deact)      {$D$};
  \node[state]         (init) [right of=deact]  {$d$};


  \path[->] (deact) edge              node {issue} (init)
        (init) edge [bend left]  node {block} (deact);
\end{tikzpicture}
\end{center}

\end{document}

在此处输入图片描述

答案2

或者你也可以使用开发版本msc.sty这里,(从官方网站最底部链接,这里),将该文件放入您正在编译的目录中,它将直接编译为 PDF,没有问题。

相关内容