是否可以将文本突出到文档的左边界之外?

是否可以将文本突出到文档的左边界之外?

因此我在这里使用 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默认样式完全相同,只是多了一个plainamsthm消极的缩进量。这次的输出\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}

在此处输入图片描述

相关内容