2008-12-19 19 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處於打開狀態,它將崩潰,並且某些應用程序可能會顯示某些字符不正確,因此您必須重新啓動它們。