因此我在这里使用 AMSnewtheorem
作为
\newtheorem{dfn}{Definition}
\newtheorem{exDfn}[dfn]{Extended Definition}
我想问的是,是否可以将 exDfn 左移,以便 Definition 对齐。无论如何,只需将整个文本向左移动即可。如下所示:
Definition 1. something blahblahblah
def 1's second line
Extended Definition 2. Extra/optional definitions something
exDef's second line.
答案1
我看到一些建议在\newtheorem
声明中包含格式化命令。这实际上可能会破坏通过访问定理标签的其他包\newtheorem
,例如theoremref
包。
\documentclass{article}
\usepackage{amsthm}
\usepackage{theoremref}
\newtheorem{dfn}{Definition}
\newtheorem{exDfn}[dfn]{\llap{Extended }Definition}
\begin{document}
\begin{dfn}\thlabel{dfn1}
Definition 1. something blahblahblah
def 1's second line
\end{dfn}
\begin{exDfn}\thlabel{dfn2}
Definition 2. Extra/optional definitions something
exDef's second line.
\end{exDfn}
Let's refer to \thref{dfn1} and then \thref{dfn2}
\end{document}
收益
这并不理想。如果您必须改变标签,请尝试声明一种新的定理样式。
\documentclass{article}
\usepackage{amsthm}
\usepackage{theoremref}
\newlength{\mywidth}
\settowidth{\mywidth}{\bfseries Extended } % measure the width of "Extended " in the font used
\newtheoremstyle{extplain}{}{}{\itshape}%
{-\mywidth} % Four argument: indent amount, set to negative of the part we want to eat
{\bfseries}{.}{ }{}
\newtheorem{dfn}{Definition}
\theoremstyle{extplain}
\newtheorem{exDfn}[dfn]{Extended Definition}
\begin{document}
\begin{dfn}\thlabel{dfn1}
Definition 1. something blahblahblah
def 1's second line
\end{dfn}
\begin{exDfn}\thlabel{dfn2}
Definition 2. Extra/optional definitions something
exDef's second line.
\end{exDfn}
Let's refer to \thref{dfn1} and then \thref{dfn2}
\end{document}
这里我没有猜测和检查,而是定义了一个长度变量,使其等于粗体“Extended ”的宽度,并定义了一个,使其与的\newtheoremstyle
默认样式完全相同,只是多了一个plain
amsthm
消极的缩进量。这次的输出\thref
是正常的。
答案2
您可以像往常一样使用 定义定理环境\newtheorem
,并使用零宽度框。如果您需要进行命名引用,请使用cleveref
。
如果您只打算使用(或不进行交叉引用),则包cleveref
和\crefname
和声明是可选的。\Crefname
\ref
\documentclass{article}
\usepackage{amsthm}
\usepackage{cleveref}
\theoremstyle{definition}
\newtheorem{definition}{Definition}
\newtheorem{extdefinition}[definition]{\makebox[0pt][r]{Extended }Definition}
\crefname{extdefinition}{extended definition}{extended definitions}
\Crefname{extdefinition}{Extended definition}{Extended definitions}
\begin{document}
\begin{definition}\label{def1}
A nonsense definition.
\end{definition}
\begin{extdefinition}\label{def2}
Another nonsense definition, but extended
\end{extdefinition}
These are the named references: \cref{def1} and \cref{def2}
These are the named references: \Cref{def1} and \Cref{def2}
\end{document}
答案3
如果您提供 MWE,我会觉得它很有帮助。由于从未使用过 AMS,newtheorem
我不得不进行大量搜索才找到它。
左侧是基本 TeX\llap{text}
宏排版。下面是我尝试的 MWE,它可以完成你想要的功能,尽管我不知道你的定理应该是什么样的。text
% theoremprob.tex SE 590528
\documentclass{article}
\usepackage{amsthm}
\newtheorem{dfn}{Definition}
\newtheorem{exDfn}[dfn]{\llap{Extended }Definition}
\begin{document}
\begin{dfn}
Definition 1. something blahblahblah
def 1's second line
\end{dfn}
\begin{exDfn}
Definition 2. Extra/optional definitions something
exDef's second line.
\end{exDfn}
\end{document}