略語の単一リスト(頭字語リスト + biblatex 速記リスト)

略語の単一リスト(頭字語リスト + biblatex 速記リスト)

私の論文には、2 つの略語リストがあります。1) 特定の表現の頭字語glossaries package(例: APR = 年間パーセンテージ レート)、2) biblatex package.bib ファイル内の省略形を使用した法的文書の略語 (例: 消費者保護法 = CPA) です。

想定どおり、表現を入力すると\printbiblist{shorthand}\printglossary[type=\acronymtype,style=long]略語のリストが 2 つ表示されます。

しかし、私は単一の(統合された)ものを望んでいます。 2 つの異なるパッケージを使用することを考慮して、それを行うことは可能ですか?

答え1

2 つの非常に異なるパッケージを連携させて、共有リストを印刷することはできないと思います。

しかし、 を使って全体を偽装することができます。と型biblatexを実装します。 機能は の非常に限定された模倣です。@acronym@glossaryglossaries' 機能セット。このアイデアは確かにかなり改善できるはずなので、これは概念実証として見るべきです。

新しいデータモデルが必要です(BibLaTeX/Biber を使用してまったく新しいデータ型を作成するにはどうすればよいですか?

\ProvidesFile{fakeglossaries.dbx}[2016/02/24\space fake basic functionalities of the glossaries package using biblatex]
\DeclareDatamodelEntrytypes{glossary}
\DeclareDatamodelEntrytypes{acronym}
\DeclareDatamodelFields[type=field,datatype=literal]{
  name,
  plural,
  description,
  short,
  shortplural,
  long,
  longplural,
}

\DeclareDatamodelEntryfields[glossary]{
  name,
  plural,
  description,
}
\DeclareDatamodelEntryfields[acronym]{
  short,
  shortplural,
  long,
  longplural,
}

次に、新しい型が正しく処理されていることを確認する必要があります。

\ExecuteBibliographyOptions[glossary,acronym]{skipbib=true}

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \pertype{acronym}
      \step[fieldsource=short]
      \step[fieldset=shorthand, origfieldval]
    }
    \map{
      \pertype{glossary}
      \step[fieldsource=name]
      \step[fieldset=shorthand, origfieldval]
    }
  }
}

これらは参考文献には表示されませんが、 が付与されるshorthandため、 のリストに追加されますshorthand

出力は次のように制御されます

