3

Could someone please explain why this file compiles OK on MikTex on windows with no error, but on Linux with TexLive 2015 it gives an error?

\documentclass[10pt]{book}
\usepackage[T1]{fontenc}
\usepackage{ntheorem}  
\usepackage[charter]{mathdesign}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc} %DO NOT USE WITH LUALATEX, only with pdflatex
\usepackage[tracking,protrusion=true,expansion=true]{microtype}
\begin{document}
[Parallel and perpendicular symbol from Mathematica to $\LaTeX$]
\end{document}

Now on Linux:

pdflatex foo2.tex
This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./foo2.tex
LaTeX2e <2015/10/01> patch level 2
Babel <3.9m> and hyphenation patterns for 79 languages loaded.
(/usr/local/texlive/2015/texmf-dist/tex/latex/base/book.cls
Document Class: book 2014/09/29 v1.4h Standard LaTeX document class
...
(/usr/local/texlive/2015/texmf-dist/tex/latex/base/bk10.clo))
(/usr/local/texlive/2015/texmf-dist/tex/latex/base/fontenc.sty
(/usr/local/texlive/2015/texmf-dist/tex/latex/base/t1enc.def))
(/usr/local/texlive/2015/texmf-dist/tex/latex/mathdesign/mdbch/mdamdbch.fd)
(/usr/local/texlive/2015/texmf-dist/tex/latex/mathdesign/mdbch/mdbmdbch.fd)
! You can't use `\spacefactor' in math mode.
\@->\spacefactor 
                 \@m {}
l.13 ...dicular symbol from Mathematica to $\LaTeX
                                                  $]
? 

Now on windows (same file ofcourse)

X:\data\latex\10>pdflatex foo2.tex
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (MiKTeX 2.9 64-bit)
entering extended mode
(X:\data\latex\10\foo2.tex
LaTeX2e <2011/06/27>
.....
(C:\Users\me\AppData\Roaming\MiKTeX\2.9\tex\latex\mathdesign\mdbch\omxmdbch.fd)
(C:\Users\me\AppData\Roaming\MiKTeX\2.9\tex\latex\mathdesign\mdbch\mdamdbch.fd)
(C:\Users\me\AppData\Roaming\MiKTeX\2.9\tex\latex\mathdesign\mdbch\mdbmdbch.fd)
[1{C:/Users/me/AppData/Local/MiKTeX/2.9/pdftex/config/pdftex.map}]
(X:\data\latex\10\foo2.aux) ){C:/Users/me/AppData/Roaming/MiKTeX/2.9/fonts/enc/
dvips/ly1/texnansi.enc}<C:/Users/me/AppData/Roaming/MiKTeX/2.9/fonts/type1/bits
trea/charter/bchr8a.pfb><C:/Users/me/AppData/Roaming/MiKTeX/2.9/fonts/type1/mat
hdesign/mdbch/md-chr8t.pfb>
Output written on foo2.pdf (1 page, 16230 bytes).
Transcript written on foo2.log.

NO error.

What do I need to make this file compile OK on Linux?

List files on linux

 *File List*
    book.cls    2014/09/29 v1.4h Standard LaTeX document class
    bk10.clo    2014/09/29 v1.4h Standard LaTeX file (size option)
 fontenc.sty
   t1enc.def    2005/09/27 v1.99g Standard LaTeX file
ntheorem.sty    2011/08/15 1.33
  ifthen.sty    2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
mathdesign.sty    2013/08/29 v2.31 Math Design Project
  keyval.sty    2014/10/28 v1.15 key=value parser (DPC)
   mdbch.cfg
   mdbch.sty    2013/08/29 v2.31 bitstream bitstream charter + mdbch (Math Desi
gn Project)
  mdfont.def    2013/08/29 v2.31 (Math Design Project)
mdsffont.def    2013/08/29 v2.31 (Math Design Project)
mdttfont.def    2013/08/29 v2.31 (Math Design Project)
 xkeyval.sty    2014/12/03 v2.7a package option processing (HA)
 xkeyval.tex    2014/12/03 v2.7a key=value parser (HA)
 t1mdbch.fd    2013/08/29 Fontinst v1.933 font definitions for T1/mdbch.
 fontenc.sty
   t1enc.def    2005/09/27 v1.99g Standard LaTeX file
   babel.sty    2015/08/03 3.9m The Babel package
 english.ldf    2012/08/20 v3.3p English support from the babel system
