
После обновления до TeXLive 2016 (MacTeX 2016) у меня возникли проблемы с файлами TeX, которые ранее были правильно скомпилированы в TeXLive 2015. А именно, использование \usepackage[version=4, arrows=pgf]{mhchem} приводит к ошибке:
(/usr/local/texlive/2016/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.meta.code.tex
Runaway argument?
Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryarrows.meta.\ETC.
/usr/local/texlive/2016/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.m
eta.code.tex:11: Paragraph ended before \pgf@parseid was complete.
<to be read again>
\par
l.11
?
Я не вижу, что меняется с pgf или mhchem, поэтому я не понимаю источник проблемы. Удаление опции arrows=pgf mhchem позволяет правильно скомпилировать. У кого-нибудь есть такая же проблема? Вот простой пример:
\documentclass[11pt]{article}%
\usepackage[T1]{fontenc} % Saisie en français
\usepackage{textcomp}
\usepackage[scr=boondoxo,frak=boondox,bb=boondox]{mathalfa}
\usepackage[french]{babel} % Typographie
\usepackage[utf8]{inputenc} % Encodage
\usepackage[top=2cm,bottom=1.5cm]{geometry} % Taille de la feuille
\usepackage[svgnames]{xcolor} % Gestion des couleurs
\usepackage{pgf,tikz} % Dessins avec PGF et Tikz
\usetikzlibrary{decorations,arrows,backgrounds,patterns}
\usetikzlibrary{decorations.pathreplacing,decorations.text,shapes,snakes}
\usepackage[version=4,arrows=pgf]{mhchem}%
%@@@@@@@@@@%
\begin{document}
\begin{center}
\ce{H2O ->[h\nu] H + OH}
\end{center}
\end{document}
Удаление "arrows=pgf" позволяет завершить компиляцию. С этой опцией компиляция завершается сбоем с приведенным выше сообщением.
Спасибо за помощь, Кирилл.
решение1
По какой-то причине, возможно, из-за какого-то изменения в mhchem
, макрос \ProvidesFileRCS
не может правильно проанализировать свой аргумент, и есть что-то еще, связанное с двоеточием, которое французский язык делает активным. Библиотека, по-видимому, вызывается в начале документа, и это нарушает анализ важных битов.
Обходной путь: загрузите arrows.meta
библиотеку перед mhchem
.
Также сделайте себе одолжение и измените порядок слов в преамбуле.
\documentclass[11pt]{article}
\usepackage[T1]{fontenc} % Saisie en français
\usepackage[utf8]{inputenc} % Encodage
\usepackage[french]{babel} % Typographie
\usepackage[top=2cm,bottom=1.5cm]{geometry} % Taille de la feuille
\usepackage{textcomp}
\usepackage[scr=boondoxo,frak=boondox,bb=boondox]{mathalfa}
\usepackage[svgnames]{xcolor} % Gestion des couleurs
\usepackage{pgf,tikz} % Dessins avec PGF et Tikz
\usetikzlibrary{decorations,arrows,backgrounds,patterns}
\usetikzlibrary{decorations.pathreplacing,decorations.text,shapes,snakes,arrows.meta}
\usepackage[version=4,arrows=pgf]{mhchem}%
\begin{document}
\begin{center}
\ce{H2O ->[h\nu] H + OH}
\end{center}
\end{document}
решение2
Я бы сказал, что это несовместимость французского Babel и TikZ при использовании с AtBeginDocument (что и делает mhchem).
\documentclass[11pt]{article}%
\usepackage[french]{babel} % Typographie
\usepackage{pgf,tikz} % Dessins avec PGF et Tikz
\AtBeginDocument {
\usetikzlibrary{arrows.meta}
}
\begin{document}
abc
\end{document}