XyMTeX 法语问题

XyMTeX 法语问题

我想使用 XyMTeX 绘制一些化学结构,但由于我是法国人,我需要添加\usepackage[francais]{babel}才能使用重音符号。我的问题是,使用此包,我的结构如下所示:

在此处输入图片描述

假设,没有法国包裹。

在此处输入图片描述

我的代码是:

\documentclass[11pt,letterpaper,draft]{article}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage[T1]{fontenc}
\usepackage{xymtex}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage[left=1in,right=1in,top=1in,bottom=1in]{geometry}
\author{Mathieu Mongrain}
\title{Les figures chimiques}

\begin{document}

\sixheterovi[{f\fivefusev[d]{1==N;4==N}{1S==CH$_3$}{b}}e]
  {2==N;4==N}
  {1D==O;3D==O;4S==CH$_3$}

\end{document}

\documentclass[11pt,letterpaper,draft]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xymtex}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage[left=1in,right=1in,top=1in,bottom=1in]{geometry}
\author{Mathieu Mongrain}
\title{Les figures chimiques}

\begin{document}

\sixheterovi[{f\fivefusev[d]{1==N;4==N}{1S==CH$_3$}{b}}e]
  {2==N;4==N}
  {1D==O;3D==O;4S==CH$_3$}

\end{document}

考虑到我需要保留我的法国包裹,有人能解决这个问题吗?

答案1

请注意,我没有彻底调查这个问题,这只是一种解决方法。

第一个 MWE 的输出包含分号,我认为它是参数的分隔符,而不是实际的文本。;我猜是的某些属性(可能是类别代码或其他东西?)导致了这个问题。

以下代码灵感来自邮件列表似乎运行良好。

\documentclass[11pt,letterpaper,draft]{article}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage[T1]{fontenc}
\usepackage{xymtexpdf}
\usepackage[left=1in,right=1in,top=1in,bottom=1in]{geometry}
\author{Mathieu Mongrain}
\title{Les figures chimiques}
\begin{document}
\begingroup
  \shorthandoff{;}
  \sixheterovi[{f\fivefusev[d]{1==N;4==N}{1S==CH$_3$}{b}}e]
    {2==N;4==N}
    {1D==O;3D==O;4S==CH$_3$}
\endgroup
\end{document}

我的代码输出


另外,XyMTeX 提供了三种绘图模式,列于“XyMTeX 绘制结构式的三种模式”软件包文档

  • xymtex\usepackage{xymtex}用于 TeX/LaTeX 兼容模式),
  • xymtexps\usepackage{xymtexps}用于 PostScript 兼容模式),或
  • xymtexpdf\usepackage{xymtexpdf}适用于 PDF 兼容模式),

与 LaTeX 标准功能兼容xymtex意味着它受到picture环境的限制。假设您使用 pdfLaTeX,建议使用xymtexpdf,它利用了 TiZ/PGF。

这三种模式都会加载xcolor包,并且tikz包会加载包,因此当您使用与 PDF 兼容的 XyMTeX 时,graphicx无需明确加载xcolorgraphicx

答案2

问题在于 XyMTeX 使用分号作为分隔符,但却将其变成活动字符,因此在解析参数和其他 XyMTeX 宏babel-french时无法对其进行搜索。\sixheterovi

解决方法:将每个图表(或其组)封闭到一个xym环境中。

\documentclass[11pt,letterpaper]{article}
\usepackage[left=1in,right=1in,top=1in,bottom=1in]{geometry}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}

\usepackage{xymtexpdf}% or xymtexps
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{environ}

\NewEnviron{xym}{%
  \shorthandoff{;:?!}\scantokens\expandafter{\BODY\empty}%
}

\begin{document}

\begin{xym}
\sixheterovi[{f\fivefusev[d]{1==N;4==N}{1S==CH$_3$}{b}}e]
  {2==N;4==N}
  {1D==O;3D==O;4S==CH$_3$}
\end{xym}

\end{document}

代码会发出警告,但如果babel未加载也会发出警告,因此它不应该依赖于分号问题。

相关内容