No meu trabalho, entregamos centenas de montagens físicas por projeto - normalmente para plataformas offshore em Nordsjøen - cada uma tem uma etiqueta correspondente (e também outros metadados, como descrição do item e número de série).
Uma etiqueta típica para uma montagem pode ser “42MV43523” e é única e considerada o “endereço” do equipamento em uma plataforma offshore.
Porém, ao escrever toda a documentação técnica necessária para o projeto, muitas vezes acabo com centenas de páginas onde preciso de referências de tags (com a tag completa, e não um (1) referente a alguma lista). Embora os documentos muitas vezes sejam formatados da mesma forma, preciso
- Coloque essas tags em texto livre em vários lugares (sempre nos mesmos lugares)
- Coloque essas tags em tabelas onde as descrições vêm na mesma linha, por exemplo
|42Mv43523|Nome do fornecedor|Descrição do item|
|42Mv43558|Nome do fornecedor|Descrição do item|
(...)
O problema é que atualizar esses documentos torna-se um trabalho ad hoc pesado que ocupa muito do meu tempo (entre 10 a 20 horas por semana). Além disso, muitas vezes preciso enviar esses documentos para aprovação temporária sem que a etiqueta seja decidida, o que torna tudo ainda pior.
O que espero é criar um ou dois documentos mestre onde eu possa escrever as tags e os metadados correspondentes para cada projeto, e onde as tags e os metadados possam ser atualizados ao longo do documento tanto em tabelas quanto em texto livre (para texto livre, metadados não são necessários).
Espero que esta seja informação suficiente. Este é um problema substancial para a nossa empresa e para muitas outras na indústria petrolífera norueguesa.
Responder1
Você pode usar o datatool
pacakge ou usar csname
s como mostrado aqui:
Crie um arquivo separado que contenha algumas macros e todas as suas tags junto com as informações estendidas, que chamo
MyTags.tex
no MWE abaixo:\DefineTag{42Mv43523}{Supplier name 43523}{Item Description 43523} \DefineTag{42Mv43558}{Supplier name 43558}{Item Description 43558}
Então
\input
este arquivo como:\input{MyTags.tex}
nesse caso, apenas o rótulo da tag é exibido, ou como
\def\JustUseTag{} \input{MyTags.tex}
nesse caso onome da etiqueta,Nome do Fornecedor, edescrição do itemé exibido.
Então, para acessar as informações do seu arquivo você usa:
\UseTag{42Mv43523} \UseTag{42Mv43558}
A saída com apenas \input{MyTags.tex}
é:
mas com o \def\JustUseTag{}
justoanteso \input{MyTags.tex}
é:
Notas:
- O
filecontents
pacotefoi usado apenas para poder empacotar o MWE abaixo. Não é necessário no seu caso de uso real.
Código:
\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}
Responder2
Não está claro na sua pergunta (a) quão familiarizado você está com o LaTeX e (b) por que o LaTeX deve ser usado para esse processo (parece um trabalho para software de banco de dados). De qualquer forma, para lhe dar uma ideia do que o LaTeX elementar é capaz, veja abaixo. Outros usuários mais experientes podem sugerir um código mais eficiente para quando o documento ficar muito mais longo e as tags se acumularem. (E olá de 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}