从新的 libertine 中提取字符(使用 pdflatex)

从新的 libertine 中提取字符(使用 pdflatex)

问题:我需要访问libertine中的 eg delta 字形pdflatex

这个问题指出\libertineGlyph最新版本的软件包不再提供该命令libertine。它还指出替换libertineotf不适用于pdftex这个答案建议两种解决方法(无需安装旧版本)。

  1. \libertineGlyph从文件的旧版本复制的定义。

    我无法让它工作,因为libertine.sty使用了宏\define。导入所需的三个包时似乎没有提供这个libertine,而且它不是标准命令。

  2. 它建议改用\char

    例如\char934不起作用,大概是因为杰利迪亚兹解释得很清楚这个答案

我将非常感激能够提供一种可行的方法。

编辑:我专门在寻找“文本”增量,而不是“数学”增量。参见:

在此处输入图片描述

答案1

好的,让我提出一个相当大胆的建议。我假设您拥有 TeXLive 2012 发行版,因为这是我唯一熟悉的发行版。

  1. 安装libertine-legacy在本地 texmf 树中
  2. libertine.sty中找到文件texmf-local/tex/latex/libertine-legacy/ 并将其重命名为libertine-legacy.sty(我们不会使用它,因为它肯定会对较新的文件造成破坏,libertine.sty该文件位于2012/texmf-dist
  3. libertine.map找到文件texmf-local/fonts/map/dvips/libertine-legacy/ 并将其重命名为libertine-legacy.map
  4. 转到texmf-local/web2c并将该行添加Map libertine-legacy.map到文件中updmap.cfg(您可能必须创建该文件)
  5. 继续texhash演出texmf-local
  6. 运行updmap-sysupdmap取决于你以前的习惯(我个人只使用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 月。我希望这是最新版本,并且在此期间旧版软件包中的字体名称没有发生变化。

我要强调的是,我在这里描述的内容并不是用 替换libertinelibertine-legacy两者都需要安装:主树中的新版本,本地树中的旧版本。并且您需要按照指示更改旧版 .sty 和 .map 文件的名称,然后不要忘记执行texhashupdmap-sys

libertine-legacy 的 delta 和 Delta

答案2

libertine 的最新版本(2012-12-07)确实支持 Glyph 命令,但仅适用于 xeLaTeX 和 luaLaTeX 用户。要获得像 delta 这样的字形,我建议使用带有 libertine 选项的 newtxmath。

更新:看来 MiKTeX 未正确安装 newtx 包。作为权宜之计,您可以编辑系统updmap.cfg以更改ntx.mapnewtx.map并执行

initexmf --mkmaps

然后 newtxmath 的 libertine 选项将起作用并$\updelta$生成所需的垂直增量。但 MikTeX 的下一次更新可能会破坏您的编辑(直到他们修复该问题)。问题不在于 libertine 本身,而在于 MikTeX。

相关内容