2

How can I vertical align this scheme to the same bottom line?

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage[
  a4paper,
  margin=15mm,
  bindingoffset=2mm,
  heightrounded,
]{geometry}
\usepackage{chemfig}
\usepackage{chemformula}
\usepackage{xcolor}
\usepackage[version=4]{mhchem}
\newcommand{\br}{\\ \vspace{5pt}}

\begin{document}
\begin{flushleft}
\begin{figure}[htbp]
\schemestart
\chemfig{R-C(-[2]O^{\oplus}(-[2]R')(-[4]H))(-[6]H)-C(-[2]H)(-[6]H)(-[0]H)}
\arrow(.-1--){->[{-}\chemfig{H^+}]}[,1.5]
\chemname{\chemfig{R-C(-[2]{\color{red}O}|{\color{red}R'})(-[6]H)-C(-[2]H)(-[6]H)(-[0]H)}}{Etere}
\schemestop
\chemnameinit{}
\end{figure}

\end{flushleft}
\end{document}

enter image description here

4
  • Maybe related: tex.stackexchange.com/a/330375/124842
    – Bobyandbob
    Jun 22, 2017 at 18:51
  • Putting a figure inside a flushleft environment is just wrong. \begin{figure} \raggedright ... \end{figure} would be the right thing instead…
    – cgnieder
    Jun 23, 2017 at 6:32
  • I'm also wondering why you're loading both chemformula and mhchem? Using both \ch{...} and \ce{...} will only produce visually inconsistent results…
    – cgnieder
    Jun 23, 2017 at 6:33
  • \newcommand{\br}{\\ \vspace{5pt}} doesn't look right, either: you'll either want \newcommand{\br}{\\[5pt]} or \newcommand{\br}{\par\vspace{5pt}}
    – cgnieder
    Jun 23, 2017 at 6:35

1 Answer 1

2

As indicated by @Bobyandbob, this is a duplicate of tex.stackexchange.com/a/330375/124842.

The baseline of each molecule is the first atom, in this case R. The arrow needs to be anchored to that baseline to get a suitable vertical alignment. This is done using \arrow{base east --.base west). Since the arrow then sits directly on the baseline, it is more pleasing to apply a small vertical shift [3pt] to move the arrow slightly upwards, without affecting the baseline alignment of the molecules.

This is the result: enter image description here

This is the MWE:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{chemmacros}
\usepackage[italian]{babel}
\usepackage[
  a4paper,
  margin=15mm,
  bindingoffset=2mm,
  heightrounded,
]{geometry}
\usepackage{chemfig}
\usepackage{chemformula}
\usepackage{xcolor}
\usepackage[version=4]{mhchem}
\newcommand{\br}{\\ \vspace{5pt}}

\begin{document}

\schemestart
\chemfig{R-C(-[2]O^{\oplus}(-[2]R')(-[4]H))(-[6]H)-C(-[2]H)(-[6]H)(-[0]H)}
\arrow(.base east--.base west){->[$-\chemfig{H^+}$][][3pt]}
\chemname{\chemfig{R-C(-[2]{\color{red}O}|{\color{red}R'})(-[6]H)-C(-[2]H)(-[6]H)(-[0]H)}}{Etere}
\schemestop
\chemnameinit{}

\end{document}
2
  • 1
    Would you mind removing the flushleft environment? Putting a figure inside is just wrong. \begin{figure} \raggedright ... \end{figure} would be the right thing instead
    – cgnieder
    Jun 23, 2017 at 6:31
  • 1
    Instead of ->[{-}\chemfig{H^+}] it should probably be ->[$-\chemfig{H^+}$]
    – cgnieder
    Jun 23, 2017 at 6:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.