\chemfig in \forest ??

Tabellen und Grafiken erstellen und anordnen


Franz

\chemfig in \forest ??

Beitrag von Franz »

Ich möchte in einem forest ein Polymer als Zelle zeichnen.
\begin{forest}
for tree={
  if level=0{align=center}{% allow multi-line text and set alignment
    align={@{}C{45mm}@{}},
  },
  grow=east,
  draw,
%  font=\sffamily\bfseries,
  edge path={
    \noexpand\path [draw, \forestoption{edge}] (!u.parent anchor) -- +(5mm,0) |- (.child anchor)\forestoption{edge label};
  },
  parent anchor=east,
  child anchor=west,
  l sep=10mm,
  tier/.wrap pgfmath arg={tier #1}{level()},
  edge={ultra thick, rounded corners=2pt},
  fill=white,
  rounded corners,
  top color=white,
  bottom color=white,
},
forked edges
[A
  [\chemfig{-Si-}
  ]
  [B2
  ]
]
kann man soetwas machen? mir gibt es immer folgenden Fehler aus:

! Package pgf Error: No shape named n2-1 is known.

Ich gehe mal davon aus, dass das an den Strichen liegt?

Hat da jemand eine Idee?

Rolli
Forum-Guru
Forum-Guru
Beiträge: 382
Registriert: Mi 15. Feb 2017, 08:50
Wohnort: Mittelfranken

Beitrag von Rolli »

Hallo Franz,

könntest Du bitte ein lauffähiges Minimalbeispiel erstellen, welches genau Deinen Fehler reproduziert?

D.h. wenn man es in Overleaf öffnet, sollte nicht gleich die Fehlermeldung kommen "LaTeX Error: Environment forest undefined."

Wenn man das dann selber korrigiert, kommt als nächstes "LaTeX Error: \begin{forest} on input line 16 ended by \end{document}."

Wenn man das dann auch noch korrigiert, kommt "Package pgfkeys Error: I do not know the key '/tikz/forked edges' and I am going to ignore it. Perhaps you misspelled it."

Spätestens jetzt hat jeder, der Dir helfen möchte, die Lust verloren ...

Gruß vom Rolli

Franz

Beitrag von Franz »

Rolli hat geschrieben:Hallo Franz,

könntest Du bitte ein lauffähiges Minimalbeispiel erstellen, welches genau Deinen Fehler reproduziert?

D.h. wenn man es in Overleaf öffnet, sollte nicht gleich die Fehlermeldung kommen "LaTeX Error: Environment forest undefined."

Wenn man das dann selber korrigiert, kommt als nächstes "LaTeX Error: \begin{forest} on input line 16 ended by \end{document}."

Wenn man das dann auch noch korrigiert, kommt "Package pgfkeys Error: I do not know the key '/tikz/forked edges' and I am going to ignore it. Perhaps you misspelled it."

Spätestens jetzt hat jeder, der Dir helfen möchte, die Lust verloren ...

Gruß vom Rolli
\documentclass[a4paper]{article}

%% Language and font encodings
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}

%% Sets page size and margins
\usepackage[a4paper,top=3cm,bottom=2cm,left=3cm,right=3cm,marginparwidth=1.75cm]{geometry}

%% Useful packages
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorinlistoftodos]{todonotes}
\usepackage[colorlinks=true, allcolors=blue]{hyperref}
\usepackage{forest}
\title{Your Paper}
\author{You}
% Chemiepackete
\usepackage{chemfig}
\usepackage{mhchem}


\begin{document}

