如何才能看到我的系统上所有字体呈现的一些示例文本?

如何才能看到我的系统上所有字体呈现的一些示例文本?

我想选择一种字体(技术上来说,一种字体我从我的 Windows 系统上的众多字体库(包括 .tex 或 font-family)中挑选出一些,用于一些非 TeX 应用程序,例如 LO Writer。

为此,我希望能够看到一些文本(“Quick brown fox”或类似内容)全部我安装的字体。当然,非拉丁字体需要显示相关字形和字形组合的文本(例如阿拉伯语中的连续形式、希伯来语中的标点符号和吟诵符号)。

有什么好方法可以完成此任务?

1337 位用户的奖励问题:

  • Linux,不仅仅是 Windows
  • 将其限制为仅希伯来字体、仅阿拉伯字体、仅拉丁字体等。

答案1

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

终点站


字体

参考文献:
http://www.imagemagick.org/Usage/text/#text
关联

相关内容