Diagramm mit tcolorbox

Diagramm mit tcolorbox

Hallo, ich erstelle ein Diagramm mit tcolorbox. Ich zeige Ihnen meinen Code:

\begin{center}
\begin{tcolorbox}[halign= flush center, halign title= flush center, fonttitle=\sffamily\bfseries\large, title={Lecteur DVD LG=Modèle GSA-H10N}, width=9cm]
\includegraphics[height=3cm]{Picture1.jpg}
\end{tcolorbox}
\end{center}
\tcbset{on line,before upper=\strut,width=10cm}

\vspace{10px} %%%%%%%%% Adding space %%%%%%%%%
\begin{minipage}{.45\linewidth}
\begin{flushleft} 
\tcbox[tcbox width=auto]{PHASES DE DEMONTAGE}
\end{flushleft} 
\end{minipage}
\hfill
\begin{minipage}{.45\linewidth}
\begin{flushright}
\tcbox[tcbox width=auto limited]{ATTACHEMENTS}
\end{flushright}
\end{minipage}

\newtcolorbox[auto counter]{mybox}[1]{fonttitle=\sffamily\bfseries\large, sidebyside, lefthand width=6.5cm,
  enhanced, remember as=first,
  title=#1,
  overlay unbroken and first ={
    \node[anchor=north east,rounded corners,draw=black!80,fill=gray!30,line width=0.5mm,text width=2.5em,align=center,minimum height=4ex] at ([xshift=-\marginparsep]frame.north west) {\thetcbcounter};
  }
}

\vspace{10px}
%%%%%%%%%%%%%%%% Phase 1
\begin{minipage}{.45\linewidth}
\begin{flushleft} 
\begin{mybox}{Démontage du boitier}
\includegraphics[height=3cm]{Picture2.JPG}% 
\hspace{10px}\includegraphics[height=3cm]{Picture3.jpg}
\tcblower
\underline{Temps:}\\\\ 4 min.\\ 30 sec.
\end{mybox}
\end{flushleft} 
\end{minipage}
\hfill
\begin{minipage}{.45\linewidth}
\begin{flushright}
\begin{tcolorbox}[enhanced, width=4.5cm,
halign=center,valign=center,
square, remember as=second]
\includegraphics[height=3.5cm]{Picture4.JPG}
\end{tcolorbox}
\end{flushright}
\end{minipage}

\begin{tikzpicture}[overlay,remember picture,line width=0.8mm,draw=red!75!black]
\draw[->] (first.east) to (second.west);
\end{tikzpicture}
%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%% Phase 2
\begin{minipage}{.45\linewidth}
\begin{flushleft} 
\begin{mybox}{Démontage de la carte mère}
\includegraphics[height=3cm]{Picture2_1.jpg}%
\hspace{10px}\includegraphics[height=3cm]{Picture5.JPG}
\tcblower
\underline{Temps:}\\\\ 1 min.\\ 25 sec.
\end{mybox}
\end{flushleft} 
\end{minipage}
\hfill
\begin{minipage}{.45\linewidth}
\begin{flushright}
\begin{tcolorbox}[enhanced, width=4.5cm,
halign=center,valign=center,
square, remember as=third]
\includegraphics[height=3.5cm]{Picture2_2.jpg}
\end{tcolorbox}
\end{flushright}
\end{minipage}

\begin{tikzpicture}[overlay,remember picture,line width=0.8mm,draw=red!75!black]
\draw[->] (first.east) to (third.west);
\end{tikzpicture}
%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%% Phase 3
\begin{minipage}{.45\linewidth}
\begin{flushleft} 
\begin{mybox}{Démontage du boitier}
\includegraphics[height=3cm]{Picture6.JPG}% 
\hspace{10px}\includegraphics[height=3cm]{Picture7.JPG}
\tcblower
\underline{Temps:}\\\\ 45 sec.
\end{mybox}
\end{flushleft} 
\end{minipage}
\hfill
\begin{minipage}{.45\linewidth}
\begin{flushright}
\begin{tcolorbox}[enhanced, overlay, width=4.5cm,
halign=center,valign=center,
square, remember as=fourth]
\includegraphics[height=3.5cm]{Picture2_3.jpg}
\end{tcolorbox}
\end{flushright}
\end{minipage}

\begin{tikzpicture}[overlay,remember picture,line width=0.8mm,draw=red!75!black]
\draw[->] (first.east) to (fourth.west);
\end{tikzpicture}
%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%% Phase 4
\begin{mybox}{Démontage de la tête de lecture}
\includegraphics[height=3cm]{Picture8.JPG}%
\hspace{10px}\includegraphics[height=3cm]{Picture9.JPG}
\tcblower
\underline{Temps:}\\\\ 1 min.
\end{mybox}
%%%%%%%%%%%%%%%%%%%%%%%%
\begin{center}
\begin{tcolorbox}[sidebyside,lefthand width=6.5cm, fonttitle=\sffamily\bfseries\large, title={Première étape de démontage}, width=14cm, halign title=flush center]
\includegraphics[height=5cm]{Picture10.JPG}
\tcblower
\underline{Temps total:} 7 min. 30 sec.\\\\
\underline{Eléments démontés:}\\
\begin{itemize}[leftmargin=*]
  \item Boitier aluminium
  \item Carte mère
  \item Support CD plastique
  \item Moteur d'ouverture du lecteur
  \item Tête de lecture
