[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#952481: texlive: mktexpk fails to create tcrm1000



Hello Norbert,

Norbert Preining <preining@logic.at> wrote:
> Hi Holger,
> 
> On Mon, 24 Feb 2020, Holger Wansing wrote:
> > http://qa-logs.debian.net/2020/02/22/installation-guide_20191229_unstable.log
> 
> What is there is
> 	Writing build.out.el.amd64/html/index.html for book
> 	Info: creating .pdf file...
> 
> 	kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 tcrm1000
> 	mkdir: cannot create directory ‘build.tmp.el.i386/dblatex/mt7684.tmp’: No such file or directory
> 	kpathsea: Appending font creation commands to missfont.log.
> 
> which means that something in the build process is hosed .. either write
> permissions or whatever, so this is strange.
> 
> Furthermore, by default these files are generated in /tmp, unless you
> set TEMPDIR to something else, see /usr/share/texlive/texmf-dist/web2c/mktex.opt
> 	if test -n "$TMPDIR"; then
> 	  TEMPDIR="${TMPDIR}/mt$$.tmp"
> 	else
> 	  TEMPDIR="/tmp/mt$$.tmp"
> 	fi
> 	...
> 	(umask 077 && mkdir "$TEMPDIR") || exit 1
> So if $TMPDIR is not available, then there is something strange going
> on.

The TMPDIR variable is set to 'build.tmp' so it's strange that mktexpk tries to
use 'build.tmp.el.i386' which is in fact not existing...

> 
> Anyway, you **don't** want pk fonts (pixel fonts) in a PDF, so you
> **should** depend on the
> 	cm-super
> fonts to get proper type1 fonts that are scalable (without pixelation).
> 
> My guess (wild guess) is the following:
> - before tcrm fonts were not necessary because they were not used by the
>   LaTeX kernel, and thus no extra build process (mktex*) was called
> - the new LaTeX kernel requires tc fonts (because textcomp is loaded)
> - your package *always* had some setup that prevented creating of
>   directories or similar
> - the recent changes made this obvious.
> 
> So as said, there are two things to be done:
> - either make the directory writable, then the fonts will be generated
>   and included into the pdf properly

Hmm, no, that does not work: if I create the 'build.tmp.el.i386' dir from 
above by hand, the mktexpk call does no longer fail, however the PDF is not 
generated, the process fails at another (later) step.

> - depend on cm-super
> or both.

I installed cm-super on the machine, but the build fails with the same error
(with the same mktexph call).



However, I wonder what's going on at all with fonts:
we call dblatex with

    (TMPDIR=$tempdir/dblatex dblatex -q -V -T db2latex -b xetex -p ./stylesheets/dblatex.xsl \
    -o $tempdir/install.${language}.pdf \
    $tempdir/install.${language}.profiled.xml --param=lingua=${language} )

and in the dblatex.xsl file we set the fonts to use, like this:


  <xsl:param name="xetex.font">
   <xsl:choose>
    <xsl:when test="contains(/book/@lang,'ja')">
	<xsl:text>\usepackage{xeCJK}&#10;</xsl:text>
	<xsl:text>\setCJKmainfont{VL-PGothic-Regular}&#10;</xsl:text>
	<xsl:text>\setCJKsansfont{VL-PGothic-Regular}&#10;</xsl:text>
	<xsl:text>\setCJKmonofont{VL-PGothic-Regular}&#10;</xsl:text>
        <xsl:text>\setmainfont{VL-PGothic-Regular}&#10;</xsl:text>
        <xsl:text>\setsansfont{VL-PGothic-Regular}&#10;</xsl:text>
        <xsl:text>\setmonofont{VL-PGothic-Regular}&#10;</xsl:text>
    </xsl:when>
    <xsl:when test="contains(/book/@lang,'ko')">
	<xsl:text>\usepackage{xeCJK}&#10;</xsl:text>
	<xsl:text>\usepackage[hangul]{kotex}&#10;</xsl:text>
	<xsl:text>\setCJKmainfont{Noto Serif CJK KR}&#10;</xsl:text>
	<xsl:text>\setCJKsansfont{Noto Sans CJK KR}&#10;</xsl:text>
	<xsl:text>\setCJKmonofont{Noto Sans Mono CJK KR}&#10;</xsl:text>
	<xsl:text>\setmainfont{Noto Serif CJK KR}&#10;</xsl:text>
	<xsl:text>\setsansfont{Noto Sans CJK KR}&#10;</xsl:text>
	<xsl:text>\setmonofont{Noto Sans Mono CJK KR}&#10;</xsl:text>
    </xsl:when>
    <xsl:when test="contains(/book/@lang,'zh')">
	<xsl:text>\usepackage{xeCJK}&#10;</xsl:text>
	<xsl:text>\setCJKmainfont{WenQuanYi Micro Hei}&#10;</xsl:text>
	<xsl:text>\setCJKsansfont{WenQuanYi Micro Hei}&#10;</xsl:text>
	<xsl:text>\setCJKmonofont{WenQuanYi Micro Hei Mono}&#10;</xsl:text>
	<xsl:text>\setmainfont{WenQuanYi Micro Hei}&#10;</xsl:text>
	<xsl:text>\setsansfont{WenQuanYi Micro Hei}&#10;</xsl:text>
	<xsl:text>\setmonofont{WenQuanYi Micro Hei Mono}&#10;</xsl:text>
    </xsl:when>
    <xsl:otherwise>
        <xsl:text>\setmainfont{FreeSerif}&#10;</xsl:text>
        <xsl:text>\setsansfont{FreeSans}&#10;</xsl:text>
        <xsl:text>\setmonofont{FreeMono}&#10;</xsl:text>
    </xsl:otherwise>
   </xsl:choose>
  </xsl:param>



So, for the failing Greek variant the 'otherwise' clause is matching, and
the Free-font fonts from the 'fonts-freefont-ttf' debian-package are used.

Why mktexpk is called to use that jknappen font from tcrm?

Am I missing something here?


Thanks
Holger


PS: in case you need the original code of installation-guide, it's here:
https://salsa.debian.org/installer-team/installation-guide/-/tree/master/build
the PDF generation is in buildone.sh starting from line 186.


-- 
Holger Wansing <hwansing@mailbox.org>
PGP-Fingerprint: 496A C6E8 1442 4B34 8508  3529 59F1 87CA 156E B076


Reply to: