简化标签处理

简化标签处理

我想简化文档中标签的处理,并且如果定义了“变量”,我想显示某个部分的标签。

目前我正在这样做

设置“变量”:

\usepackage{etoolbox}
\newtoggle{DEBUG}
\toggletrue{DEBUG}
%\togglefalse{DEBUG}

然后我像这样使用它:

\label{sec:NAT}
\iftoggle{DEBUG}{
    \subsubsection{Network Address Translation (NAT) [sec:NAT]}
}{
    \subsubsection{Network Address Translation (NAT)}
}

有没有更好的方法?现在我仍然需要记住在两个地方设置相同的标签。有没有可以实现这一点的库?

我认为最好的情况是如果有一个库可以让我写

\subsection{Section nam}{sec:NAT}

然后根据某些设置它会正确输出并设置标签!

答案1

解决这个问题的正确方法是使用专门为此目的编写的包:showlabels

\documentclass{article}

\usepackage{showlabels}

\begin{document}

\section{Introduction}\label{sec:intro}

Blah

\section{Start}\label{sec:start}

Blah

\subsection{Ready}\label{subsec:ready}

Blah

\subsection{Set}\label{subsec:set}

Blah

\subsection{Go}\label{subsec:go}

Blah

\end{document}

在此处输入图片描述

只要注释掉该\usepackage{showlabels}行,标签就不会再显示。

答案2

您可以定义一个包装命令

\newcommand{\subsubsectionwithlabel}[2]{
    \iftoggle{DEBUG}{
        \subsubsection{#1 [#2]\label{#2}}
    }{
        \subsubsection{#1\label{#2}}
    }
}

并使用它来代替\subsubsection

\subsubsectionwithlabel{Network Address Translation (NAT)}{sec:NAT}

相关内容