如何在定义上下文中居中?

如何在定义上下文中居中?

我想在同一行上定义几个简短的定义,作为定义编号。出于这个目的,最后一个定义中有多少个中心 A 是 B?

MWE 是:

\documentclass{article}
\newtheorem{Definiton}{Definiton}

\begin{document}
 
 \begin{Definiton}
         A is B
 \end{Definiton}

\begin{Definiton}
 \begin{center}
A is B
 \end{center}
\end{Definiton}

\begin{Definiton}
 \begin{center}
     \hfill A is B 
 \end{center}
\end{Definiton}



\begin{Definiton}
 \begin{center}
     \hfill A is B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 \end{center}
\end{Definiton}

\end{document}

答案1

答案在很大程度上取决于居中操作应该跨越什么。你想把“A 是 B”居中吗?剩余部分行(即减去字符串“定义 n.”)或在全部的行?下面给出了两种情况的解决方案。请注意,代码使用\hspace*{\fill}而不是\hfill

在此处输入图片描述

\documentclass{article}
\usepackage{amsthm,showframe}
\newtheorem{Definition}{Definition}

\begin{document}
 
\begin{center}
$|$
\end{center}

\begin{Definition}
\hspace*{\fill}
A is B
\hspace*{\fill}
\end{Definition}

\begin{Definition}
\hspace*{\fill}
A is B
\hspace*{\fill}\hphantom{\textup{\textbf{Definition \theDefinition.}}}
\end{Definition}

\begin{center}
$|$
\end{center}

\end{document}

答案2

如果你真的想要妨碍可读性,您可以将其置于可用空间的中心(定义 2),也可以将其绝对置于中心(定义 3)。

仅当您选择第三种方式时才需要该包zref和。\centerref

此外,应该将showframe\markcenter从生产版本中删除。

就我个人而言,我不会尝试将事物推离其所属的范畴,因此我会坚持定义 1 风格。

\documentclass{article}
\usepackage[savepos]{zref}

\usepackage{showframe}% just for the example

\newtheorem{Definition}{Definition}

\newcounter{centerdef}
\newcommand{\centerdef}[1]{%
  \leavevmode
  \stepcounter{centerdef}%
  \zsaveposx{CENTERDEF\arabic{centerdef}}%
  \makebox[\dimeval{\columnwidth+1in-\zposx{CENTERDEF\arabic{centerdef}}sp}]{#1}%
}


% just for the example
\newcommand{\markcenter}{\par{\centering\vrule height8pt\par}}

\begin{document}

\markcenter

\begin{Definition}
A is B
\end{Definition}

\begin{Definition}
\hfill A is B\hspace*{\fill}
\end{Definition}

\begin{Definition}
\centerdef{A is B}
\end{Definition}

\markcenter

\end{document}

在此处输入图片描述

注意:添加后第一次运行 LaTeX\centerdef会产生一个过满的框,但下一次运行就会正常。

相关内容