我正在尝试使用 newtheorem 环境为 ACM 模板定义。执行后,它不会放在单个列中,而是会跨越到下一列。我已附上输出。请解释一下,为什么它表现异常?MWE 和输出(屏幕截图)如下。
\documentclass{sig-alternate-05-2015}
\usepackage{multirow}
\usepackage{hyperref}
\begin{document}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{dfn}{Definition}
\newtheorem{hypothesis}{Hypothesis}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{remark}{Remark}
\newtheorem{example}{Example}
\setcopyright{acmcopyright}
\subsection{Mathematical Definitions}
\begin{dfn}[One-Way Hash Function]
Given $H(x)$, it is hard for any PPT bounded algorithm $\mathcal{A}$ to find out $x$. The advantage $\epsilon$ of $\mathcal{A}$ in finding another solution is defined as
$$\left\vert\Pr\left[
\left.\begin{array}{l}
x\in_R \{0,1\}^n\\y\leftarrow H(x)\\x'\leftarrow\mathcal{A}(y)
\end{array}
\right\vert H(x')=y\right] \right \vert\geq\epsilon$$
\end{dfn}
\begin{dfn}[Negligible Function with K tretitors in IBE scheme]
content...
\end{dfn}
答案1
类似定理的环境的设置sig-alternate
将整个标签(包括属性/名称部分)排版在一个框中。
加载时不会发生这种情况amsthm
。但是,为了允许使用,amsthm
必须删除 的定义proof
,然后再恢复它。
\documentclass{sig-alternate-05-2015}
\let\sigproof\proof\let\proof\relax
\let\sigendproof\endproof\let\endproof\relax
\usepackage{amsthm}
\let\proof\sigproof
\let\endproof\sigendproof
\newtheoremstyle{sig}
{}
{}
{\itshape}
{}
{\scshape}
{.}
{.5em}
{#1 #2\thmnote{\quad(#3)}}
\theoremstyle{sig}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{dfn}{Definition}
\newtheorem{hypothesis}{Hypothesis}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{remark}{Remark}
\newtheorem{example}{Example}
\setcopyright{acmcopyright}
\begin{document}
\subsection{Mathematical Definitions}
\begin{dfn}[One-Way Hash Function]
Given $H(x)$, it is hard for any PPT bounded algorithm $\mathcal{A}$
to find out $x$. The advantage $\epsilon$ of $\mathcal{A}$ in finding
another solution is defined as
\[
\left\vert
\Pr\left[
\begin{array}{l}
x\in_R \{0,1\}^n\\y\leftarrow H(x)\\x'\leftarrow\mathcal{A}(y)
\end{array}
\middle\vert\; H(x')=y\right] \right\vert\geq\epsilon
\]
\end{dfn}
\begin{dfn}[Negligible Function with K tretitors in IBE scheme]
content...
\end{dfn}
\end{document}
我认为在标准代码中不允许使用长定理名称sig-alternate
。