我想制作这个化学方案:
我尝试使用此代码。但不太优雅。有人能帮我吗?
\documentclass[12pt,twoside,a4paper,openright]{report}
\usepackage[portuguese]{babel}
\usepackage[utf8]{inputenc}
\usepackage{chemformula}
\usepackage{chemfig}
\usepackage{chemmacros}
\begin{document}
\begin{center}
\schemestart
\chemfig{RO-Si(-[6]OR)(-[2]OR)-OR} + \ch{H2O}
\arrow(.mid east--.mid west){->[ Hidrólise]}
\chemfig{RO-Si(-[6]OR)(-[2]OR)-OH}
\schemestop
\schemestart
\chemfig{RO-Si(-[6]OR)(-[2]OR)-OR} + \ch{H2O}
\arrow(.mid east--.mid west){->[ Condensação]}
\chemfig{RO-Si(-[6]OR)(-[2]OR)-OH}
\schemestop
\end{center}
\end{document}
答案1
这是您可以做到的一种方法。我修改了方案中的原子间距和箭头长度。如果这不是您想要的,请解释一下您所说的“优雅”是什么意思 :-) 注意:\quad
和\;
表示线条上的水平间距
\documentclass[12pt,twoside,a4paper,openright]{report}
\usepackage[utf8]{inputenc}
\usepackage[official]{eurosym}
\usepackage{chemformula}
\usepackage{chemfig}
\begin{document}
\begin{center}
\setatomsep{2em} %<-- Add this for atom spacing
\schemestart[0,1.5] %<-- Add the optional argument here to specify the angle (0) and length of the arrows
a) \quad \chemfig{RO-Si(-[6]OR)(-[2]OR)-OR} + \ch{H2O}
\arrow(.mid east--.mid west){->[ Hidrólise]}
\chemfig{RO-Si(-[6]OR)(-[2]OR)-OH} + \ch{HOR}
\schemestop
\vspace*{0.5cm} %<-- Add this for vertical spacing
\schemestart[0,1.75]
b) \quad 2 \; \chemfig{RO-Si(-[6]OR)(-[2]OR)-OH}
\arrow(.mid east--.mid west){->[ Condensação]}
\chemfig{RO-Si(-[6]OR)(-[2]OR)-O-Si(-[6]OR)(-[2]OR)-OR} + \ch{H2O}
\schemestop
\end{center}
\end{document}
答案2
»不太优雅« 并不能非常准确地描述错误所在......
首先,我会使用列表,即enumerate
。标签可以轻松调整enumitem
。
然后我会使用该命令的最后一个可选参数使箭头更长\arrow
:
\arrow[<angle>,<length factor>]
我可能还会稍微缩短键长\setatomsep{2em}
。
最后但并非最不重要的一点是,我会在方案中使用chemfig
命令\+
来在化合物周围留出更多的空间。
然后我得到了这个(这些线只是显示页面尺寸,所以我们确定没有任何东西粘在边距中):
\documentclass[12pt]{article}
% \usepackage[portuguese]{babel}% not necessary for the example
\usepackage[utf8]{inputenc}
\usepackage{chemformula}% already loaded by chemmacros
\usepackage{chemfig}
% \usepackage{chemmacros}% not necessary for the example
\usepackage{enumitem}
\usepackage{showframe}% to visualize page dimensions
\begin{document}
\begin{enumerate}[label=(\alph*)]
\item\setatomsep{2em}
\schemestart
\chemfig{RO-Si(-[6]OR)(-[2]OR)-OR} \+ \ch{H2O}
\arrow(.mid east--.mid west){->[ Hidrólise]}[,2]
\chemfig{RO-Si(-[6]OR)(-[2]OR)-OH}
\schemestop
\item
\schemestart
\chemfig{RO-Si(-[6]OR)(-[2]OR)-OR} \+ \ch{H2O}
\arrow(.mid east--.mid west){->[ Condensação]}[,2]
\chemfig{RO-Si(-[6]OR)(-[2]OR)-OH}
\schemestop
\end{enumerate}
\end{document}
当然,化学反应还是错误的,但这不是你的问题,对吧?修正后,方程式变得有点太长了,但可以通过调整箭头和键的长度来解决:
\documentclass[12pt]{article}
% \usepackage[portuguese]{babel}% not necessary for the example
\usepackage[utf8]{inputenc}
\usepackage{chemformula}% already loaded by chemmacros
\usepackage{chemfig}
% \usepackage{chemmacros}% not necessary for the example
\usepackage{enumitem}
\usepackage{showframe}% to visualize page dimensions
\begin{document}
\begin{enumerate}[label=(\alph*)]
\item\setatomsep{1.8em}
\schemestart
\chemfig{RO-Si(-[6]OR)(-[2]OR)-OR} \+ \ch{H2O}
\arrow(.mid east--.mid west){->[ Hidrólise]}[,1.8]
\chemfig{RO-Si(-[6]OR)(-[2]OR)-OH} \+ \ch{HOR}
\schemestop
\item
\schemestart
2 \chemfig{RO-Si(-[6]OR)(-[2]OR)-OR}
\arrow(.mid east--.mid west){->[ Condensação]}[,1.8]
\chemfig{RO-Si(-[6]OR)(-[2]OR)-O-Si(-[6]OR)(-[2]OR)-OR} \+ \ch{H2O}
\schemestop
\end{enumerate}
\end{document}