GV

GV позволяет открывать PostScript, Encapsulated PostScript и PDF, перелистывать многостраничные документы по списку страниц, менять масштаб и ориентацию, включать сглаживание, отмечать нужные листы и сохранять либо печатать только выбранный набор. Главные инструменты сосредоточены вокруг области просмотра, панели страниц, миниатюрного навигатора и меню File, State, Page, Orientation, Scale и Media, поэтому проверку макета можно вести без перехода между отдельными окнами.

Обычный сеанс начинается с выбора файла через File → Open или передачи имени документа в команде запуска. После чтения структуры GV выводит номера страниц слева, показывает активный лист в центральной области и сохраняет текущие параметры масштаба, ориентации и формата бумаги в подписях верхних кнопок. Для быстрого перехода достаточно выбрать номер страницы, а при увеличении документа положение видимой области меняется через навигатор, перетаскивание страницы или клавиши перемещения.

Отдельный рабочий сценарий связан с подготовкой материалов к печати: страницы можно помечать по одной, выбирать чётные или нечётные, снять все отметки, а затем применить Print Marked или Save Marked. Такой порядок полезен при проверке PostScript, созданного TeX, драйвером печати или графической программой, поскольку позволяет увидеть результат интерпретации Ghostscript и сразу отделить нужные листы без правки исходного документа.

Скачать GV

Оценка 9.7 Рекомендуем
  • Редактирование PDF
  • Русский интерфейс
  • Просто новичкам
Скачать бесплатно на Windows
Лучшая альтернатива
GV
Оценка 8.5
  • Нет редактирования PDF
  • Нужен Ghostscript
  • Только X Window System
Скачать GV
Загрузка начнётся после нажатия

Рабочее окно GV и логика управления

Верхняя строка GV устроена не как современная панель с пиктограммами, а как ряд текстовых кнопок-меню. File отвечает за открытие, печать и сохранение; State объединяет режимы интерпретатора и обновления; Page управляет переходами и отметками; следующая кнопка показывает действующую ориентацию; затем идут масштаб, выбранный носитель и имя документа. Текущие значения видны прямо в названиях кнопок: пользователь не открывает диалог только ради проверки, включён ли Portrait, какой коэффициент увеличения действует и какой размер страницы принят для отображения.

Слева расположена служебная колонка. В верхней части находятся команды Open, Print All, Print Marked, Save All и Save Marked, ниже — кнопки перехода назад и вперёд, Reload и группы переключателей для массовой разметки страниц. Вертикальный список номеров играет роль оглавления по физическим листам. Рядом с ним помещён узкий навигатор, который показывает положение видимого фрагмента относительно всей страницы. Центральное поле отдано изображению, поэтому при большом окне почти всё пространство занимает документ, а не рамки и панели.

Интерфейс требует привыкания к терминам и поведению Athena Widgets. Кнопка с текущим значением открывает меню, а не просто переключает один режим; полоса в списке страниц реагирует по-разному на кнопки мыши; часть команд доступна и из всплывающего меню над изображением. Такая организация быстрее после запоминания нескольких жестов, но первое знакомство лучше начинать с небольшого многостраничного файла, чтобы безопасно проверить переходы, отметки и масштаб без отправки задания на печать.

Главное окно GV с документом, списком страниц и меню операций

Как читать состояние документа по экрану

Имя открытого файла отображается в верхней строке и помогает отличать несколько окон GV. Номер активной страницы выделяется в списке, а отмеченные листы имеют собственное состояние, не совпадающее с текущим переходом. Это важное различие: просмотр страницы не означает, что она попадёт в Print Marked или Save Marked. Перед пакетной операцией стоит прокрутить список и убедиться, что отметки стоят именно на нужных номерах, особенно если использовались команды выбора чётных или нечётных листов.

Если PostScript содержит корректные DSC-комментарии, GV способен заранее разобрать документ на страницы и свободно переходить к выбранному листу. Когда структура отсутствует или намеренно игнорируется, программа передаёт поток интерпретатору целиком; список страниц может исчезнуть, а произвольный переход становится недоступным. Это не обязательно ошибка интерфейса: сначала следует проверить режим DSC и качество самого PostScript, а затем уже искать проблему в клавиатуре или мыши.

Строка Media показывает, какой размер бумаги принят при вычислении области страницы. Для корректного документа значение может следовать из его комментариев, но пользователь вправе выбрать другой формат. Изменение Media не редактирует исходный файл и не перекладывает элементы макета; оно меняет рамку и условия визуализации. Поэтому переключение A4 на Letter полезно для диагностики обрезания и неверной геометрии, но не заменяет повторную генерацию PostScript с правильным размером листа.

Открытие PostScript, EPS, PDF и сжатых файлов

GV принимает имя файла в диалоге Open и в командной строке. Для PostScript расширение .ps в некоторых случаях можно не указывать. Помимо обычных файлов программа умеет читать материалы, сжатые gzip, bzip2, compress или помещённые в ZIP, если требуемые утилиты и команды распаковки настроены в окружении. Сжатие не превращает архив в набор просматриваемых вложений: ожидается один документ, который можно распаковать и передать Ghostscript как поток PostScript либо PDF.

Диалог выбора разделён на список каталогов, список файлов, строку маски и поле имени. Одинарный щелчок по каталогу показывает его содержимое; двойной щелчок по имени файла выбирает документ и закрывает окно. Это отличается от привычного поведения некоторых файловых менеджеров, где двойной щелчок нужен и для папки. Если кажется, что каталог не открывается, не следует нажимать его повторно слишком быстро: достаточно одного нажатия основной кнопкой мыши.

Фильтр в окне Open удобен в каталогах с результатами сборки TeX, где рядом лежат исходники, журналы, DVI, вспомогательные файлы и несколько вариантов PostScript. Маску можно настроить так, чтобы видеть только .ps, .eps или .pdf. Отдельные параметры диалога определяют начальный каталог, способ сортировки и шаблоны; они сохраняются через ресурсы GV, а не через современный центр настроек рабочего стола.

Диалог выбора файла в GV

Что происходит при открытии PDF

PDF передаётся Ghostscript, а GV строит интерфейс вокруг результата интерпретации. Для навигации программе требуется получить сведения о страницах; для этого используются команды преобразования PDF в описания, понятные механизму DSC. Если Ghostscript не найден, собран без нужного устройства или завершает обработку ошибкой, центральная область остаётся пустой либо появляется информационное окно с диагностикой. В такой ситуации переустановка одной только оболочки не поможет: нужно проверить команду gs и возможность открыть тот же файл непосредственно Ghostscript.

Зашифрованный PDF можно открыть с паролем, переданным параметром запуска. Пароль используется при открытии конкретного документа и не превращает GV в средство изменения защиты. Не следует помещать секрет в общедоступный сценарий оболочки или историю команд: безопаснее запросить его в защищённом окружении, временно задать переменную сценария и удалить следы после проверки. Если PDF ограничивает печать или извлечение, фактическое поведение зависит от интерпретатора и политики файла, а не от кнопки Save Marked.

PDF с интерактивными формами, комментариями, вложениями, мультимедиа, цифровыми подписями и сложными слоями в GV воспринимается прежде всего как набор страниц для визуализации. Программа не предоставляет редактор панелей формы и не показывает полноценное дерево подписей. Для контроля геометрии и вывода этого достаточно, но юридическую проверку подписи, заполнение полей и работу с вложенными файлами следует выполнять в специализированном PDF-приложении.

Особенности EPS

Encapsulated PostScript обычно описывает один графический объект и использует BoundingBox для границ. GV показывает EPS как страницу, причём выбор BBox в меню носителя позволяет ориентироваться на ограничивающий прямоугольник, а не на стандартный бумажный формат. Это удобно при проверке рисунков для TeX и издательских систем: лишние поля, неверный BoundingBox и обрезанные элементы заметны сразу. Однако GV не исправляет координаты — правку нужно вносить в генератор EPS или в сам PostScript.

Если EPS содержит превью, вложенные документы или нестандартные комментарии, сканер структуры может ошибочно принять внутренний маркер EOF за конец внешнего файла. Режим игнорирования EOF-комментариев позволяет пройти дальше и часто восстанавливает отображение. Применять его ко всем документам без необходимости не стоит: правильный EOF помогает ограничить поток, а отключение проверки может скрыть дефект экспортёра.

Навигация по страницам и работа с отметками

Список страниц — центральный инструмент для многостраничного PostScript. Основная кнопка мыши переводит просмотр на выбранный номер. Другие кнопки применяются для изменения отметки, поэтому результат зависит от места щелчка и настройки привязок. Для последовательного чтения удобнее команды Page Next и Page Previous либо клавиши перехода; для выборочной проверки — прямой щелчок по номеру. При длинном документе сам список прокручивается независимо от изображения страницы.

Отметки нужны для двух операций: Print Marked и Save Marked. Пользователь может выделить отдельные листы, затем дополнить набор командой Toggle Odd или Toggle Even, инвертировать текущее состояние и снять все отметки. Перед выполнением полезно мысленно отделить порядковый номер в интерфейсе от напечатанной нумерации документа: титульный лист, римские номера и вставки могут смещать соответствие. GV оперирует физическими страницами потока, а не цифрами, напечатанными в колонтитуле.

  • Переход на страницу не создаёт отметку автоматически.
  • Toggle Current меняет отметку активного листа.
  • Toggle Even и Toggle Odd действуют на физическую последовательность.
  • Unmark All очищает набор перед новой выборкой.
  • Save Marked создаёт PostScript только из отмеченных частей, когда структура документа допускает извлечение.

При использовании Save Marked необходимо проверять полученный файл повторным открытием. PostScript может содержать общие определения, шрифты и процедуры в прологе, а страницы — ссылки на эти объекты. GV старается сохранить нужные структурные части, однако плохо оформленный документ без корректного пролога и трейлера способен дать неполный результат. Контрольное открытие и пробная печать одной страницы выявляют такие проблемы раньше, чем файл уйдёт в тираж.

Классическое главное окно GV со списком страниц

Переходы в документе без корректного DSC

Флаг --nodsc отключает анализ Document Structuring Conventions и передаёт файл Ghostscript как единый поток. Это обходной путь для PostScript, который выполняется последовательно, генерирует страницы программно или нарушает правила комментариев. Цена обхода — отсутствие свободного перехода, номеров страниц и надёжной выборки листов. Если документ отображается только в этом режиме, его лучше пересоздать корректным драйвером, а --nodsc оставить для разовой диагностики.

При включённом DSC сканер читает комментарии %%Page, %%Pages, %%BoundingBox, %%Orientation, %%DocumentMedia и связанные секции. Эти данные не являются визуальным содержимым, но определяют навигацию и геометрию. Ошибочная запись %%Pages: 0, дублирующиеся номера, неверный порядок секций или неограниченный вложенный документ способны запутать список. Сопоставление вывода GV с текстом первых и последних строк PostScript обычно позволяет быстро найти источник несоответствия.

Масштаб, подгонка и естественный размер

Кнопка масштаба показывает текущий коэффициент и открывает набор предопределённых ступеней. Значение 1.000 означает базовый масштаб; увеличение 2.000 удваивает линейный размер, а дробные значения уменьшают страницу. Помимо списка ступеней поддерживается произвольное положительное число. Для документа, который шире окна, практичнее сначала выбрать Fit Width, а для оценки всей композиции — Fit to Page. Эти режимы рассчитывают коэффициент по текущему размеру окна и ориентации.

Natural Size пытается показать страницу в физическом масштабе, используя сведения о размере экрана. Точность зависит от того, знает ли X-сервер реальную ширину и высоту дисплея в миллиметрах. На виртуальном экране, удалённом сеансе или мониторе с неверным EDID естественный размер может заметно отличаться от линейки. Ресурс screenSize позволяет задать размеры вручную; после изменения стоит сравнить отображаемый сантиметр с физической мерой, а не доверять названию режима.

Scale Base задаёт основу, относительно которой выбираются целочисленные ступени. Это удобно, когда стандартная последовательность увеличений слишком груба для конкретного монитора. Пользователь может определить собственный набор в ресурсах, сохранив быстрые переходы между обзором страницы, чтением текста и контролем тонких линий. Произвольный коэффициент полезен для разовой задачи, а настроенная шкала — для постоянной работы с одинаковыми макетами.

При сильном увеличении GV не обязан хранить полную страницу в видимом окне. Если включён backing pixmap, программа старается создать внеэкранное изображение достаточного размера, чтобы закрытые участки восстанавливались без повторного рендеринга. На больших листах и при высоком коэффициенте это требует памяти X-сервера. При ошибках выделения или медленном удалённом соединении режим можно отключить, согласившись на более частую перерисовку.

Как выбирать масштаб для разных задач

  1. Для проверки общего расположения выберите Fit to Page и убедитесь, что все поля входят в рамку.
  2. Для чтения текста переключитесь на Fit Width, затем прокручивайте страницу по вертикали.
  3. Для оценки тонких линий задайте коэффициент 2.000 или выше и включите сглаживание.
  4. Для контроля физического размера настройте screenSize и используйте Natural Size.
  5. После поворота заново примените подгонку, потому что доступная ширина и высота меняются местами.

Масштаб влияет только на экранное представление. Он не меняет координаты PostScript, размер PDF, разрешение печати и содержимое файла Save All. Если на экране линия кажется толще после увеличения, это результат растеризации и антиалиасинга. Окончательный вывод следует оценивать ещё и на целевом устройстве или в растровом файле с заданным разрешением Ghostscript.

Прокрутка, навигатор и отдельное окно увеличения

Вместо привычных горизонтальной и вертикальной полос прокрутки GV использует panner — миниатюрную карту страницы. Прямоугольник внутри карты соответствует видимой области; его можно переместить в нужную часть листа. Такой способ особенно полезен для плакатов, схем и страниц, увеличенных в несколько раз: положение сразу видно относительно общего формата. Точное движение выполняется клавишами или перетаскиванием самого изображения.

Основная кнопка мыши в области документа позволяет ухватить страницу и сместить её, как лист под неподвижным окном. Направление кажется обратным полосе прокрутки: пользователь тянет содержимое, а не ползунок. После нескольких попыток жест становится естественным и позволяет быстро сравнивать удалённые углы чертежа. Для повторяемых небольших смещений лучше использовать стрелки, поскольку они дают одинаковый шаг и не уводят страницу по диагонали.

Отдельное окно Zoom создаётся жестом мыши и показывает увеличенный фрагмент вокруг выбранной точки. Оно удобно, когда общий масштаб менять нельзя: например, вся страница должна оставаться видимой, но требуется проверить засечки шрифта, стык линий или качество растра. Размер и коэффициент окна увеличения задаются ресурсами. При медленном X-соединении слишком большое Zoom-окно увеличивает объём перерисовки, поэтому его разумно держать компактным.

Окно GV с увеличенной страницей и навигационной колонкой

Почему полосы прокрутки могут отсутствовать

Отсутствие обычных scroll bars — намеренная особенность, а не повреждение темы. Panner выполняет обзор и абсолютное позиционирование, клавиши — пошаговое перемещение, а перетаскивание — свободный сдвиг. Если навигатор скрыт стилем widgetless, остаются клавиатура и мышь. Пользователь, которому нужны постоянные полосы, не найдёт отдельный переключатель в меню: проще освоить карту или выбрать другой просмотрщик с традиционной компоновкой.

Ориентация, размер бумаги и рамка страницы

Меню Orientation предлагает Portrait, Landscape, Seascape и Upside-down. Portrait оставляет вертикальную ориентацию, Landscape и Seascape поворачивают в противоположных направлениях, Upside-down разворачивает страницу на 180 градусов. Параметр swap меняет смысл Landscape и Seascape, что помогает согласовать управление с особенностями драйвера или привычным направлением поворота. После смены ориентации подгонку по ширине обычно нужно пересчитать.

Orientation не переписывает команды rotate в PostScript и не добавляет поворот в PDF. Это свойство отображения и печати из GV. Если файл уже содержит %%Orientation или матрицу преобразования, итоговый вид складывается из данных документа и выбранного режима. При неожиданном двойном повороте сначала верните Portrait, затем проверьте комментарии и параметры генератора, а не пытайтесь компенсировать ошибку ещё одним вращением.

Меню Media содержит распространённые форматы бумаги и значение BBox. Конкретный список определяется ресурсом medias, поэтому администратор может добавить собственные размеры в пунктах. Значения задаются в пунктах PostScript, где 72 пункта соответствуют одному дюйму. Для нестандартного бланка важно не только добавить имя и размеры, но и проверить, как документ объявляет %%DocumentMedia и %%BoundingBox: автоматический выбор может иметь приоритет в зависимости от настроек.

BBox полезен для EPS и файлов с точным ограничивающим прямоугольником. Если BoundingBox отсутствует или неверен, рамка получится слишком большой, маленькой либо смещённой. Временное переключение на A4 или Letter помогает увидеть скрытую область, но окончательное решение — пересчитать BoundingBox инструментом подготовки PostScript. Слепое обрезание по видимому содержимому рискованно: белые объекты и метки приводки могут не быть заметны на экране.

Цвет, оттенки серого и сглаживание

GV может передавать Ghostscript режим цветного, серого или монохромного вывода. Color нужен для обычной проверки; Grayscale показывает, как цветные элементы различаются без цвета; Monochrome сводит изображение к чёрному и белому. Эти режимы удобны перед печатью на устройстве с ограниченной палитрой, но не являются цветопробой: профиль принтера, растискивание, преобразование CMYK и особенности бумаги в них не моделируются.

Antialias включает устройство Ghostscript с поддержкой сглаживания. Наклонные линии и мелкие символы становятся ровнее, но рендеринг может замедлиться и потребовать больше памяти. При диагностике пиксельной сетки сглаживание иногда мешает, потому что добавляет промежуточные оттенки. Полезная последовательность — сначала оценить читаемость со сглаживанием, затем кратко отключить его и проверить, нет ли пропавших тонких штрихов или нежелательных серых ореолов.

На качество мелкого текста влияет не только переключатель Antialias. Ghostscript должен найти используемые шрифты или корректно обработать встроенные. Если вместо букв появляются квадраты, Courier или искажённые метрики, следует проверить сообщения интерпретатора, пути Fontmap и встраивание шрифтов при создании документа. Увеличение скрывает ступенчатость, но не исправляет подмену гарнитуры и перенос строк.

Режим Grayscale полезен для презентаций и научных графиков: две серии, различающиеся только цветом, могут слиться в один оттенок. Если легенда перестаёт читаться, нужно изменить штриховку, маркеры или светлоту в исходном графике. GV здесь выступает инструментом проверки доступности вывода, а не редактором палитры.

Окно общих параметров GV

Печать всех и отмеченных страниц

Print All отправляет полный документ команде печати, указанной в ресурсах, а Print Marked формирует задание из отмеченных страниц. Перед первым использованием необходимо проверить команду принтера: в разных системах это может быть lpr, lp или пользовательский сценарий. GV не показывает современный системный диалог с выбором лотка, двустороннего режима и степлера; такие параметры передаются аргументами команды либо задаются в очереди печати.

Безопасная проверка начинается не с большого документа, а с одной отмеченной страницы. Сначала выберите лист с узнаваемым номером, выполните Print Marked, затем сравните ориентацию, размер и поля. Если очередь принимает PostScript напрямую, результат должен соответствовать просмотру; если сервер печати повторно конвертирует файл, возможны отличия. В этом случае полезно сохранить выделенный PostScript и передать его администратору вместе с журналом фильтра очереди.

Опция --safer запускает Ghostscript в безопасном режиме и ограничивает опасные файловые операции из PostScript. Для документов из неизвестного источника этот режим предпочтителен. --safedir дополнительно запускает интерпретатор из безопасного каталога. Однако безопасность зависит от используемого Ghostscript и его исправлений; GV не является песочницей и не делает активный PostScript безусловно безвредным.

Если Print Marked недоступна или выдаёт пустой результат, сначала проверьте наличие отметок, затем структуру DSC. При --nodsc произвольное извлечение страниц невозможно, поскольку GV не знает границ листов. Для PDF выбор страниц проходит через промежуточное представление; сложный файл стоит сначала проверить через Save Marked, повторно открыть сохранённый результат и только затем отправлять на принтер.

Настройка команды печати

Ресурс printCommand задаёт основную команду, а параметры диалога могут определять вариант для выбранных страниц и имя временного файла. Команда выполняется с правами пользователя, запустившего GV, поэтому в ней нельзя без необходимости использовать оболочку с расширением подстановок или общедоступный временный каталог. Если требуется передавать имя принтера, число копий и двусторонний режим, лучше создать короткий проверенный сценарий, принимающий один файл, чем составлять длинную строку с кавычками в ресурсах.

После изменения команды полезно включить вывод сообщений Ghostscript и проверить код завершения очереди. Исчезновение окна не гарантирует успешную печать: lpr может принять задание, а фильтр отклонить его позже. Состояние следует смотреть в инструментах очереди. GV отвечает за подготовку и передачу PostScript, но не отслеживает жизненный цикл задания на сервере.

Сохранение полного документа и выборки страниц

Save All записывает полный PostScript, которым оперирует GV, а Save Marked сохраняет только выбранные листы вместе с необходимыми секциями. Операция не является экспортом в редактируемый формат, не уменьшает изображения и не выполняет OCR. Для PDF возможен промежуточный PostScript, поэтому расширение и фактический формат следует проверять, а не считать, что кнопка сохранит исходный контейнер без изменений.

Имя результата выбирается в файловом диалоге. Чтобы не затереть исходник, используйте отдельный каталог или суффикс, отражающий выборку. После сохранения сравните количество страниц, откройте первый и последний лист, проверьте шрифты и изображения. Если выборка предназначена для передачи, дополнительно прогоните её через Ghostscript с устройством nullpage: так обнаруживаются ошибки стека и ссылки на определения, которые не проявились на первой странице.

При сохранении отмеченных страниц порядок обычно следует исходной последовательности, а не порядку щелчков. GV не служит организатором страниц: поменять местами листы, дублировать их или объединить два разных документа через интерфейс нельзя. Для такого монтажа применяют инструменты обработки PostScript или PDF, а GV используют для визуальной проверки полученного файла.

Обновление изменяемого файла и цикл TeX

Режим Watch периодически проверяет файл и перезагружает его после изменения. По умолчанию проверка выполняется примерно раз в секунду; частота задаётся ресурсом watchFileFrequency. Это удобно при работе с TeX, groff, графическим генератором или программой, которая многократно перезаписывает PostScript. Пользователь оставляет GV открытым, запускает сборку и после успешной записи видит новую страницу без повторного выбора файла.

