
라텍스로 작은 재무 보고서를 작성 중입니다... expenses
보고서 전체에서 , food
, hotels
등 꽤 자주 반복되는 내용이 여러 개 있습니다 train tickets
. 라벨을 만들어 놓으면 편리할 것 같습니다.
예를 들어 처음으로 을 작성할 때 파일 에서 해당 항목에 가까운 food
레이블을 작성할 수 있습니다 (예 : ). 을 쓸 때 옆에 씁니다 . 그런 다음 나중에 tex 파일과 같은 내용을 작성하면 pdf에 표시될 수 있습니다 . tex 파일에서 . 숫자 는 시스템에 의해 생성됩니다.food
tex
\labelexpenses{food}
hotels
\labelexpenses{hotels}
Expense~\refexpenses{food}
Expense 1
Expense~\refexpenses{hotels}
Expense 2
1
2
따라서 이는 \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}
결과를 다시 인쇄하는 데 사용할 수 있습니다 .
이것은 외부가 있든 없든 모두 작동합니다.하이퍼레프.