This is the problem with sci-fi in a nutshell, the characters fall flat in even the most seminal works. They are nor memorable at all and somewhere between uninspired and just downright bad. It's the status quo.
Sci-fi and fantasy fans talk about worldbuilding like it is some esoteric art. In the end worldbuilding is literally just plot, and it's well understood that plot is not the most important part of literature, not compared to deeper themes and characters. Is that because of "literary snobs"? No, it's because when you come back to a book in 20, 50, or 200 years you don't remember whether the protagonist's third neural implant was made of vibranium or aluminum, you remember how that book tackled incredible subject matter with layered characters, and pushed the limits of language in a way only possible in prose. When's the last time you heard of a sci-fi author that wrote like Woolf, or Joyce? Never.
Even in more literary sci-fi, for example Dune, the appeal is because it's basically just a medieval story transplanted into space. The focus is on politics and the human experience, not "what if storms lasted longer".
It's so obvious that sci-fi stories are generally better suited to the medium of film, they can capture the unreality in a more believable way, visually, and take less advantage of the ambiguity of text. It's not like sci-fi novels are pushing boundaries in prose anyways. It's much more pretentious to say they are by calling them equally "literary" than to just accept that novels which exemplify the medium are instead.
Yeah well if you dismiss more literary SF because it focuses on human experience rather than vibranium or whatever, it's not surprising that what remains has flat characters. Don't you see the circular logic?
It reminds me of Sturgeon's law.
Yes, but each included file (like education.typ, publications.typ, etc) should also get these settings propagated from top - which typst doesn't allow - the appropriate settings need to be included in each of these files.
> you can pass global settings at build time with `typst c --input name=value`
This is something I did not know - will check.
Or you can import settings.typ in all files that need it (education.typ, etc.).
What doesn't work is to have a file like top.typ contain
import "settings.typ": *
import "education.typ": *
and hope that this will make settings available in education.typ. Because each .typ file is "pure" in the sense that it only knows the variables/functions that are defined in the file, or imported. This way you don't have a file magically affecting the bindings available in another file, which is nice.It's true there are cases where you'd like something like the above. Currently you can do something like that using states and context (basically putting the "settings" into the document and retrieving that) but it's not so nice. In the future the plan is to make this nicer by allowing custom type definitions (and having show rules and set rules work with them as they work with built-in types).
Deleted Comment
Let's say I have 3 flavors of settings and 10 different typ files - normally I'd just have 3 flavors of top.typ (top1.typ, top2.typ, top3.typ) with the correct settings for each flavor with settings proagated to all 10 files. Compiling top1/top2/top3 would then create flavor1.pdf, flavor2.pdf, and flavor3.pdf
Now how do I do it with settings1.typ, settings2.typ and settings3.typ? I have to go into the 10 different files and include the appropriate settings file! Or employ hacks like creating a common settings.typ using bash in the Makefile and including the common settings.typ in the 10 different files.
Edit: This is an actual use case - I'm helping with a resume, and have 3 different resume styles - a resume, a cv, and a timeline - and different files like education, work experience, honors, awards, publications, projects, etc and the level of detail, style, and what is included or not in each is controlled by which resume style is active. In latex I did this using \newcommand and the ifthenelse package.
In typst, I have had to resort to passing these global settings as arguments to functions spread across these different files, so each resume item (function) instantiated from the top file has a bunch of parameters like detail_level = 1, audited_courses = true, prefix_year = false, event_byline = true, include_url = true, etc., which make the functions unweildy.
Alternatively, you can pass global settings at build time with `typst c --input name=value`
Maybe I misunderstood though, if you can link to an actual example (gist or something) I'd be happy to try and give a concrete solution.
1. They should have carried forward the latex standard as-is for math, instead of getting rid of the backslash escape sequence, etc.
2. There is no way to share a variable across a file's scope - so can't have a setting that is shared across files - not even with state variables.
Other than this, typst is solid, and with the neovim editor and tinymist lsp, is great to write with.
$
ZZ &= { ..., -1, 0, 1, ... } \
QQ &= { p/q : p, q in ZZ }
$
$
a = cases(
0 & quad x <= 0,
mat(1, 2; 3, 4) vec(x, y) & quad x > 0
)
$
instead of \begin{align*}
\mathbb{Z} &= \{ \dots, -1, 0, 1, \dots \}, \\
\mathbb{Q} &= \left\{ \frac{p}{q} : p, q \in \mathbb{Z} \right\}
\end{align*}
\[
a = \begin{cases}
0 & \quad x \leq 0, \\
\begin{pmatrix}1 & 2\\ 3 & 4\end{pmatrix}
\begin{pmatrix}5\\6\end{pmatrix} & \quad x > 0
\end{cases}
\]
Regarding point 2: you can put your settings in a file `settings.typ` and import it from multiple files.What the paper actually proposes is that the Big Bang may have been a gravitational bounce inside a black hole formed in a higher-dimensional parent universe. Quantum degeneracy pressure stops the collapse before a singularity forms. From the outside, it looks like a black hole. From the inside, it evolves as a 13.8 billion year expansion. That is general relativity applied across frames.
Simply put this is a relativistic collapse model with quantum corrections that avoids singularities and produces testable predictions, including small negative curvature and a natural inflation-like phase.
When applying the correct definition for the notation (the limit of a sequence) there's no question of "do we ever get there?". The question is instead "can we get as close to the target as we want if we go far enough?". If the answer is yes, the notation can be used as another way to represent the target.
I personally never use the ChatGPT webapp or any other chatbot webapps — instead using the APIs directly — because being able to control the system prompt is very important, as random changes can be frustrating and unpredictable.
In my opinion, it's the only browser that nicely balances performance, privacy, and security.