西班牙语 babel 和 chemformula 包

西班牙语 babel 和 chemformula 包

我需要写一个化学反应。我以前用 来做这个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}

在此处输入图片描述

相关内容