곱셈은 ​​의도적으로 라벨을 정의합니다

곱셈은 ​​의도적으로 라벨을 정의합니다

저는 스타일 시작 부분에 상호 참조 섹션이 필요한 문서를 작업 중입니다.

  1. 1.1, 1.2, 1.3항에서 발견된 증거 1
  2. 1.2, 2.3, 3.4항에서 발견된 증거 2

\label문서 형식이 잘 지정되어 있으며 및 를 사용하여 원하는 대로 정확하게 개별 단락을 참조할 수 있습니다 \ref.

그러나 호출될 때 마지막 레이블뿐만 아니라 모든 레이블 목록을 인쇄하도록 레이블을 여러 번 정의할 수 있기를 원합니다 \ref(현재 수행됨).

이를 위해 인덱스를 사용해 보았지만 사용자 정의 출력은 물론이고 단순한 형식으로 작동하도록 할 수 없는 것 같습니다.

\label어쨌든 여러 번 정의할 수 있습니까 ?

답변1

여기에 이미지 설명을 입력하세요

\documentclass{article}

\makeatletter
\def\@newl@bel#1#2#3{{%
  \@ifundefined{#1@#2}%
    {\def\tmp{#3}}%
    {%
\edef\tmp{%
  {\expandafter\expandafter\expandafter\@firstoftwo\csname#1@#2\endcsname,
   \@firstoftwo#3}%
  {\expandafter\expandafter\expandafter\@secondoftwo\csname#1@#2\endcsname,
   \@secondoftwo#3}%
}}%
    \expandafter\xdef\csname#1@#2\endcsname{\tmp}%
}}

\def\@testdef #1#2#3{}
\makeatother

\begin{document}


good stuff in section(s) \ref{a}

bad stuff in section(s) \ref{b}

\section{zz}\label{a}
zz
\section{zzz}\label{a}
zzz
\section{zzzz}\label{a}
zzzz
\section{aaa}\label{b}
aaa
\section{zzzzz}\label{a}
zzzzz

\end{document}

답변2

반드시 다중 라벨을 허용할 필요는 없습니다. @DavidCarlisle 멋진 저수준 해킹 외에도 \eref{<evidence no>}{<label>}내부 생성 목록을 반복하는 이 솔루션(본질적으로 호출되는 사용자 정의 상호 참조 매크로)을 제공합니다.

\documentclass{article}
\usepackage{etoolbox}
\usepackage{lipsum}

\makeatletter
\newcounter{para}
\renewcommand{\thepara}{\thesection.\@arabic\c@para}
\let\svd@paragraph=\paragraph
\renewcommand{\paragraph}{\refstepcounter{para} \svd@paragraph}

\newcommand{\eref}[2]{%
  \ifcsundef{evlist#1}{\@namedef{evlist#1}{}}{}
  \def\process{\def\process{,}}%
  \def\do##1{\process\ref{##1}}%
  \expandafter\listadd\csname evlist#1\endcsname{#2}%
  Evidence #1 found at paragraph
  \expandafter\dolistloop\csname evlist#1\endcsname}
\makeatother

\begin{document}
\section{First Section}
\paragraph{One}\label{para:1}
\lipsum[1]
  \eref{1}{para:1}
\paragraph{Two}\label{para:2}
\lipsum[2]
  \eref{1}{para:2}
\paragraph{Three}\label{para:3}
\lipsum[3]
  \eref{2}{para:3}
\end{document}

\paragraph( 문서 구조에서 사용하지 않는 경우 6-9행을 사용하지 마십시오 .)

관련 정보