Автоматическая перезагрузка может попасть в момент, когда генератор создал файл, но ещё не дописал трейлер. Тогда появляется ошибка синтаксиса или временно пропадает список страниц. Надёжный сценарий пишет результат во временное имя, закрывает файл и выполняет атомарное переименование. Если изменить генератор нельзя, увеличьте интервал Watch или используйте ручной Reload после завершения команды.

Сигнал SIGHUP также заставляет GV перечитать документ. Сценарий сборки может отправить его процессу после успешного завершения, исключая опрос. Для этого PID нужно хранить аккуратно и проверять, что процесс действительно принадлежит GV пользователя. Ошибочный kill способен затронуть другую программу, если старый идентификатор был переиспользован.

Reload сохраняет контекст лучше, чем закрытие и повторное открытие: окно, масштаб и выбранная область остаются близкими к прежнему состоянию. Однако если число страниц уменьшилось или геометрия радикально изменилась, текущий номер и смещение могут стать недействительными. После крупной перестройки макета вернитесь к Fit to Page и первой странице, чтобы не принять пустую область за ошибку рендеринга.

Полноэкранный, презентационный и облегчённые стили

Параметр fullscreen просит оконный менеджер развернуть окно на весь экран. Результат зависит от поддержки соответствующих свойств в оконном менеджере. Presentation сочетает полноэкранный режим, Fit to Page, запрет автоматического изменения размера окна и стиль без виджетов. Такой режим подходит для последовательного показа страниц, но не добавляет переходы, заметки докладчика, таймер или управление несколькими экранами.

Widgetless скрывает основные элементы управления и оставляет максимум места изображению. Spartan применяет упрощённый файл стиля с сокращённым набором виджетов. Оба режима полезны на небольшом экране и при встраивании GV в рабочий процесс с клавиатурой. Перед их использованием стоит выучить команды выхода, открытия и перехода, иначе скрытая панель создаст ощущение, что программа перестала реагировать.

Стиль в GV — это файл ресурсов Athena, а не тема с иконками. Параметр --style читает дополнительный набор с более низким приоритетом, чем --ad. Поэтому базовую компоновку можно задать стилем, а разовые значения переопределить отдельным ресурсным файлом. Ошибка в имени виджета обычно не приводит к понятному предупреждению: правило просто не применяется, и приходится сверять класс и иерархию элементов.

Упрощённый стиль главного окна GV

Запуск из командной строки

Базовая форма команды — gv с параметрами и именем файла. --page выбирает начальную метку страницы; --media задаёт бумагу; --orientation принимает portrait, landscape, seascape или upsidedown; --scale задаёт ступень либо положительный коэффициент. Специальные значения масштаба включают Fit to Page и Fit Width. --center управляет автоматическим центрированием, а --resize разрешает подгонять размер окна под страницу.

Параметры --color, --grayscale и --monochrome выбирают палитру; --antialias включает сглаживание; --watch активирует наблюдение; --dsc или --nodsc управляет анализом структуры; --eof и --noeof меняют отношение сканера к внутренним EOF-комментариям. --arguments передаёт дополнительные ключи Ghostscript. Последний параметр требует особой осторожности: неверная опция может отключить защиту, изменить устройство вывода или сломать протокол взаимодействия с окном.

--infoSilent скрывает сообщения, --infoErrors оставляет ошибки, --infoAll показывает весь поток диагностики. Для повседневного чтения удобен режим ошибок, а при поиске проблемы — полный. Полное подавление делает интерфейс спокойнее, но превращает пустую страницу в загадку. Если файл не открывается, первым шагом должно быть возвращение сообщений и запуск с тем же документом из терминала.

--geometry задаёт размеры и положение X-окна. Это полезно для повторяемой раскладки: например, GV справа, редактор TeX слева. Значение геометрии взаимодействует с --resize и оконным менеджером; если окно самопроизвольно меняется, отключите автоматическую подгонку и проверьте правила менеджера. В презентации --noresize уже включён в состав режима.

  • gv --watch файл.ps — перечитывать результат после изменения.
  • gv --scale=-1000 файл.pdf — открыть с подгонкой всей страницы.
  • gv --scale=-1001 файл.ps — подогнать страницу по ширине.
  • gv --orientation=landscape файл.ps — начать с альбомного поворота.
  • gv --infoAll файл.ps — показать подробные сообщения Ghostscript.
  • gv --nodsc файл.ps — обойти ошибочный разбор структуры ценой навигации.

В примерах имена файлов без пробелов. В сценариях путь следует заключать в кавычки и передавать как один аргумент. Не формируйте команду конкатенацией непроверенного имени: PostScript сам по себе активен, а оболочка добавляет риск выполнения метасимволов. Безопасный сценарий использует массив аргументов и не вызывает eval.

Файлы ресурсов и постоянная настройка

Пользовательские предпочтения читаются из ~/.gv либо из пути, определённого XUSERFILESEARCHPATH. Системный файл GV устанавливается в библиотечный каталог, а gv_user.ad и gv_system.ad служат образцами. Настройки имеют иерархию приоритетов: встроенные значения, системные ресурсы, пользовательский файл, стиль и дополнительный файл --ad могут перекрывать друг друга. Поэтому изменение не всегда видно, если более приоритетный источник задаёт то же свойство.

В ресурсах настраиваются команды Ghostscript, преобразование PDF, устройства X11, антиалиасинг, частота Watch, список форматов бумаги, ступени масштаба, размер экрана, команда печати, фильтры файлового диалога, шрифты интерфейса, цвета и размеры отдельных виджетов. Это мощнее обычного диалога настроек, но требует точного синтаксиса X resources. Перед правкой сохраните копию ~/.gv и меняйте одну группу параметров за раз.

Если GV перестал запускаться после редактирования ресурсов, временно переименуйте ~/.gv и проверьте стандартную конфигурацию. Затем возвращайте блоки постепенно. Ошибки чаще всего связаны с пропущенной двоеточием, неправильным классом ресурса, незакрытой строкой команды или шрифтом, которого нет на X-сервере. Команда --ad с небольшим тестовым файлом помогает проверять изменение без повреждения основной конфигурации.

Диалог параметров просмотрщика GV

Настройка Ghostscript

Ресурс gsInterpreter задаёт исполняемый файл Ghostscript, gsCmdConvPDF — команду преобразования PDF в PostScript, gsX11Device — устройство X11, а gsX11AlphaDevice — вариант со сглаживанием. При обновлении Ghostscript названия устройств и политика безопасности могут меняться. Если обычный режим работает, а Antialias даёт пустой экран, сравните команды для двух устройств и убедитесь, что сглаживающее устройство присутствует в списке gs -h.

Дополнительные аргументы должны сохранять протокол, по которому Ghostscript рисует в окно GV. Подмена устройства на png16m или pdfwrite не покажет страницу в интерфейсе, потому что эти устройства создают файлы. Для растрового экспорта запускают отдельную команду Ghostscript, а GV оставляют на x11 или x11alpha. Параметры разрешения также следует менять осознанно: чрезмерное DPI увеличивает память и не всегда улучшает вид на экране.

Параметры Ghostscript в GV

Настройка файлового диалога

Параметры File Selection определяют размер списков, шаблоны, стартовый путь и поведение фильтра. В старом X-интерфейсе нет боковой панели избранного и поиска по содержимому, поэтому полезно задать каталог проектов и короткие маски. Для нескольких рабочих деревьев можно запускать GV из нужного каталога: File Selection откроется ближе к текущему окружению, а относительные ссылки в PostScript будут разрешаться предсказуемее.

Параметры окна выбора файла GV

Клавиатура и мышь в повседневной работе

