我有一个纯 TeX 源文件,可以用于制作一个不错的婚礼程序。但我需要一个脚本字体来制作标题。类似于 Windows Edwardian Script(Open Type)的字体,它包含在一个名为 ITCEdscr.TTF 的文件中。
我的婚礼程序源文件既适用于 PCTeX,也适用于 MiKTex 2.9。但是,我无法在任何一个系统中安装脚本字体。我不想详细解释为什么我无法使用系统资源进行安装,我想知道是否有人可以帮助我手动安装到 PCTeX 或 MiKTeX 这两个系统中。
以下是我的具体问题:
我有 True Type 字体,在本例中为 ITCEdscr.ttf,位于目录 C:\temp。我如何获取该文件,以便生成纯 TeX 所需的文件(.pfb、.tfm、.enc、.map 和任何其他文件)?我想我从 ttf2afm 开始,但我不确定。
我应该将这些文件(.pfb、.tfm、.enc、.map 等)放入哪些目录?
我还必须做什么,以便我可以简单地去做:
\font\scriptheadingone=ITCEdscr 位于 24pt \font\scriptheadingtwo-ITCEdscr 位于 18pt
在我的纯 TeX 源文件中?
此时,我正在寻找一种快速但粗糙的手动解决方案。
请帮忙!本周需要打印婚礼计划表
谢谢。
乔治·斯图尔特
答案1
如果使用 XeTeX 或 LuaTeX引擎使用 Plain TeX格式是一个选项,有一个相当简单的解决方案:
%\input luaotfload.sty % uncomment this line if using luatex; not required for xetex
\font\scriptheadingone="[ITCEDSCR.TTF]" at 24pt
\font\scriptheadingtwo="[ITCEDSCR.TTF]" at 18pt
{\scriptheadingone A wedding}
{\scriptheadingtwo of at least one \TeX\ user to someone who may or may not be a \TeX\ user}
\bye
答案2
如果它对任何人都有用,这里是我用来安装 ITC Edwardian Script 以便与 pdfLaTeX 一起使用的文件。
首先,将 truetype 字体放入一个干净的工作目录并将其命名为EdwardianScript.ttf
。然后从 truetype 生成一个 AFM 文件。有多种方法可以做到这一点。ttf2afm
是一个相对简单的选择。
然后创建两个.tex
文件。
EdwardianScript-drv.tex
:
\input fontinst.sty
\needsfontinstversion{1.926}
%:substitutions
%bold for bold extended
\substitutesilent{bx}{b}
\substitutesilent{b}{m}
%:record transformations for later map file creation
\recordtransforms{EdwardianScript-rec.tex}
%:transformations - reencode
\transformfont{EdwardianScript8r}{\reencodefont{8r}{\fromafm{EdwardianScript}}}
%:installation - creation of virtual fonts
\installfonts
\installfamily{T1}{EdwardianScript}{}
\installfont{EdwardianScript8t}{EdwardianScript8r,newlatin}{t1}{T1}{EdwardianScript}{m}{n}{}
\installfontas{EdwardianScript8t}{T1}{EdwardianScript}{m}{sc}{}
\installfontas{EdwardianScript8t}{T1}{EdwardianScript}{m}{it}{}
\installfontas{EdwardianScript8t}{T1}{EdwardianScript}{m}{sl}{}
\installfamily{TS1}{EdwardianScript}{}
\installfont{EdwardianScript8c}{EdwardianScript8r,textcomp}{ts1}{TS1}{EdwardianScript}{m}{n}{}
\installfontas{EdwardianScript8c}{TS1}{EdwardianScript}{m}{sc}{}
\installfontas{EdwardianScript8c}{TS1}{EdwardianScript}{m}{it}{}
\installfontas{EdwardianScript8c}{TS1}{EdwardianScript}{m}{sl}{}
\endinstallfonts
\endrecordtransforms
\bye
EdwardianScript-map.tex
:
\input finstmsc.sty
\resetstr{PSfontsuffix}{.ttf}
\adddriver{dvips}{EdwardianScript.map}
\input EdwardianScript-rec.tex
\donedrivers
\bye
处理-drv.tex
随后的-map.tex
文件。
然后使用 将所有.pl
文件转换为.tfm
文件pltotf <filename>.pl
,并使用 将所有.vpl
文件转换为.vf
文件vptovf <filename>.vpl
。
这会生成使用 TrueType 字体和 LaTeX 所需的一切,但包文件很方便。
创造EdwardianScript.sty
:
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{EdwardianScript}[2007/12/20 v1.0 EdwardianScript]
\RequirePackage[T1]{fontenc}
\RequirePackage{textcomp}
%\RequirePackage{nfssext-cfr}
%%Adjusted by cfr in line with gtmacfonts
%%We don't want to add the map file through updmap because only pdftex can use truetype fonts.
\pdfmapfile{+EdwardianScript.map}
\DeclareRobustCommand{\edwardian}{%
\fontencoding{T1}%
\fontseries{m}%
\fontshape{n}%
\fontfamily{EdwardianScript}%
\selectfont}
\DeclareTextFontCommand{\edward}{\edwardian}
\endinput
%% end EdwardianScript.sty
现在可以使用工作目录中的所有内容和以下代码来测试字体
\documentclass{article}
\usepackage{EdwardianScript}
\begin{document}
\Huge\centering
\edwardian Edwardian Script ITC\par
A script for\par
\TeX{} aficionados
\& \LaTeX{} typographers.\par
\end{document}
使用 pdfLaTeX 编译时产生此输出:
如果需要,可以将文件移动到 TEXMFLOCAL:
.
├── doc
│ └── fonts
│ └── EdwardianScript
│ ├── EdwardianScript-drv.tex
│ └── EdwardianScript-map.tex
├── fonts
│ ├── afm
│ │ └── public
│ │ └── EdwardianScript
│ │ └── EdwardianScript.afm
│ ├── map
│ │ └── pdftex
│ │ └── EdwardianScript
│ │ └── EdwardianScript.map
│ ├── tfm
│ │ └── public
│ │ └── EdwardianScript
│ │ ├── EdwardianScript.tfm
│ │ ├── EdwardianScript8c.tfm
│ │ ├── EdwardianScript8r.tfm
│ │ └── EdwardianScript8t.tfm
│ ├── truetype
│ │ └── public
│ │ └── EdwardianScript
│ │ └── EdwardianScript.ttf
│ └── vf
│ └── public
│ └── EdwardianScript
│ ├── EdwardianScript8c.vf
│ └── EdwardianScript8t.vf
└── tex
└── latex
└── EdwardianScript
├── EdwardianScript.sty
├── t1edwardianscript.fd
└── ts1edwardianscript.fd
并mktexlsr
用于更新文件名数据库。