"TeX в ИММ"
Q:Как получить прямой интеграл ?


\documentclass{article}

%% Определяем свой шрифт "lsumb"
\DeclareSymbolFont{lsymb}{U}{euex}{m}{n}
%% Определяем интегралы
\DeclareMathSymbol{\intop}{\mathop}{lsymb}{"52}
\DeclareMathSymbol{\ointop}{\mathop}{lsymb}{"48}
\DeclareMathSymbol{\smallint}{\mathop}{lsymb}{"52}

\begin{document}

%% Пример
$\smallint \int \oint$
$$ \int \oint$$

\end{document}

Q: Как получить зеркальное отражение страницы:

PostScript, создаваемый dvips имеет одну особенность: В начале страницы выполняется "bop-hook". Так что дописываем в начало PostScript файла:

/bop-hook{596 0 translate -1 1 scale}def

А можно дописать в начало PostScript файла:

<</BeginPage {596 0 translate -1 1 scale}>>setpagedevice

Кстати, подобным способом можно наносить на страницы "водяные знаки": Эта команда:


<</BeginPage
{gsave 144 72 moveto 72 72 lineto 72 144 lineto stroke grestore}
>>setpagedevice

поместит в левый нижний угол, в дюйме от сторон листа, "уголок".

Q: Как напечатать "тетрадкой" ?

Сделать file.ps а потом:


pstops 4:0L@0.707(21cm,14.85cm)+-3L@0.707(21cm,0cm) file.ps 1.ps
pstops 4:-2L@0.707(21cm,14.85cm)+1L@0.707(21cm,0cm) file.ps 2.ps

1.ps - одна сторона листа, а 2.ps - другая.

Если надо несколько тетрадок - file.ps можно разрезать на части при помощи psselect:

psselect -p1-10 file.ps

вырежет первые десять страниц.

Q: У pstops слишком мало возможностей. Что делать, если я хочу разложить страницы по листу более хитрым образом?

У PostScript, создаваемого dvips есть определенная структура:

От начала файла до %%Page: - "подпрограммы" Между %%Page: и следующей %%Page: - содержимое страницы Между %%Page: и %%Trailer - последняя страница. В конце страницы есть команда "showpage" (она спрятана внутри eop) Размеры страницы указаны после %%BoundingBox:

Итак, если, например, мы хотим напечатать вторую страницу вверх ногами и поверх первой, то делаем файл:


-------------------------------------------------------
/Myshowpage{showpage} bind def %Определяем свою showpage
/showpage{}def                 %обезвреживаем старую

сюда вставляем "подпрограммы"

gsave

сюда вставляем содержимое первой страницы


grestore
gsave
596 842 translate 180 rotate  % сдвигаем и поворачиваем
                              % начало координат

сюда вставляем содержимое второй страницы

grestore


Myshowpage                    % "Проявляем" изображение.
--------------------------------------------------------

Естественно, это надо делать не руками а скриптом (например,


sed -n "/%%Page: 1/,/%%Page: 2/ p" file.ps

вытащит первую страницу.)