如何在“特殊”(困难、可选等)部分放置星号(或其他符号)?

如何在“特殊”(困难、可选等)部分放置星号(或其他符号)?

我目前正在写一本书,我希望某些章节能够清楚地标记为“困难”或“可选”。不仅是章节,还有练习(我正在使用exercise 包)和定理(我用newtheorem来自amsthm))。如果能适用于任意分段级别、环境等,那就太好了……

编辑:我想我还应该说——我想要一些像在边缘、靠近章节/定理/等等的地方加一个星号的东西,而且,如果它是一个章节或一个部分,那么在文本前面应该有一个星号目录:

1 Introduction
    1.1 blah
    2.3 blah
2 Some Chapter
    2.1 blah
  * 2.2 this is an optional section 
    2.3 blah blah

编辑:如果能放置星星(或者可配置的符号)就好了章节编号。

答案1

标题目录手册介绍了一种有趣的方法来实现您想要的功能。最好通过示例来说明。

\documentclass[11pt,a4paper,english]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[pagestyles,raggedright]{titlesec}
\usepackage{titletoc}
\usepackage{blindtext}

\title{A document with stuff for advanced or optional reading}
\author{Jay}

\newcommand{\secmark}{}
\newcommand{\marktotoc}[1]{\renewcommand{\secmark}{#1}}
\newenvironment{advanced}{
  \renewcommand{\secmark}{*}%
  \addtocontents{toc}{\protect\marktotoc{*}}
}
{\addtocontents{toc}{\protect\marktotoc{}}}

\titleformat{\section}{\normalfont\Large}{\makebox[1.5em][l]{\llap{\secmark}\thesection}}{0.4em}{}
\titlecontents{section}[3.7em]{}{\contentslabel[\llap{\secmark}\thecontentslabel]{2.3em}}{\hspace*{-2.3em}}{\titlerule*{}\bfseries\contentspage}

\newpagestyle{front}{%
  \headrule
  \sethead[\thepage][][\subsectiontitle]{\sectiontitle}{}{\thepage}
  \setfoot[][][]{}{}{}
}

\newpagestyle{main}{%
  \headrule
  \sethead[\thepage][][\thesubsection\quad\subsectiontitle]{\llap{\secmark}\thesection\quad\sectiontitle}{}{\thepage}
  \setfoot[][][]{}{}{}
}
\newpagestyle{back}{%
  \headrule
  \sethead[\thepage][][\subsectiontitle]{\sectiontitle}{}{\thepage}
  \setfoot[][][]{}{}{}
}


\begin{document}
  \frontmatter
  \pagestyle{front}
  \maketitle
  \tableofcontents\newpage

  \mainmatter
  \pagestyle{main}
  \blinddocument
  \begin{advanced}
    \blinddocument
  \end{advanced}
  \blinddocument

  \backmatter
  \appendix
  \pagestyle{back}
\end{document}

此示例从标记章节中的选定部分开始。对于标记的章节,需要进行相应的修改。

与往常一样,盲文该包仅用于创建虚拟文本,因此不是解决方案的一部分。

答案2

我对部分没有答案,但对环境有答案。它允许您标记您想要特别标记的环境。

\documentclass{article}
\usepackage{ifthen}
\usepackage{xargs}
\usepackage{lipsum}

\setlength{\parindent}{0mm}

\newcounter{problem}
\newcommand{\trickysymbol}{$\clubsuit$ }
\newlength{\trickysymbollength}
\settowidth{\trickysymbollength}{\trickysymbol}
\newenvironmentx{problem}[2][1={},2={},usedefault]{%
    \refstepcounter{problem}%
    \ifthenelse{\equal{#2}{}}%
    {%
        % if no second argument
        \ifthenelse{\equal{#1}{}}%
        {% 
            \textbf{Problem \theproblem }\par%
        }%
        {%
            \textbf{Problem \theproblem \, (#1) }\par%
        }%
    }%
    {%
        % tricky problems
        \ifthenelse{\equal{#2}{tricky}}%
        {%
            \ifthenelse{\equal{#1}{}}%
            {% 
                \hspace{-\trickysymbollength}\trickysymbol\textbf{Problem \theproblem }\par%
            }%
            {%
                \hspace{-\trickysymbollength}\trickysymbol\textbf{Problem \theproblem \, (#1) }\par%
            }%
        }{ \textbf{Problem} \theproblem \, (#1) {\bf\huge\color{red}tricky?}\par}%
    }%
    \ignorespaces%
}%
{%
    \par\noindent\ignorespacesafterend
}%

\begin{document}


\begin{problem}[description goes here]
\lipsum[1]
\end{problem}

\begin{problem}[description goes here][tricky]
\lipsum[1]
\end{problem}

\begin{problem}[][tricky]
\lipsum[1]
\end{problem}

\end{document}

答案3

我不会在部分中使用符号,我会定义一个命令。

例子:

\documentclass[11pt]{scrartcl}
%\Section with capital S for important sections
\newcommand{\Section}[1]{\section[! #1]{(Important) #1}}
%\newcommand{\Section}[1]{\section[#1\hfill!]{(Important) #1}}

\begin{document}
\tableofcontents
\section{First section}
\Section{Second section}

Your text goes here.

\end{document}

您可以使用 ImportantSection 或 OptionalSection...而不是 Section ...这样您就可以得到清晰的标记。

修改后的示例带有可选参数:

\documentclass[11pt]{scrartcl}
\usepackage{color}
\definecolor{optionalgray}{gray}{.75}

\makeatletter
\newcommand\@ImportantSection[2][]{
  %Define the look of Important sections
  \section[#1 (!)]{(*) #2}
  %\section[#1 (!)]{\textcolor{red}{#2}}
}
\newcommand\ImportantSection{\@dblarg\@ImportantSection}

\newcommand\@OptionalSection[2][]{
  %Define the look of Optional sections
  \section[#1 (!)]{(#2)}
  %\section[#1 (!)]{\textcolor{optionalgray}{#2}}
}
\newcommand\OptionalSection{\@dblarg\@OptionalSection}
\makeatother


\begin{document}
\tableofcontents
\section{First section}
\ImportantSection{Second section}


\ImportantSection[3rd]{Third section}

\OptionalSection[4th]{Fourth section}

\end{document}

答案4

至于在目录中添加星号,这可能会有所帮助(只要它是编号的,在这种情况下数字部分的 with 是\@tempdima

\documentclass[a4paper]{article}
\usepackage{etoolbox}
\newtoggle{activestar}
\makeatletter
\DeclareRobustCommand\mystar{%
  \iftoggle{activestar}{%
    \llap{$*$\kern0.2em\kern\@tempdima}%
  }{}%
  \ignorespaces
}
\makeatother
\begin{document}
\toggletrue{activestar}
\tableofcontents
\togglefalse{activestar}

\section{\mystar{}Test}
\section{Test}
\end{document}

当然,建议定义一个\specialsection或类似的东西,正如其他人提到的。

至于文中的标记,如果作者使用边注来指出这是特殊的,可能会对读者更有帮助。

相关内容