How to produce two glossaries from one dictionary or source file?

Sure! That’s not too complicated. You can simply have a list of terms in long and iterate over them to create the second list. Then make sure you actually pass a content in long to glossarium.

#import "@preview/glossarium:0.5.6": *

#let list-a = (
  (
    key: "Foo",
    long: ("Lorem", "Ipsum"),
    description: [Comment A]
  ),
  (
    key: "Bar",
    long: ("Dolor",),
    description: [Comment B]
  ),
)
#let list-b = list-a.map(
  x => for y in x.long {((
    key: y,
    long: x.key,
    description: x.description
  ),)}
).flatten()
#list-b
#let list-a = list-a.map(
  x => (
    key: x.key,
    long: x.long.join(", "),
    description: x.description
  )
)
#show: make-glossary
#register-glossary(list-a)
#register-glossary(list-b)

= English to Latin
#print-glossary(list-a, show-all: true)

= Latin to English
#print-glossary(list-b, show-all: true)
1 Like