fenris commited on 2016-03-10 18:07:41
Zeige 13 geänderte Dateien mit 313 Einfügungen und 19 Löschungen.
... | ... |
@@ -0,0 +1,171 @@ |
1 |
+import os |
|
2 |
+import sys |
|
3 |
+ |
|
4 |
+ |
|
5 |
+class class_rule(object): |
|
6 |
+ |
|
7 |
+ def __init__(self, name, dependencies, commands, phony = False): |
|
8 |
+ self.name = name |
|
9 |
+ self.dependencies = dependencies |
|
10 |
+ self.commands = commands |
|
11 |
+ self.phony = phony |
|
12 |
+ |
|
13 |
+ |
|
14 |
+ def __str__(self): |
|
15 |
+ output = "" |
|
16 |
+ output += "%s: %s\n" % (self.name, " ".join(self.dependencies)) |
|
17 |
+ for command in self.commands: |
|
18 |
+ output += ("\t@ %s\n" % (command.compile_unix())) |
|
19 |
+ if (self.phony): output += (".PHONY: %s\n" % self.name) |
|
20 |
+ return output |
|
21 |
+ |
|
22 |
+ |
|
23 |
+ |
|
24 |
+class class_command(object): |
|
25 |
+ def __init__(self, parameters): self.parameters = parameters |
|
26 |
+ def compile_unix(self): raise NotImplementedError |
|
27 |
+ def compile_ant(self): raise NotImplementedError |
|
28 |
+ |
|
29 |
+class class_command_log(class_command): |
|
30 |
+ def __init__(self, parameters): class_command.__init__(self, parameters) |
|
31 |
+ def compile_unix(self): return ("echo -e '-- %s'" % (self.parameters["message"])) |
|
32 |
+ |
|
33 |
+class class_command_directory_create(class_command): |
|
34 |
+ def __init__(self, parameters): class_command.__init__(self, parameters) |
|
35 |
+ def compile_unix(self): return ("mkdir --parents %s" % (self.parameters["path"])) |
|
36 |
+ |
|
37 |
+class class_command_file_copy(class_command): |
|
38 |
+ def __init__(self, parameters): class_command.__init__(self, parameters) |
|
39 |
+ def compile_unix(self): return ("cp --recursive %s %s" % (self.parameters["path-from"], self.parameters["path-to"])) |
|
40 |
+ |
|
41 |
+class class_command_directory_remove(class_command): |
|
42 |
+ def __init__(self, parameters): class_command.__init__(self, parameters) |
|
43 |
+ def compile_unix(self): return ("rm --recursive --force %s" % (self.parameters["path"])) |
|
44 |
+ |
|
45 |
+class class_command_image_convert(class_command): |
|
46 |
+ def __init__(self, parameters): class_command.__init__(self, parameters) |
|
47 |
+ def compile_unix(self): return ("convert %s %s" % (self.parameters["path-from"], self.parameters["path-to"])) |
|
48 |
+ |
|
49 |
+class class_command_latex_compile(class_command): |
|
50 |
+ def __init__(self, parameters): class_command.__init__(self, parameters) |
|
51 |
+ def compile_unix(self): return ("xelatex -output-directory=%s %s > /dev/null" % (self.parameters["output"], self.parameters["path"])) |
|
52 |
+ |
|
53 |
+ |
|
54 |
+ |
|
55 |
+def main(): |
|
56 |
+ |
|
57 |
+ dirs = { |
|
58 |
+ "source": "source", |
|
59 |
+ "temp": "temp", |
|
60 |
+ "build": "build", |
|
61 |
+ } |
|
62 |
+ |
|
63 |
+ texs = [ |
|
64 |
+ os.path.join(dirs["source"],"tex","folksprak.tex"), |
|
65 |
+ os.path.join(dirs["source"],"tex","packages.tex"), |
|
66 |
+ os.path.join(dirs["source"],"tex","settings.tex"), |
|
67 |
+ os.path.join(dirs["source"],"tex","meta.tex"), |
|
68 |
+ os.path.join(dirs["source"],"tex","commands.tex"), |
|
69 |
+ os.path.join(dirs["source"],"tex","preface.tex"), |
|
70 |
+ os.path.join(dirs["source"],"tex","grammar.tex"), |
|
71 |
+ os.path.join(dirs["source"],"tex","phonology_and_orthography.tex"), |
|
72 |
+ os.path.join(dirs["source"],"tex","conjugation.tex"), |
|
73 |
+ os.path.join(dirs["source"],"tex","declension.tex"), |
|
74 |
+ os.path.join(dirs["source"],"tex","attributes.tex"), |
|
75 |
+ ] |
|
76 |
+ |
|
77 |
+ rules = [] |
|
78 |
+ rules.append( |
|
79 |
+ class_rule( |
|
80 |
+ "all", |
|
81 |
+ [os.path.join(dirs["build"],"folksprak.pdf")], |
|
82 |
+ [], |
|
83 |
+ True |
|
84 |
+ ) |
|
85 |
+ ) |
|
86 |
+ rules.append( |
|
87 |
+ class_rule( |
|
88 |
+ "clean", |
|
89 |
+ [], |
|
90 |
+ [ |
|
91 |
+ class_command_directory_remove({ |
|
92 |
+ "path": dirs["temp"], |
|
93 |
+ }), |
|
94 |
+ ], |
|
95 |
+ True |
|
96 |
+ ) |
|
97 |
+ ) |
|
98 |
+ rules.append( |
|
99 |
+ class_rule( |
|
100 |
+ "clear", |
|
101 |
+ ["clean"], |
|
102 |
+ [ |
|
103 |
+ class_command_directory_remove({ |
|
104 |
+ "path": dirs["build"], |
|
105 |
+ }), |
|
106 |
+ ], |
|
107 |
+ True |
|
108 |
+ ) |
|
109 |
+ ) |
|
110 |
+ rules.append( |
|
111 |
+ class_rule( |
|
112 |
+ os.path.join(dirs["temp"],"media","logo.pdf"), |
|
113 |
+ [os.path.join(dirs["source"],"media","logo.svg")], |
|
114 |
+ [ |
|
115 |
+ class_command_log({ |
|
116 |
+ "message": "converting logo ..." |
|
117 |
+ }), |
|
118 |
+ class_command_directory_create({ |
|
119 |
+ "path": os.path.join(dirs["temp"],"media"), |
|
120 |
+ }), |
|
121 |
+ class_command_image_convert({ |
|
122 |
+ "path-from": os.path.join(dirs["source"],"media","logo.svg"), |
|
123 |
+ "path-to": os.path.join(dirs["temp"],"media","logo.pdf"), |
|
124 |
+ }), |
|
125 |
+ ] |
|
126 |
+ ) |
|
127 |
+ ) |
|
128 |
+ rules.append( |
|
129 |
+ class_rule( |
|
130 |
+ os.path.join(dirs["temp"],"folksprak.pdf"), |
|
131 |
+ texs + [os.path.join(dirs["temp"],"media","logo.pdf")], |
|
132 |
+ [ |
|
133 |
+ class_command_log({ |
|
134 |
+ "message": "compiling document ..." |
|
135 |
+ }), |
|
136 |
+ class_command_directory_create({ |
|
137 |
+ "path": dirs["temp"], |
|
138 |
+ }), |
|
139 |
+ class_command_latex_compile({ |
|
140 |
+ "path": os.path.join(dirs["source"],"tex","folksprak.tex"), |
|
141 |
+ "output": os.path.join(dirs["temp"]), |
|
142 |
+ }), |
|
143 |
+ class_command_latex_compile({ |
|
144 |
+ "path": os.path.join(dirs["source"],"tex","folksprak.tex"), |
|
145 |
+ "output": os.path.join(dirs["temp"]), |
|
146 |
+ }), |
|
147 |
+ ] |
|
148 |
+ ) |
|
149 |
+ ) |
|
150 |
+ rules.append( |
|
151 |
+ class_rule( |
|
152 |
+ os.path.join(dirs["build"],"folksprak.pdf"), |
|
153 |
+ [os.path.join(dirs["temp"],"folksprak.pdf")], |
|
154 |
+ [ |
|
155 |
+ class_command_directory_create({ |
|
156 |
+ "path": os.path.join(dirs["build"]), |
|
157 |
+ }), |
|
158 |
+ class_command_file_copy({ |
|
159 |
+ "path-from": os.path.join(dirs["temp"],"folksprak.pdf"), |
|
160 |
+ "path-to": os.path.join(dirs["build"],"folksprak.pdf"), |
|
161 |
+ }), |
|
162 |
+ ] |
|
163 |
+ ) |
|
164 |
+ ) |
|
165 |
+ |
|
166 |
+ for rule in rules: print(rule) |
|
167 |
+ sys.stderr.write("\n[information]\tThe output of this script is meant to be redirected into a GNU-makefile\n") |
|
168 |
+ |
|
169 |
+ |
|
170 |
+main() |
|
171 |
+ |
... | ... |
@@ -1,16 +1,26 @@ |
1 |
-default: build/folksprak.pdf |
|
2 |
-.PHONY: default |
|
1 |
+all: build/folksprak.pdf |
|
2 |
+.PHONY: all |
|
3 | 3 |
|
4 |
-temp/media/folksprak.pdf: source/media/folksprak.svg |
|
5 |
- mkdir --parents temp/media |
|
6 |
- convert source/media/folksprak.svg temp/media/folksprak.pdf |
|
4 |
+clean: |
|
5 |
+ @ rm --recursive --force temp |
|
6 |
+.PHONY: clean |
|
7 | 7 |
|
8 |
-temp/folksprak.pdf: source/tex/folksprak.tex temp/media/folksprak.pdf |
|
9 |
- mkdir --parents temp |
|
10 |
- xelatex -output-directory=temp source/tex/folksprak.tex |
|
8 |
+clear: clean |
|
9 |
+ @ rm --recursive --force build |
|
10 |
+.PHONY: clear |
|
11 | 11 |
|
12 |
-build/folksprak.pdf: temp/folksprak.pdf |
|
13 |
- mkdir --parents build |
|
14 |
- cp --recursive temp/folksprak.pdf build/folksprak.pdf |
|
12 |
+temp/media/logo.pdf: source/media/logo.svg |
|
13 |
+ @ echo -e '-- converting logo ...' |
|
14 |
+ @ mkdir --parents temp/media |
|
15 |
+ @ convert source/media/logo.svg temp/media/logo.pdf |
|
16 |
+ |
|
17 |
+temp/folksprak.pdf: source/tex/folksprak.tex source/tex/packages.tex source/tex/settings.tex source/tex/meta.tex source/tex/commands.tex source/tex/preface.tex source/tex/grammar.tex source/tex/phonology_and_orthography.tex source/tex/conjugation.tex source/tex/declension.tex source/tex/attributes.tex temp/media/logo.pdf |
|
18 |
+ @ echo -e '-- compiling document ...' |
|
19 |
+ @ mkdir --parents temp |
|
20 |
+ @ xelatex -output-directory=temp source/tex/folksprak.tex > /dev/null |
|
21 |
+ @ xelatex -output-directory=temp source/tex/folksprak.tex > /dev/null |
|
15 | 22 |
|
23 |
+build/folksprak.pdf: temp/folksprak.pdf |
|
24 |
+ @ mkdir --parents build |
|
25 |
+ @ cp --recursive temp/folksprak.pdf build/folksprak.pdf |
|
16 | 26 |
|
... | ... |
@@ -0,0 +1,35 @@ |
1 |
+\newcommand{\ipa}[1] |
|
2 |
+{ |
|
3 |
+ [#1] |
|
4 |
+} |
|
5 |
+ |
|
6 |
+\newcommand{\wordfs}[1] |
|
7 |
+{ |
|
8 |
+ \textbf{#1} |
|
9 |
+} |
|
10 |
+ |
|
11 |
+\newcommand{\url}[1] |
|
12 |
+{ |
|
13 |
+ \texttt{#1} |
|
14 |
+} |
|
15 |
+ |
|
16 |
+\newcommand{\email}[1] |
|
17 |
+{ |
|
18 |
+ \textbf{\texttt{#1}} |
|
19 |
+} |
|
20 |
+ |
|
21 |
+\newcommand{\pseudosection}[1] |
|
22 |
+{ |
|
23 |
+ \section*{#1} |
|
24 |
+} |
|
25 |
+ |
|
26 |
+\newcommand{\pseudosubsection}[1] |
|
27 |
+{ |
|
28 |
+ \subsection*{#1} |
|
29 |
+} |
|
30 |
+ |
|
31 |
+\newcommand{\todo}[1] |
|
32 |
+{ |
|
33 |
+ \colorbox{red}{[ToDo] #1} |
|
34 |
+} |
|
35 |
+ |
... | ... |
@@ -1,17 +1,23 @@ |
1 |
-\documentclass{article} |
|
1 |
+\documentclass{report} |
|
2 | 2 |
|
3 | 3 |
\input{source/tex/packages} |
4 | 4 |
\input{source/tex/settings} |
5 | 5 |
\input{source/tex/meta} |
6 |
+\input{source/tex/commands} |
|
6 | 7 |
|
7 | 8 |
\begin{document} |
8 | 9 |
|
9 | 10 |
\newpage \maketitle |
10 |
- \includegraphics[width=1.0\textwidth]{temp/media/folksprak} |
|
11 |
+ % \vspace{20mm} |
|
12 |
+ \begin{center} |
|
13 |
+ \includegraphics[width=0.6\textwidth]{temp/media/logo} |
|
14 |
+ \end{center} |
|
15 |
+ |
|
16 |
+ \newpage \input{source/tex/preface} |
|
11 | 17 |
|
12 | 18 |
\newpage \tableofcontents |
13 | 19 |
|
14 |
- \newpage \input{source/tex/phonology_and_orthography} |
|
20 |
+ \newpage \input{source/tex/grammar} |
|
15 | 21 |
|
16 | 22 |
\end{document} |
17 | 23 |
|
... | ... |
@@ -1,16 +1,41 @@ |
1 | 1 |
\begin{section}{Phonology and Orthography} |
2 | 2 |
|
3 |
- Folksprak uses the following characters as letters: |
|
3 |
+ Folksprak uses the following characters as letters: \\ |
|
4 | 4 |
|
5 | 5 |
\begin{tabular}{|l|l|l|} |
6 | 6 |
\hline |
7 |
- Latin letter & Rune & Canonic Sound Mapping \\ |
|
7 |
+ IPA-sound & Latin letter Representation & Runic Representation \\ |
|
8 | 8 |
\hline |
9 | 9 |
\hline |
10 |
- L/l & \- & [l] \\ |
|
10 |
+ \ipa{l} & \wordfs{L}/\wordfs{l} & \wordfs{ᛚ} \\ |
|
11 | 11 |
\hline |
12 |
- M/m & \- & [m] \\ |
|
13 |
- N/n & \- & [n] \\ |
|
12 |
+ \ipa{m} & \wordfs{M}/\wordfs{m} & \wordfs{ᛗ} \\ |
|
13 |
+ \ipa{n} & \wordfs{N}/\wordfs{n} & \wordfs{ᚾ} \\ |
|
14 |
+ \ipa{ŋ} & \wordfs{Ng}/\wordfs{ng} & \wordfs{ᛜ} \\ |
|
15 |
+ \hline |
|
16 |
+ \ipa{g} & \wordfs{G}/\wordfs{g} & \wordfs{ᚷ} \\ |
|
17 |
+ \ipa{k} & \wordfs{K}/\wordfs{k} & \wordfs{ᚲ} \\ |
|
18 |
+ \ipa{b} & \wordfs{B}/\wordfs{b} & \wordfs{ᛒ} \\ |
|
19 |
+ \ipa{p} & \wordfs{P}/\wordfs{p} & \wordfs{ᛈ} \\ |
|
20 |
+ \ipa{d} & \wordfs{D}/\wordfs{d} & \wordfs{ᛞ} \\ |
|
21 |
+ \ipa{t} & \wordfs{T}/\wordfs{t} & \wordfs{ᛏ} \\ |
|
22 |
+ \hline |
|
23 |
+ \ipa{v} & \wordfs{V}/\wordfs{v} & \wordfs{ᚹ} \\ |
|
24 |
+ \ipa{f} & \wordfs{F}/\wordfs{f} & \wordfs{ᚠ} \\ |
|
25 |
+ \ipa{s} & \wordfs{S}/\wordfs{s} & \wordfs{ᛋ} \\ |
|
26 |
+ \hline |
|
27 |
+ \ipa{h} & \wordfs{H}/\wordfs{h} & \wordfs{ᚺ} \\ |
|
28 |
+ \ipa{ɾ} & \wordfs{R}/\wordfs{r} & \wordfs{ᚱ} \\ |
|
29 |
+ \hline |
|
30 |
+ \ipa{j} & \wordfs{J}/\wordfs{j} & \wordfs{ᛃ} \\ |
|
31 |
+ \hline |
|
32 |
+ \ipa{i} & \wordfs{I}/\wordfs{i} & \wordfs{ᛁ} \\ |
|
33 |
+ \ipa{e} & \wordfs{E}/\wordfs{e} & \wordfs{ᛖ} \\ |
|
34 |
+ \ipa{a} & \wordfs{A}/\wordfs{a} & \wordfs{ᚨ} \\ |
|
35 |
+ \ipa{o} & \wordfs{O}/\wordfs{o} & \wordfs{ᛟ} \\ |
|
36 |
+ \ipa{u} & \wordfs{U}/\wordfs{u} & \wordfs{ᚢ} \\ |
|
37 |
+ \ipa{ø} & \wordfs{Oy}/\wordfs{oy} & \wordfs{ᛟᛇ} \\ |
|
38 |
+ \ipa{y} & \wordfs{Uy}/\wordfs{uy} & \wordfs{ᚢᛇ} \\ |
|
14 | 39 |
\hline |
15 | 40 |
\end{tabular} |
16 | 41 |
|
... | ... |
@@ -0,0 +1,14 @@ |
1 |
+\begin{pseudosection}{Preface} |
|
2 |
+ |
|
3 |
+ \begin{pseudosubsection}{What is it about?} |
|
4 |
+ |
|
5 |
+ Folksprak is the name of a project that aims to construct an inter-Germanic zonal auxiliary language, which means a language that can be easily understood by any speaker of a Germanic language (a group numbering over 465 million native speakers with an additional 300 to 900 million speaking English as a second language) without ever having learned it. \\ |
|
6 |
+ |
|
7 |
+ Folksprak is not meant to be designed by any one individual, but rather a collective work created by all interested parties; so you're welcome to participate. \\ |
|
8 |
+ |
|
9 |
+ The content of this document is the result of a collaboration between people from different parts on earth, connected by the internet. Its not a final specification for Folksprak, but a draft as a base to work on. Please let us know what you think about it and how you would improve it! You can find us in the IRC-Channel \texttt{\#\#folksprak} on \url{irc.freenode.net}. You can also write an E-Mail to \email{admin@folksprak.org}. \\ |
|
10 |
+ |
|
11 |
+ \end{pseudosubsection} |
|
12 |
+ |
|
13 |
+\end{pseudosection} |
|
14 |
+ |
|
0 | 15 |