# Formatting Citekeys - [Formatting Citekeys](#formatting-citekeys) - [Settings](#settings) - [Building Patterns](#building-patterns) - [Ignore Lists and Char Case](#ignore-lists-and-char-case) - [General Tipps](#general-tipps) - [Examples](#examples) `bibiman` offers the possibility to create new citekeys from the fields of BibLaTeX entries. This is done using an easy but powerful pattern-matching syntax. ## Settings All settings for the citekey generation have to be configured in the used config file. The regular path is `XDG_CONFIG_DIR/bibiman/bibiman.toml`. But it can be set dynamically with the `-c`/`--config=` global option. Following values can be set through the config file. A detailed explanation for all fields follows below: ```toml [citekey_formatter] fields = [ "author;2;;-;_", "title;3;6;_;_", "year" ] case = "lowercase" ascii_only = true ignored_chars = [ "?", "!", "\\", "\'", ".", "-", "–", ":", ",", "[", "]", "(", ")", "{", "}", "§", "$", "%", "&", "/", "`", "´", "#", "+", "*", "=", "|", "<", ">", "^", "°", "_", "\"", ] ignored_words = [ "the", "a", "an", "of", "for", "in", "at", "to", "and", "der", "die", "das", "ein", "eine", "eines", "des", "auf", "und", "für", "vor", ] ``` ## Building Patterns The main aspect for generating citekeys are the field patterns. They can be set through an array in the config file where every array-item represents a single BibLaTeX field to be used for generating a part of the citekey. Every field pattern consists of the following five parts separated by semicolons. The general pattern looks like this (every subfield is explained below): *biblatex field name* **;** *max word count* **;** *max char count* **;** *inner delimiter* **;** *trailing delimiter* - **BibLaTeX field**: the first part represents the field name which value should be used to generate the content part of the citekey. Theoretically, any BibLaTeX field can be selected by name. But there are some fields which are much more common than others; e.g. `author`, `editor`, `title`, `year`/`date` or `entrytype`. Those very common fields are preprocessed; meaning that for instance LaTeX macros are fully stripped from the strings, or that `editor` is a fallback value for `author` if the latter is empty (however, setting `editor` explicitly is still possible). Also using `year` will parse the `date` field too, to ensure a year number. - **Max Word**: Defines how many words should maximal be used from the named field. E.g. if the title consists of five words, and the max counter is set to `3` only the first three fields will be used. - **Max Chars/Word**: Defines how many chars, counting from the start, of each word will be used to build the citekey. If for instance the value is set to `5`, only the first five chars of any word will be used. Thus, "archaeology" would be stripped down to "archa". - **Inner Delimiter**: Sets the delimiter char used between words from the currently named field; e.g. to separate the words of the `title` field. - **Trailing Delimiter**: Sets the delimiter which separates the current fields value from the following. This delimiter is only
[project]
name = "scopekit"
version = "1.0.5"
description = "General-purpose oscilloscope plotting components."
authors = [{ name = "Sam Scholten", email = "s.scholten@uq.edu.au" }]
requires-python = ">=3.8"
dependencies = [
    "numpy",
    "matplotlib",
    "numba",
    "PyQt6" # I guess flexible on this??
]

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[tool.setuptools.packages.find]
where = ["src"]