Я пытаюсь преобразовать свою диссертацию в pdfLaTeX
, так как latex
+ dvips
ведет себя ужасно, когда дело доходит до разрыва (очень длинных) URL-адресов... Я использую последнюю версию TeXLive 2012 на Linux.
Единственная проблема (пока что) заключается в том, что я активно использовал pstricks
и связанные с ними пакеты, и мне не удалось заставить их нормально работать pdfLaTeX
(см. мои рисунки) при взаимодействии между различными pspicture
средами (иногда я также использую это, чтобы иметь текст, непосредственно связанный с рисунками ниже):
latex
+ dvips
+ ps2pdf
(гс)
pdflatex
(стрелка отсутствует)
Код для примера выше:
\documentclass[12pt]{scrbook}
\PassOptionsToPackage{pdf}{pstricks} %used for pdflatex
\usepackage{pstricks,pst-plot,pst-node,pst-func}
\begin{document}
\begin{pspicture}(-1.5,0)(1.5,4)
\psTextFrame[ref=c,linestyle=none](-1.5,3)(1.5,4){First Plot}
\psplot[fillcolor=blue!30,fillstyle=solid,opacity=0.5]{-1.5}{1.5}{x 0 0.3 GAUSS}
\psaxes[labels=none,ticks=none]{->}(-1.5,0)(1.5,3)
\pnode(1.5,0.5){A}
\end{pspicture}
\vspace{5mm}
\begin{pspicture}(-1.5,0)(1.5,4)
\psTextFrame[ref=c,linestyle=none](-1.5,3)(1.5,4){Second Plot}
\psplot[fillcolor=blue!30,fillstyle=solid,opacity=0.5]{-1.5}{1.5}{x 0 0.6 GAUSS}
\psaxes[labels=none,ticks=none]{->}(-1.5,0)(1.5,3)
\pnode(1.5,0.5){B}
\nccurve{->}{A}{B}
\end{pspicture}
\end{document}
решение1
Несколько pspicture
сред, как абзацы, могут быть инкапсулированы средой postscript
:
\documentclass[12pt]{scrbook}
\PassOptionsToPackage{pdf}{pstricks} %used for pdflatex
\usepackage{pstricks,pst-plot,pst-node,pst-func}
\begin{document}
\begin{postscript}%%%%%%%%%%%%%%
\begin{pspicture}(-1.5,0)(1.5,4)
\psTextFrame[ref=c,linestyle=none](-1.5,3)(1.5,4){First Plot}
\psplot[fillcolor=blue!30,fillstyle=solid,opacity=0.5]{-1.5}{1.5}{x 0 0.3 GAUSS}
\psaxes[labels=none,ticks=none]{->}(-1.5,0)(1.5,3)
\pnode(1.5,0.5){A}
\end{pspicture}
\begin{pspicture}(-1.5,0)(1.5,4)
\psTextFrame[ref=c,linestyle=none](-1.5,3)(1.5,4){Second Plot}
\psplot[fillcolor=blue!30,fillstyle=solid,opacity=0.5]{-1.5}{1.5}{x 0 0.6 GAUSS}
\psaxes[labels=none,ticks=none]{->}(-1.5,0)(1.5,3)
\pnode(1.5,0.5){B}
\nccurve{->}{A}{B}
\end{pspicture}
\end{postscript}%%%%%%%%%%%%%%
\end{document}
который будет обработан как единое изображение. Мой pdflatex
вывод:
Внутри postscript
окружения может быть что угодно, кроме разрыва страницы. Оно всегда будет обрабатываться как графика, которая сохраняется в <file>-pics.pdf
, по одной странице на изображение (если у вас больше окружений).
решение2
Метод 1 (если вы настаиваете на использовании pdflatex)
Когда мы используем pdflatex для компиляции кода PSTricks, узлы должны находиться на одной физической странице вспомогательного PDF-файла, созданного в фоновом режиме.
Ваш исходный код делает так, что первая и вторая цифры находятся на разных физических страницах. А именно, первая находится на странице, x
а другая — на странице, y
где x=/=y
.
Чтобы сделать их на одной физической странице, мы можем поместить их в другую pspicture
как контейнер. Смотрите мой код ниже для деталей.
\documentclass[12pt]{scrbook}
\PassOptionsToPackage{pdf}{pstricks} %used for pdflatex
\usepackage{pstricks,pst-plot,pst-node,pst-func}
\begin{document}
\begin{pspicture}(-1.5,-4.25)(1.5,4.25)
\rput[b](0,0.25){%
\begin{pspicture}(-1.5,0)(1.5,4)
\psTextFrame[ref=c,linestyle=none](-1.5,3)(1.5,4){First Plot}
\psplot[fillcolor=blue!30,fillstyle=solid,opacity=0.5]{-1.5}{1.5}{x 0 0.3 GAUSS}
\psaxes[labels=none,ticks=none]{->}(-1.5,0)(1.5,3)
\pnode(1.5,0.5){A}
\end{pspicture}}
%
\rput[t](0,-0.25){%
\begin{pspicture}(-1.5,0)(1.5,4)
\psTextFrame[ref=c,linestyle=none](-1.5,3)(1.5,4){Second Plot}
\psplot[fillcolor=blue!30,fillstyle=solid,opacity=0.5]{-1.5}{1.5}{x 0 0.6 GAUSS}
\psaxes[labels=none,ticks=none]{->}(-1.5,0)(1.5,3)
\pnode(1.5,0.5){B}
\nccurve{->}{A}{B}
\end{pspicture}}
\end{pspicture}
\end{document}
Метод 2 (если вы готовы использовать xelatex)
Не изменяя исходный код, просто скомпилируйте его с помощью xelatex
. Готово!