评论包:在部分标题内显示/隐藏评论

评论包:在部分标题内显示/隐藏评论

我几乎成了 LaTeX 的初学者。我希望使用注释包来指示共享论文每个部分的作者姓名(即负责撰写的人)。然后可以暂时将其显示在目录中。但在手册中:“打开和关闭命令再次出现在一行上。”显然我的代码不起作用,我不清楚如何解决它。有什么建议吗?非常感谢!迈克尔

\documentclass[10pt,letterpaper]{article}
\usepackage{comment}
\includecomment{sectionauthor}
\begin{document}
\section{First Section \sectionauthor Me \endsectionauthor }
\section{Second Section \sectionauthor You \endsectionauthor }
\end{document}

答案1

有一种方法可以做到这一点:命令\sectionauthor必须具有两个不同的含义,我们通过在排版目录时在组内更改其定义来实现它。

\documentclass{article}
\usepackage{etoolbox}

\newrobustcmd{\sectionauthor}[1]{%
  \unskip % remove the space before it
  \\ % go to a new line
  {\normalsize\normalfont #1}%
}
\newcommand{\titlesectionauthor}[1]{%
  {\normalfont (#1)}% section author in parentheses
}


\begin{document}

\begingroup % make the change to \sectionauthor local
\let\sectionauthor\titlesectionauthor
\tableofcontents
\endgroup

\section{First Section \sectionauthor{Me}}
\section{Second Section \sectionauthor{You}}
\end{document}

我使用\newrobustcmdfrom 是etoolbox因为它比标准更实用\DeclareRobustCommand。必须将其声明\sectionauthor为 robust,因为这将使 LaTeX 将其不加修改地写入.toc文件中,因此我们也可以使用它来赋予它新的含义。

我已经应用了一些格式说明,请对其进行修改以满足您的需要。

在此处输入图片描述


您可以对两种可能性实现“打开和关闭”:

\documentclass{article}
\usepackage{etoolbox}

% comment the following line if you don't want the author to show in the body
\newtoggle{sectionauthor}
% comment the following line if you don't want the author to show in the TOC
\newtoggle{tocsectionauthor}

\toggletrue{sectionauthor}
\toggletrue{tocsectionauthor}

\newrobustcmd{\sectionauthor}[1]{%
  \iftoggle{sectionauthor}
    {% what to do if the toggle is true
     \unskip % remove the space before it
     \\ % go to a new line
     {\normalsize\normalfont #1}%
    }
    {% what to do if the toggle is false
     \unskip % remove the space before it
    }%
}

\newcommand{\tocsectionauthor}[1]{%
  \iftoggle{tocsectionauthor}
    {% what to do if the toggle is true
     {\normalfont (#1)}% section author in parentheses
    }
    {% what to do if the toggle is false
     \unskip % remove the space before it
    }%
}


\begin{document}

\begingroup % make the change to \sectionauthor local
\let\sectionauthor\tocsectionauthor
\tableofcontents
\endgroup

\section{First Section \sectionauthor{Me}}
\section{Second Section \sectionauthor{You}}
\end{document}

不注释这两行(行前加一个就足够了)的输出%与上面相同。如果我们只注释第一行,我们会得到

在此处输入图片描述

如果我们只注释第二行,则会从目录中删除名称,但将其保留在正文中。注释掉两行,名称将完全消失。

相关内容