CV settings reference (cv.yaml)
adsfolio cv generates publication-list fragments for CV workflows from ADS query results.
A YAML file (cv.yaml) configures the command.
Output formats:
LaTeX output (primary)
Markdown output
user-defined templates for any text format: LaTeX, HTML, Markdown, plain text, or another format you write
Content options:
multiple rendering styles
marker categories by bibcode
status overrides for accepted/submitted preprints
The desktop application has the same features in Tools → CV Generator….
See CV Generator. The window and the command share
cv.yaml in the ADSfolio configuration folder.
Command surface
adsfolio cv init
adsfolio cv generate --config cv.yaml
adsfolio cv show-styles
Common generation overrides:
adsfolio cv generate --config cv.yaml --dry-run
adsfolio cv generate --config cv.yaml --format markdown --style detailed
adsfolio cv generate --config cv.yaml --author-format 'ads_custom:%3.2l'
adsfolio cv generate --config cv.yaml --output out/publications.tex
--dry-run still queries ADS and renders the result. It prints to stdout instead
of writing a file.
--format selects a renderer but does not rewrite an existing configured
filename. Therefore, supply --output out/publications.md when you switch a
LaTeX configuration to Markdown.
adsfolio cv resolves relative output.dir paths against the YAML file’s
directory. An explicit CLI --output is relative to the current working
directory.
ORCID behavior:
adsfolio cv initreads defaults from youradsfolio setprofile.If profile ORCID exists,
cv initenables ORCID matching by default.Use
adsfolio cv init --no-orcidto disable that default at config creation.
Config schema
Top-level sections:
authorformatmarkersstatusoutput
Required field:
author.query
format
Field |
Type |
Description |
|---|---|---|
|
|
Renderer target |
|
|
Render style |
|
int |
Author list truncation threshold |
|
int |
Minimum shown before |
|
int |
Ensure highlighted author appears within threshold |
|
string |
Author separator |
|
string |
|
|
string |
|
template
adsfolio cv uses this section when format.output is template. Each part is
text with {name} placeholders. adsfolio cv replaces only the names below. Other braces stay as written,
so LaTeX needs no doubled braces: \textit{{title}} becomes
\textit{Dust in comet atmospheres}. A misspelled placeholder, such as
{titel}, stays in the output unchanged.
Field |
Description |
|---|---|
|
Optional starting point: |
|
Once, at the top |
|
Before each section (First-authored, then Co-authored) |
|
Once per publication |
|
After each section, for example |
|
Once, at the end |
|
|
|
|
A preset fills every part, escape, format.me_fmt, format.author_sep,
and output.filename. Keys that you write replace the preset values.
Placeholders:
Part |
Placeholders |
|---|---|
|
|
|
|
|
|
{venue} joins journal, volume, and page and leaves out empty parts.
{authors} applies format.me_fmt to your name, for example <b>{}</b> in
HTML. ADSfolio escapes text from ADS for the escape target. It never changes
text that you write: the template, me_fmt, author_sep, status, and marker
symbols. With escape: none, ADS text is plain Unicode without markup.
format:
output: template
template:
preset: html
entry: '<li>{authors} ({year}). <a href="{url}">{title}</a>. {venue}.</li>'
Template output does not add the journal or marker legends. Write them in the
footer if you need them.
markers
markers is a map of arbitrary marker categories:
markers:
highlight:
symbol: "\\textbf{\\color{myblue} \\small \\ddagger}"
description: "Selected publications"
bibcodes:
- "2024A&A...684A..80B"
Each category includes:
symbol(string)description(string)bibcodes(list[string])
status
status maps bibcode to free-text status string:
status:
"2025arXiv251207318L": "ACCEPTED by \\textbf{ApJL}"
output
Field |
Type |
Description |
|---|---|---|
|
string |
Output directory |
|
string |
Output filename |
|
bool |
Append bibstem-to-journal legend |
|
|
LaTeX list environment |
|
string |
List left margin option |
|
string |
List item separation |
ADS query build behavior
At runtime, adsfolio cv builds the query as follows:
include
orcid_pub:"<orcid>"whenauthor.use_orcidis trueinclude
year:[start TO end]when you setdebut_year/retire_yearinclude
author.queryappend
bibstem:(- <value>)for eachauthor.exclude_bibstemsitem
Rendering behavior
Classification
adsfolio cv splits fetched ADS docs into:
first-authored:
first_authorstarts withfirst_author_prefixco-authored: all remaining docs
Marker and status application
adsfolio cv:
appends marker symbols for bibcodes listed under each marker category
appends status text from
status[bibcode]when presenttracks and marks non-peer-reviewed documents (
NOT REFEREED, excluding arXiv)
Journal handling
journal display uses
format_journal(..., fmt="full")adsfolio cvnormalizesarXiv e-printstoarXivadsfolio cvcan append an optional bibstem-to-journal legend
Full example
See the tutorial page for a full working YAML and end-to-end command sequence: