tcolorbox を使用したチャート

tcolorbox を使用したチャート

こんにちは。tcolorbox を使用してチャートを作成しています。コードを紹介します。

\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}

次のような結果が得られます。 ここに画像の説明を入力してください

コードから、左側のボックスが '\newtcolorbox' を使用して定義されていることがわかります。しかし、問題は、remember as オプションを使用して矢印を追加していることです。問題は、'remember as' が '\netcolorbox' コマンドで定義されているため、左側のすべてのボックスが 'first' として記憶されていることです。\begin{mybox} コマンドで、左側の各ボックスに異なる remember as を指定するにはどうすればよいでしょうか。

1 番目でも機能しましたが、3 番目は正しく機能しません (1 番目から 2 番目に描画し、次に 1 番目から 3 番目に描画するなど)。

編集: 序文

\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}

答え1

いくつかの注意点:

  • underfull \hboxドキュメントには、特にと が多数含まれているため、可能な限り警告を無視しましたoverfull \hbox。最初の警告は、 の記述など、行にコンテンツがない場所に改行が挿入された可能性があることを意味し、\\\\2 番目の警告は、コンテンツがページ余白を超えていることを意味します。
  • 私の解決策を示すには 1 ページで十分だったので、例からほとんどのコンテンツを削除しました。
  • このオプションdraftarticle、画像ファイルがないため、画像を復元するオプションを削除します。または、前文を完全に無視します。

さて、解決策です。tcolorboxという新しい を設定したのでmybox、 を使用してそれに動的な名前を割り当てました。remember as=a\thetcbcounter,これにより、 などが実現します。次に、反対側のそれぞれに対して、などを手動でa1, a2, a3割り当てました。b1, b2, b3

tikzpicture最後に、すべての矢印を描画するには1 つだけ必要です。行ごとに 1 つずつ使用するのは面倒で不要です。次のようになります。

\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}

かなり理解しやすいと思いますが、サポートが必要な場合は遠慮なくコメントしてください。1,2,33 つの「行」を使用したためと書かれていますが、行ごとに 1 つずつ増やす必要があります。たとえば、8 行ある場合は、 と記述できます1,...,8

出力

ここに画像の説明を入力してください

コード

\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}

関連情報