XeLaTeX 和 Pstricks 的问题

XeLaTeX 和 Pstricks 的问题

我正在写一本数学书,用 XeLaTeX 编译时收到此错误消息。

(/usr/share/texmf/tex/latex/pstricks/pstricks.sty
Package: pstricks 2013/12/12 v0.60 LaTeX wrapper for `PSTricks' (RN,HV)
! Undefined control sequence.
l.64 \ifnum\pdfshellescape
=\@ne\else
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.
! Missing number, treated as zero.
<to be read again>
=
l.64 \ifnum\pdfshellescape=
\@ne\else
A number should have been here; I inserted `0'.
(If you can't figure out why I needed to see a number,
look up `weird error' in the index to The TeXbook.)

我需要使用 XeLaTeX 进行编译,因为我必须使用一些 ttf 字体,而且我读到使用 XeLaTeX 更简单(在 LaTeX 中使用 ttf 字体)。但是,首先,我需要使用 Pstricks 和 XeLaTeX 解决这个问题。

Pstricks 和 XeLaTeX 有什么问题?

这是我的序言

\documentclass[letterpaper,reqno]{book}
\usepackage{makeidx}
\usepackage[spanish,es-nosectiondot]{babel}
\usepackage[utf8]{inputenc}
\usepackage{color}
\usepackage{verbatim} %Para comentar bloques de texto
\usepackage[text={168mm,240mm},centering]{geometry}%Define el ancho y la altura del texto (Página)
\usepackage{amssymb,amsmath,amsthm}
\usepackage{epsfig,graphicx,psfrag,float}
%\makeatletter
%\chardef\pdf@shellescape=1
%\makeatother
\usepackage[pdf]{pstricks}
\usepackage{pstricks-add,pst-math,pst-xkey,pst-pdf,auto-pst-pdf}
\usepackage[all]{xy}
\usepackage{enumerate}
\usepackage{hyperref}

注意: 1. 我在 Opensuse Leap 42.2 中使用 TeXmaker 2. 我已经安装了 xetex-pstricks 包和几乎所有的 pstricks 包。

现在我将与您分享主文件的代码、章节示例和两个 pdf 输出:一个是在没有 pstrick 图像的情况下编译后的,另一个是在使用图像进行编译后的。

\documentclass[letterpaper,reqno,14pt]{book}
\listfiles
\usepackage{makeidx}
\usepackage[spanish,es-nosectiondot]{babel}
\usepackage[utf8]{inputenc}
\usepackage{fontspec}
\usepackage{infwarerr}
\usepackage{color}
\usepackage{verbatim} %Para comentar bloques de texto
\usepackage[text={168mm,240mm},centering]{geometry}%Define el ancho y la     altura del texto (Página)
\usepackage{amssymb,amsmath,amsthm}
\usepackage{epsfig,graphicx,psfrag,float}
\usepackage{geometry}
\usepackage{ltxcmds}
\usepackage[pdf]{pstricks}
\usepackage{pstricks-add,pst-math,pst-xkey,pst-pdf,auto-pst-pdf}
\usepackage[all]{xy}
\usepackage{tocloft}% Este paquete modifica los parámetros de la Tabla de     Contenidos (ToC)
\usepackage{fancyhdr}
\usepackage{titlesec}
\usepackage{sectsty}
\usepackage{enumerate}
\usepackage{hyperref}
\usepackage{lipsum}

\makeindex

\setmainfont{georgia.TTF}[
Path=/usr/share/fonts/Win10/,
BoldItalicFont=georgiaz.TTF,
BoldFont      =georgiab.TTF,
ItalicFont    =georgiai.TTF]

\newfontfamily\myfont{calibri.TTF}[
Path=/usr/share/fonts/Win10/,
BoldItalicFont=calibriz.TTF,
BoldFont      =calibrib.TTF,
ItalicFont    =calibrii.TTF]

\renewcommand{\cftchappresnum}{Capítulo }%Aparece "Capítulo" antes del  número correspondiente
\renewcommand{\cftchapaftersnum}{}%Lo que aparece después de "Capítulo n"
\renewcommand{\cftchapaftersnumb}{\\ }%Cambio de línea para que el Chapter    name quede en otra línea
\renewcommand{\cftchapnumwidth}{0mm}

\pagestyle{myheadings}
\renewcommand{\chaptermark}[1]{\markboth{Álgebra lineal con el uso de MATLAB}{\chaptername\ \thechapter.\ #1}}

\titleformat{\chapter}[display]{\huge\myfont}{\chaptertitlename\ \thechapter}{20pt}{\Huge}
\allsectionsfont{\myfont}

\newtheoremstyle{theorem}% name
{3pt}%      Space above
{3pt}%      Space below
{\itshape}%         Body font
{}%         Indent amount (empty = no indent, \parindent = para indent)
{\bfseries}% Thm head font
{}%        Punctuation after thm head
{.5em}%     Space after thm head: " " = normal interword space;
    %       \newline = linebreak
{}%         Thm head spec (can be left empty, meaning `normal')
\theoremstyle{theorem}
\newtheorem{theorem}{Teorema}

\begin{document}

\pagenumbering{roman}
\tableofcontents
%\newpage
\pagenumbering{arabic}
% si no queremos que añada la palabra "Capitulo"
\addcontentsline{toc}{chapter}{Prefacio}

\include{EnsayoPrefacio}
%\markboth{Algebra}{}
\include{Ensayos} % si queremos que aparezca en el índice

\include{Index}

\printindex

\end{document}

第一章代码是

\chapter{Prefacio}\label{Ensayoprefacio}
\lipsum[1-5]
\newpage
\lipsum[6-10]
\newpage
\lipsum[11-6]

第二章代码是(没有 pstricks 图像)

\chapter{Álgebra de matrices}\label{Ensayos}
\lipsum[1-2]
\begin{equation}
x=vt+x_0
\end{equation}
\newpage
\lipsum[3-8]
\newpage
\section{Para ensayar}
\lipsum[9-15]
\begin{theorem}
\lipsum[15]
\end{theorem}

此代码产生此输出 在此处输入图片描述

下面是 pstricks 的图片

\begin{center}
%\centering
\newrgbcolor{xdxdff}{0.49 0.49 1}
       \psset{xunit=0.75cm,yunit=0.75cm,algebraic=true,dotstyle=o,dotsize=3pt,linewidth=0.8pt,arrowsize=3pt,arrowinset=0.25}
\begin{pspicture*}(-3.08,-3.42)(18.24,2.56)
\psline{->}(0,0)(-3,0)
\psline{->}(0,0)(3,0)
\psline{->}(0,0)(0,2.46)
\psline[linecolor=red]{->}(-0.02,0.39)(2.42,-1.47)
\psline[linecolor=red]{->}(-0.02,0.39)(-1.64,1.62)
\psline[linecolor=blue]{->}(-0.02,0.39)(2.06,1.62)
\psline[linecolor=blue]{->}(-0.02,0.39)(-2.47,-1.06)
\psline{->}(7.54,0)(4.48,0)
\psline{->}(7.54,0)(10.54,0)
\psline{->}(7.54,0)(7.54,2.26)
\psline{->}(7.54,0)(7.54,-2.28)
\psline{->}(15,0)(15,2.25)
\psline{->}(15,0)(15,-2.25)
\psline{->}(15,0)(12,0)
\psline{->}(15,0)(18,0)
\psline[linecolor=blue]{->}(7.54,0.63)(10.24,1.72)
\psline[linecolor=blue]{->}(7.54,0.63)(5.1,-0.35)
\psline[linecolor=red]{->}(7.54,-0.82)(10.19,0.25)
\psline[linecolor=red]{->}(7.54,-0.82)(5.22,-1.75)
\psline[linecolor=blue]{->}(15,0.56)(17.74,1.93)
\psline[linecolor=blue]{->}(15,0.56)(12.4,-0.74)
\rput[tl](-0.94,-2.44){\index{Solución única}Solución única}
\rput[tl](6.6,-2.44){\index{Solución vacía}Solución vacía}
\rput[tl](13,-2.42){\index{Infinitas soluciones}Infinitas soluciones}
\rput[tl](3,-3.02){Figura 1.1: Intersección de rectas en un plano}
\psline{->}(0,0)(0,-2.26)
\psline[linecolor=red]{->}(15,0.51)(17.75,1.89)
\psline[linecolor=red]{->}(15,0.51)(12.45,-0.77)
\begin{scriptsize}
\psdots[dotstyle=*,linecolor=blue](-0.02,0.39)
\end{scriptsize}
\end{pspicture*}
\end{center}

产生这个输出 在此处输入图片描述

感谢您的帮助。

答案1

我可以用一种简单的方法解决我的问题:我只需使用 PDFTeX 进行编译即可获得 pstricks 制作的图片。然后,我用 Inkscape 编辑每一张图片,最后用图形环境将它们包含到我的书中。谢谢你的帮助。

相关内容