我对 LaTeX 还不太熟悉,我正在寻找一种特定的样式:我想按章节对我的定理/命题/推论/定义进行编号。例如,对于第一节中的结果,定义 1.1、定理 1.2、推论 1.3、定理 1.4 等。但是,我想$\S$
在章节标题中使用符号,例如:
但这意味着我得到了包含以下$\S$
符号的定理和命题:
这显然看起来很糟糕。有人能告诉我如何才能得到我想要的东西吗?提前谢谢
答案1
加载包titlesec
并将此行添加到您的序言中:
\titleformat{\section}{\normalfont\Large\bfseries}{\S\thesection}{1em}{}[]
梅威瑟:
\documentclass{article}
\usepackage{titlesec}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{defn}[theorem]{Definition}
\titleformat{\section}{\normalfont\Large\bfseries}{\S\thesection}{1em}{}[]
\begin{document}
\section{A section}
\begin{defn}
definition
\end{defn}
\begin{proposition}
proposition
\end{proposition}
\begin{theorem}
theorem
\end{theorem}
\end{document}
输出
答案2
如果你希望\S
在其他地方(如交叉引用)将 用作节号的特征,那么你可以先定义\thesection
包含一个\S
符号,然后定义\thetheorem
,ETC。将此符号作为创建定理数的一部分删除。
前言。
考虑以下最小序言:
\documentclass{article}
\usepackage{amsthm}
\renewcommand\thesection{\S\arabic{section}}
\theoremstyle{plain}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{proposition}[theorem]{Proposition}
\theoremstyle{definition}
\newtheorem{definition}[theorem]{Definition}
\makeatletter
\newcommand\setTheoremCounterStyle[1]{%
\expandafter\renewcommand\csname the#1\endcsname{%
\expandafter\@gobble\thesection.\arabic{#1}}}
\makeatother
\setTheoremCounterStyle{theorem}
\setTheoremCounterStyle{proposition}
\setTheoremCounterStyle{definition}
前几个命令相当标准。宏\setTheoremCounterStyle
接受一个由定理类环境组成的参数(尽管任何计数器名称都可以),并定义由其组成的thmenv
命令— 去掉它的第一个符号(在本例中为) — 后面跟着一个点和。\thethmenv
\thesection
\S
\arabic{thmenv}
示例代码。
使用该序言的示例文档:
\begin{document}
\section{A section}
\label{sec:foo}
This is Section~\ref{sec:foo}.
\begin{definition} A definition. \end{definition}
\begin{proposition} A proposition. \end{proposition}
\begin{theorem} A theorem. \end{theorem}
\end{document}
输出。
答案3
产生与以下结果相同的结果的选项卡尔科勒的答案,但不使用titlesec
:
\documentclass{article}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{defn}[theorem]{Definition}
\makeatletter
\newcommand\addmark@section{\S}
\renewcommand*\@seccntformat[1]{%
\csname addmark@#1\endcsname
\csname the#1\endcsname\quad
}
\makeatother
\begin{document}
\section{A section}
\begin{defn}
definition
\end{defn}
\begin{proposition}
proposition
\end{proposition}
\begin{theorem}
theorem
\end{theorem}
\end{document}
上述重新定义\@seccntformat
只会添加\S
到部分;如果你想将符号添加到所有部分单元,则重新定义将是
\makeatletter
\renewcommand*\@seccntformat[1]{%
\S\csname the#1\endcsname\quad
}
\makeatother