我需要写一个化学反应。我以前用 来做这个mhchem
,但我发现。一切都正确,但是当我使用西班牙语chemformula
包时没有箭头。babel
西班牙语 babel 存在问题,因为这两个代码显示存在冲突。我需要同时使用西班牙语babel
和。chemformula
这些是代码:
第一个:
\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{chemformula}
\begin{document}
\ch {C6H12O6 (s) + 6 O2 (g) <-> 6 CO2 (g) + 6 H2O(l)}
\end{document}
第二:
\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{chemformula}
\begin{document}
\ch {C6H12O6 (s) + 6 O2 (g) <-> 6 CO2 (g) + 6 H2O(l)}
\end{document}
有人能帮助我吗?
答案1
问题在于该spanish
模块babel
改变了行为<
并>
实现了一些特殊的引用机制。
如果您没有使用spanish
模块提供的特殊引用机制,请添加选项es-noquoting
,然后<
恢复>
其标准含义:
\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[spanish,es-noquoting]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{chemformula}
\begin{document}
\ch {C6H12O6 (s) + 6 O2 (g) <-> 6 CO2 (g) + 6 H2O(l)}
\end{document}
另一个选项是,仍然允许您使用模块实现的引用功能,spanish
即在公式之前停用该功能,然后再次激活它:
\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{chemformula}
\begin{document}
\deactivatequoting
\ch {C6H12O6 (s) + 6 O2 (g) <-> 6 CO2 (g) + 6 H2O(l)}
\activatequoting
\end{document}
答案2
chemmacros
这在/ 的v4.5 (2014/04/08) 中已修复chemfomula
:
\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{chemmacros}[2014/04/08]
\newcommand*\cs[1]{\texttt{\textbackslash#1}}
\begin{document}
before: <<foo>>
\ch{C6H12O6\sld{} + 6 O2\gas{} <-> 6 CO2\gas{} + 6 H2O\lqd}
after: <<foo>>
Also inside \cs{ch}'s escaped text:
\ch{"<<foo>>" <<=> "<<bar>>"}
\end{document}