问题:我需要访问libertine
中的 eg delta 字形pdflatex
。
这个问题指出\libertineGlyph
最新版本的软件包不再提供该命令libertine
。它还指出替换libertineotf
不适用于pdftex
。这个答案建议两种解决方法(无需安装旧版本)。
\libertineGlyph
从文件的旧版本复制的定义。我无法让它工作,因为
libertine.sty
使用了宏\define
。导入所需的三个包时似乎没有提供这个libertine
,而且它不是标准命令。它建议改用
\char
。
我将非常感激能够提供一种可行的方法。
编辑:我专门在寻找“文本”增量,而不是“数学”增量。参见:
答案1
好的,让我提出一个相当大胆的建议。我假设您拥有 TeXLive 2012 发行版,因为这是我唯一熟悉的发行版。
- 安装
libertine-legacy
在本地 texmf 树中 libertine.sty
中找到文件texmf-local/tex/latex/libertine-legacy/
并将其重命名为libertine-legacy.sty
(我们不会使用它,因为它肯定会对较新的文件造成破坏,libertine.sty
该文件位于2012/texmf-dist
)libertine.map
找到文件texmf-local/fonts/map/dvips/libertine-legacy/
并将其重命名为libertine-legacy.map
- 转到
texmf-local/web2c
并将该行添加Map libertine-legacy.map
到文件中updmap.cfg
(您可能必须创建该文件) - 继续
texhash
演出texmf-local
- 运行
updmap-sys
或updmap
取决于你以前的习惯(我个人只使用updmap-sys
)
现在,您就可以按照以下方式访问旧式 libertine type-1 字体中的希腊字形了:
\documentclass{article}
%% the next two lines are for the *new* libertine
\usepackage[T1]{fontenc}
\usepackage{libertine}
%% these next lines are for the *legacy* libertine, especially the Greek glyphs
\begingroup
\makeatletter
\newcommand*\DeclareTextGlyphX[5]{%
% \DeclareTextGlyphX{fxl}{U}{fxla7}{uniA7F1}{241}
% #1=basefont #2=encoding #3=fontfamily #4=glyphname, #5=position
\global\@namedef{legacy#1#4}{{\fontfamily{#3}\fontencoding{#2}\selectfont\char#5\relax}}}
\input{fxl.inc}
\endgroup
\begin{document}
\legacyfxldelta
\legacyfxlDelta
\end{document}
我的旧版软件包文件的日期是 2011 年 12 月。我希望这是最新版本,并且在此期间旧版软件包中的字体名称没有发生变化。
我要强调的是,我在这里描述的内容并不是用 替换libertine
。libertine-legacy
两者都需要安装:主树中的新版本,本地树中的旧版本。并且您需要按照指示更改旧版 .sty 和 .map 文件的名称,然后不要忘记执行texhash
和updmap-sys
。
答案2
libertine 的最新版本(2012-12-07)确实支持 Glyph 命令,但仅适用于 xeLaTeX 和 luaLaTeX 用户。要获得像 delta 这样的字形,我建议使用带有 libertine 选项的 newtxmath。
更新:看来 MiKTeX 未正确安装 newtx 包。作为权宜之计,您可以编辑系统updmap.cfg
以更改ntx.map
为newtx.map
并执行
initexmf --mkmaps
然后 newtxmath 的 libertine 选项将起作用并$\updelta$
生成所需的垂直增量。但 MikTeX 的下一次更新可能会破坏您的编辑(直到他们修复该问题)。问题不在于 libertine 本身,而在于 MikTeX。