Предотвращение разрыва строк внутри слов в a2ps

Вопрос или проблема

Итак, я понимаю, что a2ps в основном предназначен для преобразования ASCII-кода в постскрипт для печати, но иногда я люблю печатать .txt или .md файл для школы. Часто целое предложение (или даже абзац) будет на одной строке, и a2ps разрывает строку на любом символе, который требуется для правильного переноса.

Это часто оставляет либо неуклюжие полуслова на строке, либо пробелы в начале строки. Я не могу найти опцию, чтобы предотвратить этот жесткий перенос в середине слов (даже с --pretty-print).

Есть ли какая-нибудь опция для этого, или я использую не тот инструмент для задачи?

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

Если в вашей системе установлен enscript, я бы использовал его вместо этого. Поиск в Google по запросу “word wrap a2ps” приведет вас к статье под названием: Printing Plain Text, которая включает следующий пример с enscript:

$ enscript --header="||Page $% of $=" \
    --margin=72:72:72:72 -1 \
    --word-wrap \
    --media=A4 file.txt

ПРИМЕЧАНИЕ: (однодюймовые поля со всех сторон, один лист, перенос слов, размер страницы A4, правосторонний заголовок с информацией о странице).

Обратите внимание на enscript --help и страницы man, чтобы узнать больше об опциях, или ищите дополнительные примеры в Google. Я использую enscript много лет для печати различных текстовых файлов и исходного кода, и он “просто работает”, как только вы настроите переключение так, как вам нравится.

Я тоже с этим сталкивался, но нашел решение, которое работает для меня.

Это двухэтапный процесс:

fmt inputfile.txt > outputfile.txt
a2ps outputfile.txt

Конечно, это может быть сделано в одной строке:

fmt inputfile.txt > outputfile.txt; a2ps outputfile.txt

И если хотите, вы также можете rm outputfile.txt.

Я делал это несколько раз, и форматирование работает отлично в стандартных режимах.

Мне нужна помощь с enscript. Я никогда раньше не использовал этот инструмент, и у меня есть процесс, который был преобразован из text2pdf в использование enscript. Теперь форматирование вывода в .pdf некорректное. Похоже, он не распознает размер записи и объединяет строки данных. Есть ли способ указать размер записи, не используя -c, потому что, когда я использую его, данные не печатаются.

Ответ или решение

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

Ваша задача состоит в том, чтобы предварительно отформатировать текст таким образом, чтобы каждая строка содержала только целые слова. Это можно сделать с помощью команды fmt. Например, вы можете выполнить следующую последовательность команд:

fmt inputfile.txt > outputfile.txt
a2ps outputfile.txt

Таким образом, fmt автоматически отформатирует входной файл, разделяя текст так, чтобы на каждой строке находились только целые слова. Далее, a2ps будет работать с уже отформатированным документом, печатая его без неприятных разрывов внутри слов.

Если ваше оборудование поддерживает enscript, рассмотрите вариант использования этого инструмента. В отличие от a2ps, enscript предоставляет встроенную поддержку переноса слов. С помощью следующей команды вы сможете легко распечатать текстовый файл, избегая разрывов внутри слов:

enscript --header="||Page $% of $=" --margin=72:72:72:72 -1 --word-wrap --media=A4 file.txt

Здесь --word-wrap гарантирует, что будет осуществлен перенос по словам, что позволит избежать разрывов в середине слов и создать более эстетично оформленный отпечаток.

Если вы испытываете трудности с enscript, как например, при создании PDF-файлов и неправильной комбинации строк данных, следует обратить внимание на использование флага -c. Если он приводит к отсутствию вывода, возможно, стоит изучить другие параметры настройки, используя enscript --help или документацию.

Таким образом, чтобы предотвратить разрывы в середине слов при использовании a2ps, можно воспользоваться предварительным форматированием через fmt либо полностью перейти на enscript, обеспечивающий удобства для перенося текста на бумагу без неловких разрывов. Применение данных рекомендаций позволит вам добиться более качественного и читаемого результата при печати текстовых документов.

Оцените материал
Добавить комментарий

Капча загружается...