在我的论文中,我使用章节、节和小节。我喜欢根据节对方程式进行编号,但我希望显示的方程式编号不包括章节号。此外,在引用方程式时,我希望排除章节号,除非我从其他章节引用它们。
我该如何实现这一点?如果没有其他可能,可以使用两个命令\ref{}
,\gref{}
其中第一个命令省略章节编号。我也想对章节和定理的引用做同样的事情。目前我正在使用 komascrbook
类。
例子
I. Chapter 1
1. Section 1
a^2 + b^2 = c^2 (1.1)
as seen in (1.1)
II. Chapter 2
1. Section 1
an extension of (I.1.1) is
a^3 + b^3 = c^3 (1.1)
答案1
您可以使前缀以当前章节与参考中保存的章节不同为条件,例如
\documentclass{book}
\renewcommand\theequation{\maybe{\arabic{chapter}}\arabic{section}.\arabic{equation}}
\renewcommand\thechapter{\Roman{chapter}}
\DeclareRobustCommand\maybe[1]{\ifnum#1=\value{chapter}\relax\else\thechapter.\fi}
\usepackage{amsmath}
\begin{document}
\chapter{zz}
\section{lll}
\begin{equation}1=0\label{x}\end{equation}
\section{sss}
\begin{equation}1=-1\label{y}\end{equation}
[[[\ref{x}]]]
\chapter{YY}
[[[\ref{x}]]]
\end{document}
答案2
我认为这里有一个小错误。如果:
\DeclareRobustCommand\maybe[1]{\ifnum#1=\value{chapter}\relax\else\thechapter.\fi}
则显示当前章节,而不是引用的章节。我建议改用:
\DeclareRobustCommand\maybe[1]{\ifnum#1=\value{chapter}\relax\else\uppercase\expandafter{\romannumeral#1}.\fi}
并且它有效!