Initial commit

This commit is contained in:
Gary_vov
2025-08-25 16:32:23 +02:00
commit 465c12fad8
26 changed files with 2182 additions and 0 deletions

96
groff_ms/config.sh Executable file
View File

@@ -0,0 +1,96 @@
#!/bin/bash
# inställnignar för bashskriptet
set -o errexit -o nounset -o pipefail
## Förberedelser
if ! command -v dialog;
then
sudo apt --yes install dialog
fi
if ! command -v groff -ms;
then
sudo apt --yes install groff
fi
doc_name=$(dialog --inputbox "Skriv dokumentets namn utan .ms" 0 0 --output-fd 1)
if [ -z "$doc_name" ]
then
doc_name="main"
fi
if dialog --stdout --title "Är det ett git-projekt?" \
--yesno "Ja för att använda git mv, nej för att inte" 0 0
then
git mv main.ms ${doc_name}.ms
else
rm -f main.ms
fi
sed -i "1s/.*/DOCUMENT=${doc_name}/" makefile
#printf 'doc_name=[%s]\n' "$doc_name"
# fixa makefile
sed -i "s/TEMP/${doc_name}/g" makefile
echo -e ".TL" > ${doc_name}.ms # notera överskrift
huvudtitel=$(dialog --inputbox "Skriv dokumentets huvudtitel" 0 0 --output-fd 1)
echo " ${huvudtitel}" >> ${doc_name}.ms
echo >> ${doc_name}.ms
echo -e ".AU" >> ${doc_name}.ms
forfattare=$(dialog --inputbox "Skriv dokumentets författare" 0 0 --output-fd 1)
echo " ${forfattare}" >> ${doc_name}.ms
echo >> ${doc_name}.ms
selected_options=$(dialog --stdout --separate-output --checklist "Välj inställningar!" 0 0 0 \
institut "Skriv ut vilket institut som representeras." off \
datum "Datum-markering i foten av varje sida." off \
sammanfattning "Kapitel på försättsbladet med sammanfattning." off \
fyll "Fyll denna sida så nästa kapitel hamnar på ny." off \
)
if [[ ${selected_options[@]} =~ "institut" ]]
then
echo -e ".AI" >> ${doc_name}.ms
insti=$(dialog --inputbox "Skriv representerat institut" 0 0 --output-fd 1)
echo " ${insti}" >> ${doc_name}.ms
echo >> ${doc_name}.ms
fi
if [[ ${selected_options[@]} =~ "datum" ]]
then
echo -e ".DA" >> ${doc_name}.ms
echo >> ${doc_name}.ms
fi
if [[ ${selected_options[@]} =~ "sammanfattning" ]]
then
echo -e ".CE" >> ${doc_name}.ms
echo -e ".B Sammanfattning" >> ${doc_name}.ms
echo >> ${doc_name}.ms
echo -e ".AB no" >> ${doc_name}.ms
echo >> ${doc_name}.ms
echo -e ".AE" >> ${doc_name}.ms
echo >> ${doc_name}.ms
fi
if [[ ${selected_options[@]} =~ "fyll" ]]
then
echo -e ".bp" >> ${doc_name}.ms
echo >> ${doc_name}.ms
fi
echo -e ".NH 1" >> ${doc_name}.ms
echo -e "Kapitel" >> ${doc_name}.ms
echo >> ${doc_name}.ms
echo -e ".PP" >> ${doc_name}.ms
echo -e "Text" >> ${doc_name}.ms

199
groff_ms/exemplares.ms Normal file
View File

