• TeX Live Upgrade—November 2016

    Posted by John on November 14, 2016

    On Wednesday, 16 November at 7:00AM GMT, we upgraded our LaTeX compile servers to the version of TeX Live 2016 that ships with Ubuntu 16.10 "Yakkety Yak". Here's what you need to look out for in terms of breaking changes and new features in your projects on Overleaf.

    What is TeX Live?

    TeX Live is a free distribution of the TeX typesetting system that includes many, many TeX-related programs, fonts and macro packages, including LaTeX. Overleaf uses TeX Live on our compile servers to power the real time preview and produce the PDFs for your projects.

    TeX Live is constantly updated with the latest LaTeX packages contributed by the community. That constant innovation is a big part of what makes TeX useful and relevant, even almost 40 years after it was first created. It does however mean that sometimes packages will change and documents will break even though you haven't made any changes.

    At Overleaf we aim to run the version of TeX Live that ships with the latest stable release of Ubuntu Linux. Right now, that's Ubuntu 16.10 "Yakkety Yak". The version that ships with Ubuntu is usually a few months old, but it has the advantage of being a consistent snapshot of TeX Live that receives some testing as part of Ubuntu. That hopefully minimises problems with documents that work on Overleaf but not locally or vice versa.

    When we upgrade TeX Live, we recompile a large test set of documents, including roughly 2,600 from our gallery of templates, examples and articles to check for breaking changes, including both errors and large visual changes to the output. We then apply patches to our version of TeX Live to fix any major bugs. This is why it sometimes takes us a while to update our TeX Live! However, the result is hopefully a more stable experience for our users.

    Testing and patches notwithstanding, sometimes package authors make breaking changes and deprecations, and we all just have to update our projects. For this update, we estimate less than 2% of projects should be significantly affected by the upgrade.

    Troubleshooting Breaking Changes

    Removal of font commands (e.g. \sc) in Koma-Script (scrartcl)

    Class scrartcl Error: undefined old font command \rm'.
    Class scrartcl Error: undefined old font command\sc'.
    Class scrartcl Error: undefined old font command `\bf'.
    

    Support for deprecated font commands, such as \rm, \sc and \bf, has been removed. To fix the errors, please use more modern equivalents like \textrm, \textsc and \textbf instead.

    Some packages and bibliography styles still rely on the old font commands, which means the problem is not actually in your project. If this happens, a possible workaround is to temporarily recreate them using the instructions in this post. If you are using the memoir class, there is an oldfontcommands option that you can add to achieve the same effect.

    Renaming of dtklogos to dtk-logos

    ! LaTeX Error: File `dtklogos.sty' not found.
    

    This style file has been renamed to dtk-logos.sty (with a hyphen). If you change from \usepackage{dtklogos} to \usepackage{dtk-logos}, that should do it.

    Removal of aastex class and style

    ! LaTeX Error: File `aastex.cls' not found.
    

    This file has been removed from TeX Live. Sometimes files do come back, but in the mean time, the best thing to do is to add the latest aastex class files from the AAS and upload them to your project on Overleaf. NB: The latest version of the class file also requires a patch to work on Linux (and on Overleaf), as described here.

    Change to achemso config files

    ! LaTeX Error: File `jacsat.cfg' not found.
    

    If you are using an older version of the achemso class or style file in your project, we recommend that you remove the achemso.cls and/or achemso.sty files from your project, because TeX Live comes with fairly recent versions of the achemso files pre-installed.

    Missing Droid Fonts

    ! The font "Droid Sans Mono" cannot be found.
    

    Google's Droid fonts have been removed from Ubuntu, so if you have been using them with XeLaTeX or LuaLaTeX, you will need to switch to the new Noto fonts that are replacing them.

    Undefined control sequence: \chemrel with chemfig package

    % Instead of
    A\chemrel{->}B
    % write:
    \schemestart A\arrow{->}B\schemestop
    

    The \chemrel command has been removed from recent versions of the chemfig package. You can replace it with \arrow, but you also need to wrap it in \schemestart and \schemestop commands.

    Problems with TikZ UML

    You may see errors in TikZ UML diagrams. If you have an older version of tikz-uml.sty in your project, you will need to download the latest version from the package website. (Or you can find it in this example project on Overleaf.)

    Issue with \verb and biblatex

    Use of \blx@bbl@verbadd@i doesn't match its definition. \verb
    

    Update (10AM GMT, Fri 18 Nov 2016): We have now applied a patch, so this issue should be solved. If you applied the recommended patch to your project, you should now be able to delete it.

    Problems with Dissertate templates and EB Garamond fonts

    Update (10AM GMT, Fri 18 Nov 2016): We have now applied a patch to fix this issue with EB Garamond fonts. If you applied the recommended patch below, you should now be able to switch back to the original.

    The recommended workaround (which should no longer be required) was to replace:

    \setromanfont[Numbers=OldStyle, Ligatures={Common, TeX}, Scale=1.0]{EB Garamond}
    
    with
    \setromanfont[Numbers=OldStyle, Ligatures={Common, TeX}, Scale=1.0,SizeFeatures={{Size=-8, OpticalSize=8},{Size= 8-, OpticalSize=12}}]{EB Garamond}
    
    in the Dissertate.cls file.

    If you switched your project to LuaLaTeX, you should now be able to switch back to XeLaTeX if you prefer. You can do this by changing the 'LaTeX Engine' setting for your project via the gear icon in the top right.

    Problems with the tipa Package

    /usr/share/texmf/tex/latex/tipa/t3enc.def:357:
    Undefined control sequence.

    \mdseries@sf

    l.357 {\sffamily \xdef\@sffamilyname{\f@family}}

    There appears to be a package conflict between tipa and the libertine package. Unless you need to typeset with the International Phonetic Alphabet (IPA), you may be able to just remove this package from your preamble. If you do need the tipa package, it may help to move the \usepackage{tipa} line above the \usepackage{libertine} line in your preamble, so tipa is loaded first. If you receive this error but are not using the libertine package, please contact support, and we will see whether we can find another fix.

    Conflict between the subcaption and subfig Packages

    It is no longer possible to load both the subcaption and subfig packages at the same time. We recommend that you use only subcaption. If you have both

    \usepackage{subcaption}
    
    and
    \usepackage{subfig}
    
    in your preamble, you can remove
    \usepackage{subfig}
    

    Getting Help

    We'll be updating this blog post with resolutions or workarounds for any other issues that come up after the upgrade. If your project has stopped working, please contact our support team and include the read-and-edit link to your project, and we'll try to help.

    Exciting New Things

    With each new release also come new features and upgrades. We'll be adding links to examples demonstrating some of these new features on Wednesday, once these changes are deployed.

    • Including videos (including YouTube-hosted ones) with media9! (Note: only works in Adobe Reader/Acrobat)
    • 3D Asymptote drawings (you get a cool 3D interactive view! (Note: only works in Adobe Reader/Acrobat)
    • Use the markdown package out of the box to write LaTeX docs with markdown syntax!
    • Many package updates, e.g. circuitikz (v0.6); pgfplots (v1.14); tcolorbox (v3.94) and others
    • New biblatex styles e.g. biblatex-abnt, biblatex-iso690, biblatex-ijsra, biblatex-nottsclassic

    Technical Notes

    To check for visual consistency, we looked at many images like this one showing the before and after changes to things like spacing and kerning. We estimate that about 5% of projects will have nearly imperceptible changes like this after the upgrade.

    We also checked compile times before and after, and fortunately there were no major performance regressions from the move to 16.10 — the trend line (blue) is perhaps slightly above the line with unit slope (black), but it's not significant. (Note: the axes are in seconds, but they're seconds on my trusty 2011 MacBook Pro, rather than our compile servers, which have quite a bit more oomph.)

    Need Help?

    We'll be updating this blog post with resolutions or workarounds for any other issues that come up after the upgrade. If your project has stopped working, please contact our support team and include the read-and-edit link to your project.

    Happy TeXing!


    If you found this blog post useful, sign up for our monthly blog newsletter at the top of the page.