楼主: oliyiyi
12526 810

【回帖有奖】在LaTeX中实现定理的重述   [推广有奖]

回帖奖励 190 个论坛币 回复本帖可获得 10 个论坛币奖励! 每人限 5 次(中奖概率 10%)

版主

大师

83%

还不是VIP/贵宾

-

TA的文库  其他...

计量文库

威望
6
论坛币
618353 个
学术水平
1307 点
热心指数
1415 点
信用等级
1218 点
经验
324032 点
帖子
8524
精华
66
在线时间
4808 小时
注册时间
2007-5-21
最后登录
2018-11-15

初级学术勋章 初级热心勋章 初级信用勋章 中级信用勋章 中级学术勋章 中级热心勋章 高级热心勋章 高级学术勋章 高级信用勋章 特级热心勋章 特级学术勋章 特级信用勋章

oliyiyi 发表于 2015-11-2 11:29:18 |显示全部楼层
本帖最后由 oliyiyi 于 2015-11-22 14:40 编辑

所谓定理的重述,是这样的情况:在文章的某处,我们陈述了一个定理;接下来,我们在文章的其他地方,陈述了一个与之等价但叙述方式不同的定理。此时,如果第一个定理的编号是 Theorem 7,那么第二个的编号就应该是 Theorem 7’。

我们来观察一下这个需求,不难发现有以下特征:

  • 原定理的位置不确定;
  • 原定理的编号不确定;
  • 重述定理的编号和原定理的编号相同,只不过多了一个撇(Prime)。

对 LaTeX 有一定了解的用户,可能会发现,这些特征和「交叉引用」非常相似。交叉引用的 \label 位置和编号也是不确定的(只有在第一遍编译之后才确定);交叉引用的结果 \ref 显示的内容应当与 \label 标记的锚点编号一致。

因此,我们考虑用交叉引用来处理这个问题。

对于定理重述,另一个显而易见的事情是:除了编号,定理重述的格式应当与定理本身保持一致。因此,定理重述的环境应该在定理环境的基础上做修改,而不是全盘推翻重做。

考虑到这些需求,有经验的 LaTeX 用户不难写出以下代码:

  1. \newtheorem{thm}{Theorem}
  2. \newenvironment{thmbis}[1]
  3.   {\renewcommand{\thethm}{\ref{#1}

  4. [align=left][color=#383838][font=Arial, Helvetica, sans-serif]这里,我们用 \renewcommand 修改了计数器 thm 的显示方式 \thethm:首先对原定理做引用,然后加上一个撇。随后,在 thm 的当前值上减 1。这是因为,在之后的 \begin{thm} 中会给 thm 计数器自加 1,这里作为「补偿」,需要预先减去 1。[/font][/color][/align][align=left][color=#383838][font=Arial, Helvetica, sans-serif]完整的例子可见:[/font][/color][/align][code]\documentclass[a4paper]{article}

  5. \newtheorem{thm}{Theorem}
  6. \newenvironment{thmbis}[1]
  7. {\renewcommand{\thethm}{\ref{#1}
  8. [align=left][color=#383838][font=Arial, Helvetica, sans-serif]效果图如下:[/font][/color][/align]
  9. [backcolor=rgb(34, 34, 34)][/backcolor]
  10. [img=463,301]http://www.latexstudio.net/wp-content/uploads/2015/09/thmremark20150913201140.png[/img]

  11. [align=left][color=#383838][font=Arial, Helvetica, sans-serif]选自:[color=rgb(41, 107, 204)][url=http://liam0205.me/2015/09/12/primed-theorems/]http://liam0205.me/2015/09/12/primed-theorems/[/url][/color][/font][/color][/align]
  12. $}%
  13.    \addtocounter{thm}{-1}%
  14.    \begin{thm}}
  15.   {\end{thm}}
复制代码


这里,我们用 \renewcommand 修改了计数器 thm 的显示方式 \thethm:首先对原定理做引用,然后加上一个撇。随后,在 thm 的当前值上减 1。这是因为,在之后的 \begin{thm} 中会给 thm 计数器自加 1,这里作为「补偿」,需要预先减去 1。

完整的例子可见:

[        DISCUZ_CODE_5        ]

效果图如下:





选自:http://liam0205.me/2015/09/12/primed-theorems/


$}%
\addtocounter{thm}{-1}%
\begin{thm}}
{\end{thm}}

\begin{document}
\begin{thm}
$1+1=2$
\end{thm}
\begin{thm}\label{comm}
$a+b=b+a$
\end{thm}
\begin{thmbis}{comm}
$x+y=y+x$
\end{thmbis}
\begin{thm}
$0\ne0$
\end{thm}
\end{document}[/code]

效果图如下:





选自:http://liam0205.me/2015/09/12/primed-theorems/


$}%
   \addtocounter{thm}{-1}%
   \begin{thm}}
  {\end{thm}}[/code]

这里,我们用 \renewcommand 修改了计数器 thm 的显示方式 \thethm:首先对原定理做引用,然后加上一个撇。随后,在 thm 的当前值上减 1。这是因为,在之后的 \begin{thm} 中会给 thm 计数器自加 1,这里作为「补偿」,需要预先减去 1。

完整的例子可见:

[        DISCUZ_CODE_5        ]

效果图如下:





选自:http://liam0205.me/2015/09/12/primed-theorems/


关键词:LaTeX Late atex LAT ATE

缺少币币的网友请访问有奖回帖集合
http://bbs.pinggu.org/thread-3990750-1-1.html
stata SPSS
seahhj 发表于 2015-11-2 11:40:24 |显示全部楼层
谢谢楼主分享
已有 1 人评分论坛币 收起 理由
oliyiyi + 10 沙发

总评分: 论坛币 + 10   查看全部评分

回复

使用道具 举报

rrjj101022 发表于 2015-11-2 21:38:13 |显示全部楼层
谢谢分享~~~
已有 1 人评分论坛币 收起 理由
oliyiyi + 5 藤椅

总评分: 论坛币 + 5   查看全部评分

回复

使用道具 举报

yuyike 发表于 2015-11-18 10:09:42 来自手机 |显示全部楼层
不错不错
已有 1 人评分论坛币 收起 理由
oliyiyi + 10 精彩帖子

总评分: 论坛币 + 10   查看全部评分

回复

使用道具 举报

soccy 发表于 2015-11-18 19:09:52 |显示全部楼层
......
回复

使用道具 举报

yuanjd0916 发表于 2015-11-19 13:21:18 |显示全部楼层
thanks very much......
已有 1 人评分论坛币 收起 理由
oliyiyi + 10 精彩帖子

总评分: 论坛币 + 10   查看全部评分

回复

使用道具 举报

lonestone 发表于 2015-11-19 13:28:54 |显示全部楼层
thanks for sharing
已有 1 人评分论坛币 收起 理由
oliyiyi + 20 精彩帖子

总评分: 论坛币 + 20   查看全部评分

回复

使用道具 举报

sex 发表于 2015-11-20 10:29:06 |显示全部楼层
回复

使用道具 举报

liydxjtu 发表于 2015-11-20 12:06:05 |显示全部楼层
我不太懂这个
已有 1 人评分论坛币 收起 理由
oliyiyi + 10 精彩帖子

总评分: 论坛币 + 10   查看全部评分

回复

使用道具 举报

liydxjtu 发表于 2015-11-20 12:06:36 |显示全部楼层
据说不太好用
已有 1 人评分论坛币 收起 理由
oliyiyi + 10 精彩帖子

总评分: 论坛币 + 10   查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要注册

GMT+8, 2018-11-19 01:01