문서 전체에서 단어 업데이트

문서 전체에서 단어 업데이트

제가 맡은 업무에서는 프로젝트당 수백 개의 실제 어셈블리를 전달합니다. 일반적으로 Nordsjøen의 해외 플랫폼에 각 어셈블리에는 해당 태그(및 항목 설명 및 일련 번호와 같은 기타 메타데이터도 포함)가 있습니다.

어셈블리의 일반적인 태그는 "42MV43523"일 수 있으며 고유하며 해양 플랫폼에 있는 장비의 "주소"로 간주됩니다.

그러나 프로젝트에 필요한 모든 기술 문서를 작성할 때 태그 참조가 필요한 페이지가 수백 페이지에 달하는 경우가 종종 있습니다(일부 목록을 참조하는 (1)이 아닌 전체 태그 포함). 문서의 형식이 동일한 경우가 많지만

  1. 이러한 태그를 여러 위치(항상 동일한 위치)에 자유 텍스트로 삽입하세요.
  2. 설명이 같은 줄에 나오는 테이블에 이 태그를 넣으세요. 예:

|42Mv43523|공급업체 이름|항목 설명|

|42Mv43558|공급업체 이름|항목 설명|

(...)

문제는 이러한 문서를 전체적으로 업데이트하는 것이 많은 시간을 소비하는 임시 작업이 된다는 것입니다(일주일에 10~20시간). 또한, 태그가 결정되지 않은 채 임시 승인을 위해 이러한 문서를 보내야 하는 경우가 꽤 많아 상황이 더욱 악화됩니다.

내가 바라는 것은 각 프로젝트에 대한 태그와 해당 메타데이터를 작성할 수 있고, 테이블과 자유 텍스트(자유 텍스트의 경우)로 문서 전체에서 태그와 메타데이터를 업데이트할 수 있는 하나 또는 두 개의 마스터 문서를 만드는 것입니다. 메타데이터는 필요하지 않습니다).

이것이 충분한 정보이기를 바랍니다. 이는 우리 회사와 노르웨이 석유 산업의 다른 많은 회사에 심각한 문제입니다.

답변1

패키지 를 사용 datatool하거나 csname여기에 표시된 대로 s를 사용할 수 있습니다.

  1. MyTags.tex아래 MWE에서 호출하는 확장 정보와 함께 몇 가지 매크로와 모든 태그를 포함하는 별도의 파일을 만듭니다 .

    \DefineTag{42Mv43523}{Supplier name 43523}{Item Description 43523}
    \DefineTag{42Mv43558}{Supplier name 43558}{Item Description 43558}
    
  2. 그런 다음 \input이 파일은 다음과 같습니다.

    \input{MyTags.tex}
    

    이 경우 태그 라벨만 표시됩니다.

    \def\JustUseTag{}
    \input{MyTags.tex}
    

    어떤 경우에는태그 이름,공급 업체 이름, 그리고항목 설명표시됩니다.

  3. 그런 다음 파일의 정보에 액세스하려면 다음을 사용하세요.

    \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}

관련 정보