inputenc.sty    2015/03/17 v1.2c Input encoding file
    utf8.def    2015/09/07 v1.1p UTF-8 support for inputenc
   t1enc.dfu    2015/09/07 v1.1p UTF-8 support for inputenc
  ot1enc.dfu    2015/09/07 v1.1p UTF-8 support for inputenc
  omsenc.dfu    2015/09/07 v1.1p UTF-8 support for inputenc
microtype.sty    2013/05/23 v2.5a Micro-typographical refinements (RS)
microtype-pdftex.def    2013/05/23 v2.5a Definitions specific to pdftex (RS)
microtype.cfg    2013/05/23 v2.5a microtype main configuration file (RS)
  mdacmr.fd    
  mdbcmr.fd    
  mt-bch.cfg    2007/03/03 v1.5 microtype config. file: Bitstream Charter (RS)
 ***********

 )

list files from windows

 *File List*
    book.cls    2007/10/19 v1.4h Standard LaTeX document class
    bk10.clo    2007/10/19 v1.4h Standard LaTeX file (size option)
 fontenc.sty
   t1enc.def    2005/09/27 v1.99g Standard LaTeX file
ntheorem.sty    2011/08/15 1.33
  ifthen.sty    2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
mathdesign.sty    2013/08/29 v2.31 Math Design Project
  keyval.sty    1999/03/16 v1.13 key=value parser (DPC)
   mdbch.cfg
   mdbch.sty    2013/08/29 v2.31 bitstream bitstream charter + mdbch (Math Desi
gn Project)
  mdfont.def    2013/08/29 v2.31 (Math Design Project)
mdsffont.def    2013/08/29 v2.31 (Math Design Project)
mdttfont.def    2013/08/29 v2.31 (Math Design Project)
 xkeyval.sty    2012/10/14 v2.6b package option processing (HA)
 xkeyval.tex    2012/10/14 v2.6b key=value parser (HA)
 t1mdbch.fd    2013/08/29 Fontinst v1.933 font definitions for T1/mdbch.
 fontenc.sty
   t1enc.def    2005/09/27 v1.99g Standard LaTeX file
   babel.sty    2008/07/08 v3.8m The Babel package
 bblopts.cfg    2006/07/31 v1.0 MiKTeX 'babel' configuration
 english.ldf    2012/08/20 v3.3p English support from the babel system
inputenc.sty    2008/03/30 v1.1d Input encoding file
    utf8.def    2008/04/05 v1.1m UTF-8 support for inputenc
   t1enc.dfu    2008/04/05 v1.1m UTF-8 support for inputenc
  ot1enc.dfu    2008/04/05 v1.1m UTF-8 support for inputenc
  omsenc.dfu    2008/04/05 v1.1m UTF-8 support for inputenc
microtype.sty    2013/05/23 v2.5a Micro-typographical refinements (RS)
microtype-pdftex.def    2013/05/23 v2.5a Definitions specific to pdftex (RS)
microtype.cfg    2013/05/23 v2.5a microtype main configuration file (RS)
  mdacmr.fd
  mdbcmr.fd
  mt-bch.cfg    2007/03/03 v1.5 microtype config. file: Bitstream Charter (RS)
 ***********

 )
2
  • 2
    This is very interesting why it works with old MikTeX. You can try to debug this MikTeX (I am unable to do this). $\spacefactor=1000$ gives this error at primitive level. You can try this in MikTeX. The \@ macro (which expand to the \spacefacror setting) is appended to \TeX part of \LaTeX logo in LaTeX. You can try the \meaning\@ in MikTeX. Maybe, it is accidentally redefined by a package.
    – wipet
    May 19 '16 at 4:40
  • The difference I see is in the loading of bblopts.cfg in MiKTeX. Maybe it redefines \TeX?
    – egreg
    May 19 '16 at 6:18
6

The difference is a change in babel.def between 2012 and 2013:

In TeXLive 2012 babel.def contains

\bbl@redefine\LaTeX{\textlatin{\org@LaTeX}}

And there the example compiles.

This redefinition has then been dropped. Now the definition of \LaTeX is unchanged and no longer can be used in math in current tex systems.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.