제가 맡은 업무에서는 프로젝트당 수백 개의 실제 어셈블리를 전달합니다. 일반적으로 Nordsjøen의 해외 플랫폼에 각 어셈블리에는 해당 태그(및 항목 설명 및 일련 번호와 같은 기타 메타데이터도 포함)가 있습니다.
어셈블리의 일반적인 태그는 "42MV43523"일 수 있으며 고유하며 해양 플랫폼에 있는 장비의 "주소"로 간주됩니다.
그러나 프로젝트에 필요한 모든 기술 문서를 작성할 때 태그 참조가 필요한 페이지가 수백 페이지에 달하는 경우가 종종 있습니다(일부 목록을 참조하는 (1)이 아닌 전체 태그 포함). 문서의 형식이 동일한 경우가 많지만
- 이러한 태그를 여러 위치(항상 동일한 위치)에 자유 텍스트로 삽입하세요.
- 설명이 같은 줄에 나오는 테이블에 이 태그를 넣으세요. 예:
|42Mv43523|공급업체 이름|항목 설명|
|42Mv43558|공급업체 이름|항목 설명|
(...)
문제는 이러한 문서를 전체적으로 업데이트하는 것이 많은 시간을 소비하는 임시 작업이 된다는 것입니다(일주일에 10~20시간). 또한, 태그가 결정되지 않은 채 임시 승인을 위해 이러한 문서를 보내야 하는 경우가 꽤 많아 상황이 더욱 악화됩니다.
내가 바라는 것은 각 프로젝트에 대한 태그와 해당 메타데이터를 작성할 수 있고, 테이블과 자유 텍스트(자유 텍스트의 경우)로 문서 전체에서 태그와 메타데이터를 업데이트할 수 있는 하나 또는 두 개의 마스터 문서를 만드는 것입니다. 메타데이터는 필요하지 않습니다).
이것이 충분한 정보이기를 바랍니다. 이는 우리 회사와 노르웨이 석유 산업의 다른 많은 회사에 심각한 문제입니다.
답변1
패키지 를 사용 datatool
하거나 csname
여기에 표시된 대로 s를 사용할 수 있습니다.
MyTags.tex
아래 MWE에서 호출하는 확장 정보와 함께 몇 가지 매크로와 모든 태그를 포함하는 별도의 파일을 만듭니다 .\DefineTag{42Mv43523}{Supplier name 43523}{Item Description 43523} \DefineTag{42Mv43558}{Supplier name 43558}{Item Description 43558}
그런 다음
\input
이 파일은 다음과 같습니다.\input{MyTags.tex}
이 경우 태그 라벨만 표시됩니다.
\def\JustUseTag{} \input{MyTags.tex}
어떤 경우에는태그 이름,공급 업체 이름, 그리고항목 설명표시됩니다.
그런 다음 파일의 정보에 액세스하려면 다음을 사용하세요.
\UseTag{42Mv43523} \UseTag{42Mv43558}
그냥 출력은 다음과 \input{MyTags.tex}
같습니다
하지만 \def\JustUseTag{}
정의 와 함께~ 전에이다 \input{MyTags.tex}
:
노트:
- 패키지
filecontents
아래 MWE를 패키징하는 데 사용되었습니다. 실제 사용 사례에서는 필요하지 않습니다.
암호:
\documentclass{article}
\begin{filecontents*}{MyTags.tex}
\newcommand*{\DefineTag}[3]{%
% #1 = tag name
% #2 = supplier name
% #3 = item description
\global\expandafter\newcommand\csname#1TagOnly\endcsname{#1}%
\global\expandafter\newcommand\csname#1Expanded\endcsname{#1 #2 #3}%
}%
\newcommand{\UseTagOnly}[1]{\expandafter\csname#1TagOnly\endcsname}
\newcommand{\UseTagExpanded}[1]{\expandafter\csname#1Expanded\endcsname}
\ifdefined\JustUseTag
\newcommand{\UseTag}[1]{\UseTagOnly{#1}}
\else
\newcommand{\UseTag}[1]{\UseTagExpanded{#1}}
\fi
\DefineTag{42Mv43523}{Supplier name 43523}{Item Description 43523}
\DefineTag{42Mv43558}{Supplier name 43558}{Item Description 43558}
\end{filecontents*}
%\def\JustUseTag{}% <--- Un-comment to obtain the additional meta data associated with the tag
\input{MyTags.tex}
\begin{document}
\UseTag{42Mv43523}
\UseTag{42Mv43558}
\end{document}
답변2
귀하의 질문에서 (a) LaTeX에 얼마나 익숙한지, (b) 이 프로세스에 LaTeX를 사용해야 하는 이유가 명확하지 않습니다(데이터베이스 소프트웨어에 대한 작업처럼 들립니다). 어쨌든 매우 기본적인 LaTeX가 무엇을 할 수 있는지 이해하려면 아래를 참조하세요. 경험이 더 많은 다른 사용자는 문서가 훨씬 길어지고 태그가 쌓일 때 더 효율적인 코드를 제안할 수 있습니다. (그리고 Jubail에서 안녕하세요.)
\documentclass[a4paper]{article}
\begin{document}
\newcommand{\tagone}{42MV43523}
\newcommand{\tagtwo}{42MV43558}
The \tagone{} was signed for upon arrival, blah blah blah...
\begin{table}[h]
\begin{tabular}{lll}
\hline
Item & Supplier Name & Description\\
\hline
\tagone{} & Bob's House of Petrochemicals & vat of caustic stuff\\
\tagtwo{} & Bits-R-Us & earth-crust-penetrating drill bit\\
\hline
\end{tabular}
\end{table}
\end{document}