Сочетания клавиш охватывают открытие, перезагрузку, переходы, изменение масштаба, ориентацию и прокрутку. Точный набор определяется таблицей translations в ресурсах, поэтому он может отличаться в дистрибутиве или пользовательском стиле. Перед созданием памятки проверьте фактический ~/.gv и системный файл. Если стрелка неожиданно меняет не то, что ожидается, вероятно, фокус находится в списке страниц или диалоге, а не в области документа.

В главном и Zoom-окне кнопки мыши различают короткое нажатие, перетаскивание и создание увеличенной области. В File Selection первая кнопка прокручивает список пропорционально, вторая — абсолютно; одиночное нажатие второй кнопкой в верхней или нижней половине перемещает список на страницу. Такая модель пришла из X Toolkit и отличается от колеса мыши. Колесо может работать через преобразование событий оконным менеджером, но рассчитывать на него во всех конфигурациях нельзя.

В оглавлении одна кнопка переходит на страницу, другие меняют отметку. На panner перетаскивание прямоугольника задаёт положение видимой области. В узких кнопках << и >> жест может повторять переход, если удерживать кнопку. Чтобы избежать случайной массовой прокрутки, делайте короткие нажатия и следите за выделением номера.

Для работы без мыши полезно закрепить четыре действия: следующий лист, предыдущий лист, подгонка по ширине и перезагрузка. Затем добавить поворот и изменение масштаба. Отметки страниц удобнее проверять визуально, даже если они переключаются клавишами. Widgetless и Presentation становятся практичными только после того, как команда выхода и возврата к обычному виду запомнена.

Диагностика ошибок Ghostscript

Информационное окно GV отображает стандартный вывод и ошибки интерпретатора. Сообщения вида undefined, typecheck, rangecheck, invalidaccess и stackunderflow указывают на разные нарушения PostScript. Undefined часто означает отсутствующую процедуру или шрифт; typecheck — неверный тип операнда; rangecheck — значение вне диапазона; invalidaccess — запрещённую операцию; stackunderflow — недостаток аргументов на стеке. Номер строки может быть приблизительным, если файл сжат или сгенерирован одной длинной строкой.

Первый диагностический шаг — запустить Ghostscript отдельно с безопасным устройством nullpage. Если ошибка повторяется, проблема в документе или интерпретаторе, а не в GV. Если отдельный запуск проходит, сравните аргументы, устройство X11 и рабочий каталог. Различия в текущем каталоге важны для PostScript, который пытается читать внешний шрифт, изображение или include-файл по относительному пути.

Пустая белая область не всегда означает сбой. Страница может быть смещена за рамку неверной матрицей, иметь белую графику на белом фоне, использовать большой BoundingBox или ожидать другой размер бумаги. Выберите Fit to Page, переключите Media, верните Portrait и попробуйте монохромный режим. Затем включите infoAll и проверьте фактический вывод.

Если интерпретатор завис, Stop Interpreter прерывает текущую обработку. После этого Reload запускает чтение заново. Постоянное зависание на одной странице обычно связано с бесконечным циклом PostScript, крайне сложным рисунком, повреждённым потоком PDF или недоступным внешним ресурсом. Ограничение времени лучше задавать внешним контролем процесса; интерфейсная кнопка требует ручного вмешательства.

Нечёткий или неправильный текст

Для нечётких мелких символов включите Antialias и увеличьте масштаб. Если форма букв неверна, ищите подмену шрифта. В PostScript шрифт может быть только назван, но не встроен; Ghostscript подставляет доступную замену. На другом компьютере строки тогда переносятся иначе. Решение — встроить шрифты при создании файла либо установить законно полученные гарнитуры и корректный Fontmap.

PDF со встроенными подмножествами шрифтов обычно стабильнее, но повреждённая таблица ToUnicode не влияет на рисунок букв так же, как на копирование текста. GV не предоставляет выделение и поиск, поэтому визуальная проверка не выявляет проблем текстового слоя. Для архивного PDF дополнительно используйте валидатор и просмотрщик, который показывает сведения о шрифтах и доступности поиска.

Страница не обновляется

Если Watch включён, а изменения не видны, проверьте время модификации файла и частоту watchFileFrequency. Система сборки может записывать другой путь, создавать символическую ссылку заново или сохранять результат в контейнере. GV наблюдает тот файл, который был открыт, и не обязан следовать новой цели ссылки. Ручной Reload помогает отличить проблему наблюдения от ошибки рендеринга.

На сетевой файловой системе метки времени могут кэшироваться, а часы клиента и сервера — расходиться. Увеличьте интервал, используйте SIGHUP после сборки или храните просматриваемый файл локально. Частый опрос большой PDF по медленной сети создаёт лишнюю нагрузку и способен запускать повторную конверсию до завершения предыдущей.

Нет списка страниц

Сначала проверьте, не включён ли --nodsc. Затем откройте начало PostScript и найдите корректные DSC-комментарии. Для PDF убедитесь, что команда преобразования работает и создаёт описание страниц. Если список отсутствует только у одного файла, виновата структура документа; если у всех PDF — конфигурация Ghostscript; если у всех форматов — стиль мог скрыть виджет оглавления.

Ошибки печати и сохранения

При печати проверьте команду, права на временный каталог и наличие очереди. При сохранении — свободное место, права каталога и расширение результата. Имя с пробелами требует корректного экранирования в пользовательских сценариях. Если файл создан, но имеет нулевой размер, посмотрите сообщения процесса и убедитесь, что отмеченные страницы действительно существуют.

Практические сценарии использования GV

Проверка PostScript после сборки TeX

  1. Запустите GV с --watch и результатом .ps.
  2. Выберите Fit to Page и проверьте поля первой страницы.
  3. Перейдите к листам с формулами, рисунками и таблицами.
  4. Включите Antialias для чтения, затем кратко отключите его для тонких линий.
  5. Отметьте страницы с проблемами или нужный диапазон.
  6. После новой сборки дождитесь Reload и сравните те же места.
  7. Сохраните отмеченные листы для отдельной пробной печати.

Этот цикл эффективен, потому что GV быстро перечитывает PostScript и не меняет документ. При этом он не показывает лог TeX и не знает, какая исходная строка породила объект. Номер физической страницы и визуальная проблема служат ориентиром, а исправление выполняется в исходнике. Для стабильного сравнения не меняйте масштаб между сборками и используйте один размер окна.

Отбор страниц для пробного тиража

Выберите листы, представляющие разные типы содержимого: титул с крупными заливками, обычный текст, фотографию, векторную схему, таблицу с тонкими линиями и страницу с насыщенным цветом. Отметьте их, выполните Save Marked, снова откройте выборку и только затем Print All. Так печатный тест остаётся компактным, но охватывает рисковые элементы. Порядок страниц в выборке соответствует исходному документу, поэтому подпишите назначение отдельно.

Проверка EPS перед вставкой

Откройте EPS, выберите BBox и Fit to Page. Убедитесь, что рамка плотно охватывает рисунок, но не обрезает тени, наконечники стрелок и подписи. Переключитесь на стандартный Media, чтобы увидеть возможное смещение. Затем увеличьте углы и проверьте линии. Если BoundingBox неверен, исправьте его генератором или инструментом пересчёта, после чего Reload покажет результат.

Просмотр большого чертежа

Для листа A0 или нестандартной схемы сначала установите правильный Media и ориентацию. В Fit to Page оцените композицию, затем увеличьте до читаемого масштаба и перемещайтесь panner. Zoom-окно помогает сверять обозначение, не теряя общего положения. Backing pixmap может потребовать много памяти; при ошибках отключите его и согласитесь на повторный рендеринг при перемещении.

Показ страниц на проекторе

