Chemnum не заменит маркеры TMP в файлах eps

Chemnum не заменит маркеры TMP в файлах eps

Я новичок в латексе, но очень хотел бы использовать его для написания диссертации (по химии, конечно). Лабораторная работа почти закончена, но это, похоже, сейчас самое низкое препятствие :D

Прямо сейчас я пытаюсь использовать пакет chemnum, чтобы получить красивые метки для всех соединений. Теоретически, он должен заменить маркеры "TMP" (которые даны во внешнем файле eps, созданном программой chemdraw) на автоматизированную нумерацию. Однако мне не удается даже запустить файл примера с помощью TeXstudio:

https://de.overleaf.com/latex/templates/автоматически-нумерующие-соединения-в-химических-схемах/kybckmsxnshs

В моем случае маркеры не заменены, а вместо этого под всеми шестью примерными соединениями написан текст "TMP1" или "TMP2". Также шрифт внутри картинок испорчен по отношению к образцу pdf сверху.

Что я делаю не так? И пока мы об этом: как мне сделать свои собственные метки TMP? Можно ли просто написать "TMP" как текстовый блок в chemdraw?

Заранее спасибо!

решение1

Итак, у меня появилась дополнительная зацепка: это может быть связано с настройками компиляции.

Как было сказано ранее, компиляция работает онлайн с использованием overleaf texmaker. Overleaf использует компиляцию latex, но при изменении на pdflatex не может повторно разместить маркеры TMP, однако рисунок все еще выглядит правильно. Моя настройка уже не может изобразить рисунок (см. скриншот ниже, обратите внимание, что случайные части отсутствуют/перемещены, а шрифт был изменен).

использование команды auto-pst-pdf вообще не дает изображения.

enter\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{graphicx}
\title{Automatically numbering compounds in chemical schemes}
%% Uncomment these lines if you get error about "too many \new..." 
% \let\tmp\newinsert
% \let\newinsert\newbox
\usepackage{chemstyle}
% \let\newinsert\tmp
\usepackage{chemnum}
% For positioning the scheme captions at the top.
\floatsetup[scheme]{position=top}

\begin{document}
\begin{scheme}
%% hexa.eps has "TMP1" and "TMP2" as the markers
%% in fact EVERY .eps should start with TMP1, TMP2 etc
%% for ease of use \replacecmpd{first:compound}  
%% automatically replace TMP1
\replacecmpd{DSV}  %% automatically replace TMP2
\includegraphics[width=\linewidth]{Picture}
\caption{This is something!}
\label{first:chem:scheme}
\end{scheme}
Compounds \refcmpd{first:compound} and \refcmpd{DSV} in \ref{first:chem:scheme}. Here's a reference to in-text creation of \cmpd{RareCompound} that we can later refer to.
\vfill
\end{document}

введите описание изображения здесь

введите описание изображения здесь

решение2

Проблемы, которые вы описываете, являются общей проблемой в сочетании pdfLatex / chemnum / Texstudio / ChemDraw. Нумерация соединений, очевидно, очень мощна в диссертации по химии.

Мой ответ основан на ответах на похожие вопросы, см.:Нумерация/ChemDraw/Mac,EPS/ChemDraw/chemnum,правильная конфигурация Texstudio,

Я попытаюсь перечислить ниже наиболее распространенные источники ошибок:

  1. Компиляция: необходимо использовать pdflatex -synctex=1 -interaction=nonstopmode --shell-escape %.texв TexStudio

  2. Texstudio PATH: В зависимости от вашей операционной системы, установите PATH примерно на следующее значение /usr/local/texlive/2019/bin/x86_64-darwin:/Library/TeX/texbin(вам придется адаптировать его в зависимости от вашей ОС).

  3. Auto-pst-pdf: вам нужно будет загрузить его \usepackage[crop=off,runs=2]{auto-pst-pdf}в самом начале преамбулы.

  4. EPS: Это должно быть сделано таким образом, чтобы текстовые строки были четко определены как таковые. ChemDraw на Windows делает это нормально (стандартные параметры для экспорта), но не ChemDraw на Mac. Это ошибка ибывший вопросрассмотрел это. Поскольку я смог скомпилировать ваш MWE, я думаю, что вы в порядке.

Я не знаю о комментарии jobname ранее, он мне не нужен для TexStudio, но он может быть необходим для Overleaf?

Этот пример сработал у меня при использовании описанных выше настроек и TexStudio v3:

\documentclass{article}
%\def\jobname{main} %<-- your file name
\usepackage[
runs=2,
crop=off
]{auto-pst-pdf} 
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{graphicx}

\title{Automatically numbering compounds in chemical schemes}


%% Uncomment these lines if you get error about "too many \new..." 
% \let\tmp\newinsert
% \let\newinsert\newbox
\usepackage{chemstyle}
% \let\newinsert\tmp
\usepackage{chemnum}

