如何删除 chemfig 包中箭头附近的空格?

如何删除 chemfig 包中箭头附近的空格?

我对两种化学反应的排列有问题

\documentclass{article}
\usepackage{chemfig}
\begin{document}
\begin{figure*}
\begin{flushleft}
\schemedebug{true}
\schemestart
A\arrow{->}B\arrow{->}
\schemestop
\bigskip

\schemestart
\arrow{->}C\arrow{->}D
\schemestop
\end{flushleft}
\end{figure*}
\end{document}

如何删除第二行开头的空格?绿色和红色标记之间的空格?

在此处输入图片描述

答案1

您可以通过在方案前添加一些负水平空间来将线向左移动。首先,您必须告诉 LaTeX 退出垂直模式,例如使用\leavemode。在您的例子中,您需要备份空节点和箭头偏移量,因此您需要\hspace{\dimexpr-1em-4pt}

示例输出

\documentclass{article}
\usepackage{chemfig}
\begin{document}
\begin{figure*}
\begin{flushleft}
\schemedebug{true}
\schemestart
A\arrow{->}B\arrow{->}
\schemestop
\bigskip

\leavevmode\hspace{\dimexpr-1em-4pt}
\schemestart
\arrow{->}C\arrow{->}D
\schemestop
\end{flushleft}
\end{figure*}
\end{document}

的功能\leavevmode是根据需要开始新段落。如果我们不处于段落模式,则任何后续水平间距命令都将无效。

表达式\dimexpr-1em-4pt根据两个给定量计算长度。 1em是字体相关尺寸,名义上是m当前字体中字母的宽度,对应于默认箭头偏移(根据chemfig代码,而不是其文档)。4pt来自空节点,似乎内置于chemfig代码中。

答案2

下面,我仅针对这一行更改了页面边距。恐怕不太美观,但如果您只需要一次,那么可能还行:

% arara: lualatex

\documentclass{article}
\usepackage{chemfig}
\def\changemargin#1#2{\list{}{\rightmargin#2\leftmargin#1}\item[]}
\let\endchangemargin=\endlist % credits to Vivi
\usepackage{lua-visual-debug}

\begin{document}
\begin{figure*}
\schemedebug{true}
    \schemestart
        A\arrow{->}B\arrow{->}
    \schemestop
    \medskip
    \begin{changemargin}{-0.38cm}{0cm}
    \schemestart
        \arrow{->}C\arrow{->}D
    \schemestop
    \end{changemargin}
\end{figure*}
\end{document}

在此处输入图片描述

相关内容