@@ -0,0 +1,199 @@
.\" Exempel på groff ms-dokument med kommentarer
.\" Kommentarrad i groff börjar med \".
.\" .TL anger dokumentets titel, måste vara först
.TL
Det här är dokumentets titel
.\" .AU anger författare
.AU
Anders
.\" .AI anger institution/organisation
.AI
Anstalten
.\" Datum-markering
.DA
.\" centrerat
.CE
.B Sammanfattning
.\" .AB och .AE innesluter sammanfattning, abstrakt, no för att ta bort ABSTRACT
.AB no
Detta är en kort sammanfattning av dokumentet.
.\" ny rad gör ingen skillnad
Här beskrivs kortfattat vad dokumentet handlar om.
.AE
.\" .bp blank page, fyller resten av sidan så vi börjar på nästa
.bp
.\" .NH 1 är huvudrubrik (nivå 1), numrerad 2 för under osv.
.NH 1
Introduktion
.\" Stycke, paragraf
.PP
Detta är en inledande paragraf, .PP. Här kan du skriva vanlig text.
Stycket har standardindrag och vänsterjustering.
.\" Indrag
.RS
.PP
Här börjar ett indraget stycke med .RS (indrag) och
fortsätter här. När indraget ska sluta används .RE.
.RE
.\" Listor
.NH 1
Listor och stycken
.PP
Nu visar vi olika listtyper.
.\" Punktlista, itemize
.\" Ny rubrik nivå 2
.NH 2
Nästad punktlista i tre nivåer
.\" nr sätter numeriskt register, PI håller hur mycket list-item ska dras in efter punkt
.nr PI 4n
.\" Yttersta nivån — stjärna
.IP "*"
Första nivåns punkt 1
\".RS ökar indrag för nästa nivå
.RS
.IP "o"
Andra nivåns punkt 1.1
.RS
.IP ">"
Tredje nivåns punkt 1.1.1
.IP ">"
Tredje nivåns punkt 1.1.2
\".RE minskar indrag för nästa nivå
.RE
.IP "o"
Andra nivåns punkt 1.2
.RE
.IP "*"
Första nivåns punkt 2
.RS
.IP "o"
Andra nivåns punkt 2.1
.RS
.IP "+"
Tredje nivåns punkt 2.1.1
.IP ">"
Tredje nivåns punkt 2.1.2
.RE
.RE
.\" Ordnad lista, enum
.NH 2
Numrerad lista med två nivåer
.\" numeriskt register för steg, initialiserad till 0 och med automatiskt inkrement 1.
.\" Flyktföljden \n+[reg] returnerar värdet först och inkementerar sedan
.nr step 0 1
.IP \n+[step]
Första huvudpunkten
.RS
.IP "a."
Första underrubriken
.IP "b."
Andra underrubriken
.RE
.IP \n+[step]
Andra huvudpunkten
.RS
.IP "a."
Första underrubriken
.IP "b."
Andra underrubriken
.RE
.\" Detalj förklaring
.TP
Tagged paragraph (term)
Detta är förklaringen till termen ovan.
.\" Textformat -- vill man ha flera ord får man använda \~ alltså obrytbart mellanrum
.NH 1
Textformatering
.PP
Text kan formateras på olika sätt:
.PP
.B Fet
stil. \fBMan kan även skriva inom en rad.\fP
.PP
.I Kursiv
stil. \fIÄven inom rad.\fP
.PP
.BI Fet\~+\~kursiv,
ord för ord.
.\" Rubrik utan nummer
.SH 2
Hemlig, onumrerad rubrik.
.PP
Här kan vi skriva.
.\" Fotnot och ToC, innehållsförteckning
.NH 2
Fotnötter och innehållsförteckning
.PP
Här kommer en fotnot.\fI*\fR\ och en till \fI#\fP.
.FS
* Det här är fotnotstexten
# och även detta
.FE
.NH 2
Layout och specialblock
.\" DS och DE innesluter ett indraget block, typ citat och liknande
.DS
Detta är ett displayblock (t.ex. ett citat eller blocktext).
Som du ser kan det vara flera rader långa.
.DE
.\" Mellan EQ och EN är det ekvation
.EQ
a^2 + b^2 = c^2
.EN
.\" PS och PE innesluter figurer, pic-block
.PS
box "Hello"
circle "World"
.PE
.\" ruta kring text
.B1
Alef bet i block.
Samma rad
.\" ny rad
.br
ny rad.
.B2
.PP
Man kan också rita
.BX ruta\~runt\~text
och sen fortsätta som vanligt.
.NH 1
Avslutning
.PP
Tack för att du läste detta exempel.
.\" Slut på dokument

0
groff_ms/main.ms Normal file
View File

11
groff_ms/makefile Normal file
View File

@@ -0,0 +1,11 @@
DOCUMENT=TEMP
all: $(DOCUMENT).pdf
$(DOCUMENT).pdf: $(DOCUMENT).ms
cat $(DOCUMENT).ms | preconv | pic | groff -ms -T pdf > $(DOCUMENT).pdf
.PHONY: clean
clean:
rm -f $(DOCUMENT).pdf