내 물건에 라벨을 붙이세요

내 물건에 라벨을 붙이세요

라텍스로 작은 재무 보고서를 작성 중입니다... expenses보고서 전체에서 , food, hotels등 꽤 자주 반복되는 내용이 여러 개 있습니다 train tickets. 라벨을 만들어 놓으면 편리할 것 같습니다.

예를 들어 처음으로 을 작성할 때 파일 에서 해당 항목에 가까운 food레이블을 작성할 수 있습니다 (예 : ). 을 쓸 때 옆에 씁니다 . 그런 다음 나중에 tex 파일과 같은 내용을 작성하면 pdf에 표시될 수 있습니다 . tex 파일에서 . 숫자 는 시스템에 의해 생성됩니다.foodtex\labelexpenses{food}hotels\labelexpenses{hotels}Expense~\refexpenses{food}Expense 1Expense~\refexpenses{hotels}Expense 212

따라서 이는 \label{...}및 와 매우 유사 \ref{...}하지만 내가 직접 정의할 수 있는 것으로 예약되어 있으며 숫자는 시스템에 의해 자동으로 생성됩니다.

이것을 깨닫는 방법을 아는 사람이 있습니까?

답변1

나는 당신이 다음과 같은 것을 의미한다고 생각합니다 :

\documentclass{article}
\usepackage{hyperref}
\newcounter{refexp}
\setcounter{refexp}{0}

\newcommand{\labelexpenses}[1]{%
  \phantomsection
  \refstepcounter{refexp}%
  \label{#1}%
}

\newcommand{\refexpenses}[1]{%
  \ref{#1}%
}


\begin{document}

For instance, the first time I write food, I can write a label food
close to it in the tex file (for example
\verb|\labelexpenses{food}|\labelexpenses{food}); when I write hotels,
I write \verb|\labelexpenses{hotels}|\labelexpenses{hotels} next to it. 

Then later, by writing something like Expense~\refexpenses{food} in the 
tex file, it could show in the pdf Expense 1; Expense~\refexpenses{hotels} 
in the tex file generates Expense 2. The numbers 1 and 2 are generated by 
the system.

\end{document}

답변2

유사하지만 또 다른 옵션은 다음과 같습니다.

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

\documentclass{article}

\usepackage{booktabs}

\newcounter{expensecntr}
\renewcommand{\theexpensecntr}{(\arabic{expensecntr})}
\newcommand{\labelexpense}[1]{%
  \refstepcounter{expensecntr}%
  \label{expense:#1}%
  #1~\theexpensecntr}
\newcommand{\refexpense}[1]{\ref{expense:#1}}

\begin{document}

\begin{tabular}{lr}
  \toprule
  \textbf{Expense} & \textbf{Total} \\
  \midrule
  \labelexpense{Food}  & abc \\
  \labelexpense{Hotel} & def \\
  \labelexpense{Gas}   & ghi \\
  \bottomrule
\end{tabular}

Expense~\refexpense{Hotel} is really expensive.

\end{document}

답변3

이것이 내가 과거에 이런 일을 했던 방법입니다:

\documentclass{article}
\usepackage{etoolbox}
\usepackage{hyperref}

\makeatletter
% save text as a \ref-erencable reference in the auxfile
% usage: \labelledText{label}{text}  --> \ref{label} recalls it
\newrobustcmd{\labelledText}[2]{#2\edef\@currentlabel{#2}\label{#1}}
\makeatother

\begin{document}

    Here is something that I want to refer to later
    \labelledText{later}{101}

    And here I go using \ref{later} again.

    \newcounter{test}

    Saving test to none: \labelledText{none}{\thetest}.

    \addtocounter{test}5

    Saving test to five: \labelledText{five}{\thetest}.

    Using the saved values of none=\ref{none} and five=\ref{five}.

\end{document}

출력은 다음과 같습니다.

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

\labelledText{mylabel}{some text}그래서 인쇄 some text하고 라벨을 할당하는 데 사용합니다 mylabel. 나중에 \ref{mylabel}결과를 다시 인쇄하는 데 사용할 수 있습니다 .

이것은 외부가 있든 없든 모두 작동합니다.하이퍼레프.

관련 정보