\DeclareFieldFormat[glossary]{name}{\ifcapital{\MakeCapital{#1}}{#1}}
\DeclareFieldFormat[glossary]{plural}{\ifcapital{\MakeCapital{#1}}{#1}}
\DeclareFieldFormat[glossary]{description}{\ifcapital{\MakeCapital{#1}}{#1}}

\DeclareFieldFormat[acronym]{short}{\mkbibacro{#1}}
\DeclareFieldFormat[acronym]{long}{\ifcapital{\MakeCapital{#1}}{#1}}
\DeclareFieldFormat[acronym]{longplural}{\ifcapital{\MakeCapital{#1}}{#1}}

\DeclareBibliographyDriver{acronym}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \printfield{long}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\DeclareBibliographyDriver{glossary}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \printfield{description}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\newbibmacro{fakegls}{%
  \ifentrytype{glossary}
    {\printfield{name}}
    {\ifentrytype{acronym}
       {\ifciteseen
          {\printfield{short}}
          {\printfield{long}}}}}

\newbibmacro{fakeglspl}{%
  \ifentrytype{glossary}
    {\iffieldundef{plural}
       {\printfield{name}s}
       {\printfield{plural}}}
    {\ifentrytype{acronym}
       {\ifciteseen
          {\iffieldundef{shortplural}
             {\printfield{short}s}
             {\printfield{shortplural}}}
          {\iffieldundef{longplural}
            {\printfield{long}s}
            {\printfield{longplural}}}}}}

そして最後にトップレベルのコマンドが実装される

\DeclareCiteCommand{\fakegls}
  {\usebibmacro{prenote}}
  {\usebibmacro{fakegls}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand{\fakeglspl}
  {\usebibmacro{prenote}}
  {\usebibmacro{fakeglspl}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\newrobustcmd*{\Fakegls}{\bibsentence\fakegls}
\newrobustcmd*{\Fakeglspl}{\bibsentence\fakeglspl}

ムウェ

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage{filecontents}

\begin{filecontents}{fakeglossaries.dbx}
\ProvidesFile{fakeglossaries.dbx}[2016/02/24\space fake basic functionalities of the glossaries package using biblatex]
\DeclareDatamodelEntrytypes{glossary}
\DeclareDatamodelEntrytypes{acronym}
\DeclareDatamodelFields[type=field,datatype=literal]{
  name,
  plural,
  description,
  short,
  shortplural,
  long,
  longplural,
}

\DeclareDatamodelEntryfields[glossary]{
  name,
  plural,
  description,
}
\DeclareDatamodelEntryfields[acronym]{
  short,
  shortplural,
  long,
  longplural,
}
\end{filecontents}

\usepackage[style=authoryear,backend=biber,citetracker,datamodel=fakeglossaries]{biblatex}

\begin{filecontents}{\jobname.bib}
@glossary{potato,
  name        = {potato},
  plural      = {potatoes},
  description = {starchy tuber},
}
@glossary{cauliflower,
  name        = {cauliflower},
  description = {Cabbage with a College Education},
}
@acronym{dm,
  short      = {DM},
  long       = {diagonal matrix},
  longplural = {diagonal matrices},
}
@acronym{lkw,
  short      = {LKW},
  shortplural= {LKW},
  long       = {Lastkraftwagen},
  longplural = {Lastkraftwagen},
}
\end{filecontents}
\addbibresource{biblatex-examples.bib}
\addbibresource{\jobname.bib}

\ExecuteBibliographyOptions[glossary,acronym]{skipbib=true}

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \pertype{acronym}
      \step[fieldsource=short]
      \step[fieldset=shorthand, origfieldval]
    }
    \map{
      \pertype{glossary}
      \step[fieldsource=name]
      \step[fieldset=shorthand, origfieldval]
    }
  }
}

\DeclareFieldFormat[glossary]{name}{\ifcapital{\MakeCapital{#1}}{#1}}
\DeclareFieldFormat[glossary]{plural}{\ifcapital{\MakeCapital{#1}}{#1}}
\DeclareFieldFormat[glossary]{description}{\ifcapital{\MakeCapital{#1}}{#1}}

\DeclareFieldFormat[acronym]{short}{\mkbibacro{#1}}
\DeclareFieldFormat[acronym]{long}{\ifcapital{\MakeCapital{#1}}{#1}}
\DeclareFieldFormat[acronym]{longplural}{\ifcapital{\MakeCapital{#1}}{#1}}

\DeclareBibliographyDriver{acronym}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \printfield{long}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\DeclareBibliographyDriver{glossary}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \printfield{description}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\newbibmacro{fakegls}{%
  \ifentrytype{glossary}
    {\printfield{name}}
    {\ifentrytype{acronym}
       {\ifciteseen
          {\printfield{short}}
          {\printfield{long}}}}}

\newbibmacro{fakeglspl}{%
  \ifentrytype{glossary}
    {\iffieldundef{plural}
       {\printfield{name}s}
       {\printfield{plural}}}
    {\ifentrytype{acronym}
       {\ifciteseen
          {\iffieldundef{shortplural}
             {\printfield{short}s}
             {\printfield{shortplural}}}
          {\iffieldundef{longplural}
            {\printfield{long}s}
            {\printfield{longplural}}}}}}


\DeclareCiteCommand{\fakegls}
  {\usebibmacro{prenote}}
  {\usebibmacro{fakegls}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand{\fakeglspl}
  {\usebibmacro{prenote}}
  {\usebibmacro{fakeglspl}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\newrobustcmd*{\Fakegls}{\bibsentence\fakegls}
\newrobustcmd*{\Fakeglspl}{\bibsentence\fakeglspl}

\begin{document}
Lorem\footcite{sigfridsson,kant:kpv} ipsum

\Fakegls{potato}, \fakegls{dm}, \fakegls{dm}, \fakegls{lkw}, \fakegls{lkw}

\citereset \Fakeglspl{potato}, \fakeglspl{dm}, \fakeglspl{dm}, \fakeglspl{lkw}, \fakeglspl{lkw}

\printbiblist{shorthand}
\printbibliography
\end{document}

出力例

関連情報