mpsuzuki at hiroshima-u.ac.jp
2010-Sep-02 18:24 UTC
[Fontconfig] How can I store FC_MATRIX object to cache file?
Hi, How can I store FC_MATRIX object to cache file? -- Now I''m trying to add some properties to fontconfig database, which are taken from OS/2 and PCLT tables in OpenType: like sFamilyClass (so-called IBM family classification), Panose etc. They are useful to guess whether typeface is typographic/scriptic, serif/sans-serif, proportional/fixed-pitch etc. My original motivation is an improvement of the font substitution in poppler. For detail, please find: https://bugs.freedesktop.org/show_bug.cgi?id=5168 Panose in OpenType is a collection of 10 parameters, and all parameters are expressed by 8bit. 80bit is too large to pack into double integer, so I have to consider what is the best way to store such in FcPattern. I think there are 3 options: 1) Name all parameters and store separately, aslike, adding 10 types to FcObjectTypes: FC_OS2_PANOSE_0, FC_OS2_PANOSE_1, ... # The name of each byte is different from OpenType spec # and its reference, so I don''t use OpenType spec name # like FC_OS2_PANOSE_FAMILYTYPE. 2) ASCII-fy 10 parameters to NULL-terminated string, and use as a string type property. 3) Define new data type, a structure including 10 members and add "FcTypePanose" to FcType. -- About 1), it''s easy for me to write such patch and for users to use, but the addition of 10 objects may be too much, because current variety of the object type is 41. About 2), it''s easy for me to write such patch but tricky for users to use, because it is requred to decode from ASCII string to original data. About 3), it''s easiest for users. So I have to consider about this option. Checking the source code of fontconfig, FcMatrix data type looks similar (a structure with fixed length), but it seems that the data typed FcMatrix cannot be stored in cache file. I inserted FcMatrix object to FcPattern and tried to save it in cache file, but it seems that FcMatrix typed data cannot be saved (fc-cat can read object type but cannot read value). The code for FcString, FcCharSet and FcLangSet are variable length data and have many works. So I want to know how I can store FcMatrix typed data to cache file. Regards, mpsuzuki P.S. If option 1) or 2) are acceptable for fontconfig maintainers, I will do so.
Behdad Esfahbod
2010-Sep-02 20:44 UTC
[Fontconfig] How can I store FC_MATRIX object to cache file?
Hi, Can you explain more why the PANOSE values are needed? And, do we need to allow users to query based on them, or just having them in the cache? behdad On 09/02/10 14:24, mpsuzuki at hiroshima-u.ac.jp wrote:> Hi, > > How can I store FC_MATRIX object to cache file? > > -- > > Now I''m trying to add some properties to fontconfig database, > which are taken from OS/2 and PCLT tables in OpenType: like > sFamilyClass (so-called IBM family classification), Panose etc. > They are useful to guess whether typeface is typographic/scriptic, > serif/sans-serif, proportional/fixed-pitch etc. My original > motivation is an improvement of the font substitution in poppler. > For detail, please find: > > https://bugs.freedesktop.org/show_bug.cgi?id=5168 > > Panose in OpenType is a collection of 10 parameters, and > all parameters are expressed by 8bit. 80bit is too large > to pack into double integer, so I have to consider what is > the best way to store such in FcPattern. I think there are > 3 options: > > 1) Name all parameters and store separately, aslike, > adding 10 types to FcObjectTypes: FC_OS2_PANOSE_0, > FC_OS2_PANOSE_1, ... > > # The name of each byte is different from OpenType spec > # and its reference, so I don''t use OpenType spec name > # like FC_OS2_PANOSE_FAMILYTYPE. > > 2) ASCII-fy 10 parameters to NULL-terminated string, > and use as a string type property. > > 3) Define new data type, a structure including 10 members > and add "FcTypePanose" to FcType. > > -- > > About 1), it''s easy for me to write such patch and for > users to use, but the addition of 10 objects may be too > much, because current variety of the object type is 41. > > About 2), it''s easy for me to write such patch but tricky > for users to use, because it is requred to decode from > ASCII string to original data. > > About 3), it''s easiest for users. So I have to consider > about this option. > > Checking the source code of fontconfig, FcMatrix data > type looks similar (a structure with fixed length), but > it seems that the data typed FcMatrix cannot be stored > in cache file. I inserted FcMatrix object to FcPattern > and tried to save it in cache file, but it seems that > FcMatrix typed data cannot be saved (fc-cat can read > object type but cannot read value). > > The code for FcString, FcCharSet and FcLangSet are > variable length data and have many works. So I want to > know how I can store FcMatrix typed data to cache file. > > Regards, > mpsuzuki > > P.S. > If option 1) or 2) are acceptable for fontconfig maintainers, > I will do so. >
mpsuzuki at hiroshima-u.ac.jp
2010-Sep-03 07:50 UTC
[Fontconfig] [Behdad] Re: How can I store FC_MATRIX object to cache file?
On Thu, 02 Sep 2010 16:44:35 -0400 Behdad Esfahbod <behdad at behdad.org> wrote:>Can you explain more why the PANOSE values are needed? And, do we need to >allow users to query based on them, or just having them in the cache?In some popular document formats, like PDF, SVG, ODF and OOXML, Panose values are embedded to give the hint for font substitution. =================================================================PDF --- PDF Reference 6th edition (for PDF version 1.7) 5.7.2 Font Descriptors for CIDFonts see the description for "Style" entry which includes 2 bytes from OS/2.sFamilyClass, 10 bytes from OS/2.Panose. SVG --- http://www.w3.org/TR/2003/REC-SVG11-20030114/fonts.html 20.8.3 The `font-face'' element there are many elements inherited from CSS2, including Panose. ODF --- http://docs.oasis-open.org/office/v1.1/OS/OpenDocument-v1.1.pdf 14.6.1 CSS2/SVG Font Descriptors ODF adopted the elements for the fonts from CSS2 and SVG, so even the font is for the text (not for embedded scalable graphics), it may have Panose value in the svg:panose-1 attribute. OOXML ----- ISO/IEC 29500-1:2008 17.8.3.13 panose1 (Panose-1 Typeface Classification Number) OOXML have several font properties (GDI parameters, Panose, and supported unicode range). In 17.8.2 Font Substitution, there is a list of properties to be used in the font substitution, and panose is described as the highest priority. PCL --- "PCL 5e Technical Quick Reference Guide" http://h20000.www2.hp.com/bc/docs/support/SupportManual/bpl13205/bpl13205.pdf "PCL5 Comparison Guide" http://h20000.www2.hp.com/bc/docs/support/SupportManual/bpl13206/bpl13206.pdf PCL5 selects the font by giving Panose parameters sequentially and narrowing down the candidates, see PCL 5e Technical Quick Reference Guide p 11-15. See table 1-1 "PCL5 Feature Support Matrix" in page 1-12 PCL5 Comparison Guide, many PCL5 implementations support the feature to narrow down by Panose parameters. Also PCL6 (PCL XL) supports the feature by giving a string of PCL5 commands to PCLSelectFont attribute. =================================================================In addition, current fontconfig does not have easy element to be related with CSS''s 5 family classification (serif, sans- serif, cursive, fantasy). I think getting FamilyClass & Panose values from fontconfig cache may be helpful, because the application don''t have to open a face, load OS/2 table, check FamilyClass/Panose values, close a face. The font selection by the matching of familynames & charsets leaves a room for an improvement, because severeal documents formats (and CSS) have these properties in the documents. -- The query based on these properties is arguable. The algorithm to evaluate "best matching" font by Panose is not specified in Panose specification paper. If exactly same, it is ok - but if different, it is arguable how the similarity should be evaluated. Some people want to give the highest priority to serif/sans-serif contrast, others want to give it to weight similarity. At present, I don''t have good idea that everybody think it as acceptable. Thus, I think just giving the APIs to provide these properties (FamilyClass, Panose, etc) is appropriate starting point. It is still convenient for fontconfig client applications because they can reduce the costs to open/check/close many font files by themselves. # In fact, in PCL5, the priority of each bytes in Panose is user # controllable. Behdad, could I answer to your question? If I''m misunderstanding what I was requested, please give me one more chance. Regards, mpsuzuki P.S. If putting so many data to fontconfig is bad idea, please let me know.>On 09/02/10 14:24, mpsuzuki at hiroshima-u.ac.jp wrote: >> Hi, >> >> How can I store FC_MATRIX object to cache file? >> >> -- >> >> Now I''m trying to add some properties to fontconfig database, >> which are taken from OS/2 and PCLT tables in OpenType: like >> sFamilyClass (so-called IBM family classification), Panose etc. >> They are useful to guess whether typeface is typographic/scriptic, >> serif/sans-serif, proportional/fixed-pitch etc. My original >> motivation is an improvement of the font substitution in poppler. >> For detail, please find: >> >> https://bugs.freedesktop.org/show_bug.cgi?id=5168 >> >> Panose in OpenType is a collection of 10 parameters, and >> all parameters are expressed by 8bit. 80bit is too large >> to pack into double integer, so I have to consider what is >> the best way to store such in FcPattern. I think there are >> 3 options: >> >> 1) Name all parameters and store separately, aslike, >> adding 10 types to FcObjectTypes: FC_OS2_PANOSE_0, >> FC_OS2_PANOSE_1, ... >> >> # The name of each byte is different from OpenType spec >> # and its reference, so I don''t use OpenType spec name >> # like FC_OS2_PANOSE_FAMILYTYPE. >> >> 2) ASCII-fy 10 parameters to NULL-terminated string, >> and use as a string type property. >> >> 3) Define new data type, a structure including 10 members >> and add "FcTypePanose" to FcType. >> >> -- >> >> About 1), it''s easy for me to write such patch and for >> users to use, but the addition of 10 objects may be too >> much, because current variety of the object type is 41. >> >> About 2), it''s easy for me to write such patch but tricky >> for users to use, because it is requred to decode from >> ASCII string to original data. >> >> About 3), it''s easiest for users. So I have to consider >> about this option. >> >> Checking the source code of fontconfig, FcMatrix data >> type looks similar (a structure with fixed length), but >> it seems that the data typed FcMatrix cannot be stored >> in cache file. I inserted FcMatrix object to FcPattern >> and tried to save it in cache file, but it seems that >> FcMatrix typed data cannot be saved (fc-cat can read >> object type but cannot read value). >> >> The code for FcString, FcCharSet and FcLangSet are >> variable length data and have many works. So I want to >> know how I can store FcMatrix typed data to cache file. >> >> Regards, >> mpsuzuki >> >> P.S. >> If option 1) or 2) are acceptable for fontconfig maintainers, >> I will do so. >>
Behdad Esfahbod
2010-Sep-03 07:59 UTC
[Fontconfig] [Behdad] Re: How can I store FC_MATRIX object to cache file?
On 09/03/10 03:50, mpsuzuki at hiroshima-u.ac.jp wrote:> Behdad, could I answer to your question? If I''m misunderstanding > what I was requested, please give me one more chance.Your answer was exactly what I was looking for. Let me think about it. I''m guessing that this may fall into a larger redesign of the matching algorithm to allow user-selected preference over matching attributes. behdad
mpsuzuki at hiroshima-u.ac.jp
2010-Sep-03 08:29 UTC
[Fontconfig] How can I store FC_MATRIX object to cache file?
Sorry for my slip to put your name in Subject (it was automatically copied from Sender:), I removed it. On Fri, 03 Sep 2010 03:59:28 -0400 Behdad Esfahbod <behdad at behdad.org> wrote:>On 09/03/10 03:50, mpsuzuki at hiroshima-u.ac.jp wrote: >> Behdad, could I answer to your question? If I''m misunderstanding >> what I was requested, please give me one more chance. > >Your answer was exactly what I was looking for. > >Let me think about it. I''m guessing that this may fall >into a larger redesign of the matching algorithm to allow >user-selected preference over matching attributes.Thank you for very quick reply. If fontconfig moves to allow user-selected preference in matching algorithm, it sounds very good news, it is more than what I expected. However, the user-selected preference in matching is not essential for my request. My most important background is just the reduction of the loop of open/check/close of font files in the fontconfig client (in my case, poppler is it). Regards, mpsuzuki
Behdad Esfahbod
2010-Sep-15 17:56 UTC
[Fontconfig] [Behdad] Re: How can I store FC_MATRIX object to cache file?
Can you file a bug with reference to these details please? behdad On 09/03/10 03:50, mpsuzuki at hiroshima-u.ac.jp wrote:> On Thu, 02 Sep 2010 16:44:35 -0400 > Behdad Esfahbod <behdad at behdad.org> wrote: >> Can you explain more why the PANOSE values are needed? And, do we need to >> allow users to query based on them, or just having them in the cache? > > In some popular document formats, like PDF, SVG, ODF and OOXML, > Panose values are embedded to give the hint for font substitution. > =================================================================> PDF > --- > PDF Reference 6th edition (for PDF version 1.7) > 5.7.2 Font Descriptors for CIDFonts > > see the description for "Style" entry which > includes 2 bytes from OS/2.sFamilyClass, > 10 bytes from OS/2.Panose. > > SVG > --- > http://www.w3.org/TR/2003/REC-SVG11-20030114/fonts.html > 20.8.3 The `font-face'' element > > there are many elements inherited from CSS2, > including Panose. > > ODF > --- > http://docs.oasis-open.org/office/v1.1/OS/OpenDocument-v1.1.pdf > 14.6.1 CSS2/SVG Font Descriptors > > ODF adopted the elements for the fonts from > CSS2 and SVG, so even the font is for the text > (not for embedded scalable graphics), it may > have Panose value in the svg:panose-1 attribute. > > OOXML > ----- > ISO/IEC 29500-1:2008 > 17.8.3.13 panose1 (Panose-1 Typeface Classification Number) > > OOXML have several font properties (GDI parameters, > Panose, and supported unicode range). In 17.8.2 Font > Substitution, there is a list of properties to be > used in the font substitution, and panose is described > as the highest priority. > > PCL > --- > "PCL 5e Technical Quick Reference Guide" > http://h20000.www2.hp.com/bc/docs/support/SupportManual/bpl13205/bpl13205.pdf > "PCL5 Comparison Guide" > http://h20000.www2.hp.com/bc/docs/support/SupportManual/bpl13206/bpl13206.pdf > > PCL5 selects the font by giving Panose parameters > sequentially and narrowing down the candidates, > see PCL 5e Technical Quick Reference Guide p 11-15. > > See table 1-1 "PCL5 Feature Support Matrix" in > page 1-12 PCL5 Comparison Guide, many PCL5 > implementations support the feature to narrow > down by Panose parameters. > > Also PCL6 (PCL XL) supports the feature by > giving a string of PCL5 commands to PCLSelectFont > attribute. > =================================================================> In addition, current fontconfig does not have easy element to > be related with CSS''s 5 family classification (serif, sans- > serif, cursive, fantasy). I think getting FamilyClass & Panose > values from fontconfig cache may be helpful, because the > application don''t have to open a face, load OS/2 table, > check FamilyClass/Panose values, close a face. > > The font selection by the matching of familynames & charsets > leaves a room for an improvement, because severeal documents > formats (and CSS) have these properties in the documents. > > -- > > The query based on these properties is arguable. The algorithm > to evaluate "best matching" font by Panose is not specified > in Panose specification paper. If exactly same, it is ok - but if > different, it is arguable how the similarity should be evaluated. > Some people want to give the highest priority to serif/sans-serif > contrast, others want to give it to weight similarity. At present, > I don''t have good idea that everybody think it as acceptable. > > Thus, I think just giving the APIs to provide these properties > (FamilyClass, Panose, etc) is appropriate starting point. It > is still convenient for fontconfig client applications because > they can reduce the costs to open/check/close many font files > by themselves. > > # In fact, in PCL5, the priority of each bytes in Panose is user > # controllable. > > Behdad, could I answer to your question? If I''m misunderstanding > what I was requested, please give me one more chance. > > Regards, > mpsuzuki > > P.S. > If putting so many data to fontconfig is bad idea, please let me > know. > >> On 09/02/10 14:24, mpsuzuki at hiroshima-u.ac.jp wrote: >>> Hi, >>> >>> How can I store FC_MATRIX object to cache file? >>> >>> -- >>> >>> Now I''m trying to add some properties to fontconfig database, >>> which are taken from OS/2 and PCLT tables in OpenType: like >>> sFamilyClass (so-called IBM family classification), Panose etc. >>> They are useful to guess whether typeface is typographic/scriptic, >>> serif/sans-serif, proportional/fixed-pitch etc. My original >>> motivation is an improvement of the font substitution in poppler. >>> For detail, please find: >>> >>> https://bugs.freedesktop.org/show_bug.cgi?id=5168 >>> >>> Panose in OpenType is a collection of 10 parameters, and >>> all parameters are expressed by 8bit. 80bit is too large >>> to pack into double integer, so I have to consider what is >>> the best way to store such in FcPattern. I think there are >>> 3 options: >>> >>> 1) Name all parameters and store separately, aslike, >>> adding 10 types to FcObjectTypes: FC_OS2_PANOSE_0, >>> FC_OS2_PANOSE_1, ... >>> >>> # The name of each byte is different from OpenType spec >>> # and its reference, so I don''t use OpenType spec name >>> # like FC_OS2_PANOSE_FAMILYTYPE. >>> >>> 2) ASCII-fy 10 parameters to NULL-terminated string, >>> and use as a string type property. >>> >>> 3) Define new data type, a structure including 10 members >>> and add "FcTypePanose" to FcType. >>> >>> -- >>> >>> About 1), it''s easy for me to write such patch and for >>> users to use, but the addition of 10 objects may be too >>> much, because current variety of the object type is 41. >>> >>> About 2), it''s easy for me to write such patch but tricky >>> for users to use, because it is requred to decode from >>> ASCII string to original data. >>> >>> About 3), it''s easiest for users. So I have to consider >>> about this option. >>> >>> Checking the source code of fontconfig, FcMatrix data >>> type looks similar (a structure with fixed length), but >>> it seems that the data typed FcMatrix cannot be stored >>> in cache file. I inserted FcMatrix object to FcPattern >>> and tried to save it in cache file, but it seems that >>> FcMatrix typed data cannot be saved (fc-cat can read >>> object type but cannot read value). >>> >>> The code for FcString, FcCharSet and FcLangSet are >>> variable length data and have many works. So I want to >>> know how I can store FcMatrix typed data to cache file. >>> >>> Regards, >>> mpsuzuki >>> >>> P.S. >>> If option 1) or 2) are acceptable for fontconfig maintainers, >>> I will do so. >>> >
suzuki toshiya
2010-Sep-16 11:32 UTC
[Fontconfig] How can I store FC_MATRIX object to cache file?
Hi, Just I''ve filed my proposal to bugzilla, with my preliminary patch: https://bugs.freedesktop.org/show_bug.cgi?id=30225 Also I found a similar discussion in August: https://bugs.freedesktop.org/show_bug.cgi?id=29497 Unfortunately, it seems that the original submitter does not raise the discussion in this list. Regards, mpsuzuki Behdad Esfahbod wrote:> Can you file a bug with reference to these details please? > > behdad > > On 09/03/10 03:50, mpsuzuki at hiroshima-u.ac.jp wrote: > >> On Thu, 02 Sep 2010 16:44:35 -0400 >> Behdad Esfahbod <behdad at behdad.org> wrote: >> >>> Can you explain more why the PANOSE values are needed? And, do we need to >>> allow users to query based on them, or just having them in the cache? >>> >> In some popular document formats, like PDF, SVG, ODF and OOXML, >> Panose values are embedded to give the hint for font substitution. >> =================================================================>> PDF >> --- >> PDF Reference 6th edition (for PDF version 1.7) >> 5.7.2 Font Descriptors for CIDFonts >> >> see the description for "Style" entry which >> includes 2 bytes from OS/2.sFamilyClass, >> 10 bytes from OS/2.Panose. >> >> SVG >> --- >> http://www.w3.org/TR/2003/REC-SVG11-20030114/fonts.html >> 20.8.3 The `font-face'' element >> >> there are many elements inherited from CSS2, >> including Panose. >> >> ODF >> --- >> http://docs.oasis-open.org/office/v1.1/OS/OpenDocument-v1.1.pdf >> 14.6.1 CSS2/SVG Font Descriptors >> >> ODF adopted the elements for the fonts from >> CSS2 and SVG, so even the font is for the text >> (not for embedded scalable graphics), it may >> have Panose value in the svg:panose-1 attribute. >> >> OOXML >> ----- >> ISO/IEC 29500-1:2008 >> 17.8.3.13 panose1 (Panose-1 Typeface Classification Number) >> >> OOXML have several font properties (GDI parameters, >> Panose, and supported unicode range). In 17.8.2 Font >> Substitution, there is a list of properties to be >> used in the font substitution, and panose is described >> as the highest priority. >> >> PCL >> --- >> "PCL 5e Technical Quick Reference Guide" >> http://h20000.www2.hp.com/bc/docs/support/SupportManual/bpl13205/bpl13205.pdf >> "PCL5 Comparison Guide" >> http://h20000.www2.hp.com/bc/docs/support/SupportManual/bpl13206/bpl13206.pdf >> >> PCL5 selects the font by giving Panose parameters >> sequentially and narrowing down the candidates, >> see PCL 5e Technical Quick Reference Guide p 11-15. >> >> See table 1-1 "PCL5 Feature Support Matrix" in >> page 1-12 PCL5 Comparison Guide, many PCL5 >> implementations support the feature to narrow >> down by Panose parameters. >> >> Also PCL6 (PCL XL) supports the feature by >> giving a string of PCL5 commands to PCLSelectFont >> attribute. >> =================================================================>> In addition, current fontconfig does not have easy element to >> be related with CSS''s 5 family classification (serif, sans- >> serif, cursive, fantasy). I think getting FamilyClass & Panose >> values from fontconfig cache may be helpful, because the >> application don''t have to open a face, load OS/2 table, >> check FamilyClass/Panose values, close a face. >> >> The font selection by the matching of familynames & charsets >> leaves a room for an improvement, because severeal documents >> formats (and CSS) have these properties in the documents. >> >> -- >> >> The query based on these properties is arguable. The algorithm >> to evaluate "best matching" font by Panose is not specified >> in Panose specification paper. If exactly same, it is ok - but if >> different, it is arguable how the similarity should be evaluated. >> Some people want to give the highest priority to serif/sans-serif >> contrast, others want to give it to weight similarity. At present, >> I don''t have good idea that everybody think it as acceptable. >> >> Thus, I think just giving the APIs to provide these properties >> (FamilyClass, Panose, etc) is appropriate starting point. It >> is still convenient for fontconfig client applications because >> they can reduce the costs to open/check/close many font files >> by themselves. >> >> # In fact, in PCL5, the priority of each bytes in Panose is user >> # controllable. >> >> Behdad, could I answer to your question? If I''m misunderstanding >> what I was requested, please give me one more chance. >> >> Regards, >> mpsuzuki >> >> P.S. >> If putting so many data to fontconfig is bad idea, please let me >> know. >> >> >>> On 09/02/10 14:24, mpsuzuki at hiroshima-u.ac.jp wrote: >>> >>>> Hi, >>>> >>>> How can I store FC_MATRIX object to cache file? >>>> >>>> -- >>>> >>>> Now I''m trying to add some properties to fontconfig database, >>>> which are taken from OS/2 and PCLT tables in OpenType: like >>>> sFamilyClass (so-called IBM family classification), Panose etc. >>>> They are useful to guess whether typeface is typographic/scriptic, >>>> serif/sans-serif, proportional/fixed-pitch etc. My original >>>> motivation is an improvement of the font substitution in poppler. >>>> For detail, please find: >>>> >>>> https://bugs.freedesktop.org/show_bug.cgi?id=5168 >>>> >>>> Panose in OpenType is a collection of 10 parameters, and >>>> all parameters are expressed by 8bit. 80bit is too large >>>> to pack into double integer, so I have to consider what is >>>> the best way to store such in FcPattern. I think there are >>>> 3 options: >>>> >>>> 1) Name all parameters and store separately, aslike, >>>> adding 10 types to FcObjectTypes: FC_OS2_PANOSE_0, >>>> FC_OS2_PANOSE_1, ... >>>> >>>> # The name of each byte is different from OpenType spec >>>> # and its reference, so I don''t use OpenType spec name >>>> # like FC_OS2_PANOSE_FAMILYTYPE. >>>> >>>> 2) ASCII-fy 10 parameters to NULL-terminated string, >>>> and use as a string type property. >>>> >>>> 3) Define new data type, a structure including 10 members >>>> and add "FcTypePanose" to FcType. >>>> >>>> -- >>>> >>>> About 1), it''s easy for me to write such patch and for >>>> users to use, but the addition of 10 objects may be too >>>> much, because current variety of the object type is 41. >>>> >>>> About 2), it''s easy for me to write such patch but tricky >>>> for users to use, because it is requred to decode from >>>> ASCII string to original data. >>>> >>>> About 3), it''s easiest for users. So I have to consider >>>> about this option. >>>> >>>> Checking the source code of fontconfig, FcMatrix data >>>> type looks similar (a structure with fixed length), but >>>> it seems that the data typed FcMatrix cannot be stored >>>> in cache file. I inserted FcMatrix object to FcPattern >>>> and tried to save it in cache file, but it seems that >>>> FcMatrix typed data cannot be saved (fc-cat can read >>>> object type but cannot read value). >>>> >>>> The code for FcString, FcCharSet and FcLangSet are >>>> variable length data and have many works. So I want to >>>> know how I can store FcMatrix typed data to cache file. >>>> >>>> Regards, >>>> mpsuzuki >>>> >>>> P.S. >>>> If option 1) or 2) are acceptable for fontconfig maintainers, >>>> I will do so. >>>> >>>>