Запустите Presentation, проверьте, что каждая страница помещается в экран, и заранее пройдите весь документ. Шрифты и цвета должны быть проверены именно на проекторе: Grayscale помогает выявить зависимость от цвета, но яркость устройства остаётся отдельным фактором. GV не скрывает курсор автоматически во всех окружениях и не управляет заметками, поэтому презентационный сценарий должен включать настройку оконного менеджера и резервный способ выхода.

Ограничения, которые важно учитывать

GV показывает результат интерпретации, но не редактирует текст, изображения, страницы или формы PDF. Здесь нет инструментов аннотаций, подписания, распознавания текста, объединения документов, удаления метаданных и оптимизации размера. Save Marked решает узкую задачу выделения структурных страниц в PostScript-потоке и не заменяет организатор PDF. Пользователю, которому нужно исправить опечатку или переставить листы, потребуется другой инструмент.

Поиск по тексту и копирование фрагментов не являются частью основного интерфейса. Даже когда PDF содержит корректный текстовый слой, GV рассматривает страницу как вывод Ghostscript. Для чтения длинной электронной книги, работы с оглавлением PDF и ссылками удобнее современный просмотрщик. GV сохраняет преимущество там, где важны PostScript, DSC, поведение Ghostscript и точный контроль печатного представления.

Рабочее окно требует X Window System и библиотек Athena/Xaw3d, а отображение — Ghostscript с X11-устройством. В сеансе Wayland программа обычно запускается через совместимость XWayland, если она доступна. В чистой консоли без X-сервера интерфейс не появится. Для автоматической проверки файлов без экрана лучше запускать Ghostscript напрямую с nullpage или растровым устройством.

Интерфейс не интегрирован с современными порталами рабочего стола, облачными хранилищами и системным диалогом печати. Масштабирование на дисплеях HiDPI зависит от X resources и размеров шрифтов; автоматического адаптивного режима может не быть. Увеличение шрифта интерфейса и настройка геометрии решают читаемость, но занимают больше места, поэтому Spartan или Widgetless приходится подбирать отдельно.

Поддержка конкретного PDF определяется Ghostscript. Новые возможности стандарта могут визуализироваться частично, а интерактивные элементы — игнорироваться. Если критична точность прозрачностей, цветовых пространств, шрифтов или цифровых подписей, сравните результат с другим независимым движком. Совпадение двух визуализаций повышает уверенность, но окончательную пригодность к печати подтверждает целевой RIP или типография.

Сравнение GV с аналогами

Программы ниже пересекаются по просмотру PDF и PostScript, но расставляют акценты по-разному. GV ориентирован на взаимодействие с Ghostscript, физические страницы и печатный PostScript; современные просмотрщики лучше работают с текстовым слоем, закладками и привычной навигацией; PDF-редактор нужен, когда документ требуется менять, а не только проверять.

ПрограммаЛучше подходит дляГлавное ограничение
GVПроверки PostScript, EPS, DSC и выборочной печати страниц через GhostscriptНет редактирования, поиска и аннотаций
PDF CommanderРедактирования PDF, перестановки страниц, добавления объектов и повседневной работы с документамиНе ориентирован на диагностику DSC и PostScript-потоков
OkularЧтения PDF и PostScript, закладок, поиска, аннотаций и работы в среде KDEНе предоставляет специализированную разметку страниц GV для Save Marked
EvinceПростого чтения документов в GNOME, поиска и печати через системный интерфейсМеньше настроек низкоуровневого взаимодействия с Ghostscript
MuPDFБыстрого отображения PDF и использования компактного движка в скриптах и приложенияхPostScript и DSC не являются основным рабочим процессом
XpdfЧтения PDF в X11 с поиском, копированием текста и набором консольных утилитPostScript не является его основным рабочим форматом

Выбирайте GV, когда нужно увидеть именно то, как Ghostscript разбирает PostScript, проверить DSC, BoundingBox, форматы бумаги и быстро выделить листы для печати. PDF Commander рациональнее для изменения содержимого и структуры PDF. Okular подходит для чтения с аннотациями и несколькими форматами, Evince — для простого интерфейса GNOME, MuPDF — для быстрого рендеринга и компактного движка, Xpdf — для классического PDF-процесса с поиском и копированием текста.

Как выбрать GV для конкретной задачи

GV оправдан в цепочке, где PostScript остаётся реальным промежуточным или выходным форматом: TeX создаёт .ps, научная программа строит графики, драйвер формирует задание, EPS вставляется в публикацию, а печатный сервер принимает PostScript. В этих случаях список страниц, DSC, BBox, Media, режимы Ghostscript и сохранение отмеченных листов дают прямой контроль над потоком. Замена на универсальный PDF-просмотрщик может скрыть детали преобразования.

Для обычного чтения банковской выписки, инструкции или книги важнее поиск, копирование, ссылки и оглавление, которых GV не предлагает. Для правки договора нужны редактирование и подпись. Для доступности — масштабирование текста, экранный диктор и теги PDF. Выбор следует делать по операции, а не по одному факту открытия PDF: способность показать страницу не означает удобство всех сценариев документа.

В смешанном процессе GV хорошо дополняет другой просмотрщик. Сначала документ проверяют в GV как вывод Ghostscript и при необходимости печатают выборку; затем открывают в PDF-программе с независимым движком, чтобы проверить текстовый слой, ссылки и формы. Расхождение визуализации становится сигналом проверить шрифты, прозрачность, цвет или повреждение файла.

Контрольный список перед печатью

  • Откройте файл с включёнными сообщениями об ошибках.
  • Проверьте количество физических страниц и доступность списка.
  • Сверьте Media, ориентацию и BoundingBox.
  • Посмотрите первую, последнюю и наиболее сложные страницы.
  • Сравните Color и Grayscale для цветозависимых графиков.
  • Проверьте мелкий текст со сглаживанием и без него.
  • Убедитесь, что шрифты не подменены.
  • Отметьте тестовые листы и сохраните их отдельно.
  • Повторно откройте сохранённую выборку.
  • Напечатайте одну страницу и сверяйте с экраном до отправки полного задания.

Этот порядок отделяет ошибки документа от проблем очереди. Если сохранённая выборка уже неверна, исправляйте PostScript, настройки Ghostscript или разметку страниц. Если файл корректен, а бумажный результат отличается, исследуйте фильтры печати, PPD, лоток, масштабирование очереди и целевой RIP. GV помогает локализовать границу, но не заменяет журнал печатной системы.

Рекомендации по безопасной и предсказуемой работе

Открывайте неизвестный PostScript в safer-режиме, используйте исправленный Ghostscript и не отключайте ограничения ради удобства. Не передавайте непроверенные строки в --arguments и команду печати. Рабочий каталог должен быть недоступен другим пользователям для подмены временных файлов. После просмотра конфиденциального PDF удаляйте созданные выборки и не храните пароль в истории оболочки.

Храните пользовательский ~/.gv в системе контроля версий без секретов. Команды печати и пути могут различаться на компьютерах, поэтому выносите машинно-зависимые значения в отдельный подключаемый файл. После обновления Ghostscript проверяйте x11-устройства, антиалиасинг, PDF-конверсию и одну пробную печать. Такой небольшой регрессионный набор предотвращает неожиданные изменения в рабочем процессе.

Для воспроизводимой проверки фиксируйте размер окна, масштаб, Media, ориентацию и палитру. Скриншот без этих данных малоинформативен: одна и та же страница при Fit Width и Natural Size выглядит по-разному. В сообщении об ошибке указывайте команду запуска, тип файла, страницу, текст Ghostscript и факт работы в --nodsc; сам конфиденциальный документ можно заменить минимальным примером, воспроизводящим сбой.