\end{itemize}
\end{tcolorbox}
\end{center}

%%%%%%%%%%%%%%%% Phase 5
\begin{mybox}{Démontage de la partie métallique}
\includegraphics[height=3cm]{Picture8.JPG}%
\hspace{10px}\includegraphics[height=3cm]{Picture9.JPG}
\tcblower
\underline{Temps:}\\\\ 30 sec.
\end{mybox}
%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%% Phase 6
\begin{mybox}{Démontage de }
\includegraphics[height=3cm]{Picture8.JPG}%
\hspace{10px}\includegraphics[height=3cm]{Picture9.JPG}
\tcblower
\underline{Temps:}\\\\ 1 min.
\end{mybox}
%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%% Phase 7
\begin{mybox}{Démontage de }
\includegraphics[height=3cm]{Picture8.JPG}%
\hspace{10px}\includegraphics[height=3cm]{Picture9.JPG}
\tcblower
\underline{Temps:}\\\\ 1 min.
\end{mybox}

Das Ergebnis ist etwa wie folgt: Bildbeschreibung hier eingeben

Sie können dem Code entnehmen, dass die Boxen auf der linken Seite mit „\newtcolorbox“ definiert sind. Aber ich füge Pfeile hinzu und verwende dabei die Option „remember as“. Das Problem ist, dass „remember as“ im Befehl „\netcolorbox“ definiert ist, sodass alle meine Boxen auf der linken Seite als „first“ gespeichert werden. Wie kann ich im Befehl \begin{mybox} jeder Box auf der linken Seite ein anderes „remember as“ zuweisen?

Beim ersten hat es auch funktioniert, aber beim dritten funktioniert es nicht richtig (wenn ich vom ersten zum zweiten zeichne, dann vom ersten zum dritten und so weiter).

EDIT: Präambel

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[left=1in,right=1in,top=1in,bottom=1in]{geometry}
\usepackage{array}
\usepackage[table, x11names]{xcolor}
\usepackage{array, multirow}
\usepackage{makecell, hhline}
\renewcommand\theadfont{\bfseries}
\renewcommand\theadalign{lc}
\newcommand\whitecell[1]{\cellcolor{white}{#1}}

\usepackage[english,french]{babel}
\usepackage{fancyhdr}
\usepackage{setspace}
\usepackage{listings}
\usepackage[many]{tcolorbox}
\usepackage{url}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{parskip}
\usepackage[numbers]{natbib}
\usepackage[shortlabels]{enumitem}
\setlist[itemize]{label=\textbullet}

\setlength{\parindent}{0pt}
\newcommand{\forceindent}{\leavevmode{\parindent=1em\indent}}

\usetikzlibrary{arrows,shapes.geometric,positioning}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{natbib}
\usepackage{wrapfig}

\usepackage{titlesec}
\titleformat*{\section}{\huge\bfseries}
\titleformat*{\subsection}{\Large\bfseries}

\usepackage{hyperref}
\hypersetup{urlcolor=blue, colorlinks=true, linkcolor=black, citecolor=blue}

Antwort1

Einige Notizen:

  • Ich habe die Warnungen nach Möglichkeit ignoriert, da Ihr Dokument viele davon enthält, insbesondere underfull \hboxund overfull \hbox. Die erste bedeutet, dass Sie möglicherweise einen Zeilenumbruch an einer Stelle eingefügt haben, an der die Zeile keinen Inhalt hatte, z. B. beim Schreiben von \\\\, die zweite bedeutet, dass Ihr Inhalt die Seitenränder überschreitet.
  • Ich habe den größten Teil des Inhalts aus Ihrem Beispiel entfernt, da eine Seite ausreichte, um meine Lösung darzustellen.
  • Die Option ist draftvorhanden article, weil ich Ihre Bilddateien nicht habe. Entfernen Sie die Option zum Wiederherstellen der Bilder. Oder ignorieren Sie die Präambel vollständig.

Und nun die Lösung. Da Sie einen neuen tcolorboxNamen festgelegt haben mybox, habe ich ihm einen dynamischen Namen zugewiesen, remember as=a\thetcbcounter,sodass Sie haben a1, a2, a3usw. Dann habe ich für jede der anderen Seiten b1, b2, b3manuell Folgendes zugewiesen usw.

Schließlich brauchen Sie nur einen, tikzpictureum alle Pfeile zu zeichnen. Einen für jede Reihe zu verwenden ist mühsam und unnötig. So:

\begin{tikzpicture}[overlay,remember picture,->, line width=0.8mm,draw=red!75!black]
    \foreach \x in {1,2,3}{%
        \draw (a\x.east) -- (b\x.west);
    }    
\end{tikzpicture}

Ich denke, es ist ziemlich verständlich, aber schreiben Sie ruhig einen Kommentar, wenn Sie Hilfe brauchen. Es heißt, 1,2,3weil ich 3 „Zeilen“ verwendet habe, aber für jede Zeile müssen Sie es um eins erhöhen. Wenn Sie beispielsweise 8 haben, können Sie schreiben 1,...,8.

Ausgabe

Bildbeschreibung hier eingeben

Code

\documentclass[draft]{article}
\usepackage[margin=2cm]{geometry}
\usepackage{tikz}
\usepackage[most]{tcolorbox}

\begin{document}
\begin{center}
\begin{tcolorbox}[halign= flush center, halign title= flush center, fonttitle=\sffamily\bfseries\large, title={Lecteur DVD LG=Modèle GSA-H10N}, width=9cm]
\includegraphics[height=3cm]{Picture1.jpg}
\end{tcolorbox}
\end{center}
\tcbset{on line,before upper=\strut,width=10cm}

\vspace{10px} %%%%%%%%% Adding space %%%%%%%%%
\begin{minipage}{.45\linewidth}
\begin{flushleft} 
\tcbox[tcbox width=auto]{PHASES DE DEMONTAGE}
\end{flushleft} 
\end{minipage}
\hfill
\begin{minipage}{.45\linewidth}
\begin{flushright}
\tcbox[tcbox width=auto limited]{ATTACHEMENTS}
\end{flushright}
\end{minipage}

\newtcolorbox[auto counter]{mybox}[1]{fonttitle=\sffamily\bfseries\large, sidebyside, lefthand width=6.5cm,
  enhanced, remember as=a\thetcbcounter,
  title=#1,
  overlay unbroken and first ={
    \node[anchor=north east,rounded corners,draw=black!80,fill=gray!30,line width=0.5mm,text width=2.5em,align=center,minimum height=4ex] at ([xshift=-\marginparsep]frame.north west) {\thetcbcounter};
  }
}

\vspace{10px}
%%%%%%%%%%%%%%%% Phase 1
\begin{minipage}{.45\linewidth}
\begin{flushleft} 
\begin{mybox}{Démontage du boitier}
\includegraphics[height=3cm]{Picture2.JPG}% 
\hspace{10px}\includegraphics[height=3cm]{Picture3.jpg}
\tcblower
\underline{Temps:}\\\\ 4 min.\\ 30 sec.
\end{mybox}
\end{flushleft} 
\end{minipage}
\hfill
\begin{minipage}{.45\linewidth}
\begin{flushright}
\begin{tcolorbox}[enhanced, width=4.5cm,
halign=center,valign=center,
square, remember as=b1]
\includegraphics[height=3.5cm]{Picture4.JPG}
\end{tcolorbox}
\end{flushright}
\end{minipage}
%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%% Phase 2
\begin{minipage}{.45\linewidth}
\begin{flushleft} 
\begin{mybox}{Démontage de la carte mère}
\includegraphics[height=3cm]{Picture2_1.jpg}%
\hspace{10px}\includegraphics[height=3cm]{Picture5.JPG}
\tcblower
\underline{Temps:}\\\\ 1 min.\\ 25 sec.
\end{mybox}
\end{flushleft} 
\end{minipage}
\hfill
\begin{minipage}{.45\linewidth}
\begin{flushright}
\begin{tcolorbox}[enhanced, width=4.5cm,
halign=center,valign=center,
square, remember as=b2]
\includegraphics[height=3.5cm]{Picture2_2.jpg}
\end{tcolorbox}
\end{flushright}
\end{minipage}
%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%% Phase 3
\begin{minipage}{.45\linewidth}
\begin{flushleft} 
\begin{mybox}{Démontage du boitier}
\includegraphics[height=3cm]{Picture6.JPG}% 
\hspace{10px}\includegraphics[height=3cm]{Picture7.JPG}
\tcblower
\underline{Temps:}\\\\ 45 sec.
\end{mybox}
\end{flushleft} 
\end{minipage}
\hfill
\begin{minipage}{.45\linewidth}
\begin{flushright}
\begin{tcolorbox}[enhanced, overlay, width=4.5cm,
halign=center,valign=center,
square, remember as=b3]
\includegraphics[height=3.5cm]{Picture2_3.jpg}
\end{tcolorbox}
\end{flushright}
\end{minipage}

\begin{tikzpicture}[overlay,remember picture,->, line width=0.8mm,draw=red!75!black]
    \foreach \x in {1,2,3}{%
        \draw (a\x.east) -- (b\x.west);
    }    
\end{tikzpicture}
\end{document}

verwandte Informationen