2008-12-19 55 views
4

我的同事认为texniscope是某种程度上的责任,我应该尝试从我的系统中清除它。我真的希望不必诉诸于此!PDF格式文件中的字体在使用latex(在mac osx上生成时使用pdflatex)(特别是pdflatex)搞砸了

可能的线索:

  • 这不是一个问题,直到我升级到Leopard。

  • 当我说字体搞砸了,我的意思是主文本看起来可能是默认的mac系统字体,所有的数学运算都是完全不可读的。基本上所有的特殊符号都是完全乱码的。

  • 我从这里安装乳胶:http://www.tug.org/mactex/。我已经安装了texniscope。

  • 当我运行/usr/texbin/pdflatex foo.tex,似乎工作:

 
    This is pdfTeXk, Version 3.1415926-1.40.9 (Web2C 7.5.7) 
    %&-line parsing enabled. 
    entering extended mode 
    ... 

,但生成的PDF文件已搞砸了的字体。

  • 同样的事情发生在命令行上的pdflatex或使用TeXShop。

回答

5

苹果知道这个问题,并没有打算修复它(我有一位教职员花费大量时间测试并向苹果提交bug)。他们的观点是,PDFTeX错误地嵌入了字体,并且他们已经修复了Apple PDF库对它将会和不会接受的内容更加严格,这意味着您将继续在预览中看到使用PDFTeX创建的PDF文档的问题,TeXShop或其他使用Apple的PDF引擎显示PDF的工具。不幸的是,他们并不清楚PDFTeX究竟做了什么错误,这使得修复它甚至向PDFTeX开发者报告错误是有问题的。请注意,Adobe的Acrobat或Reader应用程序通常可以毫无问题地显示这些文档;据推测,Adobe的错误检查比苹果更加自由。

实际上,您可以在不重新启动的情况下从此问题中恢复,尽管您可能会在同一会话中看到它重复出现同一文档。您需要运行

atsutil server -shutdown 

这将杀死Apple Type Services服务器守护进程(ATSServer)并产生一个新实例,同时重建其缓存文件。

+0

“的说法是,PDFTeX错误地嵌入了字体”如果这是真的,我会非常惊讶。 Acrobat 8​​在使用pdfTeX文件时没有问题,而使用微缩版的pdfTeX使用每行字体缩放和变换矩阵;如果字体嵌入错误,那根本不应该工作。 – kquinn 2009-02-18 23:13:02

0

查看文档属性下的Adobe Reader中的pdf。如果数学中使用Type 3(?)位图字体,则需要告诉驱动程序将正确的Type 1矢量字体嵌入到生成的文档中。

我在dvips上使用乳胶,然后在linux上使用pdf。它曾经是我不得不告诉它做到这一点,但现在看来,至少在Ubuntu上的软件包具有适当的字体设置。

查看网页,告诉你如何在文档中嵌入正确的字体。

第二个想法,也许你没有安装在系统上的任何字体,或者你的字体没有被嵌入到文档中。

+0

聪明,虽然这原来不是问题。看到我添加的答案。 – dreeves 2008-12-27 04:40:38

0

我对你与MacTeX的问题感到有点惊讶。我最近安装了2008版本,它像一个魅力,无论是pdftex/latex还是xetex/latex。即使安装了以前的teTeX,字体也不是问题。你可以把你的foo.tex放在某个地方供我们测试吗?

+0

这绝对不是tex文件的错。看到我刚刚添加的答案。它似乎是TeXniscope和Leopard的组合。如果有人可以确认或否认,请告诉我! – dreeves 2008-12-20 00:55:50

+0

确认。看到我添加的答案。 – dreeves 2008-12-27 04:41:25

1

看来我找到了答案,从http://www.stat.duke.edu/~dmm36/tech.php,贴在下面。唉,看来我不得不放弃TeXniscope。我喜欢TeXniscope比Skim好得多,因为它更简单,拥有更好的分页键盘快捷键,并且每次出现乳胶错误(Skim自动刷新)时,Skim都会让您手动刷新PDF。

http://www.stat.duke.edu/~dmm36/tech.php报价:

后最近升级到Leopard,东西很奇怪而可怕的开始由乳胶创建的PDF文件(MacTEX都2007分发)发生。值得一提的是,任何使用Apple本机pdf引擎的应用程序(例如preview.app,skim.app,Texniscope.app,LaTeXit.app,而不是adobe reader 8)都无法正确显示字体。更神秘的是,同一份文件在多个开口上的呈现方式可能不同。

接下来发生了大量的Google搜索,直到我在mac tex新闻组上发现了一个线程,这表明问题存在于损坏的字体缓存中。另一个搜索引起了关于如何在Leopard中删除所有字体缓存的暗示。从终端发出以下命令:

sudo rm -rf `lsof | grep com.apple.ATS/annex.aux | grep Finder | cut -c 66-139` 

(含更换lsof/usr/sbin/lsof如果/usr/sbin是不是在你的路径)

sudo rm -rf /private/var/folders/*/*/-Caches-/com.apple.ATS 

,然后重新启动。这为我解决了字体问题。

注意:这个问题的一部分似乎是TeXniscope.app搞砸了字体缓存的结果。例如,如果您删除字体缓存,重新引导并在预览中打开某些内容,它会显得很好,但只要您再次在TeXniscope中打开某些内容,就回到绘图板。如果您遇到这个问题并且使用TeXniscope作为您的pdf预览器(如aquamacs),您应该切换为您的pdf预览器的Skim。这很不错,Skim wiki有关于如何将它与Aquamacs整合的说明。无论如何,TeXniscope并没有得到积极的发展。

+1

即使我从未使用Texniscope,我偶尔也会在Leopard上遇到这样的问题。它似乎是随机发生的。我从http://www.titanium.free.fr/pgs/english.html使用了OnyX来清除我的字体缓存。 – 2009-01-04 10:57:45

3

TUG最近发布的更新的二进制文件修复触发字体缓存损坏的bug:http://www.tug.org/mactex/fontcache/

1

此bug已驱使我坚果。通过this hint启发,这里是我发现应付它,即在一个shell执行下列顺序的最佳方式:

atsutil databases -removeUser 
sudo atsutil databases -remove 
atsutil server -shutdown 
atsutil server -ping 

您可以添加这种顺序在你的shell配置文件中的shell函数(我的是.zshrc):

function atsrm() 
{ 
    atsutil databases -removeUser 
    sudo atsutil databases -remove 
    atsutil server -shutdown 
    atsutil server -ping 
} 

...和简单地调用atsrm在终端吹扫字体缓存。请注意,如果Skim处于打开状态,它将崩溃,并且某些应用程序可能会显示某些字符不正确,因此您必须重新启动它们。