Skip to content

Commit dbefaba

Browse files
d33bsgwaybiopre-commit-ci-lite[bot]
authored
Add poster for 2025 DBMI retreat (#347)
* initial draft and scaffold * updates for banner and intro content * banner * add handbook and notebook images * linting; future content * update dimensions; remove files; add credit; size Co-Authored-By: Gregory Way <gregory.way@gmail.com> * Update accept.txt * authors, sizing, and typos * [pre-commit.ci lite] apply automatic fixes * add erik --------- Co-authored-by: Gregory Way <gregory.way@gmail.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
1 parent 6d1dd39 commit dbefaba

28 files changed

+462
-3
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ repos:
120120
additional_dependencies: ["bandit[toml]"]
121121

122122
- repo: https://github.com/astral-sh/ruff-pre-commit
123-
rev: "v0.12.9"
123+
rev: "v0.12.10"
124124
hooks:
125125
# A fast linter that checks for stylistic errors in Python code,
126126
# helping maintain code quality and adherence to style guidelines.

coverage.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" ?>
2-
<coverage version="7.10.2" timestamp="1754947931360" lines-valid="1052" lines-covered="919" line-rate="0.8736" branches-covered="0" branches-valid="0" branch-rate="0" complexity="0">
3-
<!-- Generated by coverage.py: https://coverage.readthedocs.io/en/7.10.2 -->
2+
<coverage version="7.10.4" timestamp="1755793699457" lines-valid="1052" lines-covered="919" line-rate="0.8736" branches-covered="0" branches-valid="0" branch-rate="0" complexity="0">
3+
<!-- Generated by coverage.py: https://coverage.readthedocs.io/en/7.10.4 -->
44
<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
55
<sources>
66
<source>/Users/buntend/Documents/work/almanac</source>

pyproject.toml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,3 +196,15 @@ else
196196
rm "new_cov.xml"
197197
fi
198198
"""
199+
# note: quarto commands below expect quarto installed on the local system.
200+
# see here for more information: https://quarto.org/docs/download/
201+
poster-preview.shell = """
202+
quarto preview \
203+
src/book/_posters/2025/poster.qmd
204+
"""
205+
poster-render.shell = """
206+
quarto render \
207+
src/book/_posters/2025/poster.qmd
208+
mv src/book/_posters/2025/2026-poster.pdf \
209+
src/book/_static/2026-poster.pdf
210+
"""
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
title: Poster (modified)
2+
author: Carlos Scheidegger, Dave Bunten
3+
version: 1.0.0
4+
quarto-required: ">=1.4.415"
5+
contributes:
6+
formats:
7+
typst:
8+
template-partials:
9+
- typst-template.typ
10+
- typst-show.typ
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
// Typst custom formats typically consist of a 'typst-template.typ' (which is
2+
// the source code for a typst template) and a 'typst-show.typ' which calls the
3+
// template's function (forwarding Pandoc metadata values as required)
4+
//
5+
// This is an example 'typst-show.typ' file (based on the default template
6+
// that ships with Quarto). It calls the typst function named 'article' which
7+
// is defined in the 'typst-template.typ' file.
8+
//
9+
// If you are creating or packaging a custom typst template you will likely
10+
// want to replace this file and 'typst-template.typ' entirely. You can find
11+
// documentation on creating typst templates here and some examples here:
12+
// - https://typst.app/docs/tutorial/making-a-template/
13+
// - https://github.com/typst/templates
14+
15+
#show: doc => poster(
16+
$if(title)$ title: [$title$], $endif$
17+
// TODO: use Quarto's normalized metadata.
18+
$if(poster-authors)$ authors: [$poster-authors$], $endif$
19+
$if(departments)$ departments: [$departments$], $endif$
20+
$if(size)$ size: "$size$", $endif$
21+
22+
// Institution logo.
23+
$if(institution-logo)$ univ_logo: "$institution-logo$", $endif$
24+
25+
// Footer text.
26+
// For instance, Name of Conference, Date, Location.
27+
// or Course Name, Date, Instructor.
28+
$if(footer-text)$ footer_text: [$footer-text$], $endif$
29+
30+
// Any URL, like a link to the conference website.
31+
$if(footer-url)$ footer_url: [$footer-url$], $endif$
32+
33+
// Emails of the authors.
34+
$if(footer-emails)$ footer_email_ids: [$footer-emails$], $endif$
35+
36+
// Color of the footer.
37+
$if(footer-color)$ footer_color: "$footer-color$", $endif$
38+
39+
// DEFAULTS
40+
// ========
41+
// For 3-column posters, these are generally good defaults.
42+
// Tested on 36in x 24in, 48in x 36in, and 36in x 48in posters.
43+
// For 2-column posters, you may need to tweak these values.
44+
// See ./examples/example_2_column_18_24.typ for an example.
45+
46+
// Any keywords or index terms that you want to highlight at the beginning.
47+
$if(keywords)$ keywords: ($for(keywords)$"$it$"$sep$, $endfor$), $endif$
48+
49+
// Number of columns in the poster.
50+
$if(num-columns)$ num_columns: $num-columns$, $endif$
51+
52+
// University logo's scale (in %).
53+
$if(univ-logo-scale)$ univ_logo_scale: $univ-logo-scale$, $endif$
54+
55+
// University logo's column size (in in).
56+
$if(univ-logo-column-size)$ univ_logo_column_size: $univ-logo-column-size$, $endif$
57+
58+
// Title and authors' column size (in in).
59+
$if(title-column-size)$ title_column_size: $title-column-size$, $endif$
60+
61+
// Poster title's font size (in pt).
62+
$if(title-font-size)$ title_font_size: $title-font-size$, $endif$
63+
64+
// Authors' font size (in pt).
65+
$if(authors-font-size)$ authors_font_size: $authors-font-size$, $endif$
66+
67+
// Footer's URL and email font size (in pt).
68+
$if(footer-url-font-size)$ footer_url_font_size: $footer-url-font-size$, $endif$
69+
70+
// Footer's text font size (in pt).
71+
$if(footer-text-font-size)$ footer_text_font_size: [$footer-text-font-size$], $endif$
72+
73+
doc,
74+
)
Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
#let poster(
2+
// set variables for use throughout
3+
// note: some are referenced from `.qmd` file
4+
size: "'36x24' or '48x36''",
5+
title: "Paper Title",
6+
authors: "Author Names (separated by commas)",
7+
departments: "Department Name",
8+
univ_logo: "Logo Path",
9+
footer_text: " ",
10+
footer_url: "Footer URL",
11+
footer_email_ids: "Email IDs (separated by commas)",
12+
footer_color: "Hex Color Code",
13+
keywords: (),
14+
num_columns: "4",
15+
univ_logo_scale: "185",
16+
univ_logo_column_size: "13",
17+
title_column_size: "22",
18+
title_font_size: "48",
19+
authors_font_size: "36",
20+
footer_url_font_size: "40",
21+
footer_text_font_size: "40",
22+
body
23+
) = {
24+
// initialize template display formatting
25+
set text(font: "Lato", size: 26pt)
26+
let sizes = size.split("x")
27+
let width = int(sizes.at(0)) * 1in
28+
let height = int(sizes.at(1)) * 1in
29+
univ_logo_scale = int(univ_logo_scale) * 1%
30+
title_font_size = int(title_font_size) * 1pt
31+
authors_font_size = int(authors_font_size) * 1pt
32+
num_columns = int(num_columns)
33+
univ_logo_column_size = int(univ_logo_column_size) * 1in
34+
title_column_size = int(title_column_size) * 1in
35+
footer_url_font_size = int(footer_url_font_size) * 1pt
36+
footer_text_font_size = int(footer_text_font_size) * 1pt
37+
38+
// create overall page output
39+
set page(
40+
// total dimensions
41+
width: width,
42+
height: height,
43+
// margin on all sides
44+
margin:
45+
(top: .8in, left: .8in, right: .8in, bottom: 1.8in),
46+
// footer section
47+
footer: [
48+
#set align(center)
49+
#set text(42pt)
50+
#block(
51+
fill: rgb(footer_color),
52+
width: 100%,
53+
inset: 20pt,
54+
radius: 10pt,
55+
// adds text to footer
56+
[
57+
#text(font: "Lato", size: footer_url_font_size, footer_url)
58+
#h(1fr)
59+
#text(size: footer_text_font_size, smallcaps(footer_text))
60+
#h(1fr)
61+
#text(font: "Lato", size: footer_url_font_size, footer_email_ids)
62+
]
63+
)
64+
]
65+
)
66+
67+
// set math display properties
68+
set math.equation(numbering: "(1)")
69+
show math.equation: set block(spacing: 0.65em)
70+
71+
set enum(indent: 10pt, body-indent: 9pt)
72+
set list(indent: 10pt, body-indent: 9pt)
73+
74+
// set the heading numbering system
75+
set heading(numbering: "I.A.1.")
76+
show heading: it => context {
77+
// Get numbering tuple for *this* heading at the current location.
78+
let levels = counter(heading).at(here())
79+
let deepest = if levels != () { levels.last() } else { 1 }
80+
81+
// defines how sub-headers display
82+
set text(24pt, weight: 400)
83+
84+
// sub-header level 0
85+
if it.level == 0 [
86+
#set text(style: "italic")
87+
#v(32pt, weak: true)
88+
#if it.numbering != none {
89+
numbering("i.", deepest)
90+
h(7pt, weak: true)
91+
}
92+
#it.body
93+
94+
// sub-header level 1
95+
] else if it.level == 1 [
96+
#v(10pt, weak: true)
97+
#set align(left)
98+
#set text({ 40pt }, weight: 600, font: "Vollkorn", fill: rgb("#246876"))
99+
#v(50pt, weak: true)
100+
#if it.numbering != none {
101+
numbering("I.", deepest)
102+
h(7pt, weak: true)
103+
}
104+
#it.body
105+
#v(30pt, weak: true)
106+
#line(length: 100%, stroke: rgb(200, 200, 200))
107+
#v(30pt, weak: true)
108+
109+
// all other headers
110+
] else [
111+
#set text({ 36pt }, weight: 600, font: "Vollkorn", fill: rgb("#1e4b5c"), style: "italic")
112+
#if it.level == 2 {
113+
numbering("❀ a)", deepest)
114+
[ ]
115+
}
116+
#it.body
117+
#v(40pt, weak: true)
118+
]
119+
}
120+
121+
// header grid
122+
align(left,
123+
grid(
124+
// rows and cols in the header
125+
rows: (auto, auto),
126+
columns: (title_column_size, univ_logo_column_size),
127+
column-gutter: 5pt,
128+
row-gutter: 30pt,
129+
// main title
130+
image("./images/title-text.png", width: 65%),
131+
grid.cell(
132+
pad(top: 20pt,
133+
image(univ_logo, width: univ_logo_scale),
134+
),
135+
rowspan: 3,
136+
align: left,
137+
),
138+
// author display
139+
text(size: 28pt, authors),
140+
// department and notes display
141+
text(size: 25pt, emph(departments)),
142+
)
143+
)
144+
145+
// spacing between the header and body
146+
v(40pt)
147+
148+
// set main body display
149+
show: columns.with(num_columns, gutter: 60pt)
150+
// paragraph display properties
151+
set par(leading: 10pt,
152+
justify: false,
153+
first-line-indent: 0em,
154+
linebreaks: "optimized"
155+
)
156+
157+
// Configure figures.
158+
show figure: it => block({
159+
// Display a backdrop rectangle.
160+
it.body
161+
162+
// Display caption.
163+
if it.has("caption") {
164+
set align(left)
165+
v(if it.has("gap") { it.gap } else { 24pt }, weak: true)
166+
set text(weight: "bold")
167+
it.caption
168+
}
169+
170+
})
171+
172+
// adds body content to page
173+
body
174+
}
7.16 MB
Binary file not shown.
176 KB
Loading
83.8 KB
Loading
39.9 KB
Loading

0 commit comments

Comments
 (0)