Как GV использует структуру PostScript

Document Structuring Conventions превращают последовательный PostScript-поток в документ, где оболочка может найти пролог, страницы, трейлер, ресурсы и геометрию без выполнения всего кода. GV сначала сканирует комментарии, строит таблицу смещений, а затем подаёт Ghostscript необходимые секции для выбранной страницы. Благодаря этому переход к листу в середине файла не требует каждый раз визуально воспроизводить все предыдущие страницы. Если комментарии расходятся с реальным кодом, интерфейс верит структуре до тех пор, пока интерпретатор не обнаружит противоречие.

Комментарий %%Page содержит метку и порядковый номер. Метка может быть строкой вроде i, 1, A-3 или cover, тогда как порядковое значение описывает последовательность в потоке. Параметр --page ориентируется на метку. В списке GV пользователь чаще видит порядок страниц, поэтому документы со сложной нумерацией нужно проверять особенно внимательно. Два листа с одинаковой меткой делают адресацию неоднозначной, хотя физически остаются разными секциями.

Пролог обычно содержит определения процедур, кодирование и подготовку шрифтов, которые нужны каждой странице. Setup задаёт состояние документа, а Trailer завершает поток и может сообщать итоговое число листов. Save Marked должен сохранить общие секции вместе с выбранными страницами. Если генератор помещает важное определение внутрь первой страницы, а последующие листы используют его без объявления ресурса, извлечённая страница способна сломаться. Такой PostScript выполняется последовательно, но плохо поддаётся выборке.

Комментарии %%DocumentNeededResources и %%DocumentSuppliedResources помогают понять, какие шрифты и процедуры должны прийти извне, а какие встроены. GV не показывает отдельную панель ресурсов, зато сообщения Ghostscript выявляют отсутствующие имена. При подготовке переносимого файла желательно, чтобы необходимые нестандартные шрифты были встроены или заменены на доступные, а ресурсные зависимости объявлены корректно. Тогда просмотр и Save Marked ведут себя одинаково на разных машинах.

%%PageBoundingBox может отличаться для каждого листа, а общий %%BoundingBox — описывать весь документ или EPS. GV учитывает эти значения при выборе BBox и построении рамки. Отрицательные координаты допустимы в PostScript, но могут поместить часть изображения за начало стандартного листа. Если на экране объект виден при BBox и пропадает при A4, это признак смещения системы координат, а не обязательно обрезанного файла.

Комментарии, на которые стоит смотреть при ручной проверке

КомментарийЧто определяетТипичная проблема
%%PagesЗаявленное число страницНе совпадает с фактическими секциями
%%PageГраницу, метку и порядок листаДубликаты или пропущенные маркеры
%%BoundingBoxОграничивающую рамкуСлишком большие поля или обрезание
%%OrientationПредпочтительный поворотДвойной разворот с выбранным меню
%%DocumentMediaИмя и размеры носителяНесоответствие A4, Letter или бланку
%%BeginDocumentНачало вложенного документаВнутренний EOF ошибочно завершает внешний файл
%%TrailerЗавершающую секцию и итоговые данныеФайл оборван до конца записи

Ручной просмотр комментариев полезен только как диагностика. Исправление одного числа в %%Pages не восстановит неверные смещения, а правка BoundingBox без понимания координат может скрыть объекты. Лучше пересоздать файл исходным генератором с корректными параметрами. Ручную правку применяют к небольшому контролируемому PostScript и после неё обязательно проверяют все страницы Ghostscript.

Производительность и расход памяти

Скорость GV складывается из разбора структуры, запуска Ghostscript, передачи страницы и работы X-сервера. Многостраничный текстовый PostScript обычно открывается быстро, потому что сканирование комментариев легче рендеринга. PDF с большими изображениями, прозрачностями или сложными векторными масками может долго преобразовываться до появления списка страниц. В этот момент многократное нажатие Reload только создаёт дополнительную работу; лучше дождаться сообщения или проверить процесс в терминале.

Размер backing pixmap примерно зависит от площади страницы в пикселях и глубины цвета. Удвоение масштаба увеличивает ширину и высоту вдвое, а площадь — примерно в четыре раза. Цветное изображение требует больше памяти, чем монохромное. Поэтому плакат при масштабе 4.000 способен занять сотни мегабайт даже при небольшом исходном файле. Отключение pixmap снижает пиковое потребление, но делает прокрутку и восстановление закрытых областей медленнее.

Antialias обычно применяет более качественное устройство Ghostscript и промежуточные оттенки. На удалённом X11 это увеличивает объём данных между приложением и сервером. Если сеанс идёт через SSH с X forwarding, полезно начать без сглаживания и с меньшим окном, затем включать качество только для нужного фрагмента. Для постоянной удалённой работы иногда быстрее создать локальный PNG средствами Ghostscript и передать готовое изображение, чем интерактивно перерисовывать большую страницу.

Watch на большом PDF может заново запускать конверсию после каждого сохранения. Редактор, который пишет файл несколькими операциями, создаёт серию изменений и провоцирует повторные перезагрузки. Увеличение watchFileFrequency уменьшает дребезг. Ещё лучше — настроить сборку на атомарную замену готового файла и отправлять SIGHUP только после успешного завершения.

Если GV долго не отвечает, различайте вычисление и взаимную блокировку. Высокая загрузка процессора Ghostscript обычно означает сложный рендеринг; отсутствие активности при ожидании файла может указывать на внешнюю команду распаковки, сеть или канал печати. Stop Interpreter прерывает вычисление, но не всегда завершает зависший внешний фильтр. В таком случае процесс проверяют отдельно и устраняют проблемную команду в ресурсах.

Работа в X11, XWayland и удалённом сеансе

GV создаёт окно через X Toolkit и ожидает доступный DISPLAY. В X11 переменная DISPLAY указывает сервер и экран. При запуске из графического терминала она обычно уже задана; из cron, systemd без пользовательской сессии или контейнера её может не быть. Сообщение о невозможности открыть display относится к графическому соединению, а не к PDF. Не следует произвольно указывать :0, если доступ к серверу не разрешён: требуется корректная авторизация Xauthority.

В среде Wayland совместимость обеспечивает XWayland. Пока она включена, окно GV выглядит как обычное X11-приложение, но масштаб и буфер обмена зависят от слоя совместимости. Дробное масштабирование рабочего стола может сделать шрифт интерфейса мелким или размытым. Практическое решение — увеличить Xft/DPI или шрифт Athena в ресурсах, затем заново подобрать геометрию и размер panner. Масштаб документа регулируется отдельно и не исправляет мелкие кнопки.

При SSH forwarding команда ssh -X создаёт ограниченное доверие, а ssh -Y — доверенное соединение. PostScript остаётся активным кодом, поэтому доверенный канал не заменяет safer. Задержка влияет на каждый обмен с X-сервером: большое окно и частая прокрутка ощущаются медленно. Сжатие SSH иногда помогает, но сложный PDF всё равно лучше рендерить рядом с файлом и передавать растровый результат.

В виртуальном X-сервере без физического монитора Natural Size не имеет надёжного смысла, потому что геометрия экрана условна. Fit to Page и фиксированный коэффициент воспроизводимее. Для автоматизированного получения снимков задают размер виртуального экрана, фиксированную геометрию окна, отключают зависимость от оконного менеджера и ждут окончания рендеринга. Но для проверки корректности PostScript проще использовать Ghostscript напрямую и оставить GV для интерактивного контроля.

Точная настройка масштаба и размеров бумаги

