[NTG-context] bfrange block CMap error in pdf file

Sanjoy Mahajan sanjoy at mrao.cam.ac.uk
Sun Oct 1 17:06:28 CEST 2006


This file produces just a boldface 'a' via metafun:

============= bf.tex ==============
\setuppagenumbering[location=]
\starttext
\startreusableMPgraphic{fig}
  label (\sometxt{\bf a}, (0,0));
\stopreusableMPgraphic
\reuseMPgraphic{fig}
\stoptext
============= bf.tex ==============

'xpdf bf.pdf' produces tons of this error:

  Error: Illegal entry in bfrange block in ToUnicode CMap

The log file had complaints from pdfetex about not finding fonts:

Warning: pdfetex (file /home/sanjoy/texmf/fonts/map/dvipdfm/context/original-public-lm.map): invalid entry for `cmex9': font file missing

which I eventually fixed by getting it to use the pdftex map files
instead of the dvipdfm map files.  Though I don't understand fully why I
could fix it (but that's for another msg).

Even with the map files being found, the bfrange block error remained.
The test file worked fine on the context live, so I diffed its pdf file
with the one generated here, after uncompressing both (using pdftk:
"pdftk bf.pdf output bb.pdf uncompress").

One difference is the following line in the broken pdf file:

/CIDInit /ProcSet findresource begin12 dict beginbegincmap/CIDSystemInfo<< /Registry (TeX)/Ordering (T1)/Supplement 0>> def/CMapName /TeX-T1-0 def/CMapType 2 def1 begincodespacerange<00> <FF>endcodespacerange10 beginbfrange<0E> <0F> <2039><10> <12> <201C><15> <16> <2013><21> <26> <0021><28> <5F> <0028><61> <7E> <0061><C0> <D6> <00C0><D8> <DE> <00D8><E0> <F6> <00E0><F8> <FE> <00F8>endbfrange95 beginbfchar<00> <0060><01> <00B4><02> <02C6><03> <02DC><04> <00A8><05> <02DD><06> <02DA><07> <02C7><08> <02D8><09> <00AF><0A> <02D9><0B> <00B8><0C> <02DB><0D> <201A><13> <00AB><14> <00BB><17> <200C><19> <0131><1B> <00660066><1C> <00660069><1D> <0066006C><1E> <006600660069><1F> <00660066006C><20> <2423><27> <2019><60> <2018><7F> <002D><80> <0102><81> <0104><82> <0106><83> <010C><84> <010E><85> <011A><86> <0118><87> <011E><88> <0139><89> <013D><8A> <0141><8B> <0143><8C> <0147><8D> <014A><8E> <0150><8F> <0154><90> <0158><91> <015A><92> <0160><93> <015E><94> <0164><95> <021A><96> <0170><97> <016E><98> <0178><99> <0179><9A> <017D><9B> <017B><9C> <0132><9D> <0130><9E> <0111><9F> <00A7><A0> <0103><A1> <0105><A2> <0107><A3> <010D><A4> <010F><A5> <011B><A6> <0119><A7> <011F><A8> <013A><A9> <013E><AA> <0142><AB> <0144><AC> <0148><AD> <014B><AE> <0151><AF> <0155><B0> <0159><B1> <015B><B2> <0161><B3> <015F><B4> <0165><B5> <021B><B6> <0171><B7> <016F><B8> <00FF><B9> <017A><BA> <017E><BB> <017C><BC> <0133><BD> <00A1><BE> <00BF><BF> <00A3><D7> <0152><DF> <00530053><F7> <0153><FF> <00DF>endbfcharendcmapCMapName currentdict /CMap defineresource pop endend

If I remove the '\bf' from the test .tex file, 

============= bf-rm.tex ==============
\setuppagenumbering[location=]
\starttext
\startreusableMPgraphic{fig}
  label (\sometxt{\a}, (0,0));
\stopreusableMPgraphic
\reuseMPgraphic{fig}
\stoptext
============= bf-rm.tex ==============

the resulting pdf file views without any errors, and this is the
corresponding line in its uncompressed pdf file:

 /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (T1) /Supplement 0 >> def /CMapName /TeX-T1-0 def /CMapType 2 def 1 begincodespacerange <00> <FF> endcodespacerange 10 beginbfrange <0E> <0F> <2039> <10> <12> <201C> <15> <16> <2013> <21> <26> <0021> <28> <5F> <0028> <61> <7E> <0061> <C0> <D6> <00C0> <D8> <DE> <00D8> <E0> <F6> <00E0> <F8> <FE> <00F8> endbfrange 95 beginbfchar <00> <0060> <01> <00B4> <02> <02C6> <03> <02DC> <04> <00A8> <05> <02DD> <06> <02DA> <07> <02C7> <08> <02D8> <09> <00AF> <0A> <02D9> <0B> <00B8> <0C> <02DB> <0D> <201A> <13> <00AB> <14> <00BB> <17> <200C> <19> <0131> <1B> <00660066> <1C> <00660069> <1D> <0066006C> <1E> <006600660069> <1F> <00660066006C> <20> <2423> <27> <2019> <60> <2018> <7F> <002D> <80> <0102> <81> <0104> <82> <0106> <83> <010C> <84> <010E> <85> <011A> <86> <0118> <87> <011E> <88> <0139> <89> <013D> <8A> <0141> <8B> <0143> <8C> <0147> <8D> <014A> <8E> <0150> <8F> <0154> <90> <0158> <91> <015A> <92> <0160> <93> <015E> <94> <0164> <95> <021A> <96> <0170> <97> <016E> <98> <0178> <99> <0179> <9A> <017D> <9B> <017B> <9C> <0132> <9D> <0130> <9E> <0111> <9F> <00A7> <A0> <0103> <A1> <0105> <A2> <0107> <A3> <010D> <A4> <010F> <A5> <011B> <A6> <0119> <A7> <011F> <A8> <013A> <A9> <013E> <AA> <0142> <AB> <0144> <AC> <0148> <AD> <014B> <AE> <0151> <AF> <0155> <B0> <0159> <B1> <015B> <B2> <0161> <B3> <015F> <B4> <0165> <B5> <021B> <B6> <0171> <B7> <016F> <B8> <00FF> <B9> <017A> <BA> <017E> <BB> <017C> <BC> <0133> <BD> <00A1> <BE> <00BF> <BF> <00A3> <D7> <0152> <DF> <00530053> <F7> <0153> <FF> <00DF> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end 

One difference between the working and broken pdf file is the spacing in
that line.  The working pdf file has

  def /CMapType 2 def 1 begincodespacerange <00> ... beginbfrange <0E>

The broken one has

  def/CMapType 2 def1 begincodespacerange<00> ... beginbfrange<0E>

which may explain why xpdf is unhappy about the range entries.  

I'm not sure whether it's due to a further problem with my map files or
texmf.cnf paths, or is a bug in pdftex.  Any thoughts?

Distribution: Ubuntu 6.06 with tetex 3.0 plus lmodern from Debian pkg
pdfeTeX: Version 3.141592-1.30.6-2.2 (Web2C 7.5.5)
ConTeXt: ver: 2006.09.28 22:43 MK II  fmt: 2006.9.30  int: english/english

(the live context uses pdfeTeX-1.21a, and didn't produce a corresponding
CMap section, so it had no problem in xpdf).

-Sanjoy

`A society of sheep must in time beget a government of wolves.'
   -- Bertrand de Jouvenal


More information about the ntg-context mailing list