用語集 - 選択した頭字語の初回使用時に略語を非表示にする

用語集 - 選択した頭字語の初回使用時に略語を非表示にする

これは私の最初の投稿なので、慣例に違反していたらごめんなさい。博士論文を LaTeX で書くことにしたのですが、頭字語や用語集を希望どおりにフォーマットするのに苦労しています。私はパッケージを使用しておりglossaries、2 つの異なる使用例で使用したいと考えています。そのうちの 1 つ (標準的な使用) はうまく機能しています。

この問題は、たとえば化学物質を参照するときに、用語集を使用して製造元/会社を扱うことに関係しています。通常、化学物質を最初にリストするときは、「化学物質 X (会社 Y、米国サムタウン)」のように参照する必要があります。1 つの会社の複数の製品を使用する場合、その会社へのその後の参照では、場所を必要とせずに会社名のみを記載できます。これらの会社の参照は、頭字語のリストに表示されるべきではありません。

このサイトの以前の回答の助けを借りて、印刷されない新しい「偽の」用語集を定義して、頭字語のリストから会社名を抑制することができました。使用してみました\newignoredglossaryが、これもテキスト内の頭字語を隠しているようでした。理由はわかりませんが、偽の用語集の解決策に満足しています。

ただし、これらの会社の頭字語を最初に使用すると、\gls{}たとえば「Company、Sometown、USA (Company)」のように表示されます。最後に括弧内に会社名が繰り返されることなく、これを表示したいと思います。

私は以下を使用できることに気づきました:

\glsdesc{company} 

に続く

\glsunset{company} \gls{company} 

私が求めている効果を正確に達成するには、各企業名の最初の使用箇所を手動で見つけてタグ付けする必要があり\glsdesc{}\glsunset{}論文の執筆中に段落の順序が変わる可能性があることを考慮すると、これは自動的に処理される方がはるかに望ましいです。

以下に最小限の動作例を示します。

\documentclass{article}

\usepackage[acronym]{glossaries}

\newglossary[flg]{fake}{fls}{flo}{Fake Entries}

\newacronym[type=fake]{bio}{Biohazard Inc}{Biohazard Inc, MA, USA}
\newacronym{pbs}{PBS}{Phosphate Buffered Saline}

\makeglossaries

\begin{document}

First use - \gls{bio}. Second use - \gls{bio}. Not displayed in glossary, but first use repeats company name in parentheses. 

\gls{pbs} should appear in the glossary. Second use \gls{pbs}.

\printglossary[type=\acronymtype]

\end{document}

でこれを実現する簡単な方法はありますかglossaries?ではglossaries-extraこれをよりうまく処理できるのではないかと考えたのですが、ドキュメントが 100% 明確ではなく、変換しようとすると、すでに複雑な複数ファイルのドキュメント内の現在一般的に効果的な頭字語リストが壊れ、必ずしも問題が解決されないのではないかと心配しています。

答え1

別のアプローチは次のとおりです。

\documentclass{article}

\usepackage[acronym]{glossaries}

\newignoredglossary{ignored}

% syntax: \newcompany[extra options]{label}{name}{location}
\newcommand*{\newcompany}[4][]{%
 \newglossaryentry{#2}{type=ignored,%
  name={#3},%
  first={#3 (#4)},%
  description={#4},%
  #1}%
}

\glssetnoexpandfield{first}

% syntax: \newchemical[extra options]{company}{label}{short}{long}
\newcommand{\newchemical}[5][]{%
 \newglossaryentry{#3}{type=\acronymtype,%
  name={#4},%
  first={#5 (\ifglsused{#2}{\glsentryname{#2}}{\glsentryname{#2},
    \glsentrydesc{#2}\protect\glsunset{#2}})},%
  description={#5},%
  #1}%
}

\makeglossaries

\newcompany{bio}{Biohazard Inc}{MA, USA}
\newchemical{bio}{pbs}{PBS}{Phosphate Buffered Saline}

\begin{document}

First use - \gls{bio}. Second use - \gls{bio}.

\gls{pbs} should appear in the glossary. Second use \gls{pbs}.

Reset\glsresetall[ignored,\acronymtype] and try the other way.

\gls{pbs} should appear in the glossary. Second use \gls{pbs}.

First use - \gls{bio}. Second use - \gls{bio}.

\printglossary[type=\acronymtype]

\end{document}

これにより、次のものが生成されます。

文書の画像

答え2

各会社の頭字語が定義されているときにオプションを使用するfirst=と、まさに私が求めている結果が得られます。

\newacronym[type=fake, first=\glsdesc{bio}]{bio}{Biohazard Inc}{Biohazard Inc, MA, USA}

用語集パッケージは素晴らしいのですが、機能が詰め込まれすぎていて、私のような初心者にとってはすべてのオプションを理解するのは難しいかもしれません。

関連情報