% For positioning the scheme captions at the top.
%\floatsetup[scheme]{position=top}

    \begin{document}
    
    \begin{scheme}
    %% hexa.eps has "TMP1" and "TMP2" as the markers
    %% in fact EVERY .eps should start with TMP1, TMP2 etc
    %% for ease of use
    \replacecmpd{first:compound}  %% automatically replace TMP1
    \replacecmpd{second:compound}  %% automatically replace TMP2
    \includegraphics[width=\linewidth]{hexa}
    \caption{This is something!}
    \label{first:chem:scheme}
    \end{scheme}
    
    Compounds \refcmpd{first:compound} and \refcmpd{second:compound} in \ref{first:chem:scheme}. Here's a reference to in-text creation of  \cmpd{RareCompound} that we can later refer to.
    
    \vfill
    
    \begin{scheme}
    \replacecmpd{next:compound} %% automatically replace TMP1 BUT the autonumbering counter updates to 3!
    \replacecmpd{last:compound} %% automatically replace TMP2
    \includegraphics[width=\linewidth]{hexa}
    \caption{This is something else!}
    \label{second:chem:scheme}
    \end{scheme}
    
    Compounds \refcmpd{next:compound} and \refcmpd{last:compound} in \ref{second:chem:scheme}. Hey remember \cmpd{RareCompound}? \texttt{chemnum} still remembers it correctly, \emph{and} see how the compound numbering continues throughout the scheme diagrams!
    
    \vfill
    
    %% MANUAL UPDATING THE COMPOUND COUNTER; make sure you know what you're doing!
    \setcounter{cmpdmain}{8} 
    
    \begin{scheme}
    \replacecmpd{jumped:compound} %% automatically replace TMP1 BUT the autonumbering counter updates to 9!
    \replacecmpd{nextjumped:compound} %% automatically replace TMP2
    \includegraphics[width=\linewidth]{hexa}
    \caption{This is again something else!}
    \label{third:chem:scheme}
    \end{scheme}
    
    Compounds \refcmpd{jumped:compound} and \refcmpd{nextjumped:compound} in \ref{third:chem:scheme}. (Yes we manually modified the compound numbering counter after \ref{second:chem:scheme}).
    \end{document}

введите описание изображения здесь

решение3

У меня нет репутации, чтобы комментировать ваш ответ. Если вы все еще хотите использовать pdflatex в качестве компилятора, я бы предложил переименовать `\jobname´, как это сделала Ульрике Фишер в своем ответездесь.

Используя приведенный вами пример на обороте и добавив строку для переименования \jobnameпакета, {auto-pst-pdf}у меня все работает.

\documentclass{article}
\def\jobname{main} %<-- your file name
\usepackage[
%runs=2,
%crop=off
]{auto-pst-pdf} 
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{graphicx}

\title{Automatically numbering compounds in chemical schemes}


%% Uncomment these lines if you get error about "too many \new..." 
% \let\tmp\newinsert
% \let\newinsert\newbox
\usepackage{chemstyle}
% \let\newinsert\tmp
\usepackage{chemnum}

% For positioning the scheme captions at the top.
%\floatsetup[scheme]{position=top}

\begin{document}

\begin{scheme}
%% hexa.eps has "TMP1" and "TMP2" as the markers
%% in fact EVERY .eps should start with TMP1, TMP2 etc
%% for ease of use
\replacecmpd{first:compound}  %% automatically replace TMP1
\replacecmpd{second:compound}  %% automatically replace TMP2
\includegraphics[width=\linewidth]{hexa}
\caption{This is something!}
\label{first:chem:scheme}
\end{scheme}

Compounds \refcmpd{first:compound} and \refcmpd{second:compound} in \ref{first:chem:scheme}. Here's a reference to in-text creation of  \cmpd{RareCompound} that we can later refer to.

\vfill

\begin{scheme}
\replacecmpd{next:compound} %% automatically replace TMP1 BUT the autonumbering counter updates to 3!
\replacecmpd{last:compound} %% automatically replace TMP2
\includegraphics[width=\linewidth]{hexa}
\caption{This is something else!}
\label{second:chem:scheme}
\end{scheme}

Compounds \refcmpd{next:compound} and \refcmpd{last:compound} in \ref{second:chem:scheme}. Hey remember \cmpd{RareCompound}? \texttt{chemnum} still remembers it correctly, \emph{and} see how the compound numbering continues throughout the scheme diagrams!

\vfill

%% MANUAL UPDATING THE COMPOUND COUNTER; make sure you know what you're doing!
\setcounter{cmpdmain}{8} 

\begin{scheme}
\replacecmpd{jumped:compound} %% automatically replace TMP1 BUT the autonumbering counter updates to 9!
\replacecmpd{nextjumped:compound} %% automatically replace TMP2
\includegraphics[width=\linewidth]{hexa}
\caption{This is again something else!}
\label{third:chem:scheme}
\end{scheme}

Compounds \refcmpd{jumped:compound} and \refcmpd{nextjumped:compound} in \ref{third:chem:scheme}. (Yes we manually modified the compound numbering counter after \ref{second:chem:scheme}).
\end{document}

решение4

Если вы используете Chemdraw на MacOS, прочтите эту статью: https://tex.stackexchange.com/a/687480/298255

Это решение также может быть полезно для пользователей Windows.

Связанный контент