
コンパイルすると、
クラスが表示されないのはなぜでしょうか? コードは次のとおりです:
\documentclass{beamer}
\usepackage[shellescape,latex]{gmp}
\usetheme{Montpellier}
\title{Something}
\date{\today}
\begin{document}
\frame{\titlepage}
\section[Outline]{}
\frame{\tableofcontents}
\section{something}
\subsection{Class Diagram}
\frame
{
\frametitle{Frame 1}
\begin{figure}
\centering
\begin{mpost}[mpsettings=input metauml;]
Usecase.U("Authenticate user",
"by name, password");
drawObject(U);
\end{mpost}
\caption{Something}
\end{figure}
}
\end{document}
答え1
gmp
のドキュメントのセクション5で
\usempxclass [⟨options⟩] {⟨class⟩}
これは と同じ構文です\documentclass
。その目的は、METAPOST がテキスト ラベルを描画するために必要なファイルを準備するために、TeX または LaTeX の実行に使用するクラスを宣言することですmpx
。デフォルト (article) から変更する必要はありません。ただし、非標準のクラスを非標準の書体サイズ (つまり、10、11、または 12 ポイント サイズ以外) で使用する場合は、クラスを宣言する必要があります。そうしないと、ラベルは 10 ポイント書体でタイプセットされます。
実際には、パッケージを でテストしたわけではありませんbeamer
。しかし、このカテゴリに該当するので、次のように記述することで問題を解決できます。
\usempxclass{article}
前文に。
\documentclass{beamer}
\usepackage[shellescape,latex]{gmp}
\usempxclass{article}
\usetheme{Montpellier}
\title{Something}
\date{\today}
\begin{document}
\frame{\titlepage}
\section[Outline]{}
\frame{\tableofcontents}
\section{something}
\subsection{Class Diagram}
\begin{frame}
\frametitle{Frame 1}
\begin{figure}
\centering
\begin{mpost}[mpsettings=input metauml]
Usecase.U("Authenticate user",
"by name, password");
drawObject(U);
\end{mpost}
\caption{Something}
\end{figure}
\end{frame}
\end{document}
答え2
使用する必要がある
pdflatex -shell-escape yourfile
mp バックエンドを許可します。
また、どうやらbeamer
ポイントサイズを設定する必要があるようです:
\documentclass{beamer}
\makeatletter
\def\@ptsize{10}
\makeatother
\usepackage[shellescape,latex]{gmp}
\usetheme{Montpellier}
\title{Something}
\date{\today}
\begin{document}
\frame{\titlepage}
\section[Outline]{}
\frame{\tableofcontents}
\section{something}
\subsection{Class Diagram}
\frame
{
\frametitle{Frame 1}
\begin{figure}
\centering
\begin{mpost}[mpsettings=input metauml;]
Usecase.U("Authenticate user",
"by name, password");
drawObject(U);
\end{mpost}
\caption{Something}
\end{figure}
}
\end{document}