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 編輯了每個圖像,最後,我將它們包含在我的書中的圖形環境中。感謝您的幫助。

相關內容