最近,我在反应环境中遇到化学方程式问题。具体来说,编译 pdf 后,反应箭头和连字符均未显示。相反,箭头/连字符应该出现的位置插入了一个空格。不过,分子式显示正确。我使用 TeX Live 和 TeXstudio 编辑器,安装的 chemmacros 包版本是 5.8b。请注意,在以下 MWE 中更改\chemsetup{formula=chemformula}
为后\chemsetup{formula=mhchem}
,反应箭头以及 Ph 和 CHO 之间的连字符都显示正确,因此我认为 chemformula 包一定出了问题。
梅威瑟:
\documentclass[a4paper,12pt]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[dvips]{graphics}
\usepackage{siunitx}
\usepackage{chemmacros}
\chemsetup{modules=all}
\chemsetup{formula=chemformula}
\begin{document}
\begin{reaction*}
2 H2 + O2 -> 2 H2O
\end{reaction*}
\begin{reaction*}
Ph-CHO
\end{reaction*}
\end{document}
有任何想法吗?
亲切的问候,
舒尔金
答案1
虽然我无法向您详细说明发生了什么,但我可以告诉您,如果您删除 选项dvips
,graphics
或者您实际使用++latex
来生成 PDF,则此方法可以正常工作。我假设您一直在使用(?),因此您在代码中指定了一个特定的编译序列(涉及),但使用了不同的序列。这可能会导致各种问题。dvips
ps2pdf
pdflatex
dvips
通常,您不应该为诸如和 之dvips
类的软件包指定驱动程序(在本例中),它们会自行找出正确的驱动程序。并且您可能希望(使用)加载,最新文档使用该语法指定,而不是较旧的。graphics
hyperref
graphicx
x
graphics
\documentclass[a4paper,12pt]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{siunitx}
\usepackage{chemmacros}
\chemsetup{modules=all}
\chemsetup{formula=chemformula}
\begin{document}
\begin{reaction*}
2 H2 + O2 -> 2 H2O
\end{reaction*}
\begin{reaction*}
Ph-CHO
\end{reaction*}
\end{document}
答案2
也可以使用 显示的箭头来实现您的反应\usepackage[version=4]{mhchem}
。事实上,您可以使用这个 MWE:
\documentclass[a4paper,12pt]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{siunitx}
\usepackage[version=4]{mhchem}
\begin{document}
\[\ce{2 H2 + O2 -> 2 H2O}\]
\[\ce{Ph-CHO}\]
\end{document}
此输出: