几年来,我一直将 chemfig 软件包与 beamer 以及 babel 中的捷克语设置一起使用。我知道激活连字符的 babel 简写与 chemfig 反应方案环境之间存在冲突。我已经解决了(或使用了某人的解决方案)chemformula 和 chemfig 反应方案中的简单箭头的相同问题,但我找不到使用它的一个特定功能的解决方案:
\documentclass{beamer}
%\documentclass{article}
\usepackage[english,czech]{babel}\shorthandoff{-}
\usepackage{chemfig}
\usetikzlibrary{babel}
\author{TK}
%----- This resolves the problem for the article class ------------------------
\usepackage{etoolbox}
\pretocmd\schemestart{\shorthandoff{-}}{}{}
\apptocmd\schemestop{\shorthandon{-}}{}{}
%-----------------------------------------------------------
\begin{document}
\begin{frame}
% \begin{tikzpicture}
% \node{%
\schemestart
\subscheme{E\+S\arrow{<=>}ES\arrow{->}E\+P}
\arrow(@c2.197--){0}[-90,.2] +
\schemestop
% };
% \end{tikzpicture}
\end{frame}
\end{document}
问题在于那条线\arrow(@c2.197--){0}[-90,.2] +
,特别是括号中的箭头参数。没有它,一切都会顺利进行,当然,除了放置不可见的箭头及其目标(加号),该参数应该为此服务。
在文章类中一切正常,但在 beamer 中出现错误,当方案是否嵌入 tikzpicture 节点时,情况会有所不同。
在 tikzpicture 中,错误是
! Argument of \CF@arrow@a has an extra }.
<inserted text>
\par
l.22 \end{frame}
?
在框架基础层面,错误是
! Paragraph ended before \CF@arrow@a was complete.
<to be read again>
\par
l.24
?
我尝试解决这个问题一整天都没有成功……
有谁遇到过同样的问题?
提前谢谢了!
托马斯
答案1
我怀疑问题可能出在@
。您可以使用框架来解决这个问题fragile
。
\documentclass{beamer}
%\documentclass{article}
\usepackage[english,czech]{babel}\shorthandoff{-}
\usepackage{chemfig}
\usetikzlibrary{babel}
\author{TK}
%----- This resolves the problem for the article class ------------------------
\usepackage{etoolbox}
\pretocmd\schemestart{\shorthandoff{-}}{}{}
\apptocmd\schemestop{\shorthandon{-}}{}{}
%-----------------------------------------------------------
\begin{document}
\begin{frame}[fragile]
% \begin{tikzpicture}
% \node{%
\schemestart
\subscheme{E\+S\arrow{<=>}ES\arrow{->}E\+P}
\arrow(@c2.197--){0}[-90,.2] +
\schemestop
% };
% \end{tikzpicture}
\end{frame}
\end{document}