箭頭 = mhchem 中的 pgf 與 TeXLive 2016

箭頭 = mhchem 中的 pgf 與 TeXLive 2016

更新到 TeXLive 2016 (MacTeX 2016) 後,我在處理之前在 TeXLive 2015 下正確編譯的 TeX 檔案時遇到了問題。

(/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 有什麼變化,所以我不明白問題的根源。刪除 mhchem 的 arrows=pgf 選項可以正確編譯。有人有同樣的問題嗎?這是一個基本範例:

\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

我想說,當與 AtBeginDocument 一起使用時,這是法語 babel 和 TikZ 的不相容(這就是 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}

相關內容