Chemfig/Chemnum-Route

Chemfig/Chemnum-Route

Ich schreibe meine Chemie-Abschlussarbeit und es geht dabei um viele ReaktionsschemataEin ReaktionsschemaWie kann ich ein Etikett hinzufügen, das angezeigt wird? Ich möchte die erste Verbindung mit 1 beschriften und ich möchte, dass dies ein Latex-Etikett ist, damit ich im Text darauf verweisen und das Etikett dann bei Bedarf ändern kann.

Hier ist ein MWE:

\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{letterpaper, margin = 1in}
\DeclareFloatingEnvironment[fileext = los, listname = {List of     Schemes}, name = Scheme]{scheme}
\begin{document}
        \begin{scheme}[h!]
            \centering
            \includegraphics[scale = 0.7]{Carbdiazosyn}
            \caption{Generation ...}
            \label{carbdiazosyn}
        \end{scheme}
\end{document}

Antwort1

Chemfig/Chemnum-Route

das Schema

Wahrscheinlich nicht die klügste Wahl chemfig, aber es zeigt nur, dass es möglich ist. Sie sollten das Paket chemnumzum Markieren der Moleküle verwenden. Es bietet (unter anderem) die folgenden Befehle:

\cmpd{<main label>.<sublabel>} % <main label> produces the 1, <sublabel> produces the a, b etc.
\refcmpd{<main label>.<sublabel>} % Acts like \ref in normal circumstances

Hier ist der Code:

\documentclass[]{report}
\usepackage{chemfig,chemnum}
\usepackage[version=4]{mhchem}
\usepackage{geometry}
\geometry{letterpaper, margin = 1in}
\usepackage{newfloat}
\DeclareFloatingEnvironment[fileext = los, listname = {List of     Schemes}, name = Scheme]{scheme}

\begin{document}
\begin{scheme}[ht]
    \centering
    %\schemedebug{true}
    \schemestart[0,1.3]
        \chemname{%
            \chemfig{[:120]*3(-[@{a1}]N=[@{db}]N-[@{a2}])%
                (-[:50,,,,red]\textcolor{red}{\ce{R1}})%
                (-[@{r2}:-50,,,,red]\textcolor{red}{\ce{R2}})%
            }
        }{\cmpd{scheme.1}}
        \arrow(.mid east--.mid west){->[$h\nu/\Delta$][$-$\ce{N2}]}
        \chemname{%
            \setlewis{0.8ex}{}{red}%
            \chemfig[shift={(0,0.4)}]{[:-30]\textcolor{red}{\ce{R1}}%
                -[,,,,red](\lewis{6:,})%
                -[::60,,,,red]\textcolor{red}{\ce{R2}}}%
        }{\cmpd[pre-label-code{scheme.2}}
    \schemestop
    \chemmove{%
        \draw[shorten <=2pt, shorten >=3pt]%
            (a1)..controls +(250:3mm) and +(340:3mm)..(db);
        \draw[shorten <=2pt, shorten >=2pt]%
            (a2)..controls +(320:3mm) and +(210:2mm)..(r2);
        }
    \caption[]{My scheme}\label{scheme1}
\end{scheme}
The arrows in \refcmpd{scheme.1} refer to electron movement! The compound in \refcmpd{scheme.2} is in red! Both \refcmpd{scheme.1, scheme.2} are in scheme \ref{scheme1}.
\end{document}

Hinweis: Ich habe die Befehle chemnuminnerhalb des \chemnameBefehls verwendet, um die „Beschriftungen“ einzufügen. Ich habe das mhchemPaket auch verwendet, um die zusammengesetzten Namen darin zu setzen chemfig. Der Rest ist nur chemfigCode. :-).


Auto-pst-pdf/Chemnum-Route (wahrscheinlich empfohlen)

Das chemnumPaket dokumentiert auch eine Möglichkeit, Tags der .epsAbbildung in Abschnitt 9, S. 18 desDokumentation. Der Workflow hierfür ist laut Handbuch (wörtliches Zitat):

  1. Erstellen Sie das Schema und platzieren Sie temporäre Tags wie TMP1usw. TMP2dort, wo die zusammengesetzten Beschriftungen stehen sollen.
  2. Exportieren Sie das Schema als epsoder psAbbildung, wobei Sie sicherstellen, dass die Tags als Textzeichenfolgen eingebettet sind.
  3. Fügen Sie das epsmit ein \includegraphics. Direkt davor \replacecmpdeinmal für jedes temporäre Tag verwenden.

Ich persönlich habe dies nicht ausprobiert (da ich nicht verwende chemdraw), daher verweise ich Sie einfach auf die Dokumentation. (Vielleicht ist eine weitere Antwort erforderlich, die diese Methode ordnungsgemäß dokumentiert.) Wie auch immer, wie in der Dokumentation vorgeschlagen, denke ich, dass dies der richtige Weg ist, wenn Sie weiterhin verwenden möchten chemdraw.

Hier ist ein Beispielcode aus der Dokumentation:

 % code for figure 2
 \documentclass{standalone}
 \usepackage{graphicx,auto-pst-pdf,chemnum}
 \begin{document}
 \replacecmpd{Alc}% replaces TMP1
 \replacecmpd{EtherBr}% replaces TMP2
 \includegraphics{scheme-tmp.ps} % Contains TMP1 and TMP2 as embedded text strings
 \end{document}

Antwort2

Ich musste die Breite anpassen, damit die Untertitel passen.

\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{letterpaper, margin = 1in}
\usepackage{newfloat}
\DeclareFloatingEnvironment[fileext = los, listname = {List of     Schemes}, name = Scheme]{scheme}
\usepackage{graphicx}
\usepackage{subcaption}
\DeclareCaptionSubType{scheme}
\captionsetup[subscheme]{font+=footnotesize}
\begin{document}
        \begin{scheme}[htp]% h! is interpreted as "I am an idiot so replace this with something reasonable"
            \centering
            \sbox0{\includegraphics[scale = 0.7]{images/Carbdiazosyn}}% measure width
            \usebox0\par
            \makebox[1.1\wd0]{\parbox{0.45\wd0}{\subcaption{Compound 1}\label{compound1}}\hfill
              \parbox{0.45\wd0}{\subcaption{Compound 2}\label{compound2}}}
            \caption{Generation ...}
            \label{carbdiazosyn}
        \end{scheme}

\centering Of course, the reference will only return \ref{compound1}.
\end{document}

Demo


Da Bildunterschriften so gestaltet sind, dass sie in einen vorgegebenen Raum passen und wir in diesem Fall möchten, dass sie in eine Zeile passen, ist es einfacher,nichtVerwenden Sie das Subcaption-Paket.

Es sind mehrere Formatierungsoptionen möglich. In diesem Fall habe ich die Beschriftung nach links gesetzt, das Bild jedoch zentriert gelassen.

\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{letterpaper, margin = 1in}
\usepackage{newfloat}
\DeclareFloatingEnvironment[fileext = los, listname = {List of     Schemes}, name = Scheme]{scheme}
\usepackage{graphicx}

\newcounter{compound}
\newcommand{\compound}[1]% #1 = label
{\refstepcounter{compound}\label{#1}Compound \thecompound}

\begin{document}
        \begin{scheme}[htp]
            \centering
            \leavevmode\llap{\compound{test}:\qquad}%
            \raisebox{-0.5\height}{\includegraphics[scale = 0.7]{images/Carbdiazosyn}}% center
            \caption{Generation ...}
            \label{carbdiazosyn}
        \end{scheme}

\centering This references the compound index, \ref{test}.
\end{document}

demo2

verwandte Informationen