4

Background

I'm using Ubuntu Precise with the standard repository packages rather than a manually installed TeXLive. I'm trying to include some Cyrillic in the bibliography of a paper which I'm compiling with pdflatex, following the advice of egreg that the best option is to use

\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}

But even a very simple test case

\documentclass[a4paper]{article}

\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}

\begin{document}
Testing \foreignlanguage{russian}{Обмен шифрами}
\end{document}

gives errors:

This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian)
entering extended mode
(./minimum.tex
LaTeX2e <2009/09/24>

  <snip>

kpathsea: Running mktextfm larm1000
mktextfm: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input larm1000
/usr/bin/mktextfm: 96: /usr/bin/mktextfm: mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input larm1000: not found
grep: larm1000.log: No such file or directory
mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input larm1000' failed to make larm1000.tfm.
kpathsea: Appending font creation commands to missfont.log.

! Font T2A/cmr/m/n/10=larm1000 at 10.0pt not loadable: Metric (TFM) file not fo
und.
<to be read again> 
                   relax 
l.8 ...anguage{russian}{Обмен шифрами}

I think the only relevant extra information from minimum.log is

LaTeX Font Info:    Try loading font information for T2A+cmr on input line 7.

(/usr/share/texmf-texlive/tex/latex/cyrillic/t2acmr.fd
File: t2acmr.fd 2001/08/11 v1.0a Computer Modern Cyrillic font definitions
)
LaTeX Font Info:    ... okay on input line 7.
! Font T2A/cmr/m/n/10=larm1000 at 10.0pt not loadable: Metric (TFM) file not fo
und.

Extra details

I don't understand all the levels of indirection, but in an attempt to track them down I ran

$ grep -rE "\blarm([^0-9]|1000)" /usr/share/tex* 2>/dev/null
Binary file /usr/share/texmf/fonts/type1/public/cm-super/sfrm1000.pfb matches
/usr/share/texmf/fonts/map/dvips/cm-super/cm-super-minimal-t2a.map:larm1000 SFRM1000 "T2AEncoding ReEncodeFont" <cm-super-t2a.enc <sfrm1000.pfb
/usr/share/texmf-texlive/scripts/pkfix/pkfix.pl:#       same type 1 font, eg. (ecrm1000, larm1000) -> SFRM1000.
/usr/share/texmf-texlive/tex/latex/cyrillic/t2acmr.fd:\EC@family{T2A}{cmr}{m}{n}{larm}
/usr/share/texmf-texlive/doc/fonts/lh/fonttest/allenc0.tex:\FontPage {larm1000}
/usr/share/texmf-texlive/doc/fonts/lh/fonttest/allenc2.tex:\FontPage {larm1000}
/usr/share/texmf-texlive/doc/generic/t2/examples/example2.tex:\font\larm=larm1000    % Set the default font --- Cyrillic
/usr/share/texmf-texlive/doc/generic/t2/examples/example2.tex:\larm                  % T2A encoded Computer Modern font.
/usr/share/texmf-texlive/fonts/map/dvips/updmap/psfonts.map:larm1000 SFRM1000 "T2AEncoding ReEncodeFont" <cm-super-t2a.enc <sfrm1000.pfb
/usr/share/texmf-texlive/fonts/map/dvips/updmap/psfonts_t1.map:larm1000 SFRM1000 "T2AEncoding ReEncodeFont" <cm-super-t2a.enc <sfrm1000.pfb
/usr/share/texmf-texlive/fonts/map/dvips/updmap/ps2pk.map:larm1000 SFRM1000 "T2AEncoding ReEncodeFont" <cm-super-t2a.enc <sfrm1000.pfb
/usr/share/texmf-texlive/fonts/map/fontname/special.map:larm            lh              lh-t2a
/usr/share/texmf-texlive/fonts/map/pdftex/updmap/pdftex_ndl14.map:larm1000 SFRM1000 "T2AEncoding ReEncodeFont" <cm-super-t2a.enc <sfrm1000.pfb
/usr/share/texmf-texlive/fonts/map/pdftex/updmap/pdftex.map:larm1000 SFRM1000 "T2AEncoding ReEncodeFont" <cm-super-t2a.enc <sfrm1000.pfb
/usr/share/texmf-texlive/fonts/map/pdftex/updmap/pdftex_dl14.map:larm1000 SFRM1000 "T2AEncoding ReEncodeFont" <cm-super-t2a.enc <sfrm1000.pfb
/usr/share/texmf-texlive/fonts/map/dvipdfm/updmap/dvipdfm_dl14.map:larm1000 cm-super-t2a sfrm1000 -r
/usr/share/texmf-texlive/fonts/map/dvipdfm/updmap/dvipdfm_ndl14.map:larm1000 cm-super-t2a sfrm1000 -r
/usr/share/texmf-texlive/fonts/map/dvipdfm/updmap/dvipdfm.map:larm1000 cm-super-t2a sfrm1000 -r

I have /usr/share/texmf/fonts/type1/public/cm-super/sfrm1000.pfb and /usr/share/texmf/fonts/enc/dvips/cm-super/cm-super-t2a.enc from Ubuntu package cm-super-minimal, so I think that I have the source files and am just missing some files to tie it all together.

Question

I'm not too fussed about fixing the underlying problem - it's a bit late to propose a patch for Precise, because it's in support mode now. But how can I obtain or generate the files which I'm missing, and get my document to compile and display the Cyrillic text?

  • Welcome to TeX.SX! You might like to have a look at our TeX.SX starter guide to get more information about out site. – Andrew Swann Oct 09 '14 at 10:45
  • I suspect a problem with write permissions for the ~/.texmf-var directory. – egreg Oct 09 '14 at 11:07
  • @egreg, it certainly looks like a permissions issue, but it's not with ~/.texmf-var because if I run mf manually it writes to ~/.texmf-var without problem. – Peter Taylor Oct 09 '14 at 11:12
  • I think you need to determine what the user and or group of the created mf process is. It is that process that needs correct persmissions to write to ~/.texmf-var – Andrew Swann Oct 09 '14 at 12:02
  • @PeterTaylor oh, this is not TeXlive, but ubuntu's... did you read this answer http://tex.stackexchange.com/a/5101/36131 ? – doed Oct 11 '14 at 13:21
  • @doed, I did read that answer, and it wasn't the problem. I actually found a workaround which allowed me to generate the missing file and I have successfully compiled my document, although for reasons I don't understand the high-rep users here seem to think that my solution belongs in the question rather than in an answer. – Peter Taylor Oct 11 '14 at 14:06
  • @PeterTaylor but you can always provide an answer, even if it doesn't get a vote, but perhaps someone later on, might find it useful. If that was the workaround, which worked for you, and it's not a comment...you should write an answer. I didn't follow the question, since you first posted it, but I don't think that neither Swann nor egreg would have an opinion against it, and whether it belongs to a comment or answer. Perhaps other high-rep users would, but not those two. – doed Oct 11 '14 at 14:50

1 Answers1

3

pdflatex is actually trying to create the missing files, but there's some permissions issue. I don't know how to fix the real problem, but there are two workarounds which will allow you to compile your document.

The clue

The error messages talk about mktextfm larm1000. If you try to run that command directly from the shell, you get the same errors:

mktextfm: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input larm1000
/usr/bin/mktextfm: 96: /usr/bin/mktextfm: mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input larm1000: not found
grep: larm1000.log: No such file or directory
mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input larm1000' failed to make larm1000.tfm.

Workaround 1

If you sudo it, it will succeed, even though the files which it writes are in ~/.texmf-var and it shouldn't obviously need any privileges beyond those which you have.

Workaround 2

The error messages also show that mktextfm is trying to run

mf-nowin -progname=mf "\mode:=ljfour; mag:=1; nonstopmode; input larm1000"

You can run that without sudo; it will create ~/.texmf-var/fonts/source/lh/lh-t2a/larm1000.mf as well as ./larm1000.600gf, ./larm1000.log, and ./larm1000.tfm. pdflatex will now compile your document. However, it's a good idea to

mv ./larm1000.tfm ~/.texmf-var/fonts/tfm/lh/lh-t2a/

because otherwise you may run into the same problem in future if you try to compile documents with Cyrillic from a different working directory.

  • Welcome to TeX.SX! This looks more like an addition to you question rather than an "Answer". Please edit your question instead. – Andrew Swann Oct 09 '14 at 10:44
  • @AndrewSwann, I'm not sure why you think that. The question sets out a problem (with perhaps a bit more detail than necessary, but it might help people find it with Google); this answer offers two solutions with a brief explanation and discussion of which is best. – Peter Taylor Oct 09 '14 at 11:07
  • I don't understand your answer then. What you do you mean by "glue"? It has a pretty specific meaning in the tex, but does not make sense here. – Andrew Swann Oct 09 '14 at 11:27
  • @AndrewSwann, I'm using it in the generic sense of "something which connects things": in this case the config file which links together the font files included in the relevant Ubuntu packages. – Peter Taylor Oct 09 '14 at 11:48
  • OK, but confusing. However your "answer" still sounds like a step on the process to diagnosing the problem, rather than a solution. – Andrew Swann Oct 09 '14 at 12:21
  • In my case, I needed to install the TeXLive lh package, as answered here: https://tex.stackexchange.com/a/5101/38471. – Apteryx Apr 21 '22 at 03:50