Beamer プレゼンテーションで問題が発生しています。1 つのスライドに 2 つの Tikz サブ図を挿入したいのですが。そのために調整ボックスを使用していますが、エラーが発生します。
各 tikzpicture を別々に配置するとエラーは発生しませんが、2 つのサブ図に分割しようとするとエラーが発生します。
関連する問題に対する回答を調べています。問題は、figure 環境へのサブフロートに関連しているようですが、満足のいく回答はありません。
私のコード:
\documentclass[serif, xcolor={usenames,dvipsnames,table}]{beamer}
\usepackage[portuguese]{babel}
\usepackage[utf8]{inputenc}
\usepackage{mathpazo}
\let\Tiny=\tiny
\mode<presentation> {
\usetheme{Malmoe}
\usecolortheme{beaver}
}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{amssymb}
\usepackage{mathtools}
\usepackage{enumerate}
\setbeamertemplate{section in head/foot}{\hfill\insertsectionhead}
\setbeamertemplate{section in head/foot shaded}{\color{red!40}\hfill\insertsectionhead}
\setbeamertemplate{section in toc}{\inserttocsectionnumber.~\inserttocsection}
\usepackage{hyperref}
\usepackage[alf]{abntex2cite}
\usepackage{tikz}
\usetikzlibrary{arrows}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{\node[shape=circle,draw,inner sep=2pt] (char) {#1};}} %texto circulado
\usepackage{adjustbox}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{multicol}
%------------------------------------------------
\begin{document}
\begin{frame}{Eliminação de \textit{subtour}}
\begin{adjustbox}{max totalsize={1\textwidth}{.9\textheight},center}
\begin{figure}[htpb]
\centering
\subfigure[Eliminado pela variável $ \gamma $ e os conjuntos $ \Xi $]{
\begin{tikzpicture}[->, >=stealth', shorten >=1pt, auto, node distance=3cm, thick, main node/.style={circle, draw, font=\sffamily}]
\node[main node, label={above:Q1}] (1) {a};
\node[main node, label={above:R1}] (2) [right of=1] {c};
\node[main node, label={above:Q2}] (3) [right of=2] {d};
\node[main node, label={above:S2}] (4) [right of=3] {b};
\node[](aux1) at (5,-0.5) {};
\node[main node, label={left:P1}] (5) [below of=aux1] {g};
\node[](aux2) [below left of=1] {};
\node[main node, label={right:P3}] (6) [above right of=5] {e};
\node[main node, label={right:P2}] (7) [below right of=5] {f};
\path[every node/.style={font=\sffamily\small}]
(1) edge [right] node[left, below] {} (2)
(2) edge [right] node[left, below] {} (3)
(3) edge [right] node[left, below] {} (4)
(5) edge [right] node[left] {} (7)
(7) edge [right] node[right] {} (6)
(6) edge [red, right, line width=1.8pt] node[left, red] {} (5);
\end{tikzpicture}}
\subfigure[Eliminado pelas restrições \eqref{eq:sd-subtour-lmo}]{
\begin{tikzpicture}[->, >=stealth', shorten >=1pt, auto, node distance=3cm, thick, main node/.style={circle, draw, font=\sffamily}]
\node[main node, label={above:Q1}] (1) {a};
\node[main node, label={above:R2}] (2) [right of=1] {c};
\node[main node, label={above:Q2}] (3) [right of=2] {d};
\node[main node, label={above:S2}] (4) [right of=3] {b};
\node[](aux1) at (3,-0.5) {};
\node[main node, label={left:R1}] (5) [below of=aux1] {g};
\node[](aux2) [left of=5] {};
\node[main node, label={right:P3}] (6) [above right of=5] {e};
\node[main node, label={right:P2}] (7) [below right of=5] {f};
\path[every node/.style={font=\sffamily\small}]
(1) edge [right] node[left, below] {} (2)
(2) edge [right] node[left, below] {} (3)
(3) edge [right] node[left, below] {} (4)
(5) edge [right] node[left] {} (7)
(7) edge [right] node[right] {} (6)
(6) edge [right] node[left, red] {} (5);
\end{tikzpicture}}
\end{figure}
\end{adjustbox}
\end{frame}
\end{document}
ありがとう!
答え1
話題から外れますが、重要です:
- 他のパッケージ間では、ビーマーは と もロードする
graphicx
のでhyperref
、再度ロードするのは余計です。 - ビーマーには独自のリスト(
itemize
、enumerate
)があり、その特定のものを採用しています。したがって、他のパッケージを使用すると、リストが壊れやすくなる可能性があります。
adjustbox
問題は(および古いパッケージの使用)によって発生しているようですsubfigure
。代わりに、adjustwidth
パッケージのマクロを使用することをお勧めしますchangepage
。以下の MWE では、MWE 内のすべての乱雑さ (使用されていないコード フラグメント) を削除したので、コードは非常に簡潔になりました。また、古いサブキャプションを置き換えますsubfigure package with
。
\documentclass[serif, xcolor={usenames,dvipsnames,table}]{beamer}
\usepackage[portuguese]{babel}
\usepackage[utf8]{inputenc}
\usepackage{mathpazo}
\let\Tiny=\tiny
\mode<presentation> {
\usetheme{Malmoe}
\usecolortheme{beaver}
}
%\usepackage{graphicx} not needed
\usepackage{subcaption}
\usepackage{amssymb, mathtools}
%\usepackage{enumerate}
\setbeamertemplate{section in head/foot}{\hfill\insertsectionhead}
\setbeamertemplate{section in head/foot shaded}{\color{red!40}\hfill\insertsectionhead}
\setbeamertemplate{section in toc}{\inserttocsectionnumber.~\inserttocsection}
%\usepackage{hyperref}
\usepackage[alf]{abntex2cite}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, chains, positioning}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{\node[shape=circle,draw,inner sep=2pt] (char) {#1};}} %texto circulado
\makeatletter
\tikzset{join reset/.code={\def\tikz@after@path{}}}
\makeatother
%\usepackage{adjustbox} better not use it
\usepackage{booktabs, multirow}
%\usepackage{multicol} not needed, beamer has own
\usepackage{changepage} % for more space fo image
%------------------------------------------------
\begin{document}
\begin{frame}
\frametitle{Eliminação de \textit{subtour}}
\begin{figure}
\tikzset{
shorten >=1pt,
node distance = 9mm and 5mm,
start chain = going right,
MN/.style = {% Main Node
circle, draw, semithick, font=\sffamily\scriptsize,
minimum size=3ex, inner sep=2pt,
on chain, join=by -{Straight Barb[]}},
}
\begin{adjustwidth}{-6mm}{-6mm}
\centering
\begin{subfigure}[t]{0.48\linewidth}
\begin{tikzpicture}
\node[MN, label=Q1] (1) {a};
\node[MN, label=R2] (2) {c};
\node[MN, label=Q2] (3) {d};
\node[MN, label=S2] (4) {b};
%
\node[MN, join reset,
label=left:P1,
below=of 4] (5) {g};
\node[MN, label=right:P3,
above right=of 5.south] (6) {e};
\node[MN, label=right:P2,
below right=of 5.north] (7) {f};
\draw[-{Straight Barb[]}] (7) -- (5);
\draw[red, line width=1pt,-{Straight Barb[]}] (5) -- (6);
\end{tikzpicture}
\caption{Eliminado pela variável $ \gamma $ e os conjuntos $ \Xi $}
\end{subfigure}
\hfill
\begin{subfigure}[t]{0.48\linewidth}
\begin{tikzpicture}
\node[MN, label=Q1] (1) {a};
\node[MN, label=R2] (2) {c};
\node[MN, label=Q2] (3) {d};
\node[MN, label=S2] (4) {b};
%
\node[MN, join reset,
label=left:P1,
below=of 4] (5) {g};
\node[MN, label=right:R1,
above right=of 5.south] (6) {e};
\node[MN, label=right:P2,
below right=of 5.north] (7) {f};
\draw[-{Straight Barb[]}] (7) -- (5);
\end{tikzpicture}
\caption{Eliminado pelas restrições \eqref{eq:sd-subtour-lmo}}
\end{subfigure}
\end{adjustwidth}
\end{figure}
\end{frame}
\end{document}
このイメージがあなたの希望に近いものであることを願っています :)