diff --git a/pages/worldbuilding/astahon/mosici.typ b/pages/worldbuilding/astahon/mosici.typ index b52847a..71218d3 100644 --- a/pages/worldbuilding/astahon/mosici.typ +++ b/pages/worldbuilding/astahon/mosici.typ @@ -1,4 +1,4 @@ -#import "/templates/article.typ": setup, gloss, low, high, dictionary, figure, ref +#import "/templates/article.typ": setup, gloss, low, high, dictionary, figure, ref, xtable #let opts = ( title: "Mosici", @@ -6,7 +6,6 @@ make-pdf: true ) #let doc(p) = [ -#set heading(numbering: "1.") #show: setup *Mosici* (  [ãmoziciç eʎa]) is a Nielf languages spoken in the confederation of the eastern isles. @@ -22,28 +21,28 @@ This page mostly treats of the Cairneshalese (of  Mosici has the phonemes described in #ref(p+"consonants") and #ref(p+"vowels"). #figure( caption: [Mosici consonants], - table(columns: 5, + xtable(columns: 5, table.header[][Labial][Coronal][Palatal][Dorsal], - strong[Nasal], [m], [n], [], [], - strong[Plosive], [p], [t], [], [k], - strong[Fricative], [f v], [s z], [ʃ ʒ], [ʀ], - strong[Approximant], [w], [], [j], [ʟ], + [Nasal], [m], [n], [], [], + [Plosive], [p], [t], [], [k], + [Fricative], [f v], [s z], [ʃ ʒ], [ʀ], + [Approximant], [w], [], [j], [ʟ], ), label: p+"consonants", ) #figure( caption: [Mosici vowels], - table(columns: 4, + xtable(columns: 4, table.header( table.cell(rowspan: 2)[], table.cell(colspan: 2)[Front], table.cell(rowspan: 2)[Back], [Unrounded], [Rounded] ), - strong[Close], [i], [u], [y], - strong[Close-Mid], [e], [ø], [o], - strong[Open-Mid], [ɛ], [], [ɔ], - strong[Open], [a], [], [] + [Close], [i], [u], [y], + [Close-Mid], [e], [ø], [o], + [Open-Mid], [ɛ], [], [ɔ], + [Open], [a], [], [] ), label: p + "vowels" ) @@ -82,18 +81,18 @@ The sound change proceeds in 4 steps: + Merge any remaining /V#sub[1];.V#sub[2]/ pairs as per #ref(p+"coal"). #figure(caption: [Mosici vowel coalescence (values in IPA)], - table( + xtable( columns: 10, table.header[V#sub[2]#sym.arrow\ V#sub[1]#sym.arrow.b][a][ɛ][ɔ][e][ø][o][i][y][u], - strong[a], [ɔ], [a], [ɔ], [ɛ], [ɛ], [ɔ], [e], [ø], [o], - strong[ɛ], [ɛ], [i], [ø], [i], [e], [ø], [i], [ø], [ø], - strong[ɔ], [ɔ], [ø], [ɔ], [ø], [ø], [o], [ø], [ø], [o], - strong[e], [ɛ], [i], [ø], [i], [e], [ø], [i], [ø], [ø], - strong[ø], [ø], [e], [ø], [e], [y], [o], [y], [y], [y], - strong[o], [ɔ], [ø], [o], [ø], [ø], [u], [ø], [ø], [u], - strong[i], [ja], [jɛ], [jɔ], [je], [jø], [jo], [i], [jy], [ju], - strong[a], [ø], [ø], [ø], [ø], [y], [ø], [i], [i], [y], - strong[u], [wa], [wɛ], [wɔ], [we], [wø], [wo], [wi], [y], [u], + [a], [ɔ], [a], [ɔ], [ɛ], [ɛ], [ɔ], [e], [ø], [o], + [ɛ], [ɛ], [i], [ø], [i], [e], [ø], [i], [ø], [ø], + [ɔ], [ɔ], [ø], [ɔ], [ø], [ø], [o], [ø], [ø], [o], + [e], [ɛ], [i], [ø], [i], [e], [ø], [i], [ø], [ø], + [ø], [ø], [e], [ø], [e], [y], [o], [y], [y], [y], + [o], [ɔ], [ø], [o], [ø], [ø], [u], [ø], [ø], [u], + [i], [ja], [jɛ], [jɔ], [je], [jø], [jo], [i], [jy], [ju], + [a], [ø], [ø], [ø], [ø], [y], [ø], [i], [i], [y], + [u], [wa], [wɛ], [wɔ], [we], [wø], [wo], [wi], [y], [u], ), label: p+"coal" ) @@ -154,7 +153,7 @@ Nouns are declined according to 7 gramatical cases: 5 simple cases --- agent, pa Mosici inflects according to a split-active morpho-syntactic system: Transitive agents are inflected like agent-like intransitive subjects, and transitive patients are inflected like patient-like intransitive subjects. Whether an intransitive clause takes an agent form or a patient form depends on the verb, divided along somewhat semantic lines #figure(caption: [Mosici eclension patterns], - table(columns: 8, + xtable(columns: 8, table.header[][∅][][][][][][], [Agent], [],[],[],[],[],[],[], [Patient], table.cell(colspan: 7)[], @@ -310,8 +309,79 @@ The spatial locative #low[SPLOC] is used to indicate a position in space. It is ==== Temporal Locative -=== Proper noun enclitic + +There are four temporal locatives: past, present, future and gnomic #low[TMPLOC.PST, TMPLOC.PRS, TMPLOC.FUT, TMPLOC.GNO]. The past case (resp. present and future) is used, as its name indicates, to locate events that happened in the past (resp. present and future). The gnomic case locates events that are either generally happening, happening at an unknown point in time, or happening repeatedly. + +The past case (resp. present, future, gnomic) are indicated by expressing the noun in the patient case followed by the particle  ⟨anip⟩ (resp  ⟨anep⟩,  ⟨anop⟩ and  ⟨anap⟩). however those are pronounced as there was no word boundary between the word and the particle. In particular it doesn't cause the lenition of the final  of the patient marking. + +Note that the present spatial locative is rarely used outside of set phrases like   "today" or   "now". Another common phrase using the gnomic temporal locative is   "at some point". + +#gloss( + [Present temporal locative], + txt: [#high[ ] ], + translit: [#high[fint anep] marefess.], + split: (high[fin], high[-t anep], [maref], [-ess]), + phono: (high[\[vẽ], high[-dãnɛh], [maʀɛv], [-ɛs]), + morphemes: (high[day], high[-TMPLOC.PRES], [be\_cold], [-PRES.3SG.INAN]), + translation: [It's cold #high[today]] +) +#gloss( + [Past temporal locative], + txt: [ #high[ ] ], + translit: [il #high[fionreit anip] cirtalin.], + split: ([il], high[fionre], high[-i], high[-t anip], [cirtal], [-in]), + phono: ([\[eɥ], high[vjõʀ], high[\\i], high[-taneh], [keɐ̯daʎ], [ẽ\]]), + morphemes: ([1SG.AGE], high[eat], high[-PAST.INF], high[-TMPLOC.PAST], [write], [-PAST.2SG]), + translation: [#high[When I ate], you#sub(low[SG]) wrote.] +) +#gloss( + [Future temporal locative], + txt: [ #high[ ] ], + translit: [il #high[fionreot anop] cirtalon.], + split: ([il], high[fionre], high[-o], high[-t anop], [cirtal], [-on]), + phono: ([\[eɥ], high[vjõʀ], high[\\ø], high[-tanoh], [keɐ̯daʟ], [õ\]]), + morphemes: ([1SG.AGE], high[eat], high[-FUT.INF], high[-TMPLOC.FUT], [write], [-FUT.2SG]), + translation: [#high[When I’ll eat], you#sub(low[SG])'ll write.] +) +#gloss( + [Gnomic temporal locative], + txt: [ #high[ ] ], + translit: [il #high[fionreat anap] cirtalan.], + split: ([il], high[fionre], high[-a], high[-t anap], [cirtal], [-an]), + phono: ([\[eɥ], high[vjõʀ], high[\\ɛ], high[-tanah], [keɐ̯daʟ], [ã\]]), + morphemes: ([1SG.AGE], high[eat], high[-GNO.INF], high[-TMPLOC.GNO], [write], [-GNO.2SG]), + translation: [#high[Whenever I eat], you#sub(low[SG]) write.] +) + +=== Proper noun clitic + +Proper nouns that aren't personal names are always marked with the proper noun clitic . It is pronounced as expected [ã] in front of consonants, but is pronounced [ãt] in front of vowels (instead of the expected [ãn]). + +The  prefix --- which on proper nouns forms demonyms --- is attached before the proper noun clitic:  gives  not \* or \*. The plural of thus-formed demonyms is also marked on the anclitic: the plural form of  is  and not \*. + == Pronouns + +Mosici has a personal pronouns for all persons distninguishing in number, and in animacy for the 3rd person (see #ref(p + "pronouns")) + + +#figure(caption: [Mosici pronouns], label: p+"pronouns", xtable( + columns: 6, + table.header[][AGE][PAT][GEN][DAT][ABL], + [1SG],[\ #low[il]], [\ #low[ilt]], [\ #low[ilc]], [\ #low[ilssi]], [\ #low[ilfia]], + [1PL],[\ #low[íl]], [\ #low[ílt]], [\ #low[ílc]], [\ #low[ílssi]], [\ #low[ílfia]], + [2SG],[\ #low[el]], [\ #low[elt]], [\ #low[elc]], [\ #low[elssi]], [\ #low[elfia]], + [2SG],[\ #low[él]], [\ #low[élt]], [\ #low[élc]], [\ #low[élssi]], [\ #low[élfia]], + [3SG.AN],[\ #low[ie]], [\ #low[iet]], [\ #low[iec]], [\ #low[iessi]], [\ #low[iefia]], + [3PL.AN],[\ #low[ié]], [\ #low[iét]], [\ #low[iéc]], [\ #low[iéssi]], [\ #low[iéfia]], + [3SG.INAN],[\ #low[ain]], [\ #low[aint]], [\ #low[ainc]], [\ #low[ainssi]], [\ #low[ainfia]], + [3PL.INAN],[\ #low[aín]], [\ #low[aínt]], [\ #low[aínc]], [\ #low[aínssi]], [\ #low[aínfia]], + [DEM.SG],[\ #low[mpa]], [\ #low[mpat]], [\ #low[mpac]], [\ #low[mpassi]], [\ #low[mpafia]], + [DEM.PL],[\ #low[mpá]], [\ #low[mpát]], [\ #low[mpác]], [\ #low[mpássi]], [\ #low[mpáfia]], + [Q],[\ #low[aótss]], [\ #low[aót]], [\ #low[aóc]], [\ #low[aótssi]], [\ #low[aófia]], +)) + + + == Verbs === Aspect, mood ⁊ related nonsense ==== Conditional diff --git a/root.typ b/root.typ index cfe95d3..4b38a7e 100644 --- a/root.typ +++ b/root.typ @@ -53,15 +53,18 @@ }) [#metadata(none) #std.label(page-slug + "--end")] if not opts.at("no-toc", default: false) { - aside(outline( + aside(details(open: true, { + summary(strong[Contents]) + outline(title: none, target: heading.where(level: 1) .or(heading.where(level: 2)) .or(heading.where(level: 3)) .or(heading.where(level: 4)) .or(heading.where(level: 5)) .after(std.label(page-slug + "--start")) - .before(std.label(page-slug + "--end")) - ))} + .before(std.label(page-slug + "--end"))) + })) + } }) if not opts.at("no-foot", default: false) { footer[ @@ -95,6 +98,9 @@ #link(site-root + page + ".html", raw(page)) on #site-name as of #datetime.today().display("[year]-[month]-[day]"). #show figure.where(kind: table): set figure(placement: bottom ) + #show strong: set text(weight: 900) + #show heading: set text(weight: 900) + #show table.header: set text(weight: 900) #line(length: 100%, stroke: gray) #title() diff --git a/static/style/style.css b/static/style/style.css index 277679f..5bb991f 100644 --- a/static/style/style.css +++ b/static/style/style.css @@ -896,7 +896,7 @@ /* Dark colorscheme*/ --d-bg: #1d2021; --d-fg: #fbf1c7; - --d-bg-accent: #504945; + --d-bg-accent: #3c3836; --d-fg-inactive: #bdae93; --d-fg-accent: #fe8019; --d-fg-error: #fb4934; @@ -993,6 +993,9 @@ footer { width: calc(100% - 20em); } aside { + position: -webkit-sticky; /* Safari */ + position: sticky; + top: 0; margin: 10pt, 10pt, 10pt, 0pt; width: 20em; } @@ -1013,9 +1016,14 @@ main table { margin: 1em; } main td, main th { - padding: 0em 1em; + padding: 0.25em 1em; margin: 0; } +main th, main td:has(strong) +{ + background-color: light-dark(var(--l-bg-accent), var(--d-bg-accent)); +} + main .low { color: light-dark(var(--l-fg-inactive), var(--d-fg-inactive)); font-style: italic; diff --git a/templates/article.typ b/templates/article.typ index e5263da..7643220 100644 --- a/templates/article.typ +++ b/templates/article.typ @@ -7,6 +7,7 @@ #let setup(doc) = multi-target( (body) => { + set heading(numbering: "A.I.1.a⟩") show regex("[\u{e3e0}-\u{e3ff}]+(\s+[\u{e3e0}-\u{e3ff}]+)*"): { html.span.with(class: "scr-nahan") } @@ -35,6 +36,7 @@ body }, (body) => { + set heading(numbering: "A.I.1.a.") show regex("[\u{e3e0}-\u{e3ff}]+(\s+[\u{e3e0}-\u{e3ff}]+)*"): { text.with(font: "AndikaAmbNaran") } @@ -171,3 +173,9 @@ label: none, ..args ) = figure(kind: "gloss", supplement: "Example", gloss-raw(..args), caption: caption, label: label) + +#let xtable(..args) = { + show table.cell.where(x: 0): strong + show table.cell.where(y: 0): strong + table(..args) +}