Стандартные форматы в ресурсе medias задаются именем, шириной и высотой в пунктах. A4 составляет приблизительно 595 на 842 пункта, Letter — 612 на 792. Значения округлены и могут слегка различаться в таблицах. Для фирменного бланка размеры вычисляют из дюймов или миллиметров, затем проверяют рамку тестовым прямоугольником. Ошибка на несколько пунктов заметна у объектов, стоящих вплотную к краю.

Добавляя собственный Media, используйте уникальное короткое имя и обе ориентации учитывайте через меню Orientation, а не создавайте два почти одинаковых формата без необходимости. Если документ объявляет собственный носитель, автоматический выбор может снова переключить значение при Reload. Тогда закрепите media параметром запуска или исправьте комментарий генератора. Цель — добиться согласия документа, GV и печатной очереди, а не компенсировать один неверный размер другим.

Масштаб Natural Size зависит от screenSize, который задаётся шириной и высотой корневого окна в миллиметрах. Для нескольких мониторов один общий размер может быть неверным, особенно когда экраны имеют разную плотность. Настройка по конкретной машине, display и screen позволяет хранить разные значения. После перестановки мониторов измерение нужно повторить. Fit Width не использует физические миллиметры и потому устойчивее к такой конфигурации.

Center автоматически располагает страницу по центру доступной области. При nocenter начало координат остаётся ближе к краю, что удобно для повторяемого сравнения верхнего левого угла. Resize разрешает окну менять размер вслед за страницей; на tiling window manager это правило может игнорироваться или конфликтовать с раскладкой. Для стабильной мозаики редактора и просмотрщика используйте noresize, фиксированную geometry и Fit Width.

Специфические ответы на частые вопросы о GV

Почему кнопка Save Marked не создаёт PDF?

Команда работает с PostScript-представлением и выделенными структурными страницами. Она не является PDF-экспортом. Если нужен PDF, сохранённый PostScript затем преобразуют Ghostscript с устройством pdfwrite и отдельно проверяют результат. При этом параметры совместимости, встраивание шрифтов и цвет задаются в команде преобразования, а не в GV.

Можно ли объединить два файла через GV?

Интерфейс держит один документ на окно и не предлагает вставку страниц из другого. Открытие второго файла заменяет текущий либо создаётся новое окно. Объединение выполняют специализированным инструментом для PostScript или PDF, после чего итог открывают в GV и проверяют список, пролог, шрифты и границы страниц.

Почему у PDF вид отличается от другого просмотрщика?

Программы используют разные движки, версии шрифтов, алгоритмы сглаживания и обработку прозрачности. GV показывает результат Ghostscript. Сравните страницу при одинаковом масштабе, проверьте сообщения, встроенные шрифты и цветовые пространства. Если различие критично для печати, получите контрольный растр Ghostscript с заданным DPI и сравните с целевым RIP.

Можно ли искать слово?

В основном окне нет текстового поиска. Увеличение и переходы работают с изображением страницы и её физической структурой. Для поиска используйте PDF-просмотрщик с текстовым слоем или консольный инструмент извлечения текста. Найденный номер затем можно открыть в GV для проверки печатного вида.

Как открыть страницу сразу после запуска?

Параметр --page принимает метку страницы. В простом документе метка часто совпадает с видимым номером, но титульные и римские страницы могут использовать другие значения. Если переход не сработал, посмотрите список и комментарии %%Page. Для выбора по физическому порядку надёжнее открыть документ и перейти через оглавление.

Почему Landscape поворачивает не в ту сторону?

Landscape и Seascape задают противоположные повороты, а swap меняет их смысл. Верните Portrait, отключите swap и проверьте ориентацию документа. Если сам PostScript уже применяет rotate, дополнительный поворот GV складывается с ним. Исправляйте источник, когда печать должна быть одинаковой во всех просмотрщиках.

Как вернуть панели после Widgetless?

Закройте окно и запустите без --widgetless или без Presentation, либо вызовите команду, связанную с обычным стилем, если она настроена. Параметр является выбором файла ресурсов, поэтому отдельной невидимой кнопки возврата может не быть. Перед показом запишите команду обычного запуска в терминале или меню рабочего стола.

Почему Open показывает не все файлы?

Проверьте маску и параметры File Selection. Диалог может скрывать имена, не совпадающие с шаблоном. Сбросьте фильтр на более широкий, перейдите в каталог одиночным щелчком и обновите список. Права доступа и кодировка имени также влияют: GV не сможет открыть файл, который пользователь не может прочитать.

Что делать с повреждённым PostScript?

Сохраните исходник, включите infoAll и воспроизведите ошибку Ghostscript отдельно. Если --nodsc позволяет увидеть документ, проблема может быть только в комментариях; если ошибка остаётся, повреждён исполняемый код или ресурс. Не используйте Save Marked как средство ремонта: пересоздайте файл, а минимальный проблемный фрагмент оставьте для диагностики генератора.

Подходит ли GV для проверки архивного PDF?

Он полезен как второй визуальный движок, но не проверяет соответствие PDF/A, метаданные, теги, цифровые подписи и встраивание всех шрифтов в форме отчёта. Для архивной приёмки нужен валидатор стандарта. GV помогает увидеть страницу, обнаружить явную подмену шрифтов или ошибку рендеринга и сравнить результат Ghostscript с другим просмотрщиком.

Минимальный набор тестовых документов

Для проверки конфигурации подготовьте небольшой набор без конфиденциальных данных: одностраничный EPS с точным BoundingBox; многостраничный DSC-PostScript с чётными и нечётными листами; PDF с встроенным шрифтом и цветным изображением; защищённый тестовый PDF; документ альбомной ориентации; большой лист; повреждённый PostScript с известной ошибкой. Такой комплект позволяет после изменения ресурсов быстро проверить Open, список страниц, BBox, Antialias, Watch, Save Marked и сообщения.

Эталонные результаты храните как контрольные изображения или распечатки с указанием версии Ghostscript и параметров. Пиксельное совпадение между разными версиями не всегда ожидается из-за изменений сглаживания, но геометрия, число страниц, шрифты и отсутствие ошибок должны сохраняться. Если меняется только оттенок края символа, это одно; если переносится строка или исчезает объект, обновление требует расследования.

Тест Print Marked должен использовать безопасную виртуальную очередь или вывод в файл, чтобы случайно не расходовать бумагу. Команду печати можно временно заменить сценарием, который копирует входной PostScript в тестовый каталог и записывает код завершения. После проверки верните рабочую команду и удалите временные данные. Этот подход подтверждает, что GV формирует выборку, не смешивая проблему с драйвером принтера.

Итоговый рабочий подход

GV наиболее полезен как точный экранный пульт для Ghostscript: открыть поток, увидеть структуру страниц, выбрать геометрию, оценить растрирование, быстро перейти к нужному листу и отделить выборку для печати или сохранения. Его сильные стороны раскрываются в PostScript-процессах, где комментарии DSC, BoundingBox, ориентация и команда интерпретатора имеют практическое значение.

Начните с стандартного окна и небольшого документа, освойте различие между текущей и отмеченной страницей, panner, Fit to Page, Fit Width, Reload и сообщения интерпретатора. После этого настройте ~/.gv, Watch, печатную команду и упрощённый стиль под свою цепочку. При задачах редактирования, поиска, аннотаций или проверки подписей используйте специализированное PDF-решение, оставляя GV для визуального и печатного контроля.

Завершать проверку следует не на красивом изображении в окне, а на подтверждённом результате: сохранённая выборка повторно открывается, Ghostscript не сообщает ошибок, шрифты совпадают, страницы имеют правильный размер, а пробный лист выходит без дополнительного масштабирования очереди. Такой контроль превращает GV из необычного просмотрщика в предсказуемый инструмент подготовки PostScript и PDF к выводу.