Macos 在mac osx上使用latex(特别是pdflatex)生成pdf文档时,文档中的字体会出错
我的同事建议说texniscope在某种程度上应该受到责备,我应该尝试从我的系统中清除它。我真的不希望不得不求助于此 可能的线索:Macos 在mac osx上使用latex(特别是pdflatex)生成pdf文档时,文档中的字体会出错,macos,pdf,latex,fonts,pdf-generation,Macos,Pdf,Latex,Fonts,Pdf Generation,我的同事建议说texniscope在某种程度上应该受到责备,我应该尝试从我的系统中清除它。我真的不希望不得不求助于此 可能的线索: 这不是一个问题,直到我升级到豹 当我说字体是错误的,我的意思是主文本看起来可能是默认的mac系统字体,所有的数学都是完全不可读的。基本上所有的特殊符号都是完全混乱的 我从这里安装了latex:。我已经安装了texniscope 当我运行/usr/texbin/pdflatex foo.tex时,它似乎可以工作: 这是pdfTeXk,版本3.1415926-1.4
- 这不是一个问题,直到我升级到豹
- 当我说字体是错误的,我的意思是主文本看起来可能是默认的mac系统字体,所有的数学都是完全不可读的。基本上所有的特殊符号都是完全混乱的
- 我从这里安装了latex:。我已经安装了texniscope
- 当我运行
时,它似乎可以工作:/usr/texbin/pdflatex foo.tex
- 在命令行上使用pdflatex或使用TeXShop时都会发生同样的情况
仔细想想,可能您的系统上没有安装任何字体,或者文档中没有嵌入任何字体。我对您在MacTeX中遇到的问题感到有点惊讶。我最近安装了2008版,无论是pdftex/latex还是xetex/latex,它都工作得很好。即使安装了以前的teTeX,字体也不是问题。你能把你的foo.tex放在某个地方让我们测试一下吗?看来我找到了答案,从,粘贴在下面。唉,看来我不得不放弃TeXniscope了。与Skim相比,我更喜欢TeXniscope,因为它更简单,有更好的分页键盘,Skim可以让您在每次出现latex错误时手动刷新pdf(否则Skim会自动刷新) 引自: 最近升级到Leopard之后,latex(MacTeX 2007发行版)创建的pdf文件开始出现一些非常奇怪和可怕的事情。有趣的是,任何使用苹果原生pdf引擎的应用程序(例如preview.app、skim.app、Texniscope.app、LaTeXit.app,但不是adobe reader 8)都没有正确显示字体。更神秘的是,同一份文件可能在多个开口处呈现不同的效果 谷歌搜索了很多次,直到我在MacTex新闻组上发现了一条线索,表明问题出在损坏的字体缓存中。另一个搜索提示如何删除Leopard中的所有字体缓存。从终端发出以下命令:
sudo rm -rf `lsof | grep com.apple.ATS/annex.aux | grep Finder | cut -c 66-139`
(如果路径中不存在/usr/sbin
,则将lsof
替换为/usr/sbin/lsof
)
然后重新启动。这为我解决了字体问题
注意:这个问题的部分原因似乎是TeXniscope.app搞乱了字体缓存。例如,如果删除字体缓存,重新启动,并在预览中打开某个内容,它看起来会很好,但一旦再次在TeXniscope中打开某个内容,就会返回到绘图板。如果您遇到此问题并使用TeXniscope作为pdf预览工具(如aquamacs),则应切换到Skim作为pdf预览工具。它非常好,Skim wiki提供了如何将其与Aquamacs集成的说明。TeXniscope并没有处于积极的开发阶段。苹果知道这个问题,也不打算解决它(我有一位教员花了很多时间测试并向苹果提交了一个bug)。他们声称PDFTeX错误地嵌入了字体,并且他们已经修复了Apple PDF库,使其对接受和不接受的内容更加严格,这意味着您将继续在Preview、TeXShop或其他使用Apple PDF引擎显示PDF的工具中看到使用PDFTeX创建的PDF文档存在问题。不幸的是,他们根本不清楚PDFTeX到底做错了什么,这使得修复它甚至向PDFTeX开发人员报告错误成为问题。请注意,Adobe的Acrobat或Reader应用程序通常可以毫无问题地显示这些文档;想必Adobe的错误检查比苹果的更自由 您实际上可以在不重新启动的情况下从该问题中恢复,尽管您可能会看到它在同一会话中使用同一文档时再次出现。你需要跑步
atsutil server -shutdown
这将杀死Apple Type Services服务器守护程序(ATSServer)并生成一个新实例,同时重建其缓存文件。TUG最近发布了更新的二进制文件,修复了触发字体缓存损坏的错误:http://www.tug.org/mactex/fontcache/这个错误让我发疯了。受此启发,我找到了处理此问题的最佳方法,即在shell中执行以下序列:
atsutil databases -removeUser
sudo atsutil databases -remove
atsutil server -shutdown
atsutil server -ping
您可以在shell配置文件的shell函数中按此顺序添加它(我的是.zshrc
):
…只需在终端中调用
atsrm
,即可清除字体缓存。请注意,如果Skim打开,它将崩溃,并且某些应用程序可能会不正确地显示某些字符,因此您必须重新启动它们。这肯定不是tex文件的错误。看看我刚才补充的答案。它似乎是TeXniscope和Leopard的组合。如果有人能证实或否认,请务必让我知道!确认。看我补充的答案。聪明,虽然这不是问题所在。看我补充的答案。我在Leopard上偶尔会遇到这种问题,尽管我从未使用过Texniscope。这似乎只是随机发生的。我使用了来自的OnyX来清除我的字体ca
atsutil server -shutdown
atsutil databases -removeUser
sudo atsutil databases -remove
atsutil server -shutdown
atsutil server -ping
function atsrm()
{
atsutil databases -removeUser
sudo atsutil databases -remove
atsutil server -shutdown
atsutil server -ping
}