我定义一个新定理如下:
\newtheorem{definition}{Definition}
问题是,当定义名称很长时,会导致溢出。我尝试\\
将名称分成两行,但没有成功。
这是我的 tex 文件的相关部分:
\documentclass{vldb}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{algorithmic}
\usepackage{algorithm}
\usepackage{url}
\usepackage{times}
\newtheorem{definition}{Definition}
然后我使用:
\begin{definition}[anonymity non-reconstructible fragmentation]
并anonymity non-reconstructible fragmentation
造成超支。
顺便说一句,vldb 包是一个我无法改变的预定义包。
答案1
我不知道这个vldb
类的情况,但你给出的线索表明它是两列的。使用该amsthm
包,您可以得到您想要的,并且还可以将定义主体中的字体设置为直立,这是惯例:
\documentclass[twocolumn]{article}
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{definition}{Definition}
\begin{document}
\begin{definition}[anonymity non-reconstructible fragmentation]
aaa
\end{definition}
\end{document}
顺便说一句,subfigure
已经过时十年了;更喜欢subfig
(可能带有caption=false
包,可能需要您使用的类)。
答案2
如果使用默认值\newtheorem
,则可选参数(您的definition
标题)将作为列表的一部分设置在框中,因此牢不可破。只需最少的手动干预,您就可以修复此问题:
\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\newtheorem{definition}{Definition}
\begin{document}
\begin{definition}[anonymity non-reconstructible fragmentation and then some]
\lipsum[1]
\end{definition}
\begin{definition}\textbf{\upshape(anonymity non-reconstructible fragmentation and then some)}
\lipsum[1]
\end{definition}
\end{document}
答案3
该类vldb
使用内核的\newtheorem
,但重新定义了\@opargbegintheorem
;与原始定义一样,注释被放置为 的可选参数的一部分\item
,因此不允许换行。要更正此问题,您可以重新定义,\@opargbegintheorem
以便注释位于 的可选参数之外\item
;使用适当的设置,您将遵守该类使用的样式。
不幸的是,在这个特定情况下,行末的单词“fragmentation”将在“frag”处断开,从而产生一个溢出的框(by 1.48pt
),因此也许可以使用手动换行符。下面的示例显示了两种可能的替代方案:
\documentclass{vldb}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{algorithmic}
\usepackage{algorithm}
\usepackage{url}
\usepackage{times}
\usepackage{lipsum}
\makeatletter
\def\@opargbegintheorem#1#2#3{\trivlist
\item[\hskip\dimexpr\labelsep+10pt\relax{\scshape #1\ #2}](\textsc{#3}).\ \itshape}
\makeatother
\newtheorem{definition}{Definition}
\begin{document}
\begin{definition}[anonymity non-reconstructible fragmentation]
\lipsum[4]
\end{definition}
\lipsum[4]
\begin{definition}[anonymity non-reconstructible \\ fragmentation]
\lipsum[4]
\end{definition}
\lipsum[4]
\end{document}