latex->dvips->ps2pdf

latex->dvips->ps2pdf

我正在写一篇科学论文,最近我从使用 TeX Live 的 Ubuntu 转移到了 Mac OS。我的文档被分成了更多的.tex文件,以便于处理。使用我的旧 latex 机器,我没有遇到任何问题,我的 pdf 按照预期生成。

现在,我在 tex 源上有一个未定义的控制序列,其中使用了在根文件上定义的命令。我首先检查的是是否已正确安装了所有需要的软件包,但似乎没有遗漏任何东西。我的源代码如下所示。

主文本

[ ... ]
\usepackage{graphicx}
\usepackage{pst-all}
\newcommand{\mycircle}[1]{\pscirclebox{\ensuremath{#1}}}
[ ... ]
\begin{document}

\input{auxiliary}

辅助.tex

\chapter{Elements of something }
Whatever.
\section{Whatever}
\begin{figure}
\centering
\begin{psmatrix}[colsep=2cm,rowsep=3cm]
        & \mycircle{S_2}    &   \\
\mycircle{S_1}  &           & \mycircle{S_3} 
\psset{arrows=->,labelsep=3pt,nodesep=3pt}
\ncarc[arcangle=-20]{1,2}{2,1}\ncput*{$0.2$}
\ncarc[arcangle=-20]{2,1}{1,2}\ncput*{$0.3$}
\ncarc[arcangle=-20]{2,3}{2,1}\ncput*{$0.1$}
\ncarc[arcangle=-20]{2,1}{2,3}\ncput*{$0.1$}
\ncarc[arcangle=-20]{2,3}{1,2}\ncput*{$0.7$}
\ncarc[arcangle=-20]{1,2}{2,3}\ncput*{$0.3$}
\nccircle{->}{1,2}{.6cm}\ncput*{$0.5$}
\nccircle[angleA=120]{->}{2,1}{.6cm}\ncput*{$0.6$}
\nccircle[angleA=240]{->}{2,3}{.6cm}\ncput*{$0.2$}
\end{psmatrix}
\vspace{0.8cm}
\caption{Bla bla.}
\label{fig:weather}
\end{figure}

\mycircle我收到的是指向的未定义控制序列auxiliary.tex。有人知道我应该如何解决这个问题吗?我不明白为什么没有差异的相同文档可以在其他 latex 发行版上运行。

答案1

pstricks及其软件包在编译时需要小心。您可以使用xelatex或例程latex->dvips->ps2pdf;您可以使用pdflatex,但您必须正确询问,详见如何在 pdfLaTeX 中使用 PSTricks?

据推测,您的旧设置默认使用其中一个编译序列。

这是模拟成完整 MWE 的代码 - 注意我使用了arara帮助实现自动化的工具 - 只需运行

arara main

获取 pdf

latex->dvips->ps2pdf

% arara: latex
% arara: dvips
% arara: ps2pdf
\documentclass{report}

\usepackage{pst-all}
\newcommand{\mycircle}[1]{\pscirclebox{\ensuremath{#1}}}
\begin{document}

\input{auxiliary}

\end{document}

xelatex

% arara: xelatex
\documentclass{report}

\usepackage{pst-all}
\newcommand{\mycircle}[1]{\pscirclebox{\ensuremath{#1}}}
\begin{document}

\input{auxiliary}

\end{document}

pdflatex

% arara: pdflatex: {shell: yes}
\documentclass{report}

\usepackage[pdf]{pstricks}
\usepackage{pst-all}
\newcommand{\mycircle}[1]{\pscirclebox{\ensuremath{#1}}}
\begin{document}
\input{auxiliary}

\end{document}

我沒有變化auxilary.tex

如果你不想使用arara,那么你必须使用命令行来运行命令,或者通过告诉你的编辑器/开发环境正确的命令 -arara使这一切很多更轻松。

相关内容