2

Я хочу выбрать шрифт (технически, гарнитуру или семейство шрифтов) из множества имеющихся у меня в моей (Windows) системе для использования в некоторых (не TeX) приложениях, например, в LO Writer.

Чтобы сделать это, я хочу иметь возможность видеть какой-то текст ("Быстрая коричневая лиса" или что-то в этом роде) со всеми установленными мною шрифтами. Конечно, нелатинские шрифты нуждаются в тексте, который демонстрирует соответствующие глифы и комбинации глифов (например, непрерывные формы на арабском языке, знаки препинания и знаки кантилирования на иврите).

Какой хороший способ сделать это?

Бонусные вопросы для 1337 пользователей:

  • Linux, а не только Windows
  • Ограничьте это только еврейскими шрифтами, только арабскими шрифтами, только латинскими шрифтами и т.д.

1 ответ1

2

ImageMagick поддерживает рендеринг произвольных шрифтов и текста. Ниже приведен пример сценария, который будет перебирать доступные шрифты и отображать некоторый текст. Я не уверен, насколько вы разбираетесь в bash, поэтому я просто предположу, что сценарий имеет смысл.

Я запустил это в Cygwin и Gentoo, так что это жизнеспособное решение для обеих систем. Это не идеально, потому что convert.exe не может обрабатывать все шрифты (в обеих системах). Я предполагаю, что они должны быть TrueType. Проверьте документы для опций для программы конвертирования (сглаживание, обрезка). Не стесняйтесь обновлять скрипт, если вы найдете несколько полезных опций.

Файл: fonts.sh

#! /bin/bash
t="
NAME
   cowsay/cowthink - configurable speaking/thinking cow (and a bit more)

SYNOPSIS
   cowsay [-e eye_string] [-f cowfile] [-h] [-l] [-n] [-T tongue_string] 
   [-W column] [-bdgpstwy]

DESCRIPTION
   Cowsay  generates  an  ASCII  picture of a cow saying something provided 
   by the user.  If run with no arguments, it accepts standard input, word-
   wraps the message given at about 40  columns,  and  prints the cow saying
   the given message on standard output.

- - - 

~ \` ! @ # $ % ^ & * ( ) _ + [ ] { } ; : ' \" , . < > / ? \\ /

"

# . . .

CONVERT="/cygdrive/c/Program Files (x86)/ImageMagick-6.8.4-Q16/convert.exe"
LIM=${1:-23}

if [ ! -z "$2" ]; then rm -f Fonts/*; fi
if [ ! -d Fonts ]; then mkdir Fonts; fi

"$CONVERT" -list font| awk '/Font/ {print $2}' | head -n$LIM | sort -R |
while read f ;do 

    let n=n+1
    printf "%4d/%-4d %s\n" $n $LIM "$f"

    out="Fonts/$f.png"
    txt="Fonts/txt.z"
    err="Fonts/$f.err.txt"

    if [ ! -f "$out" ] && [ ! -f "$err" ]; then    
        echo -e "$f\n" > $txt
        cat "$0" |sed 's/\t/    /g'>> $txt
        "$CONVERT"  \
            -page a3 -font "$f" \
                -kerning 0 -density 90 -pointsize 16 -interline-spacing -2 \
            -trim +repage  -bordercolor white  -border 5 \
            text:$txt \
            "$out" 2> "$err"
        if [ $? -ne 0 ]; then
            printf "%9s %s\n" " " ERROR

            else    rm -f "$err" ;fi
    else
            printf "%9s %s\n" " " SKIPPING
    fi
done

Образец вывода

$ time sh fonts.sh  234 clean
   1/234  Candara-Italic
   2/234  Gabriola
   3/234  Candara-Bold
          SKIPPING
   4/234  Lucida-Sans-Unicode
   5/234  Corbel-Bold
   6/234  LilyUPC-Italic
   7/234  FreesiaUPC-Bold-Italic
   8/234  Kartika
   9/234  FreesiaUPC
  10/234  JasmineUPC-Italic
  ✂ (...)
  41/234  Courier-Oblique
          ERROR
  42/234  Helvetica
          ERROR
  ✂ (...)
 real    4m22.149s    

 $ du -h Fonts
 361M    Fonts

конечная станция


ProFont

referencess:
http://www.imagemagick.org/Usage/text/#text
http://www.imagemagick.org/script/binary-releases.php#windows

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .