145 Commits
v1.11 ... v1.14

Author SHA1 Message Date
minjaesong
069b1c853d more demotext changes 2024-10-01 15:00:16 +09:00
minjaesong
d5b912a64e slightly better demo text 2024-09-30 19:45:29 +09:00
minjaesong
07a4988f5f fix: no whitespaces not being committed on-time 2024-09-30 19:22:11 +09:00
minjaesong
13ef2f586e hentaigana update (2) 2024-09-24 01:54:26 +09:00
minjaesong
5882ddd974 hentaigana update 2024-09-24 01:47:05 +09:00
minjaesong
2000438c16 feature-complete Hentaigana/fix: typesetter infinete loop on unbreakable wider-than-paper chunk 2024-09-22 00:00:21 +09:00
minjaesong
bdb4e9f03f Alphanumeric Presentation Forms 2024-09-21 19:18:21 +09:00
minjaesong
3e395defb5 Unicode 16 update for Control Pictures 2024-09-21 19:17:45 +09:00
minjaesong
71371e147b fix: characters not on overriden charset would not print 2024-09-12 23:37:02 +09:00
minjaesong
fbc8aef956 more hentaigana wip 2024-06-10 01:40:06 +09:00
minjaesong
32bdc98de5 more hentaigana wip 2024-06-08 03:36:06 +09:00
minjaesong
1614260ce7 ligatures only available when interchar=0 2024-06-02 21:20:48 +09:00
minjaesong
fb60edb9a4 typesetting: minute visual adjustments 2024-06-01 16:53:31 +09:00
minjaesong
47eae57418 fi fl ligatures 2024-06-01 01:27:41 +09:00
minjaesong
2a15785f57 better interchar handling for MovableType 2024-05-23 14:26:22 +09:00
minjaesong
95dfcb91b5 better interchar handling 2024-05-23 14:04:42 +09:00
minjaesong
033fcab9ec dynamic badness 2024-05-22 14:03:01 +09:00
minjaesong
b7521ccabf more whitespaces for typesetting 2024-05-22 01:04:25 +09:00
minjaesong
3cc397d2db make SHYs work again 2024-05-22 00:36:22 +09:00
minjaesong
1f37ee1f4f fix: larger scale font whitespaces 2024-05-21 23:21:24 +09:00
minjaesong
2205e1bc44 space is 5px again but for MovableType only 2024-05-21 17:09:48 +09:00
minjaesong
3500f17e08 fix: quirks with getting width of blocks and typesetting 2024-05-21 16:47:06 +09:00
minjaesong
7c8a1be3e5 double story miniscule g 2024-05-20 03:37:41 +09:00
minjaesong
39ff4cd92c Deterministic randomiser because Timsort was complaining 2024-05-20 00:55:37 +09:00
minjaesong
2c10407c17 zwsp and thsp are now recognised as whitespaces 2024-05-19 00:46:30 +09:00
minjaesong
1f318837e7 minor changes never end 2024-05-18 20:12:07 +09:00
minjaesong
a5fc22661c fix: block involving OBJs are not properly justified 2024-05-18 02:57:28 +09:00
minjaesong
d8dc1c8cfd CodepointSequence.toReadable() is now public 2024-05-17 23:58:50 +09:00
minjaesong
42c72a6a90 drawing text without GPU 2024-05-16 01:35:16 +09:00
minjaesong
385dc8bdff fix: bad hyphenation on Hangul because the code was always assuming left part of the 'hyphenated' text always ends with a hyphen 2024-05-14 00:34:53 +09:00
minjaesong
a58abd813f til antonym of indent is exdent 2024-05-10 02:48:04 +09:00
minjaesong
8b38e3e47d fix: bad behaviour 2024-05-10 02:05:56 +09:00
minjaesong
bd333293c4 fix: bad hyphenation calc 2024-05-10 01:44:44 +09:00
minjaesong
c415c29fb5 unindentation if the line starts with hangables 2024-05-10 00:09:10 +09:00
minjaesong
d31b5e4068 two more paragraph alignment: raggedleft and centred 2024-05-09 16:47:42 +09:00
minjaesong
e2d6d3724c fix: bad width calculation on raggedright 2024-05-09 15:59:30 +09:00
minjaesong
48339b0599 hyphens are now hangable 2024-05-09 03:45:11 +09:00
minjaesong
0dade179d8 fix: nbsp not typesetted correctly 2024-05-05 01:46:13 +09:00
minjaesong
fb4cfb6e6d raggedright typesetting 2024-05-04 02:50:00 +09:00
minjaesong
06fcffde56 commenting out debug prints 2024-05-03 16:11:44 +09:00
minjaesong
accbecfb3e new charset override 'codestyle ascii' 2024-05-03 16:09:18 +09:00
minjaesong
b3e6f61f96 commenting out debug prints 2024-05-03 03:15:27 +09:00
minjaesong
c2b491cc8d more fair penaltying 2024-05-03 03:08:51 +09:00
minjaesong
74695f519b PUA chart update 2024-05-02 20:26:31 +09:00
minjaesong
adcf84140c OBJ has no glyph and has zero width now 2024-05-02 18:18:24 +09:00
minjaesong
b7ecfd910e fix: wide glue with size multiple of 16 would cause issues 2024-05-02 17:47:58 +09:00
minjaesong
a719d872c2 fix: font scaling and interchar would cause typesetting to fail 2024-05-01 02:08:38 +09:00
minjaesong
2d99f39a99 fix: colour code gets broken up by the hyphenation 2024-05-01 00:46:06 +09:00
minjaesong
d43a2d5bec more adhoc adjustments 2024-04-30 18:50:24 +09:00
minjaesong
b2acb83848 more arbitrary conditions 2024-04-30 18:32:45 +09:00
minjaesong
949187345d better penalty? 2024-04-30 18:22:54 +09:00
minjaesong
07d4504a89 testing new penalty eq 2024-04-30 18:04:47 +09:00
minjaesong
aa45f942e3 freezing slugs into a single line of text 2024-04-30 16:39:32 +09:00
minjaesong
7384d970d5 better-behaving hyphenation penalty 2024-04-30 04:59:08 +09:00
minjaesong
8e29db9c4a smarter hyphenation 2024-04-29 16:47:11 +09:00
minjaesong
8bf0642b3f fix: space before hyphen gets ignored 2024-04-29 01:40:02 +09:00
minjaesong
87492c1f0b better text scaling support 2024-04-28 22:25:00 +09:00
minjaesong
2196a4b2e7 faster typesetting by not creating glyph caches 2024-04-28 21:18:44 +09:00
minjaesong
ee51cafa6c hyphnation rules for other scripts 2024-04-28 19:41:19 +09:00
minjaesong
57ce0363f2 better tokenising for quots 2024-04-28 18:15:05 +09:00
minjaesong
77e01151b5 fix: poor handling of pre-hyphenated words 2024-04-28 17:52:41 +09:00
minjaesong
869d424292 fix: hyphenated slug would not contract 2024-04-28 17:33:37 +09:00
minjaesong
631e60bb73 hangable colon and semicolon 2024-04-28 16:24:00 +09:00
minjaesong
6410256e6a a space is narrower 4px; tokenising CamelCase 2024-04-28 14:28:17 +09:00
minjaesong
66c1a1357a control chars for movabletype 2024-04-28 01:18:21 +09:00
minjaesong
d87b0dce7c scale support for MovableType 2024-04-27 16:02:22 +09:00
minjaesong
c695a9c5f0 more bug fixes 2024-04-26 01:30:23 +09:00
minjaesong
6c63504497 more tokeniser fix 2024-04-25 21:20:45 +09:00
minjaesong
8fd3f0e99a more hentaigana wip 2024-04-08 00:59:09 +09:00
minjaesong
373af27873 better tokenising for mixed scripts (latin with numerals, korean with latin) 2024-04-06 22:23:14 +09:00
minjaesong
30327776ba typesetter: extra draw call by line number 2024-04-04 02:45:24 +09:00
minjaesong
32c859fdf8 tokenising pre-hyphen-ated words 2024-04-03 14:49:03 +09:00
minjaesong
06782fdc55 fixing quirks for more writing systems 2024-03-31 00:13:31 +09:00
minjaesong
46a57e8e50 thai text linebreaking fix 2024-03-31 00:02:19 +09:00
minjaesong
78333b3fe1 slug moving will ignore glues at line head 2024-03-30 22:14:55 +09:00
minjaesong
35325cb852 cjkpunct is now variable 2024-03-30 21:46:48 +09:00
minjaesong
1bf78cc5bb cjkpunct adjustments 2024-03-30 20:20:52 +09:00
minjaesong
5f1f740fab cjkpunct update 2024-03-30 19:57:21 +09:00
minjaesong
e9c9ae4aab better control chars handling 2024-03-30 17:00:13 +09:00
minjaesong
09b3a8c759 fix: tokeniser fails on the line starts with indentation then colour codes 2024-03-30 05:58:01 +09:00
minjaesong
cfc52386ab almost working... 2024-03-30 05:55:22 +09:00
minjaesong
c9474fac1c tokeniser: japanese small kana coalesced 2024-03-30 01:28:46 +09:00
minjaesong
9e85cae502 kana update 2024-03-30 01:16:11 +09:00
minjaesong
eacbd4fdb0 tokeniser changes 2024-03-29 23:58:58 +09:00
minjaesong
258f70dbf4 new tokeniser 2024-03-29 23:43:58 +09:00
minjaesong
f69b39df95 typesetter wip 2024-03-29 17:38:00 +09:00
minjaesong
9b554d3524 glyphs update 2024-03-29 17:37:49 +09:00
minjaesong
d6ba2eb7ce symbols sheet update 2024-03-28 21:06:48 +09:00
minjaesong
a9883fc029 more kana update 2024-03-28 19:08:23 +09:00
minjaesong
0ebbcfb8c4 control chars and colour codes 2024-03-26 02:14:58 +09:00
minjaesong
4d04f368c6 word split rule for Korean 2024-03-25 20:34:48 +09:00
minjaesong
ab04e6b735 better hyphenation 2024-03-25 20:00:22 +09:00
minjaesong
c1b7d3e036 hyphenation wip 2024-03-25 18:43:08 +09:00
minjaesong
f60454229b new tightening penalising eq 2024-03-25 16:48:53 +09:00
minjaesong
bba02d9f40 adding fullwidth comma/period to the symbol table 2024-03-25 16:34:13 +09:00
minjaesong
1a20283bb3 kerning rule for rs and dots 2024-03-25 16:23:36 +09:00
minjaesong
c644d4ad1a test materials 2024-03-25 16:03:08 +09:00
minjaesong
b9e0366512 Chinese/Japanese typesetting works in a way that it won't crash the program 2024-03-25 16:01:32 +09:00
minjaesong
e81b9f4e53 various fixes 2024-03-25 03:32:16 +09:00
minjaesong
67481f9e44 various fixes 2024-03-25 03:29:51 +09:00
minjaesong
95f42a9126 fix: test window rendering quirks 2024-03-25 03:06:28 +09:00
minjaesong
84ea79b069 justified typesetting wip 2024-03-25 02:54:21 +09:00
minjaesong
3f1364c982 more hentaigana wip 2024-03-12 21:06:46 +09:00
minjaesong
28b902b6c0 more hentaigana wip 2024-03-03 20:52:14 +09:00
minjaesong
a19ce0d833 README update 2024-03-02 14:53:45 +09:00
minjaesong
b042af1881 update for indian rupee sign 2024-03-02 14:32:54 +09:00
minjaesong
1d57958db9 more wip 2024-02-29 17:13:30 +09:00
minjaesong
a9d28510a7 minor changes 2024-02-26 22:03:06 +09:00
minjaesong
b944cf3585 more hentaigana 2024-02-26 21:03:14 +09:00
minjaesong
de23edcbda more hentaigana 2024-02-26 01:54:46 +09:00
minjaesong
68382370a4 minor edits 2024-02-24 21:12:09 +09:00
minjaesong
29c7c20844 more smol update 2024-02-23 03:18:55 +09:00
minjaesong
7037a758cf more kana update 2024-02-23 00:57:38 +09:00
minjaesong
75a3bb2198 new kana for testing 2024-02-22 21:43:18 +09:00
minjaesong
473b34dc7c experimental 2024-02-22 20:34:31 +09:00
minjaesong
6f88e37df6 new kana more wip 2024-02-22 18:56:28 +09:00
minjaesong
4ca39b3742 wip 2024-02-22 14:37:45 +09:00
minjaesong
3cc44d4421 new kana design wip 2024-02-22 03:56:25 +09:00
minjaesong
0ea7bf8c1b Update LICENSE.md 2024-02-07 01:53:56 +09:00
minjaesong
f5bc1f8178 more updates 2024-02-05 22:12:56 +09:00
minjaesong
2a39ff0d35 copyright update 2024-02-05 04:18:31 +09:00
minjaesong
ecffe22d01 more patches 2024-02-05 03:23:19 +09:00
minjaesong
e1c48ace6b a late night patch, yay 2024-02-05 03:00:31 +09:00
minjaesong
efff35f0e3 more devanagari changes 2024-02-04 19:23:23 +09:00
minjaesong
f10962ceda more devanagari changes 2024-02-04 19:12:24 +09:00
minjaesong
37d21c6f6c unicode 15.1 update 2024-02-04 15:38:19 +09:00
minjaesong
ff7c0f8df3 yet another devanagari improvements regarding superscript RA and vowel I 2024-02-02 20:38:16 +09:00
minjaesong
c863148f13 fix: positioning of diacritics after hindi II; positioning of superscript RA in sample string DARJEELING 2024-01-28 22:48:41 +09:00
minjaesong
69e12f0205 hangul changes 2024-01-28 16:42:00 +09:00
minjaesong
6bf4a5a995 Old hangul rendering fix 2024-01-19 16:01:51 +09:00
minjaesong
38bdb28b64 next release commit 2023-10-06 12:20:13 +09:00
minjaesong
8ba1a4a005 fix: TAMIL AS ABOVE SIGN being shifted 1 px up 2023-07-06 22:06:59 +09:00
minjaesong
70da6a5142 README update 2023-06-06 19:56:33 +09:00
minjaesong
2f6126d0ea texts now printed 2px lower so that the text is vertically centred against the lineheight 2023-06-06 18:07:14 +09:00
minjaesong
189a427edc sundanese update as per unicode 15 2023-01-09 15:14:48 +09:00
minjaesong
21dbf348d0 redesigned capital cyrillic DA again 2022-09-28 17:53:03 +09:00
minjaesong
ff455ef2fd fixed a bad shape mask of the bulgarian lowercase te, mask of the uppercase scha was 1 px off to the left 2022-09-28 13:13:37 +09:00
minjaesong
d7029c3841 halfwidth hangul minor change 2022-09-04 21:57:51 +09:00
minjaesong
2d894613df new typeface for the experimental typewriter 2022-08-31 23:13:47 +09:00
minjaesong
60a1da1336 more cyrillic touchups 2022-08-18 19:39:02 +09:00
minjaesong
123d856853 forgot to make tga of these files 2022-08-03 00:55:42 +09:00
minjaesong
617e0bc5b1 fixed a bug where cyrillic 'ь' was tagged as 1 px narrower than it should be 2022-08-03 00:41:42 +09:00
minjaesong
0a873b3801 fixed a bug where glyphs in alternative charcter sets (namele bulgarian and serbian) would not override the glyph props of the base glyphs 2022-08-02 22:54:18 +09:00
minjaesong
3c97253c9a minor edit 2022-07-18 13:04:07 +09:00
minjaesong
f228c331cf keycap: added ctrl and alt 2022-07-01 02:13:40 +09:00
84 changed files with 2811 additions and 429 deletions

3
.gitattributes vendored
View File

@@ -8,3 +8,6 @@
*.kra filter=lfs diff=lfs merge=lfs -text *.kra filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text *.png filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text *.wav filter=lfs diff=lfs merge=lfs -text
*.tga binary diff=hex
*.kra binary diff=hex

124
.idea/uiDesigner.xml generated Normal file
View File

@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

85
.idea/workspace.xml generated Executable file → Normal file
View File

@@ -10,34 +10,30 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="22c5bc80-996c-4846-b173-7dc8c2096fe3" name="Default" comment=""> <list default="true" id="22c5bc80-996c-4846-b173-7dc8c2096fe3" name="Default" comment="">
<change afterPath="$PROJECT_DIR$/.idea/libraries/lib.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/badlogicgames_gdx.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/badlogicgames_gdx_backend_lwjgl3.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/runConfigurations.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BuildJAR_TerrarumSansBitmap.iml" beforeDir="false" afterPath="$PROJECT_DIR$/BuildJAR_TerrarumSansBitmap.iml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt" beforeDir="false" afterPath="$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/FontTestGDX/FontTestGDX.iml" beforeDir="false" afterPath="$PROJECT_DIR$/FontTestGDX/FontTestGDX.iml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/assets/cjkpunct.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/cjkpunct.tga" afterDir="false" />
<change beforePath="$PROJECT_DIR$/assets/ascii_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/ascii_variable.tga" afterDir="false" /> <change beforePath="$PROJECT_DIR$/assets/currencies_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/currencies_variable.tga" afterDir="false" />
<change beforePath="$PROJECT_DIR$/assets/cyrilic_bulgarian_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/cyrilic_bulgarian_variable.tga" afterDir="false" /> <change beforePath="$PROJECT_DIR$/assets/futhark.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/futhark.tga" afterDir="false" />
<change beforePath="$PROJECT_DIR$/assets/cyrilic_serbian_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/cyrilic_serbian_variable.tga" afterDir="false" />
<change beforePath="$PROJECT_DIR$/assets/cyrilic_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/cyrilic_variable.tga" afterDir="false" />
<change beforePath="$PROJECT_DIR$/assets/greek_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/greek_variable.tga" afterDir="false" />
<change beforePath="$PROJECT_DIR$/assets/latinExtA_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/latinExtA_variable.tga" afterDir="false" />
<change beforePath="$PROJECT_DIR$/assets/latinExtB_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/latinExtB_variable.tga" afterDir="false" />
<change beforePath="$PROJECT_DIR$/assets/latinExtC_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/latinExtC_variable.tga" afterDir="false" /> <change beforePath="$PROJECT_DIR$/assets/latinExtC_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/latinExtC_variable.tga" afterDir="false" />
<change beforePath="$PROJECT_DIR$/assets/latinExtD_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/latinExtD_variable.tga" afterDir="false" /> <change beforePath="$PROJECT_DIR$/assets/richtext_furigana.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/richtext_furigana.tga" afterDir="false" />
<change beforePath="$PROJECT_DIR$/assets/latinExt_additional_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/latinExt_additional_variable.tga" afterDir="false" /> <change beforePath="$PROJECT_DIR$/assets/typewriter/typewriter_intl_qwerty.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/typewriter/typewriter_intl_qwerty.tga" afterDir="false" />
<change beforePath="$PROJECT_DIR$/demo.PNG" beforeDir="false" afterPath="$PROJECT_DIR$/demo.PNG" afterDir="false" /> <change beforePath="$PROJECT_DIR$/assets/typewriter/typewriter_ko_3set-390.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/typewriter/typewriter_ko_3set-390.tga" afterDir="false" />
<change beforePath="$PROJECT_DIR$/work_files/ascii_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/ascii_variable.psd" afterDir="false" /> <change beforePath="$PROJECT_DIR$/assets/wenquanyi.tga.gz" beforeDir="false" afterPath="$PROJECT_DIR$/assets/wenquanyi.tga.gz" afterDir="false" />
<change beforePath="$PROJECT_DIR$/work_files/cyrilic_bulgarian_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/cyrilic_bulgarian_variable.psd" afterDir="false" /> <change beforePath="$PROJECT_DIR$/font_drawing_template.png" beforeDir="false" afterPath="$PROJECT_DIR$/font_drawing_template.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/work_files/cyrilic_serbian_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/cyrilic_serbian_variable.psd" afterDir="false" /> <change beforePath="$PROJECT_DIR$/glyph_height_pos_annotation.png" beforeDir="false" afterPath="$PROJECT_DIR$/glyph_height_pos_annotation.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/work_files/cyrilic_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/cyrilic_variable.psd" afterDir="false" /> <change beforePath="$PROJECT_DIR$/samples/wikipedia_x86.png" beforeDir="false" afterPath="$PROJECT_DIR$/samples/wikipedia_x86.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/work_files/greek_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/greek_variable.psd" afterDir="false" /> <change beforePath="$PROJECT_DIR$/terrarum_sans_cyrillic_2.png" beforeDir="false" afterPath="$PROJECT_DIR$/terrarum_sans_cyrillic_2.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/work_files/latinExtA_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/latinExtA_variable.psd" afterDir="false" /> <change beforePath="$PROJECT_DIR$/testing.PNG" beforeDir="false" afterPath="$PROJECT_DIR$/testing.PNG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/work_files/latinExtB_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/latinExtB_variable.psd" afterDir="false" /> <change beforePath="$PROJECT_DIR$/testtext.txt" beforeDir="false" afterPath="$PROJECT_DIR$/testtext.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/work_files/latinExtC_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/latinExtC_variable.psd" afterDir="false" /> <change beforePath="$PROJECT_DIR$/width_bit_encoding_annotated.png" beforeDir="false" afterPath="$PROJECT_DIR$/width_bit_encoding_annotated.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/work_files/latinExtD_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/latinExtD_variable.psd" afterDir="false" /> <change beforePath="$PROJECT_DIR$/work_files/typewriter_input/alphnum_glyphs_master.kra" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/typewriter_input/alphnum_glyphs_master.kra" afterDir="false" />
<change beforePath="$PROJECT_DIR$/work_files/latinExt_additional_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/latinExt_additional_variable.psd" afterDir="false" /> <change beforePath="$PROJECT_DIR$/work_files/typewriter_input/alphnum_glyphs_resized.kra" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/typewriter_input/alphnum_glyphs_resized.kra" afterDir="false" />
<change beforePath="$PROJECT_DIR$/work_files/typewriter_input/hangul_3set_glyphs_master.kra" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/typewriter_input/hangul_3set_glyphs_master.kra" afterDir="false" />
<change beforePath="$PROJECT_DIR$/work_files/typewriter_input/typewriter_input_template.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/typewriter_input/typewriter_input_template.psd" afterDir="false" />
<change beforePath="$PROJECT_DIR$/work_files/typewriter_input/typewriter_intl_qwerty.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/typewriter_input/typewriter_intl_qwerty.psd" afterDir="false" />
<change beforePath="$PROJECT_DIR$/work_files/typewriter_input/typewriter_ko_3set-390.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/typewriter_input/typewriter_ko_3set-390.psd" afterDir="false" />
<change beforePath="$PROJECT_DIR$/work_files/typewriter_input/typewriter_ko_3set_glyphs_resized.kra" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/typewriter_input/typewriter_ko_3set_glyphs_resized.kra" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -64,26 +60,22 @@
<filtered-out-file-type name="COMMIT_BY_MESSAGE" /> <filtered-out-file-type name="COMMIT_BY_MESSAGE" />
</file-type-list> </file-type-list>
</component> </component>
<component name="MarkdownSettingsMigration">
<option name="stateVersion" value="1" />
</component>
<component name="ProjectId" id="1aVE5t6KObkWt36lb07GBy1GY1S" /> <component name="ProjectId" id="1aVE5t6KObkWt36lb07GBy1GY1S" />
<component name="ProjectViewState"> <component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" /> <option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" /> <option name="showLibraryContents" value="true" />
</component> </component>
<component name="PropertiesComponent"> <component name="PropertiesComponent">{
<property name="Downloaded.Files.Path.Enabled" value="false" /> &quot;keyToString&quot;: {
<property name="Repository.Attach.Annotations" value="false" /> &quot;last_opened_file_path&quot;: &quot;/home/torvald/Documents/Terrarum-sans-bitmap&quot;,
<property name="Repository.Attach.JavaDocs" value="false" /> &quot;project.structure.last.edited&quot;: &quot;Artifacts&quot;,
<property name="Repository.Attach.Sources" value="false" /> &quot;project.structure.proportion&quot;: &quot;0.0&quot;,
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" /> &quot;project.structure.side.proportion&quot;: &quot;0.0&quot;
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" /> }
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" /> }</component>
<property name="SearchEverywhereHistoryKey" value="HashMap&#9;PSI&#9;JAVA://java.util.HashMap&#10;soft wr&#9;ACTION&#9;EditorToggleUseSoftWraps" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/lib" />
<property name="project.structure.last.edited" value="Libraries" />
<property name="project.structure.proportion" value="0.15" />
<property name="project.structure.side.proportion" value="0.32068965" />
<property name="settings.editor.selected.configurable" value="preferences.keymap" />
</component>
<component name="RecentsManager"> <component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS"> <key name="MoveFile.RECENT_KEYS">
<recent name="C:\Users\minjaesong\Documents\Terrarum-sans-bitmap\" /> <recent name="C:\Users\minjaesong\Documents\Terrarum-sans-bitmap\" />
@@ -91,7 +83,7 @@
<recent name="C:\Users\minjaesong\Documents\Terrarum-sans-bitmap\FontTestGDX\src" /> <recent name="C:\Users\minjaesong\Documents\Terrarum-sans-bitmap\FontTestGDX\src" />
</key> </key>
</component> </component>
<component name="RunManager"> <component name="RunManager" selected="Kotlin.FontTestGDXKt">
<configuration default="true" type="Applet"> <configuration default="true" type="Applet">
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" /> <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
<method v="2"> <method v="2">
@@ -134,6 +126,13 @@
</option> </option>
</method> </method>
</configuration> </configuration>
<configuration name="TypewriterGDXKt" type="JetRunConfigurationType" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="TypewriterGDXKt" />
<module name="FontTestGDX" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="KotlinStandaloneScriptRunConfigurationType"> <configuration default="true" type="KotlinStandaloneScriptRunConfigurationType">
<option name="filePath" /> <option name="filePath" />
<method v="2"> <method v="2">
@@ -161,6 +160,7 @@
<recent_temporary> <recent_temporary>
<list> <list>
<item itemvalue="Kotlin.FontTestGDXKt" /> <item itemvalue="Kotlin.FontTestGDXKt" />
<item itemvalue="Kotlin.TypewriterGDXKt" />
</list> </list>
</recent_temporary> </recent_temporary>
</component> </component>
@@ -197,7 +197,6 @@
</entry> </entry>
</map> </map>
</option> </option>
<option name="oldMeFiltersMigrated" value="true" />
</component> </component>
<component name="XSLT-Support.FileAssociations.UIState"> <component name="XSLT-Support.FileAssociations.UIState">
<expand /> <expand />

4
BuildJAR_TerrarumSansBitmap.iml Executable file → Normal file
View File

@@ -5,9 +5,9 @@
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="jdk" jdkName="1.8.0_242" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="KotlinJavaRuntime" level="project" /> <orderEntry type="library" name="KotlinJavaRuntime" level="project" />
<orderEntry type="library" name="lib" level="project" /> <orderEntry type="library" scope="PROVIDED" name="lib" level="project" />
</component> </component>
</module> </module>

2
FontTestGDX/FontTestGDX.iml Executable file → Normal file
View File

@@ -5,7 +5,7 @@
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="jdk" jdkName="1.8.0_242" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="BuildJAR_TerrarumSansBitmap" /> <orderEntry type="module" module-name="BuildJAR_TerrarumSansBitmap" />
<orderEntry type="library" name="KotlinJavaRuntime" level="project" /> <orderEntry type="library" name="KotlinJavaRuntime" level="project" />

View File

@@ -4,9 +4,12 @@ import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration
import com.badlogic.gdx.files.FileHandle import com.badlogic.gdx.files.FileHandle
import com.badlogic.gdx.graphics.* import com.badlogic.gdx.graphics.*
import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.g2d.TextureRegion
import com.badlogic.gdx.graphics.glutils.FrameBuffer import com.badlogic.gdx.graphics.glutils.FrameBuffer
import com.badlogic.gdx.utils.ScreenUtils import com.badlogic.gdx.utils.ScreenUtils
import com.badlogic.gdx.utils.StreamUtils import com.badlogic.gdx.utils.StreamUtils
import net.torvald.terrarumsansbitmap.MovableType
import net.torvald.terrarumsansbitmap.gdx.CodepointSequence
import net.torvald.terrarumsansbitmap.gdx.TerrarumSansBitmap import net.torvald.terrarumsansbitmap.gdx.TerrarumSansBitmap
import java.io.File import java.io.File
import java.io.IOException import java.io.IOException
@@ -19,9 +22,9 @@ class FontTestGDX : Game() {
lateinit var font: TerrarumSansBitmap lateinit var font: TerrarumSansBitmap
lateinit var inputText: List<String> lateinit var inputText: String
lateinit var batch: SpriteBatch lateinit var batch: FlippingSpriteBatch
lateinit var frameBuffer: FrameBuffer lateinit var frameBuffer: FrameBuffer
@@ -29,22 +32,31 @@ class FontTestGDX : Game() {
private val testing = false private val testing = false
private val demotextName = if (testing) "testtext.txt" else "demotext.txt" private val demotextName = if (testing) "testtext.txt" else "demotext_unaligned.txt"
private val outimageName = if (testing) "testing.PNG" else "demo.PNG" private val outimageName = if (testing) "testing.PNG" else "demo.PNG"
private lateinit var faketex: Texture private lateinit var faketex: Texture
private val lineHeight = 24 private val lineHeight = 24
lateinit var layout: MovableType
private lateinit var testtex: TextureRegion
override fun create() { override fun create() {
font = TerrarumSansBitmap("./assets", debug = true, flipY = false, errorOnUnknownChar = false, shadowAlpha = 0.5f) // must test for two flipY cases font = TerrarumSansBitmap("./assets", debug = true, flipY = false, errorOnUnknownChar = false, shadowAlpha = 0.5f) // must test for two flipY cases
// font.scale = 2
// font.interchar = 1
testtex = TextureRegion(Texture("./testtex.tga"))
val inTextFile = Gdx.files.internal("./$demotextName") val inTextFile = Gdx.files.internal("./$demotextName")
val reader = inTextFile.reader("UTF-8") val reader = inTextFile.reader("UTF-8")
inputText = reader.readLines() inputText = reader.readLines().joinToString("\n")
reader.close() reader.close()
batch = SpriteBatch() batch = FlippingSpriteBatch()
// create faketex // create faketex
@@ -56,12 +68,28 @@ class FontTestGDX : Game() {
frameBuffer = FrameBuffer(Pixmap.Format.RGBA8888, TEXW, TEXH, true) frameBuffer = FrameBuffer(Pixmap.Format.RGBA8888, TEXW, TEXH, true)
camera = OrthographicCamera(TEXW.toFloat(), TEXH.toFloat()) camera = OrthographicCamera(TEXW.toFloat(), TEXH.toFloat())
camera.translate(TEXW.div(2f), 0f) camera.translate(0f, 0f)
camera.setToOrtho(true, TEXW.toFloat(), TEXH.toFloat()) camera.setToOrtho(false, TEXW.toFloat(), TEXH.toFloat())
camera.update() camera.update()
Gdx.input.inputProcessor = Navigator(this) Gdx.input.inputProcessor = Navigator(this)
println(font.charsetOverrideCodestyle)
println(font.charsetOverrideDefault)
val cs1 = CodepointSequence(listOf(0, 65, 0))
val cs2 = CodepointSequence(listOf(0, 65))
val cs3 = CodepointSequence(listOf(65, 0))
val cs4 = CodepointSequence(listOf(65))
println("w1: ${font.getWidthNormalised(cs1)}; ${font.getWidth(cs1)}")
println("w2: ${font.getWidthNormalised(cs2)}; ${font.getWidth(cs2)}")
println("w3: ${font.getWidthNormalised(cs3)}; ${font.getWidth(cs3)}")
println("w4: ${font.getWidthNormalised(cs4)}; ${font.getWidth(cs4)}")
println("These four numbers must match, even with interchar > 0")
layout = font.typesetParagraph(batch, inputText, TEXW - 48)
} }
override fun getScreen(): Screen? { override fun getScreen(): Screen? {
@@ -97,9 +125,17 @@ class FontTestGDX : Game() {
batch.flush() batch.flush()
batch.color = Color.WHITE batch.color = Color.WHITE
inputText.forEachIndexed { index, s -> // inputText.forEachIndexed { index, s ->
font.draw(batch, s, 10f, TEXH - 30f - index * lineHeight) // font.draw(batch, s, 10f, TEXH - 30f - index * lineHeight)
} // }
// draw position debuggers
// font.draw(batch, "soft\uFE0F\u00ADhyphen\uFE0F\u00ADated", 24f, 12f)
// batch.draw(testtex, 24f, 12f)
// val layoutDrawCall = { x: Float, y: Float, _: Int -> batch.draw(testtex, x, y) }
// layout.draw(batch, 24f, 12f, mapOf(0 to layoutDrawCall))
// end of draw position debuggers
layout.draw(batch, 24f, 12f)
batch.end() batch.end()
@@ -130,12 +166,12 @@ class FontTestGDX : Game() {
Gdx.gl.glEnable(GL20.GL_BLEND) Gdx.gl.glEnable(GL20.GL_BLEND)
batch.setBlendFunctionSeparate(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA, GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA) // for not premultiplied textures batch.setBlendFunctionSeparate(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA, GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA) // for not premultiplied textures
camera.setToOrtho(true, WIDTH.toFloat(), HEIGHT.toFloat())
batch.projectionMatrix = camera.combined
batch.begin() batch.begin()
batch.color = Color.WHITE batch.color = Color.WHITE
batch.draw(tex, 0f, (TEXH.toFloat()/HEIGHT)*TEXH - scrollOffsetY, TEXW.toFloat(), -(TEXH.toFloat() / HEIGHT) * TEXH.toFloat()) batch.draw(tex!!, 0f, scrollOffsetY)
batch.end() batch.end()
} }
@@ -151,14 +187,15 @@ class FontTestGDX : Game() {
override fun dispose() { override fun dispose() {
font.dispose() font.dispose()
faketex.dispose() faketex.dispose()
testtex.texture.dispose()
} }
fun scrollAdd(x: Int = 1) { fun scrollAdd(x: Int = 1) {
scrollOffsetY -= (TEXH.toFloat() / HEIGHT) * lineHeight * x scrollOffsetY += lineHeight * x
} }
fun scrollSub(x: Int = 1) { fun scrollSub(x: Int = 1) {
scrollOffsetY += (TEXH.toFloat() / HEIGHT) * lineHeight * x scrollOffsetY -= lineHeight * x
} }
class Navigator(val main: FontTestGDX) : InputAdapter() { class Navigator(val main: FontTestGDX) : InputAdapter() {
@@ -267,9 +304,52 @@ class FontTestGDX : Game() {
} }
} }
class FlippingSpriteBatch(size: Int = 1000) : SpriteBatch(size) {
/**
* This function draws the flipped version of the image by giving flipped uv-coord to the SpriteBatch
*/
override fun draw(texture: Texture, x: Float, y: Float, width: Float, height: Float) =
draw(texture, x, y, width, height, 0f, 0f, 1f, 1f)
override fun draw(texture: Texture, x: Float, y: Float) =
draw(texture, x, y, texture.width.toFloat(), texture.height.toFloat(), 0f, 0f, 1f, 1f)
fun drawFlipped(texture: Texture, x: Float, y: Float, width: Float, height: Float) =
draw(texture, x, y, width, height, 0f, 1f, 1f, 0f)
fun drawFlipped(texture: Texture, x: Float, y: Float) =
draw(texture, x, y, texture.width.toFloat(), texture.height.toFloat(), 0f, 1f, 1f, 0f)
/**
* This function does obey the flipping set to the TextureRegion and try to draw flipped version of it,
* without touching the flipping setting of the given region.
*/
override fun draw(region: TextureRegion, x: Float, y: Float, width: Float, height: Float) =
draw(region.texture, x, y, width, height, region.u, region.v, region.u2, region.v2)
override fun draw(region: TextureRegion, x: Float, y: Float) =
draw(region.texture, x, y, region.regionWidth.toFloat(), region.regionHeight.toFloat(), region.u, region.v, region.u2, region.v2)
fun drawFlipped(region: TextureRegion, x: Float, y: Float, width: Float, height: Float) =
draw(region.texture, x, y, width, height, region.u, region.v2, region.u2, region.v)
fun drawFlipped(region: TextureRegion, x: Float, y: Float) =
draw(region.texture, x, y, region.regionWidth.toFloat(), region.regionHeight.toFloat(), region.u, region.v2, region.u2, region.v)
/**
* NOTE TO SELF:
*
* It seems that original SpriteBatch Y-flips when it's drawing a texture, but NOT when it's drawing a textureregion
*
* (textureregion's default uv-coord is (0,0,1,1)
*/
}
lateinit var appConfig: Lwjgl3ApplicationConfiguration lateinit var appConfig: Lwjgl3ApplicationConfiguration
const val TEXW = 874 const val TEXW = 800
const val TEXH = 24 * 130 const val TEXH = 24 * 171
const val WIDTH = TEXW const val WIDTH = TEXW
const val HEIGHT = 768 const val HEIGHT = 768

View File

@@ -1,4 +1,4 @@
Copyright (c) 2017-2022 see CONTRIBUTORS.txt Copyright (c) 2017-2024 CuriousTorvald (minjaesong)
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

Binary file not shown.

View File

@@ -2,16 +2,16 @@
![Font sample — necessary information in this image is also provided below.](demo.PNG) ![Font sample — necessary information in this image is also provided below.](demo.PNG)
This font is a bitmap font used in [my game project called Terrarum](https://github.com/minjaesong/Terrarum) (hence the name). The font supports more than 90 % of european languages, as well as Chinese, Japanese and Korean. More technical side, it supports Latin-1 Supplement, Latin Ext-A/B/C, IPA Extension, Greek, Cyrillic (+ Bulgarian, Serbian variants) and the supplement, Armenian, Devanagari, Bengali, Thai, Georgian (Mkhedruli and Mtavruli), General Punctuations, Super/Subscrips, CJK Punctuations, All of the Kana (minus the Hentaigana), Chinese (limited to Unihan and Ext-A), Hangul (every possible syllables) and Fullwidth forms. This font is a bitmap font used in [my game project called Terrarum](https://github.com/minjaesong/Terrarum) (hence the name). The font supports more than 90 % of european languages, as well as Chinese, Japanese, and Korean.
The JAR package is meant to be used with LibGDX (extends ```BitmapFont``` class). If you are not using the framework, please refer to the __Font metrics__ section to implement the font metrics correctly on your system. The JAR package is meant to be used with LibGDX (extends ```BitmapFont``` class). If you are not using the framework, please refer to the __Font metrics__ section to implement the font metrics correctly on your system.
The issue page is open. If you have some issues to submit, or have a question, please leave it on the page. The issue page is open. If you have some issues to submit, or have a question, please leave it on the page.
#### Little notes #### Notes and Limitations
- To display Bulgarian/Serbian variants, you need special Control Characters. (GameFontBase.charsetOverrideBulgarian -- U+FFFC1; GameFontBase.charsetOverrideSerbian -- U+FFFC2) - Displaying Bulgarian/Serbian variants of Cyrillic requires special Control Characters. (`GameFontBase.charsetOverrideBulgarian` -- U+FFFC1; `GameFontBase.charsetOverrideSerbian` -- U+FFFC2)
- All Han characters are in Chinese variant, no other variants are to be supported as most Chinese, Japanese and Korean people can understand other's variant and as long as I can, we don't bother anyway. - All Han characters are in Mainland Chinese variant. There is no plan to support the other variants unless there is someone willing to do the drawing of the characters
- Indian script in general is not perfect: right now this font will never do the proper ligatures (I can't draw all the 1 224 possible combinations). Hopefully it's still be able to understand without them. - Only the Devanagari and Tamil has full (as much as I can) ligature support for Indic scripts -- Bengali script does not have any ligature support
- Slick2d versions are now unsupported. I couldn't extend myself to work on both versions, but I'm still welcome to merge your pull requests. - Slick2d versions are now unsupported. I couldn't extend myself to work on both versions, but I'm still welcome to merge your pull requests.
### Design Goals ### Design Goals
@@ -33,12 +33,14 @@ The issue page is open. If you have some issues to submit, or have a question, p
On your code (Kotlin): On your code (Kotlin):
import net.torvald.terrarumsansbitmap.gdx.TerrarumSansBitmap
class YourGame : Game() { class YourGame : Game() {
lateinit var fontGame: Font lateinit var fontGame: Font
override fun create() { override fun create() {
fontGame = GameFontBase(path_to_assets) fontGame = TerrarumSansBitmap(path_to_assets, ...)
... ...
} }
@@ -53,12 +55,14 @@ On your code (Kotlin):
On your code (Java): On your code (Java):
import net.torvald.terrarumsansbitmap.gdx.TerrarumSansBitmap;
class YourGame extends BasicGame { class YourGame extends BasicGame {
Font fontGame; Font fontGame;
@Override void create() { @Override void create() {
fontGame = new GameFontBase(path_to_assets); fontGame = new TerrarumSansBitmap(path_to_assets, ...);
... ...
} }
@@ -71,43 +75,6 @@ On your code (Java):
} }
} }
### Using on Slick2d (legacy version only)
On your code (Kotlin):
class YourGame : BasicGame("YourGameName") {
lateinit var fontGame: Font
override fun init(gc: GameContainer) {
fontGame = GameFontBase(path_to_assets)
...
}
override fun render(gc: GameContainer, g: Graphics) {
g.font = fontGame
g.drawString(...)
}
}
On your code (Java):
class YourGame extends BasicGame {
Font fontGame;
@Override void init(GameContainer gc) {
fontGame = new GameFontBase(path_to_assets);
...
}
@Override void render(GameContainer gc, Graphics g) {
g.setFont(fontGame);
g.drawString(...);
}
}
### How to Use Color Code ### How to Use Color Code
Color codes are individual unicode characters. While you can somehow make a raw character and paste in on your code, it's certainly not desirable. Fortunately, we're also providing utility functions for the color codes. Color codes are individual unicode characters. While you can somehow make a raw character and paste in on your code, it's certainly not desirable. Fortunately, we're also providing utility functions for the color codes.
@@ -130,4 +97,4 @@ Please refer to [CONTRIBUTING.md](https://github.com/minjaesong/Terrarum-sans-bi
Thanks to kind people of [/r/Typography](https://www.reddit.com/r/typography/) for amazing feedbacks. Thanks to kind people of [/r/Typography](https://www.reddit.com/r/typography/) for amazing feedbacks.
CJK Ideographs are powered by [WenQuanYi Font](http://wenq.org/wqy2/index.cgi?BitmapSong). The font is distributed under the GNU GPL version 2. Although the shapes of typefaces are not copyrightable (the program codes—e.g. TTF—do), we would like to give a credit for the font and the people behind it. CJK Ideographs are powered by [WenQuanYi Font](http://wenq.org/wqy2/index.cgi?BitmapSong). The font is distributed under the GNU GPL version 2. Although the shapes of typefaces are not copyrightable (the program codes—e.g. TTF—do), we would like to give a credit to the font and the people behind it.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

BIN
assets/cjkpunct_variable.tga LFS Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/hentaigana_variable.tga LFS Normal file

Binary file not shown.

BIN
assets/kana.tga LFS

Binary file not shown.

BIN
assets/kana_variable.tga LFS Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

After

Width:  |  Height:  |  Size: 131 B

BIN
demo.PNG

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 167 KiB

View File

@@ -1,4 +1,4 @@
􏿆The bitmap font for games developers who seek good font that has real multilingual support,􀀀 􏿆The bitmap font for game developers who seek good font that has real multilingual support,􀀀
􏿆for free (as in freedom and without cost)􀀀 􏿆for free (as in freedom and without cost)􀀀
There are many bitmap fonts on the internet. You care for the multilingual support, but alas! There are many bitmap fonts on the internet. You care for the multilingual support, but alas!

158
demotext_unaligned.txt Executable file
View File

@@ -0,0 +1,158 @@
􏿆The bitmap font for game developers who seek good font that has real multilingual support, for free (as in freedom and without cost)􀀀
There are many bitmap fonts on the internet. You care for the multilingual support, but alas! most of them do not support your language, vector fonts take too much time to load, and even then their legibility suffers because screw built-in antialias.
You somehow found a multilingual one, and it makes your text as if they came straight from an old computer terminal, and you say:
“Well, better than nothing… no, its ugly.”
You speak Japanese and wish to support it, but then このクソなfont only good for displaying Japanese, its not even truly multilingual, and their English look uncanny and inconsistent.
Eventually you just mix different fonts together, and the results were always mildly infuriating.
No more suffering. This font has everything you need.
􏾐while􀀀 (isVisible(􏺟BAD_FONTS􀀀)) {
ripAndTear(􏺟BAD_FONTS􀀀).where { 􏺟GUTS􀀀 };
}
How multilingual? Real multilingual!
􏻬Ианҵоуп ақьаад, нусхур аҩырала, ҩ ҽшьаҟакла, иҧшӡоу анапҩырала􀀀
􏻬գրիչս վայր դրի, վեր կացա և պատրաստվում էի, որ քնեմ, երբ հանկարծ դռանս զանգակը հնչեց􀀀
􏻬ՄՇԱԿԻՉ ԿԱՄ ԿԵՆՏՐՈՆԱԿԱՆ ՄՇԱԿԻՉ ՀԱՆԳՈՒՅՑԸ ՀԱՆԴԻՍԱՆՈՒՄ Է ՀԱՄԱԿԱՐԳՉԻ ՍԱՐՔԱՎՈՐՈՒՄՆԵՐԻՑ􀀀
􏻬Zəfər, jaketini də papağını da götür, bu axşam hava çox soyuq olacaq􀀀
􏻬আমি কাঁচ খেতে পারি, তাতে আমার কোনো ক্ষতি হয় না। 􀀀
􏻬󿿁Под южно дърво, цъфтящо в синьо, бягаше малко пухкаво зайче󿿀􀀀
􏻬ᎠᏍᎦᏯᎡᎦᎢᎾᎨᎢᎣᏍᏓᎤᎩᏍᏗᎥᎴᏓᎯᎲᎢᏔᎵᏕᎦᏟᏗᏖᎸᎳᏗᏗᎧᎵᎢᏘᎴᎩ ᏙᏱᏗᏜᏫᏗᏣᏚᎦᏫᏛᏄᏓᎦᏝᏃᎠᎾᏗᎭᏞᎦᎯᎦᏘᏓᏠᎨᏏᏕᏡᎬᏢᏓᏥᏩᏝᎡᎢᎪᎢ ᎠᎦᏂᏗᎮᎢᎫᎩᎬᏩᎴᎢᎠᏆᏅᏛᎫᏊᎾᎥᎠᏁᏙᎲᏐᏈᎵᎤᎩᎸᏓᏭᎷᏤᎢᏏᏉᏯᏌᏊ ᎤᏂᏋᎢᏡᎬᎢᎰᏩᎬᏤᎵᏍᏗᏱᎩᎱᎱᎤᎩᎴᎢᏦᎢᎠᏂᏧᏣᏨᎦᏥᎪᎥᏌᏊᎤᎶᏒᎢᎢᏡᎬᎢ ᎹᎦᎺᎵᏥᎻᎼᏏᎽᏗᏩᏂᎦᏘᎾᎿᎠᏁᎬᎢᏅᎩᎾᏂᎡᎢᏌᎶᎵᏎᎷᎠᏑᏍᏗᏪᎩ ᎠᎴ ᏬᏗᏲᏭᎾᏓᏍᏓᏴᏁᎢᎤᎦᏅᏮᏰᎵᏳᏂᎨᎢ􀀀
􏻬Příliš žluťoučký kůň úpěl ďábelské ódy􀀀
􏻬Quizdeltagerne spiste jordbær med fløde, mens cirkusklovnen Walther spillede på xylofon􀀀
􏻬PACK MY BOX WITH FIVE DOZEN LIQUOR JUGS􀀀
􏻬hƿæt ƿe ᵹardena inᵹear ꝺaᵹum þeoꝺ cynninᵹa þꞃym ᵹeꝼꞃumon􀀀
􏻬Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich GROẞEN GROẞE􀀀
􏻬ζαφείρι δέξου πάγκαλο, βαθῶν ψυχῆς τὸ σῆμα􀀀
􏻬ΔΙΑΦΥΛΆΞΤΕ ΓΕΝΙΚΆ ΤΗ ΖΩΉ ΣΑΣ ΑΠΌ ΒΑΘΕΙΆ ΨΥΧΙΚΆ ΤΡΑΎΜΑΤΑ􀀀
􏻬სწრაფი ყავისფერი მელა გადაახტა ზარმაც ძაღლს ᲘᲜᲢᲔᲚ ᲞᲔᲜᲢᲘᲣᲛᲘ ᲛᲘᲙᲠᲝᲞᲠᲝᲪᲔᲡᲝᲠᲘ􀀀
􏻬ऋषियों को सताने वाले दुष्ट राक्षसों के राजा रावण का सर्वनाश करने वाले विष्णुवतार भगवान श्रीराम अयोध्या के महाराज दशरथ के􀀀
􏻬Kæmi ný öxi hér, ykist þjófum nú bæði víl og ádrepa􀀀
􏻬Ċuaiġ bé ṁórṡáċ le dlúṫspád fíoꝛḟinn trí hata mo ḋea-ṗoꝛcáin ḃig􀀀
􏻬あめつちほしそら やまかはみねたに くもきりむろこけ ひといぬうへすゑ ゆわさるおふせよ えの𛀁をなれゐて􀀀
􏻬トリナクコヱス ユメサマセ ミヨアケワタル ヒンカシヲ ソライロハエテ オキツヘニ ホフネムレヰヌ モヤノウチ􀀀
􏻬田居に出で 菜摘むわれをぞ 君召すと 求食り追ひゆく 山城の 打酔へる子ら 藻葉干せよ え舟繋けぬ􀀀
􏻬정 참판 양반댁 규수 큰 교자 타고 혼례 치른 날  찦차를 타고 온 펲시맨과 쑛다리 똠방각하􀀀
􏻬쾅 ᄒᆞ는 소리 헨 “아이구 베락 털어져ᇝ인가?” 영 걷어진 쥥은 몰르곡 경헨 ᄇᆞᆰ도록 ᄌᆞᆷ ᄒᆞᆫᄌᆞᆷ들 안 잣수다􀀀
􏻬Četri psihi faķīri vēlu vakarā zāģēja guļbūvei durvis, fonā šņācot mežam􀀀
􏻬Įlinkdama fechtuotojo špaga sublykčiojusi pragręžė apvalų arbūzą􀀀
􏻬Ѕидарски пејзаж: шугав билмез со чудење џвака ќофте и кељ на туѓ цех􀀀
􏻬Щётканы фермд пийшин цувъя. Бөгж зогсч хэльюү􀀀
􏻬Pchnąć w tę łódź jeża lub ośm skrzyń fig􀀀
􏻬Înjurând pițigăiat, zoofobul comandă vexat whisky și tequila􀀀
􏻬Широкая электрификация южных губерний даст мощный толчок подъёму сельского хозяйства􀀀
􏻬अद्वैतामृवर्षिणीं भगवतीमष्टादशाध्यायिनीम् अम्ब त्वामनुसन्दधामि भगवद्गीते भवद्वेषिणीम् ॥􀀀
􏻬󿿂Ајшо, лепото и чежњо, за љубав срца мога дођи у Хаџиће на кафу󿿀􀀀
􏻬ᮙᮛᮔᮨᮂᮔ ᮓᮤᮘᮨᮛᮨ ᮃᮊᮜ᮪ ᮏᮩᮀ ᮠᮒᮨ ᮔᮥᮛᮔᮤ, ᮎᮙ᮪ᮕᮥᮁ-ᮌᮅᮜ᮪ ᮏᮩᮀ ᮞᮞᮙᮔ ᮃᮚ ᮓᮤᮔ ᮞᮥᮙᮔᮨᮒ᮪ ᮓᮥᮓᮥᮜᮥᮛᮔ᮪􀀀
􏻬Jovencillo emponzoñado de whisky: ¡qué figurota exhibe!􀀀
􏻬எழுத்து வடிவங்களுக்கு வார்த்தைகள் மற்றும் வாக்கியங்கள் போலவே தொனி, ஒலி பண்பு, தன்மை உண்டு􀀀
􏻬นายสังฆภัณฑ์ เฮงพิทักษ์ฝั่ง ผู้เฒ่าซึ่งมีอาชีพเป็นฅนขายฃวด ถูกตำรวจปฏิบัติการจับฟ้องศาล ฐานลักนาฬิกาคุณหญิงฉัตรชฎา ฌานสมาธิ􀀀
􏻬Pijamalı hasta yağız şoföre çabucak güvendi􀀀
􏻬Жебракують філософи при ґанку церкви в Гадячі, ще й шатро їхнє п’яне знаємо􀀀
􏻬Do bạch kim rất quý nên sẽ dùng để lắp vô xương􀀀
􏻬日堀油告観観藤村抄海評業庁経賃室弁市。太撮収改売週法所何都慣次現。価紙一無三洋日話転手治稿載末替付致治。􀀀
􏻬[pʰnɣɬɥi.m͡ŋχɫʍɨnaɸ.cθʊɫɯ.ɹɨɫʏ͡ɛx.ɯ͡ɣaxɲaɣɫ.ɸtʰɑɣɴ]􀀀
􏻬⠑⠥⠊⠵⠀⠟⠫⠒⠵⠀⠓⠗⠎⠉⠂⠀⠠⠊⠗⠘⠍⠓⠎⠀⠨⠣⠩⠐⠥⠍⠑⠱⠀⠈⠪⠀⠨⠷⠎⠢⠈⠧⠀⠈⠏⠒⠐⠕⠝⠀⠕⠌⠎⠀⠊⠿⠊⠪⠶⠚⠊􀀀
􏃯Features:􀀀
􏻬Heard of « Guillemets »? You speak „Nederlands” or „Deutsch“? ”suomi”? 「日本語」しゃべる?或《中文》?􀀀
􎳌‣ Multilingual brackets; these are the most basic things, right?􀀀
􏋶99406 91902 59186 29182 45814 57862 34368 08240􀀀
􏋶31485 65379 04348 28952 42927 26157 42615 39526􀀀
􎳌‣ Fixed-width (tabulated) numbers, because number-crunching matters􀀀
􏼀ᚱ􏼐ᛂ􏼠ᚴ􏼰ᛋ􏽀ᛂ􏽐ᛋ􏽠ᛏ􏽰ᛋ􏾀ᚮ􏾐ᚾ􏾠ᛔ􏾰ᚢ􏿀ᛏ􏿐ᛚ􏿠ᚮ􏿰ᛋ􏻰᛬􏷰ᚱ􏳰ᛂ􏯰ᚴ􏫰ᛋ􏧰ᛋ􏣰ᚢ􏟰ᚼ􏛰ᚾ􏗰ᚢ􏓰ᛘ􏏰ᚢ􏋰ᛚ􏇰ᚾ􏃰ᛏ􏃱ᚮ􏃲᛬􏃳ᛏ􏃴ᚮ􏃵ᛋ􏃶ᛁ􏃷ᚮ􏃸ᚵ􏃹ᛂ􏃺ᚢ􏃻ᛏ􏃼ᚮ􏃽ᚱ􏃾ᛘ􏃿ᛔ􏃯ᚱ􏃟ᛂ􏃏ᚴ􏂿ᛋ􏂯ᛏ􏂟᛭􏂏ᛋ􏁿ᚢ􏁯ᚼ􏁟ᚾ􏁏ᚢ􏀿ᛋ􏀯ᛘ􏀟ᚮ􏀏ᛁ􏄏ᚵ􏈏ᚾ􏌏ᛁ􏐏ᛂ􏔏ᛏ􏘏ᚮ􏜏ᛑ􏠏᛭􏤏ᚵ􏨏ᛂ􏬏ᚢ􏰏ᛏ􏴏ᚮ􏸏ᚱ􀀀􀀀
􎳌‣ Colour-code that supports 4096 colours via 4 bit RGB􀀀
􏻬󿿁Щиглецът се яде само пържен в юфка без чушки и хвойна󿿀 (Bulgarian)󿿀􀀀
􏻬󿿂Љубазни фењерџија чађавог лица хоће да ми покаже штос󿿀 (Serbian)󿿀􀀀
􏻬Разъяренный чтец эгоистично бьёт пятью жердями шустрого фехтовальщика (Russian)􀀀
􎳌‣ Control characters to support Bulgarian and Serbian letter shapes on the fly􀀀
􏻬Press  to pay respects—or is it , or …􀀀
􎳌‣ Custom symbols for video games􀀀
􏻬Can you distinguish following dashes: - — - - ――――――――――― 4863 48-63􀀀
􎳌‣ For all those dash-pedants, we have en-dash, em-dash, and even horizontal bars!􀀀
􏻬5¹⁹₃₂ inch is 142.1 mm · (C₂F₄)ₙ is godly · Error = MoreCode²􀀀
􏻬NOTE: we dont do fractions. 142¹₁₀ mm is illegal!􀀀
􎳌‣ Unicode fractions, also known as super/subscripts􀀀
􏻬ᄀᆞᄅᆞᇝ ᄀᆞᅀᅢ 자거늘 밀므리 사ᄋᆞ리로ᄃᆡ 나거ᅀᅡ ᄌᆞᄆᆞ니ᅌᅵ다 셤 안해 자시ᇙ 제 한비 사ᄋᆞ리로ᄃᆡ 뷔어ᅀᅡ ᄌᆞᄆᆞ니ᅌᅵ다􀀀
􏻬쾅 ᄒᆞ는 소리 헨 “아이구, 베락 털어져ᇝ인가?” 영 걷어진 쥥은 몰르곡 경헨 나왕 보고들랑 영헤연 ᄇᆞᆰ도록 ᄌᆞᆷ ᄒᆞᆫᄌᆞᆷ들 안 잣수다 이 시간 동네 사람들.􀀀
􎳌‣ Full support for Old Korean/Jeju dialect orthography􀀀
􏻬𛀆𛄆𛂦𛂌𛂻𛂶𛁻𛁦𛃶𛂑𛃺𛄚𛄋𛀙𛃫𛁟𛄀𛁛𛁫𛂗𛂁𛃭𛃑𛀋𛂜𛀕𛀬𛃟𛃅𛀴𛂱𛀸𛀁𛁲𛀄𛀿𛀣𛃥𛃔𛃎𛁈ゑ𛂯𛃙𛁕𛁏𛄝􀀀
􎳌‣ Full support for Archaic Kana/Hentaigana􀀀
􏃯Supported Unicode Blocks:􀀀
Basic Latin
Latin-1 Supplement
Latin Extended Additional
Latin Extended-A/B/C/D
Armenian
Bengali􏿆ᶠⁱ􀀀
Braile Patterns
Cherokee􏿆⁷􀀀
CJK Symbols and Punctuation
CJK Unified Ideographs􏿆⁶􀀀
CJK Unified Ideographs Extension A􏿆¹²·¹􀀀
Combining Diacritical Marks
Currency Symbols
Cyrillic􏿆ᴭ􀀀
Cyrillic Supplement􏿆ᴭ􀀀
Devanagari
Enclosed Alphanumeric Supplement
General Punctuations
Georgian􏿆ჼ􀀀
Georgian Extended
Greek and Coptic􏿆ᴱ􀀀
Greek Extended
Halfwidth and Fullwidth Forms
Hangul Compatibility Jamo
Hangul Jamo
Hangul Jamo Extended-A/B
Hangul Syllables
IPA Extensions
Hiragana
Katakana
Katakana Phonetic Extensions
Kana Supplement
Kana Extended-A
Small Kana Extension
Letterlike Symbols
Phonetic Extensions
Phonetic Extensions Supplement
Runic
Spacing Modifier Letters
Sundanese
Sundanese Supplement
Superscripts and Subscripts
Tamil
Thai
􏿆ᴭ􀀀 No support for archæic letters  􏿆ᴱ􀀀 No support for Coptic
􏿆ᶠⁱ􀀀 No support for ligatures  􏿆ჼ􀀀 Mkhedruli only
􏿆⁶􀀀 􏿆⁷􀀀 􏿆⁹􀀀 􏿆¹²·¹􀀀 Up to the specified Unicode version
GitHubs issue page is open! You can report any 􏽕errors􀀀, or leave 􏽕suggestions􀀀. You can help this font to be more versatile. (for more languages, more frameworks) 􏽕Clone􀀀 this repo, make changes, and make a 􏽕pull request􀀀! I appreciate any and all supports.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 129 B

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -278,7 +278,7 @@ class TerrarumTypewriterBitmap(
private val pixmapOffsetY = 10 private val pixmapOffsetY = 10
private val linotypePad = 16 private val linotypePad = 16
private var flagFirstRun = true private var flagFirstRun = true
private @Volatile var textBuffer = CodepointSequence(256) private @Volatile var textBuffer = CodepointSequence()
private @Volatile lateinit var tempLinotype: Texture private @Volatile lateinit var tempLinotype: Texture
private var nullProp = GlyphProps(15) private var nullProp = GlyphProps(15)
@@ -396,6 +396,8 @@ class TerrarumTypewriterBitmap(
} }
private fun buildPosMap(str: CodepointSequence) = buildPosMap(str.toList())
/** /**
* posXbuffer's size is greater than the string, last element marks the width of entire string. * posXbuffer's size is greater than the string, last element marks the width of entire string.
*/ */

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 221 KiB

BIN
testtex.tga LFS Normal file

Binary file not shown.

View File

@@ -1,55 +1,38 @@
क क्क क्च क्त क्त्य क्त्र क्त्व क्थ क्न क्प क्प्र क्म क्य क्र क्ल क्व क्श क्ष क्ष्र क्ष्ण क्ष्म क्ष्म्य क्ष्य क्ष्व क्स Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae auctor eu augue ut lectus arcu bibendum. Pulvinar pellentesque habitant morbi tristique senectus et netus. Turpis nunc eget lorem dolor sed viverra ipsum. Duis ultricies lacus sed turpis tincidunt id. Facilisi morbi tempus iaculis urna id volutpat lacus laoreet non. Viverra adipiscing at in tellus integer feugiat scelerisque varius morbi. Viverra vitae congue eu consequat ac felis donec et odio. Quis viverra nibh cras pulvinar. Diam donec adipiscing tristique risus nec feugiat. Ut tristique et egestas quis ipsum suspendisse ultrices. Turpis cursus in hac habitasse. Eget duis at tellus at urna. Eget sit amet tellus cras adipiscing enim eu. Sit amet tellus cras adipiscing enim eu turpis egestas.
ख ख्य
ग ग्ग ग्ज ग्ज्य ग्ण ग्द ग्ध ग्ध्व ग्न ग्न्य ग्ब ग्भ ग्भ्य ग्म ग्य ग्र ग्र्य ग्ल ग्व
घ घ्न घ्र घ्व
ङ ङ्क ङ्क्त ङ्क्ष ङ्क्ष्व ङ्ख ङ्ख्य ङ्ग ङ्ग्य ङ्ग्र ङ्घ ङ्घ्र ङ्न ङ्म
च च्च च्च्य च्छ च्छ्र च्छ्व च्य
ज ज्ज ज्ज्ञ ज्ज्य ज्ज्व ज्ञ ज्म ज्य ज्र ज्व
ञ ञ्च ञ्छ ञ्ज ञ्ज्ञ ञ्श ञ्श्र ञ्श्व
ट ट्क ट्ट ट्प ट्य ट्श ट्स
ठ ठ्य
ड ड्ग ड्भ ड्य ड्र ड्व
ढ ढ्य
ण ण्ट ण्ठ ण्ड ण्ड्य ण्ड्र ण्ण ण्म ण्य ण्व
त त्क त्क्र त्क्व त्क्ष त्ख त्त त्त्य त्त्र त्त्व त्थ त्न त्न्य त्प त्प्र त्फ त्म त्म्य त्य त्र त्र्य त्व त्व्य त्स त्स्त त्स्त्र त्स्थ त्स्न त्स्म त्स्य त्स्र त्स्व
थ थ्य थ्व
द द्ग द्ग्र द्द द्द्य द्द्र द्द्व द्ध द्ध्य द्ध्र द्ध्व द्न द्ब द्ब्र द्भ द्भ्य द्भ्र द्म द्य द्र द्र्य द्व द्व्य द्व्र
ध ध्न ध्म ध्य ध्र ध्व ध्ह
न न्क न्क्र न्क्ल न्क्ष न्ख न्ग न्घ न्त न्त्य न्त्र न्त्र्य न्त्व न्त्स्य न्थ न्द न्द्य न्द्र न्द्व न्ध न्ध्य न्ध्र न्न न्न्य न्न्व न्प न्प्र न्फ न्ब न्ब्र न्भ न्भ्र
न्म न्य न्र न्व न्व्य न्स न्स्थ न्स्म न्स्व न्ह
प प्त प्त्व प्न प्म प्य प्र प्ल प्स प्स्य
ब ब्ज ब्द ब्ध ब्ध्व ब्य ब्र ब्व
भ भ्ण भ्य भ्र भ्व
म म्ण म्न म्प म्ब म्ब्य म्भ म्य म्र म्ल
य य्य य्व
र र्क र्क्ष्य र्ख र्ग र्ग्य र्ग्र र्घ र्घ्य र्ङ्ग र्च र्च्छ र्च्य र्छ र्ज र्ज्ञ र्ज्य र्ज्व र्ण र्ण्य र्त र्त्त र्त्म र्त्य र्त्र र्त्व र्त्स र्त्स्न्य र्थ र्थ्य र्द
र्द्ध र्द्य र्द्र र्द्व र्ध र्ध्न र्ध्म र्ध्य र्ध्र र्ध्व र्न र्न्य र्प र्ब र्ब्र र्भ र्भ्य र्भ्र र्म र्म्य र्य र्ल र्व र्व्य र्श र्श्व र्ष र्ष्ट र्ष्ण र्ष्य र्ह र्ह्य र्ह्र
ल ल्क ल्क्य ल्ग ल्प ल्ब ल्म ल्य ल्ल ल्व
व व्य व्र
श श्च श्च्य श्छ श्न श्प श्म श्य श्र श्ल श्व श्व्य श्न्र श्व्र श्च्र
ष ष्क ष्क्र ष्ट ष्ट्य ष्ट्र ष्ट्व ष्ठ ष्ठ्य ष्ण ष्ण्य ष्प ष्प्र ष्म ष्य ष्व
स स्क स्त स्त्य स्त्र स्त्र्य स्त्व स्थ स्थ्य स्न स्प स्फ स्म स्म्य स्य स्र स्व स्स्व
ह ह्ण ह्न ह्म ह्य ह्र ह्ल ह्व
विकिपीडिया सभी विषयों पर प्रामाणिक और उपयोग, परिवर्तन Aliquam faucibus purus in massa tempor. Eget nullam non nisi est sit amet. Eu ultrices vitae auctor eu augue ut lectus. Tortor at auctor urna nunc. Quam lacus suspendisse faucibus interdum posuere lorem ipsum. Euismod in pellentesque massa placerat. Velit dignissim sodales ut eu sem integer. Lacus vel facilisis volutpat est velit egestas dui id. Urna nec tincidunt praesent semper feugiat. Duis at tellus at urna condimentum mattis. Mi proin sed libero enim sed faucibus. Semper feugiat nibh sed pulvinar proin gravida hendrerit lectus. Ac tincidunt vitae semper quis lectus nulla. Et netus et malesuada fames ac turpis egestas sed tempus. Odio ut enim blandit volutpat maecenas volutpat blandit aliquam etiam. Pellentesque massa placerat duis ultricies lacus sed. Venenatis a condimentum vitae sapien pellentesque habitant morbi tristique senectus. Sit amet consectetur adipiscing elit pellentesque.
व पुनर्वितरण के लिए स्वतन्त्र ज्ञानकोश बनाने का एक बहुभाषीय
प्रकल्प है। यह यथासम्भव निष्पक्ष दृष्टिकोण वाली सूचना प्रसारित
करने के लिए कृतसंकल्प है। सर्वप्रथम अंग्रेज़ी विकिपीडिया
जनवरी 2001 में आरम्भ किया गया था, और हिन्दी
विकिपीडिया का शुभारम्भ जुलाई 2003 में हुआ। सहायता पृष्ठ
पर जाएं और प्रयोगस्थल में प्रयोग करके देखें कि आप स्वयं
किसी लेख को कैसे परिवर्तित कर सकते हैं।
र्ज्यह 하수는 두 산 틈에서 나와 돌과 부딪쳐 싸우며, 그 놀란 파도와 성난 물머리와 우는 여울과 노한 물결과 슬픈 곡조와 원망하는 소리가 굽이쳐 돌면서, 우는 듯, 소리치는 듯, 바쁘게 호령하는 듯, 항상 장성을 깨뜨릴 형세가 있어, 전차 만승과 전기 만대나 전포 만가와 전고 만좌로써는 그 무너뜨리고 내뿜는 소리를 족히 형용할 수 없을 것이다. 모래 위에 큰 돌은 홀연히 떨어져 섰고, 강 언덕에 버드나무는 어둡고 컴컴하여 물지킴과 하수 귀신이 다투어 나와서 사람을 놀리는 듯한데, 좌우의 교리가 붙들려고 애쓰는 듯싶었다. 혹은 말하기를, “여기는 옛 전쟁터이므로 강물이 저같이 우는 것이다.” 하지만 이는 그런 것이 아니니, 강물 소리는 듣기 여하에 달렸을 것이다.
परिवर्तन
र्ग्यह
अर्ग्यिह
अर्त्स्न्यौह
अर्त्स्न्यिह कृकॄ
ड्ग ड्भ ङ्ग ङ्घ ङ्म छ्व ट्ट ट्ठ ट्व ठ्ठ ठ्व ड्ड ड्ढ ड्व ढ्ढ ढ्व ष्ठ्र द्र्य 나는 이제야 도를 알았도다. 마음이 어두운 자는 이목이 누가 되지 않고, 이 목만을 믿는 자는 보고 듣는 것을 더욱 밝혀서 병이 되는 것이다. 이제 내 마부가 발을 말굽을 밟혀서 뒷차에 실리었으므로, 나는 드디어 혼자 고삐를 늦추어 강에 띄우고, 무릎을 구부려 발을 모으고 안장 위에 앉았으니, 한번 떨어지면 강이나 물로 땅을 삼고 물로 옷을 삼으며 물로 몸을 삼고 물로 성정을 삼으니, 이제야 내 마음은 한번 떨어질 것을 판단한 터이므로 내 귓속에 강물 소리가 없어지고, 무릇 아홉 번 건너는데도 걱정이 없어 의자 위에서 좌와하고 기거하는 것 같았다. 옛날 우는 강을 건너는데, 황룡이 배를 등으로 져서 지극히 위험했으나 사생의 판단이 먼저 마음 속에 밝고 보니, 용이거나 지렁이거나, 크거나 작거나 족히 관계될 바 없었다. 소리와 빛은 외물이니 외물이 항상 이목에 누가 되어 사람으로 하여금 똑바로 보고 듣는 것을 잃게 하는 것이 이 같거든, 하물며 인생이 세상을 지나는 데 그 험하고 위태로운 것이 강물보다 심하고, 보고 듣는 것이 문득 병이 되는 것임에랴.
ड्ग्र ड्भ्र ङ्ग्र ङ्घ्र ङ्म्र छ्व्र ट्ट्र ट्ठ्र ट्व्र ठ्ठ्र ठ्व्र ड्ड्र ड्ढ्र ड्व्र ढ्ढ्र ढ्व्र
श्क श्ख श्ग श्घ श्ङ श्च श्छ श्ज श्झ श्ञ श्ट श्ठ श्ड श्ढ श्ण श्त श्थ श्द श्ध श्न श्प श्फ श्ब श्भ श्म श्य श्र श्ल श्व श्श श्ष श्स श्ह श्ळ श्क्ष श्ज्ञ 数学において体K上定義されたアーベル多様体AがCM-タイプ(CM-type)であるとは、自己準同型環 End(A)の中で十分に大きな部分可換環を持つことをいう。この用語は虚数乗法 (complex multiplication) 論から来ていて、虚数乗法論は19世紀に楕円曲線の研究のため開発された。20世紀の代数的整数論と代数幾何学の主要な成果のひとつに、アーベル多様体の次元d>1の理論の正しい定式化が発見されたことがある。この問題は、多変数複素函数論を使うことが非常に困難であるため、非常に抽象的である。
र्यर्‍यर‍्य र्‍कर्‍प ऱ्कऱ्प
ऱ्प र्‍प ऱ्‍प CM-タイプ(CM-type)は、単位元におけるAの正則接空間上の、EndQ(A)の極大可換部分環Lの作用を記述したものである。単純な種類のスペクトル理論が適用され、Lが固有ベクトルの基底を通して作用することを示すことができる。言い換えると、LはAの正則ベクトル場の上の対角行列を通した作用を持っている。L自体が複数の体の積ではなく数体であるという単純な場合には、CM-タイプはLの複素埋め込み(complex embedding)のリストである。複素共役をペアとして、2d個の複素埋め込みがあり、CM-タイプは各々のペアのから一つを選択する。そのようなCM-タイプの全てが実現されることが知られている。
從20世紀西北太平洋热带气旋有命名紀錄起至今有79個熱帶氣旋的名字被除名。在1999年及以前西北太平洋的熱帶氣旋命名和除名工作是由美國負責。2000年起命名表改由世界氣象組織颱風委員會制訂再交由日本氣象廳命名而颱風委員會都會舉行年度會議商討部份熱帶氣旋名稱的去留。其會員國有權要求將熱帶氣旋名字除去在委員會批准替補名字後就會交由日本氣象廳進行替換工作。大多數被除名的名字是因為在某地區造成嚴重影響而被替換但有些名字卻基於其他技術性原因而被除名。
दर्शनशास्त्र (अंग्रेज़ी-philosophy, यूनानी- φιλοσοφία, अर्थात् "प्रज्ञान से प्रेम" ) सामान्य और मौलिक प्रश्नों का सुव्यवस्थित अध्ययन है, जैसे की अस्तित्व, तर्क, ज्ञान, मूल्य, मन और भाषा से संबंधित। दर्शन वास्तविकता के मौलिक सत्य को तर्कबद्ध रूप से समझने और व्याख्या करने का प्रयास है, यथार्थ की परख के लिये एक दृष्टिकोण है। यह मौलिक प्रश्नों को संबोधित करने के अन्य तरीकों (जैसेकि रहस्यवाद , मिथक , या धर्म) से समालोचनात्मक, व्यवस्थित और तर्कसंगत युक्ति पर निर्भर होने के साथ-साथ अपने पूर्वनुमानों और विधियों पर चिंतन करने के कारण अलग है। व्यापक अर्थ में दर्शन, तर्कपूर्ण, विधिपूर्वक एवं क्रमबद्ध विचार की कला है। इसमें भाषा का तार्किक विश्लेषण और शब्दों और अवधारणाओं के अर्थ का स्पष्टीकरण शामिल है। वास्तव में, दर्शन को परिभाषित करना स्वयं में ही एक दार्शनिक प्रश्न है। कुछ स्रोतों का दावा है कि यह शब्द पाइथागोरस (लगभग ५७० - ४९५ ईसा पूर्व) द्वारा गढ़ा गया था, हालांकि यह पूर्णतः निश्चित नहीं है।
ऐतिहासिक रूप से, दर्शन में ज्ञान के सभी निकाय शामिल थे और इसके अभ्यासक को एक दार्शनिक के रूप में जाना जाता था।." प्राकृतिक दर्शन ", जो प्राचीन ग्रीस में एक शैक्षणिक विद्या के रूप में शुरू हुआ, इसमें खगोल विज्ञान, चिकित्सा और भौतिकी शामिल हैं। उदाहरण के लिए, आइजैक न्यूटन की १६८७ की प्राकृतिक दर्शन के गणितीय सिद्धांत बाद में भौतिकी की एक पुस्तक के रूप में वर्गीकृत हो गई। 19वीं शताब्दी में, आधुनिक अनुसंधान विश्वविद्यालयों के विकास, अकादमिक दर्शनशास्त्र और अन्य विषयों के वृत्तिकरण और उनमें विशेषज्ञता हासिल करने की ओर ले गए। तब से,सामाजिक उत्पादन के विकास और वैज्ञानिक ज्ञान के संचय की प्रक्रिया में अन्वीक्षण के विभिन्न क्षेत्र जो परंपरागत रूप से दर्शनशास्त्र का हिस्सा थे, दर्शनशास्त्र से पृथक होकर अलग-अलग शैक्षणिक विषय बन गए हैं, मूलतः सामाजिक विज्ञान जैसे मनोविज्ञान, समाजशास्त्र, भाषा विज्ञान और अर्थशास्त्र, साथ में दर्शनशास्त्र एक स्वतन्त्र विषय के रूप में विकसित होने लगा।
மெய்யியல் இயற்கை, சமுதாயம், சிந்தனை ஆகியவற்றின், வளர்ச்சியின் மீது ஆட்சி செய்யும் மிகப்பொதுவான விதிகளைக் குறித்த அறிவியலே மெய்யியல் எனப்படும். மெய்யியலானது இருப்பு, அறிவு, விழுமியம், காரணம், மனம், மொழி தொடர்பான பொதுவானதும், அடிப்படையானதுமான பிரச்சனைகள் பற்றிய படிப்பு என வரையறுக்கப்படுகிறது.
மெய்யியல் அல்லது மெய்க்கோட்பாட்டு இயல் அல்லது தத்துவம் (philosophy) என்னும் அறிவுத்துறையானது எது உண்மை, எது சரி, எது அறிவு, எது கலை, எது அறம், எது அழகு, கடவுள் என்று ஏதும் உண்டா, என்பது போன்ற அடிப்படையான கேள்விகளைப் பற்றி ஆழ ஆராயும் துறை ஆகும். தத்துவம் என்றால் உண்மை, உள்ளதை உள்ளவாறே அறிவதைப் பற்றிய கொள்கை, இயல் என்று பொருள். மெய்யியல் துறையில் கருத்துக்கள் எவ்வாறு ஏற்கப்படுகின்றன என்பதும், காரணம், ஏரணம், விவாதம் (தருக்கம்) முதலியன யாவை என்றும் கூர்ந்து நோக்கி ஆராயப்படும்.
தற்காலத்தில் அறிவியல் என்று அறியப்படும் துறை சிறப்புற்று வளரும் முன்னர், மெய்யியல் துறைதான் முன்னணியில் இருந்த அறிவுத்துறை ஆகும். 2500 ஆண்டுகளுக்கு முன்னர் வாழ்ந்த இந்தியர்களும், சீனர்களும், செருமானியர்களும், கிரேக்கர்களும் பிற உலக மாந்த இனங்களும் பலவாறாக, அடிப்படையாகச் சிந்தித்து தொகுத்து வைத்த கருத்துக்கள்தாம் மெய்யியலின் தொடக்கம். மெய்யியல் என்பது ஆங்கிலத்தில் Philosophy (ஃபிலாசஃபி) என்று கூறப்படுவது. இச்சொல் கிரேக்கச் சொல்லாகிய Φιλοσοφία (philo-sophia) என்பதில் இருந்து பெற்றது. இசொல்லின் பொருள் அறிவின் பால் காதல் (அறிவால் ஈர்க்கபடும் துறை) என்பதாகும்.
ปรัชญา (อังกฤษ: Philosophy จาก กรีก: φιλοσοφία, philosophia, 'ความรักในปัญญา') เป็นการศึกษาปัญหาทั่วไปและปัญหาพื้นฐาน เช่น เกี่ยวกับการดำรงอยู่ (อภิปรัชญา), เหตุผล (ตรรกศาสตร์), ความรู้ (ญาณวิทยา), คุณค่า (จริยศาสตร์), จิตใจ และ ภาษา Such questions are often posed as problems แหล่งข้อมูลบางแหล่งอ้างว่าคำนี้คิดขึ้นโดยพีทากอรัส (c. 570 c. 495 ปีก่อนค.ศ.) ในขณะที่บางส่วน ปฏิเสธและเชื่อว่าพีทากอรัสนำคำนี้มาใช้จากคำเดิมที่ปรากฏอยู่แล้ว วิธีวิทยาของปรัชญาประกอบด้วยการตั้งคำถาม, การถกเถียงเชิงวิพากษ์, การถกเถียงด้วยเหตุผล และการนำเสนออย่างเป็นระบบระเบียบ
ในอดีต คำว่า "ปรัชญา" หมายรวมถึงความรู้ทุกแขนง ส่วนผู้ศึกษาปรัชญา เรียก นักปรัชญา นับแต่ยุคของแอริสตอเติล นักปรัชญากรีกโบราณ จนถึงคริสต์ศตวรรษที่ 19 คำว่า "ปรัชญาธรรมชาติ" ครอบคลุมวิชาดาราศาสตร์ แพทยศาสตร์และฟิสิกส์ อย่างเช่น ตำรา Philosophiæ Naturalis Principia Mathematica (หลักคณิตศาสตร์ของปรัชญาธรรมชาติ) ของไอแซก นิวตัน ในปี 1687 เป็นวิชาปรัชญาก่อนที่ภายหลังจะถูกจำแนกเป็นวิชาฟิสิกส์แทน ในศตวรรษที่ 19 ภายหลังการเติบโตของมหาวิทยาลัยวิจัยทำให้ปรัชญาเชิงวิชาการ (academic philosophy) และสาขาวิชาอื่นกลายเป็นอาชีพและมีความเชี่ยวชาญเฉพาะด้านมากขึ้น หลังจากนั้นจึงมีหลายวิชาที่เคยเป็นส่วนหนึ่งของปรัชญาแยกออกไป โดยเฉพาะสังคมศาสตร์ เช่น จิตวิทยา สังคมวิทยา ภาษาศาสตร์ และเศรษฐศาสตร์
ในปัจจุบัน โดยทั่วไปถือว่าปรัชญาประกอบด้วยสาขาย่อยหลักทางวิชาการได้แก่ อภิปรัชญา ซึ่งศึกษาธรรมชาติพื้นฐานของการดำรงอยู่ และ ความเป็นจริง, ญาณวิทยา ซึ่งศึกษาธรรมชาติของความรู้ และ ความเชื่อ, จริยศาสตร์ ซึ่งศึกษาคุณค่าทางศีลธรรม และ ตรรกศาสตร์ ซึ่งศึกษากฎเกณฑ์ของการให้เหตุผลเพื่อสร้างข้อสรุปจากความจริง สาขาย่อยอื่น ๆ ที่เป็นที่รู้จักของปรัชญา เช่น ปรัชญาวิทยาศาสตร์, ปรัชญาการเมือง, สุนทรียศาสตร์, ปรัชญาภาษา และ ปรัชญาความคิด เป็นต้น
สาขาย่อยอื่น ๆ ที่เป็นที่รู้จักของปรัชญา
ფილოსოფია — მეცნიერება, მსოფლმხედველობა, იდეების და შეხედულებების სისტემა სამყაროზე და მასში ადამიანის ადგილზე. მისი კვლევის საგანია სამყაროსთან ადამიანის შემეცნებითი, სოციალურ-პოლიტიკური, ღირებულებითი, ეთიკური და ესთეტიკური ურთიერთობები. ფილოსოფიის სხვადასხვა პრობლემების გადასაჭრელად იყენებდნენ ისეთ ურთიერთსაწინააღმდეგო მიმართულებებს, როგორებიცაა: დიალექტიკა და მეტაფიზიკა, რაციონალიზმი და ემპირიზმი, მატერიალიზმი და იდეალიზმი, ნატურალიზმი და სპირიტუალიზმი, დეტერმინიზმი და ინდეტერმინიზმი და ა. შ.
თანამედროვე ფილოსოფიის ძირითადი ტენდენციები დაკავშირებულია ისეთი ფუნდამენტური პრობლემების გააზრებასთან, როგორებიცაა თანამედროვე ცივილიზაციის ბედი, კულტურების მრავალფეროვნება და ერთიანობა, ადამიანის შემეცნების ბუნება, ყოფიერება და ენა.
Փիլիսոփայություն, գիտություն իմացության և կեցության ընդհանուր սկզբունքների և օրինաչափությունների մասին։ Ձգտում է պարզաբանել ամբողջ կեցության ընդհանուր կապը և միավորել մարդկային գիտելիքի բոլոր ոլորտները։ Փիլիսոփայությունը կարելի է համարել որոշակի աշխարհայացք և աշխարհըմբռնում, որն ունի նաև մեթոդաբանական գործառնություններ։
«Փիլիսոփայություն» (հին հունարեն՝ φιλοσοφία) բառն ունի հունական ծագում։ Այն առաջացել է հունարեն «սիրել» և «իմաստություն» բառերից։ Այսինքն՝ փիլիսոփայություն թարգմանաբար նշանակում է «իմաստության հանդեպ սեր»։ Հայ մատենագրության մեջ «փիլիսոփայություն» եզրույթին զուգահեռ գործածվել է նաև «իմաստասիրություն» բառը։

View File

@@ -0,0 +1,34 @@
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae auctor eu augue ut lectus arcu bibendum. Pulvinar pellentesque habitant morbi tristique senectus et netus. Turpis nunc eget lorem dolor sed viverra ipsum. Duis ultricies lacus sed turpis tincidunt id. Facilisi morbi tempus iaculis urna id volutpat lacus laoreet non. Viverra adipiscing at in tellus integer feugiat scelerisque varius morbi. Viverra vitae congue eu consequat ac felis donec et odio. Quis viverra nibh cras pulvinar. Diam donec adipiscing tristique risus nec feugiat. Ut tristique et egestas quis ipsum suspendisse ultrices. Turpis cursus in hac habitasse. Eget duis at tellus at urna. Eget sit amet tellus cras adipiscing enim eu. Sit amet tellus cras adipiscing enim eu turpis egestas.
Aliquam faucibus purus in massa tempor. Eget nullam non nisi est sit amet. Eu ultrices vitae auctor eu augue ut lectus. Tortor at auctor urna nunc. Quam lacus suspendisse faucibus interdum posuere lorem ipsum. Euismod in pellentesque massa placerat. Velit dignissim sodales ut eu sem integer. Lacus vel facilisis volutpat est velit egestas dui id. Urna nec tincidunt praesent semper feugiat. Duis at tellus at urna condimentum mattis. Mi proin sed libero enim sed faucibus. Semper feugiat nibh sed pulvinar proin gravida hendrerit lectus. Ac tincidunt vitae semper quis lectus nulla. Et netus et malesuada fames ac turpis egestas sed tempus. Odio ut enim blandit volutpat maecenas volutpat blandit aliquam etiam. Pellentesque massa placerat duis ultricies lacus sed. Venenatis a condimentum vitae sapien pellentesque habitant morbi tristique senectus. Sit amet consectetur adipiscing elit pellentesque.
Vel eros donec ac odio tempor. Suspendisse in est ante in nibh mauris cursus. Urna cursus eget nunc scelerisque viverra mauris in. Cursus sit amet dictum sit. Quis imperdiet massa tincidunt nunc pulvinar sapien et ligula ullamcorper. Aenean vel elit scelerisque mauris pellentesque. Mauris in aliquam sem fringilla ut morbi. Nulla aliquet enim tortor at auctor. Pellentesque habitant morbi tristique senectus et. Cras pulvinar mattis nunc sed blandit libero volutpat. Eget velit aliquet sagittis id consectetur purus ut. At volutpat diam ut venenatis tellus in. In tellus integer feugiat scelerisque varius. Dapibus ultrices in iaculis nunc sed augue lacus viverra. Varius quam quisque id diam.
Ut aliquam purus sit amet luctus venenatis lectus magna. Nunc aliquet bibendum enim facilisis gravida neque convallis a cras. Dictum at tempor commodo ullamcorper a lacus vestibulum sed. Mi proin sed libero enim sed faucibus turpis. Vel turpis nunc eget lorem dolor sed viverra ipsum nunc. Est sit amet facilisis magna. Ultricies tristique nulla aliquet enim. Orci sagittis eu volutpat odio facilisis. Aliquet nec ullamcorper sit amet. Massa placerat duis ultricies lacus sed turpis tincidunt id. Morbi tristique senectus et netus et. Quam id leo in vitae turpis massa sed elementum tempus. Proin sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Tincidunt eget nullam non nisi est sit amet.
Feugiat in ante metus dictum at tempor commodo. Maecenas accumsan lacus vel facilisis volutpat. Dignissim cras tincidunt lobortis feugiat vivamus. Ante in nibh mauris cursus mattis molestie a iaculis. Odio pellentesque diam volutpat commodo sed egestas egestas fringilla. Leo integer malesuada nunc vel risus. Tellus id interdum velit laoreet id donec ultrices tincidunt. Et tortor consequat id porta nibh venenatis cras sed. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi. Dapibus ultrices in iaculis nunc sed augue lacus viverra vitae. Enim praesent elementum facilisis leo vel fringilla. Lorem ipsum dolor sit amet consectetur adipiscing elit. Mollis aliquam ut porttitor leo.
하수는 두 산 틈에서 나와 돌과 부딪쳐 싸우며, 그 놀란 파도와 성난 물머리와 우는 여울과 노한 물결과 슬픈 곡조와 원망하는 소리가 굽이쳐 돌면서, 우는 듯, 소리치는 듯, 바쁘게 호령하는 듯, 항상 장성을 깨뜨릴 형세가 있어, 전차 만승과 전기 만대나 전포 만가와 전고 만좌로써는 그 무너뜨리고 내뿜는 소리를 족히 형용할 수 없을 것이다. 모래 위에 큰 돌은 홀연히 떨어져 섰고, 강 언덕에 버드나무는 어둡고 컴컴하여 물지킴과 하수 귀신이 다투어 나와서 사람을 놀리는 듯한데, 좌우의 교리가 붙들려고 애쓰는 듯싶었다. 혹은 말하기를, “여기는 옛 전쟁터이므로 강물이 저같이 우는 것이다.” 하지만 이는 그런 것이 아니니, 강물 소리는 듣기 여하에 달렸을 것이다.
산중의 내 집 문 앞에는 큰 시내가 있어 매양 여름철이 되어 큰 비가 한번 지나가면, 시냇물이 갑자기 불어서 항상 차기와 포고의 소리를 듣게 되어 드디어 귀에 젖어 버렸다. 내가 일찍이 문을 닫고 누워서 소리 종류를 비교해 보니, 깊은 소나무가 퉁소 소리를 내는 것은 듣는 이가 청아한 탓이요, 산이 찢어지고 언덕이 무너지는 듯한 것은 듣는 이가 분노한 탓이요, 뭇 개구리가 다투어 우는 것은 듣는 이가 교만한 탓이요, 천둥과 우레가 급한 것은 듣는 이가 놀란 탓이요, 찻물이 끓는 듯이 문무가 겸한 것은 듣는 이가 취미로운 탓이요, 거문고가 궁우에 맞는 것은 듣는 이가 슬픈 탓이요, 종이창에 바람이 우는 것은 듣는 이가 의심나는 탓이니, 모두 바르게 듣지 못하고 특히 흉중에 먹은 뜻을 가지고 귀에 들리는 대로 소리를 만든 것이다.
지금 나는 밤중에 한 강을 아홉 번 건넜다. 강은 새외로부터 나와서 장성을 뚫고 유하와 조하 · 황화 · 진천 등의 모든 물과 합쳐 밀운성 밑을 거쳐 백하가 되었다. 나는 어제 배로 백하를 건넜는데, 이것은 하류였다. 내가 막 요동 땅에 들어왔을 때는 바야흐로 한여름이라, 뜨거운 볕 밑을 가노라니 홀연 큰 강이 앞에 당하였다. 또한 물결이 산같이 일어나 끝을 볼 수 없으니, 이것은 대개 천리 밖에서 폭우가 온 것이다. 물을 건널 때는 사람들이 모두 머리를 우러러 하늘을 보는데, 나는 생각하기에 사람들이 머리를 들고 쳐다보는 것은 하늘에 묵도하는 것인 줄 알았더니, 나중에 알고 보니 물을 건너는 사람들이 물이 돌아 탕탕히 흐르는 것을 보면 자기 몸은 물이 거슬러 올라가는 것 같고 눈은 강물과 함께 따라 내려가는 것 같아서 갑자기 현기가 나면서 물에 빠지는 것이기 때문에, 그들이 머리를 들어 우러러보는 것은 하늘에 비는 것이 아니라 물을 피하여 보지 않으려 함이었다. 또한 어느 겨를에 잠깐 동안의 목숨을 위하여 기도할 수 있겠는가.
그 위험함이 이와 같으니, 물 소리를 들어보지 못하고 모두 말하기를, “요동 들은 평평하고 넓기 때문에 물 소리가 크게 울지 않는 것이다.” 하지만 이것은 물을 알지 못하는 것이다. 요하가 울지 않는 것이 아니라 특히 밤에 건너 보지 않은 때문이니, 낮에는 눈으로 물을 볼 수 있으므로 눈이 오로지 위험한 데만 보면서 무서움을 느껴 도리어 눈이 있는 것을 걱정하는 판인데, 어찌 또 들리는 소리가 있겠는가. 지금 나는 밤중에 물을 건너는지라 눈으로 위험한 것을 볼 수 없으니, 위험은 오로지 듣는 데만 있어 바야흐로 귀로 무서움을 느끼니 걱정을 이기지 못하는 것이다.
나는 이제야 도를 알았도다. 마음이 어두운 자는 이목이 누가 되지 않고, 이 목만을 믿는 자는 보고 듣는 것을 더욱 밝혀서 병이 되는 것이다. 이제 내 마부가 발을 말굽을 밟혀서 뒷차에 실리었으므로, 나는 드디어 혼자 고삐를 늦추어 강에 띄우고, 무릎을 구부려 발을 모으고 안장 위에 앉았으니, 한번 떨어지면 강이나 물로 땅을 삼고 물로 옷을 삼으며 물로 몸을 삼고 물로 성정을 삼으니, 이제야 내 마음은 한번 떨어질 것을 판단한 터이므로 내 귓속에 강물 소리가 없어지고, 무릇 아홉 번 건너는데도 걱정이 없어 의자 위에서 좌와하고 기거하는 것 같았다. 옛날 우는 강을 건너는데, 황룡이 배를 등으로 져서 지극히 위험했으나 사생의 판단이 먼저 마음 속에 밝고 보니, 용이거나 지렁이거나, 크거나 작거나 족히 관계될 바 없었다. 소리와 빛은 외물이니 외물이 항상 이목에 누가 되어 사람으로 하여금 똑바로 보고 듣는 것을 잃게 하는 것이 이 같거든, 하물며 인생이 세상을 지나는 데 그 험하고 위태로운 것이 강물보다 심하고, 보고 듣는 것이 문득 병이 되는 것임에랴.
数学において体K上定義されたアーベル多様体AがCM-タイプ(CM-type)であるとは、自己準同型環 End(A)の中で十分に大きな部分可換環を持つことをいう。この用語は虚数乗法 (complex multiplication) 論から来ていて、虚数乗法論は19世紀に楕円曲線の研究のため開発された。20世紀の代数的整数論と代数幾何学の主要な成果のひとつに、アーベル多様体の次元d>1の理論の正しい定式化が発見されたことがある。この問題は、多変数複素函数論を使うことが非常に困難であるため、非常に抽象的である。
フォーマルな定義は、有理数体QとEnd(A)のテンソル積
End_Q(A)
はZ上、次元2dの可換部分環を含んでいることである。d=1のとき、このことは二次体以外にはありえなく、End(A)は虚二次体の整環(英語版)(order)である。d>1に対しては、総実体の虚二次拡大であるCM体の場合が比較すべきに対象である。A が単純アーベル多様体ではないかもしれない例えば、楕円曲線のカルテシアン積ことを反映する他の他の場合もある。CM-タイプのアーベル多様体の別の名称は、十分に多くの虚数乗法を持つアーベル多様体である。
Kが複素数体であれば、任意のCM-タイプのAは、実は、数体である定義体英語版(field of definition)を持っている。自己準同型環の可能なタイプは、対合(ロサチの対合(英語版)(Rosati involution)をもつ環として既に分類されていて、CM-タイプのアーベル多様体の分類を導き出す。楕円曲線と同じような方法でCM-タイプの多様体を構成するには、C^dの中の格子 Λ から始め、アーベル多様体のリーマンの関係式を考えに入れる必要がある。
CM-タイプ(CM-type)は、単位元におけるAの正則接空間上の、EndQ(A)の極大可換部分環Lの作用を記述したものである。単純な種類のスペクトル理論が適用され、Lが固有ベクトルの基底を通して作用することを示すことができる。言い換えると、LはAの正則ベクトル場の上の対角行列を通した作用を持っている。L自体が複数の体の積ではなく数体であるという単純な場合には、CM-タイプはLの複素埋め込み(complex embedding)のリストである。複素共役をペアとして、2d個の複素埋め込みがあり、CM-タイプは各々のペアのから一つを選択する。そのようなCM-タイプの全てが実現されることが知られている。
志村五郎と谷山豊の基本的結果は、CM-タイプとヘッケのL-函数のことばで、A のハッセ・ヴェイユのL-函数を計算することができ、これから導出された無限部分を持つ。これらが、楕円曲線の場合のマックス・ドイリング(英語版)(Max Deuring)の結果を一般化する。
從20世紀西北太平洋热带气旋有命名紀錄起至今有79個熱帶氣旋的名字被除名。在1999年及以前西北太平洋的熱帶氣旋命名和除名工作是由美國負責。2000年起命名表改由世界氣象組織颱風委員會制訂再交由日本氣象廳命名而颱風委員會都會舉行年度會議商討部份熱帶氣旋名稱的去留。其會員國有權要求將熱帶氣旋名字除去在委員會批准替補名字後就會交由日本氣象廳進行替換工作。大多數被除名的名字是因為在某地區造成嚴重影響而被替換但有些名字卻基於其他技術性原因而被除名。

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Binary file not shown.

BIN
work_files/cjkpunct_variable.psd LFS Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
work_files/kana_variable.kra LFS Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.