\chemfig{-Si-}
\\
\\
\begin{forest}
  for tree={grow'=90, draw, circle, edge+={<-}},
  [A
  	[\chemfig{-Si-}]
    [B2]
  ]
\end{forest}

\end{document}

Also das \chemfig in dem tree ist das Problem 

Rolli
Forum-Guru
Forum-Guru
Beiträge: 382
Registriert: Mi 15. Feb 2017, 08:50
Wohnort: Mittelfranken

Beitrag von Rolli »

Hallo Franz,

Dein geändertes Minimalbeispiel compiliert bei mir jetzt ohne Fehler.
D.h., ich kann Dein Problem leider nicht nachvollziehen.

Ich arbeite mit TexWorks und MikTEX - jeweils ziemlich aktuelle Versionen (ich mache ca. 2x Update je Monat, obwohl das von der Community nach meiner Wahrnehmung eher nicht empfohlen wird).

Vielleicht solltest Du zunächst auch mal alle "hängenden" Updates machen.

- Miktex Update Manager (User- und auch Admin- Version)

Andererseits sehe ich auch, dass Overleaf bei Deinem MB einen Fehler wirft ...

Das deutet auf einen Fehler hin, der irgendwo tief im System versteckt ist, der aber nicht bei Dir als Anwender liegt.

Meine Empfehlung: Installiere Dir TexWorks als "LaTeX-Editor". Wenn's damit funktioniert, informiere Saso Zivanovic darüber.


Gruß vom Rolli

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Rolli hat geschrieben:Hallo Franz,

Dein geändertes Minimalbeispiel compiliert bei mir jetzt ohne Fehler.
Eine Fehlermeldung gibt es zwar nicht, aber hast du dir die Ausgabe mal angeschaut? Und hast du bemerkt, dass es dauernd eine "Label(s) may have changed" Warnung gibt?

Andererseits sehe ich auch, dass Overleaf bei Deinem MB einen Fehler wirft ...


Die log-Datei dort zeigt aber keinen Fehler. Möglicherweise ist overleaf auch wegen der Label-Warnung irritiert.

Das Grundproblem ist, dass sowohl forest als auch chemfig auf tikz basieren. D.h. hier wird versucht eine tikzpicture innerhalb einer anderen tikzpicture zu erzeugen. Sowas kann schon mal schiefgehen. Ich würde empfehlen, die \chemfig außerhalb in eine Box zu speichern und die Box dann zu nutzen:


\documentclass[a4paper]{article}

%% Language and font encodings
\usepackage[english]{babel}
\usepackage[utf8]{inputenc} %nicht utf8x!!
\usepackage[T1]{fontenc}

\usepackage{forest}
% Chemiepakete
\usepackage{chemfig}

\begin{document}

\newsavebox\chemfigbox
\savebox\chemfigbox{\chemfig{-Si-}}

\chemfig{-Si-}

\begin{forest}
  for tree={grow'=90, draw, circle, edge+={<-}},
  [A
    [\usebox\chemfigbox]
    [B2]     
  ]
\end{forest}

\end{document}
[/code]

Franz

Beitrag von Franz »

Hallo,
vielen vielen Dank für eure Hilfen.
Mit der gespeicherten Box klappt jetzt alles.

Obwohl es immer erst beim zweiten compilieren die Striche von dem Diagramm und der Chemfig setzt.

Sieht sehr abenteuerlich aus :D. Aber liegt wahrscheinlich wie beim zitieren an einer gespeicherten Datei :? .

Das Beispiel hatte ich auch in Overleaf erstellt dort ging es erst ohne Fehler und als ich es dann erneut ansehen wollte ging es wieder nicht fehlerfrei.
Naja wie auch immer - mit der savebox ist das ja umgangen.

vielen Dank nochmal :idea:

Franz

Beitrag von Franz »

u_fischer hat geschrieben:
Rolli hat geschrieben:Hallo Franz,

Dein geändertes Minimalbeispiel compiliert bei mir jetzt ohne Fehler.
Eine Fehlermeldung gibt es zwar nicht, aber hast du dir die Ausgabe mal angeschaut? Und hast du bemerkt, dass es dauernd eine "Label(s) may have changed" Warnung gibt?

Andererseits sehe ich auch, dass Overleaf bei Deinem MB einen Fehler wirft ...


Die log-Datei dort zeigt aber keinen Fehler. Möglicherweise ist overleaf auch wegen der Label-Warnung irritiert.

Das Grundproblem ist, dass sowohl forest als auch chemfig auf tikz basieren. D.h. hier wird versucht eine tikzpicture innerhalb einer anderen tikzpicture zu erzeugen. Sowas kann schon mal schiefgehen. Ich würde empfehlen, die \chemfig außerhalb in eine Box zu speichern und die Box dann zu nutzen:


\documentclass[a4paper]{article}

%% Language and font encodings
\usepackage[english]{babel}
\usepackage[utf8]{inputenc} %nicht utf8x!!
\usepackage[T1]{fontenc}

\usepackage{forest}
% Chemiepakete
\usepackage{chemfig}

\begin{document}

\newsavebox\chemfigbox
\savebox\chemfigbox{\chemfig{-Si-}}

\chemfig{-Si-}

\begin{forest}
  for tree={grow'=90, draw, circle, edge+={<-}},
  [A
    [\usebox\chemfigbox]
    [B2]     
  ]
\end{forest}

\end{document}
[/code]
Es ist doch noch eine Frage aufgetaucht.

Bild

Kann man die Boxen notfalls selber skalieren?

Lg Franz

Antworten