{"title":"DoYe's Chaos","link":[{"@attributes":{"href":"https:\/\/doye.smaji.org\/","rel":"alternate"}},{"@attributes":{"href":"https:\/\/doye.smaji.org\/feeds\/all.atom.xml","rel":"self"}}],"id":"https:\/\/doye.smaji.org\/","updated":"2025-07-08T09:05:00+08:00","subtitle":"\u554a\uff0c\u4f60\u6765\u5566\uff5e","entry":[{"title":"How font systems differ in shaping glyphs with variation selectors supplement ligatured","link":{"@attributes":{"href":"https:\/\/doye.smaji.org\/font%20system%20and%20variation%20selector%20[en].html","rel":"alternate"}},"published":"2025-07-08T09:05:00+08:00","updated":"2025-07-08T09:05:00+08:00","author":{"name":"ZAN DoYe"},"id":"tag:doye.smaji.org,2025-07-08:\/font system and variation selector [en].html","summary":"<div class=\"paragraph\">\n<p>In order to deal with CJKV variation characters, additional variation selectors were introduced into the <em>Supplementary Special-purpose Plane<\/em> of the Unicode. The newly introduced selectors are named <em>variation selector-17<\/em> (U+E0100) to <em>variation selector-256<\/em> (U+E01EF).<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Despite having been introduced early in Unicode 4.0 which was published in 2004 \u2026<\/p><\/div>","content":"<div class=\"paragraph\">\n<p>In order to deal with CJKV variation characters, additional variation selectors were introduced into the <em>Supplementary Special-purpose Plane<\/em> of the Unicode. The newly introduced selectors are named <em>variation selector-17<\/em> (U+E0100) to <em>variation selector-256<\/em> (U+E01EF).<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Despite having been introduced early in Unicode 4.0 which was published in 2004, these variation selectors still are not widely supported by modern computer systems.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>A minimized font is created to test the behaviour of the font systems: GTK3, Qt6, Windows 7 to 10, macOS Big Sur.<\/p>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_the_minimized_font\">The minimized font<\/h2>\n<div class=\"sectionbody\">\n<div class=\"imageblock full-width\">\n<div class=\"content\">\n<img src=\"https:\/\/doye.smaji.org\/font_system_and_variation_selector\/img_font_1.png\" alt=\"glyphs\">\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>The glyphs in the font:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>A (U+0041) character A<\/p>\n<\/li>\n<li>\n<p>B (U+0042) character B<\/p>\n<\/li>\n<li>\n<p>Z (U+005A) character Z<\/p>\n<\/li>\n<li>\n<p>a (U+0061) character a<\/p>\n<\/li>\n<li>\n<p>b (U+0062) character b<\/p>\n<\/li>\n<li>\n<p>c (U+0063) character c<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>a special one:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>= (U+0064) character d<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Note that the glyph associated with character 'd' is '=' here!\n<br>\n<br><\/p>\n<\/div>\n<div class=\"imageblock full-width\">\n<div class=\"content\">\n<img src=\"https:\/\/doye.smaji.org\/font_system_and_variation_selector\/img_font_2.png\" alt=\"glyphs\">\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>a special one again:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>@ (U+0064 U+E0100) character d variation 17<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Note that the glyph associated with character 'd variation 17' is '@' here!\n<br>\n<br><\/p>\n<\/div>\n<div class=\"imageblock full-width\">\n<div class=\"content\">\n<img src=\"https:\/\/doye.smaji.org\/font_system_and_variation_selector\/img_font_3.png\" alt=\"ligature rules\">\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>The ligature rules defined in the font:<\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\">\n<li>\n<p>'a + U+E0100' will be ligatured to 'A'<\/p>\n<\/li>\n<li>\n<p>'b + U+E0100' will be ligatured to 'B'<\/p>\n<\/li>\n<li>\n<p>'c + c' will be ligatured to 'Z'<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<div class=\"paragraph\">\n<p>As the glyph of character 'd variation 17' is '@', and the glyph of character 'd' is '=', there are two implicit rules:<\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\" start=\"4\">\n<li>\n<p>'d' will be transformed to '='<\/p>\n<\/li>\n<li>\n<p>'d + U+E0100' will be ligatured to '@'<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_how_the_font_works_in_real_systems\">How the font works in real systems<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>A test text file is created and its content is listed below. The sentences after the ';' symbol are comments:<\/p>\n<\/div>\n<div class=\"literalblock\">\n<div class=\"content\">\n<pre>U+0061 U+0061 U+E0100  ; a, a variation17\nU+0062 U+0062 U+E0100  ; b, b variation17\nU+265F U+FE0E          ; emoji chess, text version\nU+265F U+FE0F          ; emoji chess, graph version\nU+0031 U+20E3          ; 1, enclosing keycap\nU+0032 U+20E3          ; 2, enclosing keycap\nU+0063 U+0063          ; c, c\nU+0064 U+E0100         ; d, variation17\nU+0064                 ; d<\/pre>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_qt6\">Qt6<\/h3>\n<div class=\"imageblock full-width\">\n<div class=\"content\">\n<img src=\"https:\/\/doye.smaji.org\/font_system_and_variation_selector\/img_qt6.png\" alt=\"Qt6\">\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>As shown in the image, while the code of ligatured combining character is of less than U+10000, ligaturing works. Other than that, neither ligaturing(line 1, 2) and directly assigned variation selector(the 8th line, i.e. d, variation17) works. Qt6 deals with U+E0100 as if it does not exist.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>The font process system in Qt6 is inadequate.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_gtk3\">GTK3<\/h3>\n<div class=\"imageblock full-width\">\n<div class=\"content\">\n<img src=\"https:\/\/doye.smaji.org\/font_system_and_variation_selector\/img_gtk3.png\" alt=\"GTK3\">\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>As shown in the image, both ligaturing(line 1, 2) and directly assigned variation selector(the 8th line, i.e. d, variation17) work.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Perfect!<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_windows_7_10\">Windows 7 - 10<\/h3>\n<div class=\"imageblock full-width\">\n<div class=\"content\">\n<img src=\"https:\/\/doye.smaji.org\/font_system_and_variation_selector\/img_win10.png\" alt=\"Windows 7 - 10\">\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>As shown in the image, while the code of ligatured combining character is of less than U+10000, ligaturing works. Other than that, only directly assigned variation selector(the 8th line, i.e. d, variation17) works.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Not perfect, but we can always use directly assigned variation selector to workaround the problem.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_macos_big_sur\">macOS Big Sur<\/h3>\n<div class=\"imageblock full-width\">\n<div class=\"content\">\n<img src=\"https:\/\/doye.smaji.org\/font_system_and_variation_selector\/img_BigSur.png\" alt=\"macOS Big Sur\">\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>As shown in the image, while the code of ligatured combining character is of less than U+10000, ligaturing works. Other than that, the system strips the ligatured selector and fallbacks the stripped character to another font. The 9th line, character 'd' is shaped as '=', that&#8217;s expected; but the 8th line, character 'd variation17' is neither shaped as '=' or '@', it fallbacks to 'd' which is obviously borrowed from another font. What a mess!<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>A disaster. Pooh.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_cross_platform_ancient_cjkv_processing_system\">Cross-platform ancient CJKV processing system<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>To build a cross-platform ancient CJKV processing system, the first step is to eliminate the macOS system from the cross-platform list. Ligaturing should also be avoided while recording variation characters, as glyphs with directly assigned variation selector work out-of-the-box in Windows and GTK based GUI systems, and as its data format is so straightforward, no gsub tables, groups, rules, we can simply write an auxiliary routine to enhance the Qt library to deal with them.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>I once wrote a Qt based input method to input ancient Chinese variations. In that system, the input method looks up glyphs by the codepoint and selector from the loaded font manually, and then draws the glyph to the virtual painting device of Qt widgets manually. That&#8217;s how the auxiliary routine works.<\/p>\n<\/div>\n<\/div>\n<\/div>","category":[{"@attributes":{"term":"cjkv"}},{"@attributes":{"term":"cjkv"}},{"@attributes":{"term":"variation selector"}},{"@attributes":{"term":"font"}},{"@attributes":{"term":"unicode"}}]},{"title":"CJKV GOD","link":{"@attributes":{"href":"https:\/\/doye.smaji.org\/cjkv%20god%20intro%20[en].html","rel":"alternate"}},"published":"2024-02-16T18:26:00+08:00","updated":"2024-02-16T18:26:00+08:00","author":{"name":"ZAN DoYe"},"id":"tag:doye.smaji.org,2024-02-16:\/cjkv god intro [en].html","summary":"<div class=\"paragraph\">\n<p>Recently, An article was submitted to introduce Smaji CJKV. Several review comments were received suggesting appending some citations and prerequisite information to the article. These comments make sense. After all, the development of most disciplines and engineering is a continuous progression. Mostly, new development is built on the foundation of \u2026<\/p><\/div>","content":"<div class=\"paragraph\">\n<p>Recently, An article was submitted to introduce Smaji CJKV. Several review comments were received suggesting appending some citations and prerequisite information to the article. These comments make sense. After all, the development of most disciplines and engineering is a continuous progression. Mostly, new development is built on the foundation of their predecessors.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Although more information was in demand, initially, I found it a bit difficult to append information. Because in the past two decades, Recording, encoding, and font designing of variant or rarely-used characters, all these techniques had been researched and developed but haven&#8217;t created much influence. Most of them are independent private systems that cannot be integrated into general systems. Some of them are relatively open but only open in user interface level, while others, relatively open and standard, are incompetent in infrastructure and inadequate in serving as the basis for subsequent development. These systems are not worth mentioning in references or prerequisite knowledge.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>In 1999, Unicode&#8217;s own Ideographic Description Characters were introduced in Unicode 3.0. The sequence of that characters is called \"Ideographic Description Sequence\", i.e. IDS. It is naturally integrated into the daily-used general systems based on Unicode, has huge user base and is easy to use. For example, the word \"\u65f6\u95f4\" can be expressed as \"\u2ff0\u65e5\u5bf8\" and \"\u2ff5\u95e8\u65e5\" respectively. Even a character as complex as \"\ud883\udedd\" as seen in word \"\ud883\udedd\ud883\udedd\u9762\", can also be expressed as \"\u2ffa\u8fb6\u2ff3\u7a74\u2ff2\u6708\u2ff1\u2ff2\u5e7a\u8a00\u5e7a\u2ff2\u957f\u9a6c\u957f\u5202\u5fc3\". At first glance, the functionalities are complete.<\/p>\n<\/div>\n<details>\n<summary class=\"title\">Click here to view \ud883\udedd<\/summary>\n<div class=\"content\">\n<div class=\"imageblock\">\n<div class=\"content\">\n<img src=\"https:\/\/doye.smaji.org\/images\/30edd.svg\" alt=\"30edd\">\n<\/div>\n<\/div>\n<\/div>\n<\/details>\n<div class=\"paragraph\">\n<p>But the problem is that when it comes to \"\u4e1d\", IDS cannot decompose it. Because Unicode does not include the character which looks like \"\u5e7a\" minus the last dot. Another example is \"\u4e54\", with \"\u592d\" above and \"?\" below, which is also an uncollected character. Another example is the decomposition of the following characters: \"\u4e0e\",\"\u4e4c\",\"\u4e87\",\"\u4e89\",\"\u4ea5\",\"\u4ee5\"&#8230;&#8203;<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Because too many \"components\" or \"roots\" actually do not have characters corresponded with, and this system requires that their definition domains and value domains are all Unicode collected characters. Therefore, this system design was incomplete from the beginning: common or even daily-used characters may be out of the scope of describable.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Other private systems, which are aware of this problem, relaxed the restrictions on the definition domain and introduced private components. However, the composition of Chinese characters or components is diverse, and IDS and similar systems can only describe some ideal composition. A slightly less ideal one, such as \"\u2ffb\", which means that two components overlap, is ambiguous. How exactly do they overlap, what is the direction of overlap, and what is the degree of overlap? No description at all. Thus, the glyph cannot be restored from the IDS. The result is yet another set of broken and incomplete systems.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>However, the review comments also prompted me to think again, whether the efforts and legacies of the past are still valuable, or can they still be useful after being transformed and refined?<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>A general summary of the flaw of past explorations are listed as follows:<\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\">\n<li>\n<p>The domain of composite component is limited<\/p>\n<\/li>\n<li>\n<p>IDS lacks accuracy<\/p>\n<\/li>\n<li>\n<p>Being not universal or narrow in application scenarios<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<div class=\"paragraph\">\n<p>The solution is designed accordingly:<\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\">\n<li>\n<p>The domain of composite component is limited<\/p>\n<div class=\"openblock\">\n<div class=\"content\">\n<div class=\"paragraph\">\n<p>The first step is to lift this restriction, and in a way that does not create new problems. Therefore, the following conditions must be met:<\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\">\n<li>\n<p>The domain is not only limited to Unicode included characters. Because of its incompleteness.<\/p>\n<\/li>\n<li>\n<p>The defined base components must be able to composite any characters. Otherwise, it becomes another incomplete system.<\/p>\n<\/li>\n<li>\n<p>Basic base components may not be added, deleted, or modified arbitrarily. To avoid causing failure and instability of the composition method.<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<div class=\"paragraph\">\n<p>Given these three requirements, it is expected that basic strokes are the ideal choice that meets all the above requirements. But what we need are not roughly the so-called basic five types of strokes, we need to enumerate at least 63 basic strokes, as well as mirror(left-right, up-down) and rotation operators. Because there are mirror characters and inverted characters in Chinese characters.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<p>IDS lacks accuracy<\/p>\n<div class=\"openblock\">\n<div class=\"content\">\n<div class=\"paragraph\">\n<p>The structure described by IDS conform to some patterns, that is, the components described are vertically centered (\u2ff1, \u2ff3) or horizontally centered (\u2ff0, \u2ff2) or fully wrapped (\u2ff4) or three-sides-surrounded (\u2ff5,\u2ff6,\u2ff7,\u2ffc) or two-adjacent-sides-surrounded (\u2ff8,\u2ff9,\u2ffa,\u2ffd). The described components operated by these descriptors all form new shapes. For center-separated components, we only need to calculate the length or width and take the average, and each component can adjust the aspect ratio based on the average to obtain a new shape. If the structure is surrounded, the inter components are best-fitted to and scaled down a bit according to the outer component.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>The descriptor \u2ffb represents the description that two operands overlap with each other, which breaks the frame. Therefore, the shape of the components cannot be used as the basis for calculation in component arrangement. Besides, the descriptors(IDS) and operating components(strokes or roots) does not have any other intrinsical calculation basis, which leads to the inability of this description system.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Therefore, we have to introduce additional information to fill in the gaps. The shape of the components described by the separation or enclosing descriptor are preserved, so are the combination of the described components, and the outer frame box of the combined components is their outer frame. There are several kinds of data: the size and position of the outer frame, and the size and position of the components after being embedded in the outer frame. So finally we can get the position and size information of the components with the outer frame as the origin of the coordinate system.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>After the descriptor \u2ffb disables the component shape, the corresponding outer frame calculation cannot be performed, nor can the position and size information of the components. So, what we need to supplement is these two kinds of information with which the outer frame information can also be derived from the best-fit frame box.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>To describe plane position and size information, we need to introduce a plane coordinate system.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>The description of plane coordinates is a topic worth expanding on, and we will discuss it later. Now, let&#8217;s take a look at defect 3.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<p>Being not universal or narrow in application scenarios<\/p>\n<div class=\"openblock\">\n<div class=\"content\">\n<div class=\"paragraph\">\n<p>Unicode Character Set is required to be a standard information interchange set, so character components or roots must be selected from its own dataset. The basic components included in its own dataset has not covered the necessary essential components. Besides, the description capability of Unicode&#8217;s own Ideographic Description Characters (IDC) is incomplete. This resulted in defects 1, 2.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>However, universities, technical groups, and commercial organizations other than Unicode Consortium had also tried to design or implement systems that are both Unicode compatible and of description capability complete. Most of them are close to be complete, and some are Unicode incompatible, few are perfect, thus limiting their application scenarios.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Another important reason is that the requirements for flexibility and real-time are difficult to reach. For example, a scholar once needs to quote excerpts from an ancient book, but in which several of the texts have multiple variations and are not included in the standard. Or an ancient book has been newly unearthed, and some characters that have not been seen before appear. It needs to be introduced into the standard and our computer system must be updated so that the characters can be encoded and displayed properly.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>The above requirements require a long and possibly failing Unicode routine, which definitely will affect the progress of article writing.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>The solution to this defect is given in Smaji CJKV, so I won\u2019t go into details.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/li>\n<\/ol>\n<\/div>\n<div class=\"paragraph\">\n<p>In fact, Smaji CJKV did not have a plan to design a glyph description system at the beginning. Only bitmap or vector images are allowed to be submitted. It became possible to design the describe system when the core system was set up and keep compatible with the Unicode system. The reviewers' suggestion for supplementary information mentioned earlier made me rethink my past experience, and then the design the glyph description language was started.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Well, let&#8217;s solve the problems skipped before:<\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\" start=\"2\">\n<li>\n<p>IDS lacks accuracy<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<div class=\"paragraph\">\n<p>The idea and method to solve this problem require more space to describe, so the following subsection is added.<\/p>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_glyph_outline_description_language\">Glyph Outline Description Language<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Because the standard form of this language is xml document, an XML Schema Definition is most suitable to describe it. The following is the very syntax description document <a href=\"http:\/\/cjkv.smaji.org\/xml\/1.0\/xsd\/god.xsd\">god.xsd<\/a> of this language.<\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_create_xml_document\">Create XML document<\/h3>\n<div class=\"paragraph\">\n<p>An XML document consists of an optional XML declaration, an optional document type declaration, and a document (root) element.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>The version declaration of an xml ensures that future XML changes will not affect the syntax and semantics of this document. The encoding declaration tells the XML processor the encoding used by this document. The XML version used by the GOD 1.0 document is 1.0, and the encoding is <code>UTF-8<\/code>. So its XML The encoding header is certain:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"rouge highlight\"><code data-lang=\"xml\"><span class=\"cp\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Because the xml version defaults to 1.0, and the default available encoding can be <code>UTF-8<\/code> or <code>UTF-16<\/code>, the declaration header above is not necessary.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"rouge highlight\"><code data-lang=\"xml\"><table class=\"linenotable\"><tbody><tr><td class=\"linenos gl\"><pre class=\"lineno\"> 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n10\n<\/pre><\/td><td class=\"code\"><pre><span class=\"cp\">&lt;?xml version=\"1.0\"?&gt;<\/span>\n<span class=\"nt\">&lt;god<\/span> <span class=\"na\">version=<\/span><span class=\"s\">\"1.0\"<\/span>\n  <span class=\"na\">xmlns=<\/span><span class=\"s\">\"http:\/\/cjkv.smaji.org\/ns\/god\"<\/span>\n  <span class=\"na\">xmlns:xsi=<\/span><span class=\"s\">\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"<\/span>\n  <span class=\"na\">xsi:schemaLocation=<\/span><span class=\"s\">\"http:\/\/cjkv.smaji.org\/ns\/god http:\/\/cjkv.smaji.org\/xml\/1.0\/xsd\/god.xsd\"<\/span><span class=\"nt\">&gt;<\/span>\n  <span class=\"nt\">&lt;glyph<\/span> <span class=\"na\">unicode=<\/span><span class=\"s\">\"516b,0\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\">&lt;stroke<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"t\"<\/span> <span class=\"na\">x=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">y=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">width=<\/span><span class=\"s\">\"56\"<\/span> <span class=\"na\">height=<\/span><span class=\"s\">\"112\"<\/span><span class=\"nt\">\/&gt;<\/span>\n    <span class=\"nt\">&lt;stroke<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"p\"<\/span> <span class=\"na\">x=<\/span><span class=\"s\">\"76\"<\/span> <span class=\"na\">y=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">width=<\/span><span class=\"s\">\"56\"<\/span> <span class=\"na\">height=<\/span><span class=\"s\">\"112\"<\/span><span class=\"nt\">\/&gt;<\/span>\n  <span class=\"nt\">&lt;\/glyph&gt;<\/span>\n<span class=\"nt\">&lt;\/god&gt;<\/span>\n<\/pre><\/td><\/tr><\/tbody><\/table><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>The first line is an optional XML declaration.<br>\nLines 2 and 10 start and end a <code>god<\/code> root element. The root element is mainly used to indicate the version of this <code>god<\/code> document. The version attribute in the second line indicates that this <code>god<\/code> document adopts the syntax and semantics of version 1.0.<br>\nThe fourth and fifth lines are optional and are used to introduce the XSD description of this <code>god<\/code> document so that capable text editors can use it to verify the correctness of the <code>god<\/code> document being edited and provide suggestions such as auto-completion.<br><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>The next child element is <code>glyph<\/code>. It contains a required attribute <code>unicode<\/code>, used to indicate the <code>unicode<\/code> scalar of the glyph described in this <code>god<\/code> document. Its value is a hexadecimal number representing a <code>unicode<\/code> scalar, and after the number, a value called <code>variation selector<\/code> can be appended separating by a comma. In the example, the  value of the <code>unicode<\/code> property is 516b, which is the <code>unicode<\/code> scalar of the Chinese character \u300c\u516b\u300d.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u300c\u516b\u300d consists of two strokes, the first stroke is a <strong>throw<\/strong> (\u6487), and the second stroke is a <strong>press<\/strong> (\u637a), so in the <code>glyph<\/code> element, we add two sub-elements, namely stroke <code>t<\/code> (\u6487) and stroke <code>p<\/code> (\u637a). And in the coordinate system, the position, width, and length information of each stroke is given. For more information of the stroke type in <code>god<\/code>. Please consult the <code>god.xsd<\/code> file.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>The following table is an excerpt from <code>god.xsd<\/code> for reference.<\/p>\n<\/div>\n<details>\n<summary class=\"title\">Click here to view an excerpt from the <code>god.xsd<\/code><\/summary>\n<div class=\"content\">\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>h     | Horizontal\nsh    | Slanted Horizontal\nu     | Upward horizontal\ndu    | Dot \u2013 Upward horizontal\nv     | Vertical\nsv    | Slanted Vertical\nrsv   | Right Slanted Vertical\nt     | Throw\nft    | Flat Throw\nwt    | Wilted Throw\nd     | Dot\ned    | Extended Dot\nld    | Left Dot\nwd    | Wilted Dot\np     | Press\nup    | Upward horizontal \u2013 Press\nhp    | Horizontal \u2013 Press\nfp    | Flat Press\nufp   | Upward horizontal \u2013 Flat Press\nc     | Clockwise curve\na     | Anticlockwise curve\no     | Oval\nhj    | Horizontal \u2013 J hook\nuj    | Upward horizontal \u2013 J hook\nht    | Horizontal \u2013 Throw\nhsv   | Horizontal \u2013 Slanted Vertical\nhv    | Horizontal \u2013 Vertical\nhvj   | Horizontal \u2013 Vertical \u2013 J hook\nhtj   | Horizontal \u2013 Throw \u2013 J hook\nutj   | Upward horizontal \u2013 Throw \u2013 J hook\nhvh   | Horizontal \u2013 Vertical \u2013 Horizontal\nhvu   | Horizontal \u2013 Vertical \u2013 Upward horizontal\nha    | Horizontal \u2013 Anticlockwise curve\nhaj   | Horizontal \u2013 Anticlockwise curve \u2013 J hook\nhpj   | Horizontal \u2013 Press \u2013 J hook\nhtaj  | Horizontal \u2013 Throw \u2013 Anticlockwise curve \u2013 J hook\nhtc   | Horizontal \u2013 Throw \u2013 Clockwise curve\nhtht  | Horizontal \u2013 Throw \u2013 Horizontal \u2013 Throw\nhtcj  | Horizontal \u2013 Throw \u2013 Clockwise curve \u2013 J hook\nhvhv  | Horizontal \u2013 Vertical \u2013 Horizontal \u2013 Vertical\nhthtj | Horizontal \u2013 Throw \u2013 Horizontal \u2013 Throw \u2013 J hook\nvu    | Vertical \u2013 Upward horizontal\nvh    | Vertical \u2013 Horizontal\nva    | Vertical \u2013 Anticlockwise curve\nvaj   | Vertical \u2013 Anticlockwise curve \u2013 J hook\nvhv   | Vertical \u2013 Horizontal \u2013 Vertical\nvht   | Vertical \u2013 Horizontal \u2013 Throw\nvhtj  | Vertical \u2013 Horizontal \u2013 Throw \u2013 J hook\nvj    | Vertical \u2013 J hook\nvc    | Vertical \u2013 Clockwise curve\nvcj   | Vertical \u2013 Clockwise curve \u2013 J hook\ntu    | Throw \u2013 Upward horizontal\nth    | Throw \u2013 Horizontal\ntd    | Throw \u2013 Dot\nwtd   | Wilted Throw \u2013 Dot\ntht   | Throw \u2013 Horizontal \u2013 Throw\nthtj  | Throw \u2013 Horizontal \u2013 Throw \u2013 J hook\ntj    | Throw \u2013 J hook\ncj    | Clockwise curve \u2013 J hook\nfpj   | Flat Press \u2013 J hook\npj    | Press \u2013 J hook\nthtaj | Throw \u2013 Horizontal \u2013 Throw \u2013 Anticlockwise curve \u2013 J hook\ntod   | Throw \u2013 Oval \u2013 Dot<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/details>\n<details>\n<summary class=\"title\">Click here to view the corresponding graphics<\/summary>\n<div class=\"content\">\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 1. Inherited names of CJK basic and compound strokes (63 items)<\/caption>\n<colgroup>\n<col style=\"width: 16.6666%;\">\n<col style=\"width: 16.6666%;\">\n<col style=\"width: 16.6666%;\">\n<col style=\"width: 16.6666%;\">\n<col style=\"width: 16.6666%;\">\n<col style=\"width: 16.667%;\">\n<\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">Stroke<\/th>\n<th class=\"tableblock halign-left valign-top\">Chinese name<\/th>\n<th class=\"tableblock halign-left valign-top\">Abbr form<\/th>\n<th class=\"tableblock halign-left valign-top\">Full name<\/th>\n<th class=\"tableblock halign-left valign-top\">Name in Unicode<\/th>\n<th class=\"tableblock halign-left valign-top\">Example<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_h.svg\" alt=\"Cjk m str h\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">H<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">H<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e09 \u8a00 \u96b9 \u82b1<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_sh.svg\" alt=\"Cjk m str sh\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u659c\u6a6b<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SH<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Slanted Horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(H)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e03 \u5f0b \u5b85 \u6208<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_u.svg\" alt=\"Cjk m str u\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6311<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">U<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Upward horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">T<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5201 \u6c42 \u866b \u5730<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_du.svg\" alt=\"Cjk m str du\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u9ede\u6311<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">DU<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Dot \u2013 Upward horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(T)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u51b0 \u51b7 \u6c57 \u6c41<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_v.svg\" alt=\"Cjk m str v\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">V<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">S<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5341 \u572d \u5ddd \u4ec6<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_sv.svg\" alt=\"Cjk m str sv\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u659c\u8c4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SV<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Slanted Vertical<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(S)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e11 \u4e94 \u4e99 \u8cab<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_rsv.svg\" alt=\"Cjk m str rsv\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u53f3\u659c\u8c4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">RSV<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Right Slanted Vertical<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(S)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\ud841\ude74<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_t.svg\" alt=\"Cjk m str t\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">T<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">P<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u7af9 \u5927 \u4e42 \u52ff<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ft.svg\" alt=\"Cjk m str ft\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6241\u6487<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">FT<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Flat Throw<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(P)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5343 \u4e4f \u79be \u65a4<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_wt.svg\" alt=\"Cjk m str wt\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u76f4\u6487<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">WT<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Wilted Throw<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SP<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e5d \u5384 \u6708 \u51e0<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_d.svg\" alt=\"Cjk m str d\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u9ede<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">D<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Dot<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">D<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e3b \u535c \u5915 \u51e1<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ed.svg\" alt=\"Cjk m str ed\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u9577\u9ede<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">ED<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Extended Dot<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(D)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u56ea \u56df \u8fd9 \u51f6<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ld.svg\" alt=\"Cjk m str ld\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5de6\u9ede<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">LD<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Left Dot<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(D)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5fc3 \u5fd9 \u606d \u70f9<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_wd.svg\" alt=\"Cjk m str wd\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u76f4\u9ede<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">WD<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Wilted Dot<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(D)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u516d \u6587 \u5b87 \u7a7a<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_p.svg\" alt=\"Cjk m str p\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u637a<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">P<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Press<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">N<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4eba \u6728 \u5c3a \u51ac<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_up.svg\" alt=\"Cjk m str up\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6311\u637a<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">UP<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Upward horizontal \u2013 Press<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">TN<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6587 \u5ef4 \u7236 \u723b<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hp.svg\" alt=\"Cjk m str hp\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u637a<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HP<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Press<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(TN)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5165 \u516b \u5167 \u5168<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_fp.svg\" alt=\"Cjk m str fp\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6241\u637a<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">FP<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Flat Press<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(N)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8d70 \u8db3 \u5ef4 \u9eb5<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ufp.svg\" alt=\"Cjk m str ufp\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6311\u6241\u637a<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">UFP<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Upward horizontal \u2013 Flat Press<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(TN)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e4b \u4e4f \u5de1 \u8ff4<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_c.svg\" alt=\"Cjk m str c\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5f4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">C<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Clockwise curve<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">W<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_a.svg\" alt=\"Cjk m str a\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u66f2<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">A<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Anticlockwise curve<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">X<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_o.svg\" alt=\"Cjk m str o\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5708<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">O<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Oval<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Q<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u3007 \u3514 \u3ab3 \u3ac8<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hj.svg\" alt=\"Cjk m str hj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u51a7 \u6b20 \u519d \u86cb<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_uj.svg\" alt=\"Cjk m str uj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6311\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">UJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Upward horizontal \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(HG)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e5f \u4e5c \u6c60 \u99b3<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ht.svg\" alt=\"Cjk m str ht\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u6487<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HT<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Throw<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HP<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5915 \u6c34 \u767b \u4ee4<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hsv.svg\" alt=\"Cjk m str hsv\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u659c<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HSV<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Slanted Vertical<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(HP)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4eca \u5f54 \u4e92 \u6046<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hv.svg\" alt=\"Cjk m str hv\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u8c4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HV<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Vertical<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u53e3 \u5df1 \u81fc \u5178<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hvj.svg\" alt=\"Cjk m str hvj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u8c4e\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HVJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Vertical \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u800c \u6c38 \u5370 \u4ee4<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_htj.svg\" alt=\"Cjk m str htj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u6487\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HTJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Throw \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(HZG)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u52fa \u65b9 \u529b \u6bcd<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_utj.svg\" alt=\"Cjk m str utj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6311\u6487\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">UTJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Upward horizontal \u2013 Throw \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(HZG)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e5f \u4e5c \u6c60 \u99b3<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hvh.svg\" alt=\"Cjk m str hvh\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u8c4e\u6a6b<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HVH<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Vertical \u2013 Horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZZ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u51f9 \u5155 \u534d \u96cb<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hvu.svg\" alt=\"Cjk m str hvu\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u8c4e\u6311<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HVU<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Vertical \u2013 Upward horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZT<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6bbc \u9e20 \u8bf4 \u8ba1<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ha.svg\" alt=\"Cjk m str ha\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u66f2<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HA<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Anticlockwise curve<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZW<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6735 \u6cbf \u6bb3 \u6ca1<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_haj.svg\" alt=\"Cjk m str haj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u66f2\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HAJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Anticlockwise curve \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZWG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e5d \u51e0 \u51e1 \u4ea2<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hpj.svg\" alt=\"Cjk m str hpj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u637a\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HPJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Press \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(HZWG)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u98a8 \u8fc5 \u98db \u51f0<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_htaj.svg\" alt=\"Cjk m str htaj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u6487\u66f2\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HTAJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Throw \u2013 Anticlockwise curve \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HXWG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e59 \u6c39 \u4e5e \u4e6d<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_htc.svg\" alt=\"Cjk m str htc\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u6487\u5f4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HTC<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Throw \u2013 Clockwise curve<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">---<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u904e \u8fc7 \u9019 \u8fd9<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_htht.svg\" alt=\"Cjk m str htht\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u6487\u6a6b\u6487<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HTHT<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Throw \u2013 Horizontal \u2013 Throw<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZZP<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5ef6 \u5efa \u5de1 \u53ca<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_htcj.svg\" alt=\"Cjk m str htcj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u6487\u5f4e\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HTCJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Throw \u2013 Clockwise curve \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HPWG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u9673 \u964c \u90a3 \u8036<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hvhv.svg\" alt=\"Cjk m str hvhv\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u8c4e\u6a6b\u8c4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HVHV<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Vertical \u2013 Horizontal \u2013 Vertical<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZZZ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u51f8 \ud847\ude2d \ud843\udc42 \ud84a\udecb<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hthtj.svg\" alt=\"Cjk m str hthtj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u6487\u6a6b\u6487\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HTHTJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Throw \u2013 Horizontal \u2013 Throw \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZZZG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e43 \u5b55 \u4ecd \u76c8<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vu.svg\" alt=\"Cjk m str vu\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u6311<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VU<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Upward horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">ST<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u536c \u6c0f \u8863 \u6bd4<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vh.svg\" alt=\"Cjk m str vh\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u6a6b<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VH<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SZ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5c71 \u4e16 \u5321 \u76f4<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_va.svg\" alt=\"Cjk m str va\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u66f2<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VA<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Anticlockwise curve<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SW<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5340 \u4ea1 \u56db \u5339<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vaj.svg\" alt=\"Cjk m str vaj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u66f2\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VAJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Anticlockwise curve \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SWG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5b54 \u5df2 \u4e82 \u4e5f<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vhv.svg\" alt=\"Cjk m str vhv\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u6a6b\u8c4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VHV<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Horizontal \u2013 Vertical<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SZZ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u9f0e \u4e9e \u5433 \u5350<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vht.svg\" alt=\"Cjk m str vht\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u6a6b\u6487<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VHT<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Horizontal \u2013 Throw<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(SZZ)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u594a \u6351 \ud843\udc50 \ud85e\uddae<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vhtj.svg\" alt=\"Cjk m str vhtj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u6a6b\u6487\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VHTJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Horizontal \u2013 Throw \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SZWG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5f13 \u5f1f \u4e10 \u5f31<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vj.svg\" alt=\"Cjk m str vj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5c0f \u6c34 \u5230 \u5bf8<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vc.svg\" alt=\"Cjk m str vc\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u5f4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VC<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Clockwise curve<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SWZ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8085 \u562f \u856d \u701f<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vcj.svg\" alt=\"Cjk m str vcj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u5f4e\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VCJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Clockwise curve \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">---<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\ud861\ude68 \ud861\udedc \ud861\udfa0 \ud861\udfb0<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_tu.svg\" alt=\"Cjk m str tu\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487\u6311<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">TU<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw \u2013 Upward horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">PZ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u53bb \u516c \u7384 \u9109<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_th.svg\" alt=\"Cjk m str th\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487\u6a6b<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">TH<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw \u2013 Horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(SZ)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e92 \u6bcd \u7259 \u8f66<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_td.svg\" alt=\"Cjk m str td\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487\u9ede<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">TD<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw \u2013 Dot<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">PD<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5de1 \u516a \u5de2 \u7cbc<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_wtd.svg\" alt=\"Cjk m str wtd\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u76f4\u6487\u9ede<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">WTD<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Wilted Throw \u2013 Dot<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(PD)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5973 \u5982 \u59e6 \u3722<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_tht.svg\" alt=\"Cjk m str tht\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487\u6a6b\u6487<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">THT<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw \u2013 Horizontal \u2013 Throw<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(SZZ)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5928 \ud842\ude2e \u4e13 \u7816<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_thtj.svg\" alt=\"Cjk m str thtj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487\u6a6b\u6487\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">THTJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw \u2013 Horizontal \u2013 Throw \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(SZWG)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5de7 \u4e9f \u6c61 \u865f<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_tj.svg\" alt=\"Cjk m str tj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">TJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">PG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e44<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_cj.svg\" alt=\"Cjk m str cj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5f4e\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">CJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Clockwise curve \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">WG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u72d7 \u8c78 \u8c55 \u8c61<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_fpj.svg\" alt=\"Cjk m str fpj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6241\u637a\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">FPJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Flat Press \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">BXG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5fc3 \u5fc5 \u6c81 \u53af<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_pj.svg\" alt=\"Cjk m str pj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u637a\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">PJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Press \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">XG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5f0b \u6208 \u6211 \u92ad<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_thtaj.svg\" alt=\"Cjk m str thtaj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487\u6a6b\u6487\u66f2\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">THTAJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw \u2013 Horizontal \u2013 Throw \u2013 Anticlockwise curve \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">---<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\ud840\udcc9 \ud85b\udcb3 \ud85b\udd31 \u9ce6<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_tod.svg\" alt=\"Cjk m str tod\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487\u5708\u9ede<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">TOD<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw \u2013 Oval \u2013 Dot<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">---<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\ud846\uddd1 \ud844\udda2<\/p><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/details>\n<div class=\"paragraph\">\n<p>After being processed by the glyph outline generation program provided by Smaji CJKV, the following outline file is generated, which can be used in a font editor.<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\">\n<img src=\"https:\/\/doye.smaji.org\/outlines\/516b,0.outline.svg\" alt=\"the outline of 516b\">\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>In <code>god<\/code>, strokes are used to form glyphs, so are the existing characters. For example, the character \"\u4e15\" can be composed of the character \"\u4e0d\" plus \"\u4e00\".<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"rouge highlight\"><code data-lang=\"xml\"><table class=\"linenotable\"><tbody><tr><td class=\"linenos gl\"><pre class=\"lineno\">1\n2\n3\n4\n5\n6\n7\n<\/pre><\/td><td class=\"code\"><pre><span class=\"cp\">&lt;?xml version=\"1.0\"?&gt;<\/span>\n<span class=\"nt\">&lt;god<\/span> <span class=\"na\">version=<\/span><span class=\"s\">\"1.0\"<\/span> <span class=\"na\">xmlns=<\/span><span class=\"s\">\"http:\/\/cjkv.smaji.org\/ns\/god\"<\/span><span class=\"nt\">&gt;<\/span>\n  <span class=\"nt\">&lt;glyph<\/span> <span class=\"na\">unicode=<\/span><span class=\"s\">\"4e15,0\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\">&lt;ref<\/span> <span class=\"na\">unicode=<\/span> <span class=\"s\">\"4e0d\"<\/span> <span class=\"na\">x=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">y=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">width=<\/span><span class=\"s\">\"128\"<\/span> <span class=\"na\">height=<\/span><span class=\"s\">\"120\"<\/span><span class=\"nt\">\/&gt;<\/span>\n    <span class=\"nt\">&lt;stroke<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"h\"<\/span> <span class=\"na\">x=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">y=<\/span><span class=\"s\">\"114\"<\/span> <span class=\"na\">width=<\/span><span class=\"s\">\"128\"<\/span> <span class=\"na\">height=<\/span><span class=\"s\">\"14\"<\/span><span class=\"nt\">\/&gt;<\/span>\n  <span class=\"nt\">&lt;\/glyph&gt;<\/span>\n<span class=\"nt\">&lt;\/god&gt;<\/span>\n<\/pre><\/td><\/tr><\/tbody><\/table><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Of course, although using unicode scalar directly is accurate, typing in a character instead is also a very good choice for commonly used and unambiguous characters. The <code>god<\/code> file above can also be rewritten into the following form. Change line 4 to<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"rouge highlight\"><code data-lang=\"xml\"><span class=\"nt\">&lt;character<\/span> <span class=\"na\">utf8=<\/span> <span class=\"s\">\"\u4e0d\"<\/span> <span class=\"na\">x=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">y=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">width=<\/span><span class=\"s\">\"128\"<\/span> <span class=\"na\">height=<\/span><span class=\"s\">\"120\"<\/span><span class=\"nt\">\/&gt;<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Get the following <code>god<\/code> file<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"rouge highlight\"><code data-lang=\"xml\"><table class=\"linenotable\"><tbody><tr><td class=\"linenos gl\"><pre class=\"lineno\">1\n2\n3\n4\n5\n6\n7\n<\/pre><\/td><td class=\"code\"><pre><span class=\"cp\">&lt;?xml version=\"1.0\"?&gt;<\/span>\n<span class=\"nt\">&lt;god<\/span> <span class=\"na\">version=<\/span><span class=\"s\">\"1.0\"<\/span> <span class=\"na\">xmlns=<\/span><span class=\"s\">\"http:\/\/cjkv.smaji.org\/ns\/god\"<\/span><span class=\"nt\">&gt;<\/span>\n  <span class=\"nt\">&lt;glyph<\/span> <span class=\"na\">unicode=<\/span><span class=\"s\">\"4e15,0\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\">&lt;character<\/span> <span class=\"na\">utf8=<\/span> <span class=\"s\">\"\u4e0d\"<\/span> <span class=\"na\">x=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">y=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">width=<\/span><span class=\"s\">\"128\"<\/span> <span class=\"na\">height=<\/span><span class=\"s\">\"120\"<\/span><span class=\"nt\">\/&gt;<\/span>\n    <span class=\"nt\">&lt;stroke<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"h\"<\/span> <span class=\"na\">x=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">y=<\/span><span class=\"s\">\"114\"<\/span> <span class=\"na\">width=<\/span><span class=\"s\">\"128\"<\/span> <span class=\"na\">height=<\/span><span class=\"s\">\"14\"<\/span><span class=\"nt\">\/&gt;<\/span>\n  <span class=\"nt\">&lt;\/glyph&gt;<\/span>\n<span class=\"nt\">&lt;\/god&gt;<\/span>\n<\/pre><\/td><\/tr><\/tbody><\/table><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>The following glyph outlines can be produced:<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\">\n<img src=\"https:\/\/doye.smaji.org\/outlines\/4e15,0.outline.svg\" alt=\"the outline of 4e15\">\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Let&#8217;s take a look at another glyph outline:<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\">\n<img src=\"https:\/\/doye.smaji.org\/outlines\/2010f,0.outline.svg\" alt=\"the outline of 2010f\">\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Doesn&#8217;t it look like \"\u4e86\" turned upside down? Indeed, in Chinese characters, there are left-right mirror characters, up-down mirror characters, and rotated characters. The character illustrated is a rotating one. So how does it described in <code>god<\/code>?<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"rouge highlight\"><code data-lang=\"xml\"><table class=\"linenotable\"><tbody><tr><td class=\"linenos gl\"><pre class=\"lineno\">1\n2\n3\n4\n5\n6\n<\/pre><\/td><td class=\"code\"><pre><span class=\"cp\">&lt;?xml version=\"1.0\"?&gt;<\/span>\n<span class=\"nt\">&lt;god<\/span> <span class=\"na\">version=<\/span><span class=\"s\">\"1.0\"<\/span> <span class=\"na\">xmlns=<\/span><span class=\"s\">\"http:\/\/cjkv.smaji.org\/ns\/god\"<\/span><span class=\"nt\">&gt;<\/span>\n  <span class=\"nt\">&lt;glyph<\/span> <span class=\"na\">unicode=<\/span><span class=\"s\">\"2010f,0\"<\/span> <span class=\"na\">transform=<\/span><span class=\"s\">\"rotate180\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\">&lt;character<\/span> <span class=\"na\">utf8=<\/span><span class=\"s\">\"\u4e86\"<\/span> <span class=\"na\">x=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">y=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">width=<\/span><span class=\"s\">\"88\"<\/span> <span class=\"na\">height=<\/span><span class=\"s\">\"128\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n  <span class=\"nt\">&lt;\/glyph&gt;<\/span>\n<span class=\"nt\">&lt;\/god&gt;<\/span>\n<\/pre><\/td><\/tr><\/tbody><\/table><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>One of the design concepts in <code>god<\/code> is that for Chinese characters after Liding(\u96b6\u5b9a) and Libian(\u96b6\u53d8), their composition is a combination of basic components and strokes, rather than the manipulation of basic components and strokes. Therefore, mirroring or rotating operations only work on the characters as a whole.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Therefore, we can add <code>transform<\/code> attribute to the <code>glyph<\/code> element and<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><code>mirror_horizontal<\/code><\/p>\n<\/li>\n<li>\n<p><code>mirror_vertical<\/code><\/p>\n<\/li>\n<li>\n<p><code>rotate180<\/code><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>are given to choose from as the attribute&#8217;s value to indicate the transition.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Because the glyph of <code>unicode<\/code> 2010f is exactly the rotation of the character \"\u4e86\". So in this <code>god<\/code> file, the 6th line indicates that the <code>transform<\/code> attribute is <code>rotate180<\/code>, and the 7th line directly introduces the glyph of the character \"\u4e86\" as the basis. That is, the required glyph is obtained.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_smaji_cjvk_support_for_god\">Smaji CJVK support for GOD<\/h3>\n<div class=\"sect3\">\n<h4 id=\"_smaji_glyph_outline\"><a href=\"https:\/\/github.com\/smaji-org\/smaji_glyph_outline\">Smaji Glyph Outline<\/a><\/h4>\n<div class=\"paragraph\">\n<p>An OCaml library for reading, exporting, and converting glyph outline data and files.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Supported glyph outline formats are:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>SVG, Scalable Vector Graphics. It is extremely widely used and supports an unusually rich range of vector graphics formats.<\/p>\n<\/li>\n<li>\n<p>GLIF, Glyph Interchange Format. for Unified Font Object<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div class=\"sect3\">\n<h4 id=\"_smaji_god\"><a href=\"https:\/\/github.com\/smaji-org\/smaji_god\">Smaji God<\/a><\/h4>\n<div class=\"paragraph\">\n<p>An OCaml library for reading, processing, and exporting GOD documents.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect3\">\n<h4 id=\"_smaji_dynglyph\"><a href=\"https:\/\/github.com\/smaji-org\/smaji_dyn_glyph\">Smaji DynGlyph<\/a><\/h4>\n<div class=\"paragraph\">\n<p>An executable program that allows users to generate font outline files from <code>GOD<\/code> documents, and the outline files can be used to generate fonts. In addition, users can also use this program to generate stroke animation files for demonstration.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect3\">\n<h4 id=\"_smaji_dynglyph_collection\"><a href=\"https:\/\/github.com\/smaji-org\/smaji_dyn_glyph_sample\">Smaji DynGlyph Collection<\/a><\/h4>\n<div class=\"paragraph\">\n<p>A git repository that stores sample basic stroke libraries used by the dyn-glyph program, as well as a collection of GOD documents submitted by users.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect3\">\n<h4 id=\"_online_god_editor\"><a href=\"https:\/\/cjkv.smaji.org\/gen_svg\">Online God Editor<\/a><\/h4>\n<div class=\"paragraph\">\n<p>Edit online, submit god files, and generate svg outline files or animation files.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>","category":[{"@attributes":{"term":"cjkv"}},{"@attributes":{"term":"cjkv"}},{"@attributes":{"term":"unicode"}},{"@attributes":{"term":"god"}}]},{"title":"CJKV GOD","link":{"@attributes":{"href":"https:\/\/doye.smaji.org\/cjkv%20god%20intro%20[zh_SC].html","rel":"alternate"}},"published":"2024-02-16T18:26:00+08:00","updated":"2024-02-16T18:26:00+08:00","author":{"name":"ZAN DoYe"},"id":"tag:doye.smaji.org,2024-02-16:\/cjkv god intro [zh_SC].html","summary":"<div class=\"paragraph\">\n<p>\u6700\u8fd1\u6295\u4e86\u4e2a\u7a3f\u4ecb\u7ecd smaji cjkv. \u6536\u5230\u4e86\u51e0\u4e2a\u5ba1\u7a3f\u610f\u89c1\uff0c\u5efa\u8bae\u5728\u7a3f\u4ef6\u4e2d\u8865\u5145\u4e9b\u5f15\u7528\u53ca\u524d\u7f6e\u4fe1\u606f\u3002\u8fd9\u4e5f\u662f\u7b26\u5408\u9884\u671f\u7684\u3002\u6bd5\u7adf\uff0c\u5927\u591a\u5b66\u79d1\uff0c\u5de5 \u2026<\/p><\/div>","content":"<div class=\"paragraph\">\n<p>\u6700\u8fd1\u6295\u4e86\u4e2a\u7a3f\u4ecb\u7ecd smaji cjkv. \u6536\u5230\u4e86\u51e0\u4e2a\u5ba1\u7a3f\u610f\u89c1\uff0c\u5efa\u8bae\u5728\u7a3f\u4ef6\u4e2d\u8865\u5145\u4e9b\u5f15\u7528\u53ca\u524d\u7f6e\u4fe1\u606f\u3002\u8fd9\u4e5f\u662f\u7b26\u5408\u9884\u671f\u7684\u3002\u6bd5\u7adf\uff0c\u5927\u591a\u5b66\u79d1\uff0c\u5de5\u7a0b\u7684\u53d1\u5c55\uff0c\u90fd\u662f\u6709\u5ef6\u7eed\u6027\u7684\u3002\u81ea\u7136\u5f97\u5efa\u7acb\u5728\u524d\u4eba\u7684\u57fa\u7840\u4e0a\u505a\u53d1\u5c55\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u6211\u867d\u60f3\u8865\u5145\u8fd9\u65b9\u9762\u7684\u5f15\u7528\uff0c\u4f46\u4e00\u5f00\u59cb\u8fd8\u662f\u89c9\u5f97\u6709\u70b9\u56f0\u96be\u3002\u56e0\u4e3a\u8fd1\u4e8c\u5341\u5e74\u5728\u5f02\u4f53\u5b57\uff0c\u7f55\u7528\u5b57\u5f55\u5165\uff0c\u7f16\u7801\uff0c\u5b57\u4f53\u8fd9\u65b9\u9762\uff0c\u6211\u4eec\u867d\u65f6\u6709\u63a2\u7d22\uff0c\u4f46\u90fd\u6ca1\u6709\u5f62\u6210\u5f88\u5927\u5f71\u54cd\u529b\u3002\u5927\u591a\u4e3a\u81ea\u6210\u4e00\u4f53\uff0c\u65e0\u6cd5\u878d\u5165\u901a\u7528\u4f53\u7cfb\u7684\u79c1\u7528\u7cfb\u7edf\u3002\u5176\u4e2d\u6709\u76f8\u5bf9\u5f00\u653e\u7684\uff0c\u5219\u6210\u4e86\u5f00\u653e\u7528\u6237\u4ecb\u9762\u7684\u79c1\u7528\u7cfb\u7edf\uff0c\u5f00\u653e\u53c8\u901a\u884c\u7684\uff0c\u5219\u57fa\u7840\u67b6\u6784\u5931\u80fd\uff0c\u90fd\u4e0d\u80fd\u4f5c\u4e3a\u540e\u7eed\u53d1\u5c55\u7684\u57fa\u7840\u3002\u4e0d\u503c\u5f97\u653e\u5728\u5f15\u7528\u548c\u524d\u7f6e\u77e5\u8bc6\u91cc\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Unicode \u4e8e 1999 \u5e74\u5728 Unicode 3.0 \u5f15\u5165\u4e86\u81ea\u5df1\u7684 Ideographic Description Characters. \u5b83\u5929\u7136\u5730\u878d\u5165\u901a\u7528\u4f53\u7cfb\uff0c\u8986\u76d6\u9762\u53c8\u5e7f\uff0c\u4f7f\u7528\u65b9\u4fbf\u3002\u6bd4\u5982\uff0c\u201c\u65f6\u95f4\u201d\uff0c\u4e8c\u5b57\uff0c\u5206\u522b\u53ef\u8868\u793a\u4e3a\u201c\u2ff0\u65e5\u5bf8\u201d\uff0c\u201c\u2ff5\u95e8\u65e5\u201d \u3002\u5373\u4f7f\u590d\u6742\u5982\u201c\ud883\udedd\ud883\udedd\u9762\u201d\u4e2d\u7684\u201c\ud883\udedd\u201d\u5b57\uff0c\u4e5f\u53ef\u4ee5\u8868\u793a\u4e3a\u201c\u2ffa\u8fb6\u2ff3\u7a74\u2ff2\u6708\u2ff1\u2ff2\u5e7a\u8a00\u5e7a\u2ff2\u957f\u9a6c\u957f\u5202\u5fc3\u201d\u3002\u4e4d\u4e00\u770b\uff0c\u529f\u80fd\u662f\u5f88\u5b8c\u5907\u7684\u3002<\/p>\n<\/div>\n<details>\n<summary class=\"title\">\u70b9\u51fb\u67e5\u770b\ud883\udedd\u5b57<\/summary>\n<div class=\"content\">\n<div class=\"imageblock\">\n<div class=\"content\">\n<img src=\"https:\/\/doye.smaji.org\/images\/30edd.svg\" alt=\"30edd\">\n<\/div>\n<\/div>\n<\/div>\n<\/details>\n<div class=\"paragraph\">\n<p>\u4f46\u95ee\u9898\u662f\uff0c\u9047\u5230\u201c\u4e1d\u201d\uff0c\u5219\u65e0\u6cd5\u5206\u89e3\u3002\u56e0\u4e3a Unicode \u672a\u6536\u5f55\u201c\u5e7a\u201d\u53bb\u9664\u6700\u540e\u4e00\u70b9\u7684\u5b57\u3002\u518d\u6bd4\u5982\u201c\u4e54\u201d\uff0c\u4e0a\u201c\u592d\u201d\u4e0b\u201c\uff1f\u201d\uff0c\u4e5f\u662f\u672a\u6536\u5f55\u5b57\u3002\u518d\u6bd4\u5982\u4ee5\u4e0b\u5b57\u7684\u5206\u89e3\uff1a\u201c\u4e0e\u201d\uff0c\u201c\u4e4c\u201d\uff0c\u201c\u4e87\u201d\uff0c\u201c\u4e89\u201d\uff0c\u201c\u4ea5\u201d\uff0c\u201c\u4ee5\u201d\u2026\u2026<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u56e0\u4e3a\u592a\u591a\u7684\u201c\u7ec4\u4ef6\u201d\u5176\u5b9e\u5e76\u65e0\u76f8\u5e94\u7684\u5b57\u4e0e\u5176\u5bf9\u5e94\uff0c\u800c\u8fd9\u5957\u7cfb\u7edf\u53c8\u8981\u6c42\u5176\u5b9a\u4e49\u57df\uff0c\u548c\u503c\u57df\u7686\u4e3a Unicode \u6536\u5f55\u5e93\u3002\u6240\u4ee5\u8fd9\u5957\u7cfb\u7edf\u8bbe\u8ba1\uff0c\u4e00\u5f00\u59cb\u5c31\u7f3a\u635f\u800c\u65e0\u6cd5\u5b8c\u5907\uff1a\u5373\u4f7f\u5bf9\u5e38\u7528\u5b57\uff0c\u90fd\u65e0\u6cd5\u505a\u5230\u63cf\u8ff0\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u5176\u4f59\u7684\u79c1\u7528\u7cfb\u7edf\uff0c\u6709\u610f\u8bc6\u5230\u8fd9\u4e2a\u95ee\u9898\u540e\u653e\u5bbd\u4e86\u5b9a\u4e49\u57df\u7684\u9650\u5236\uff0c\u5f15\u5165\u4e86\u79c1\u6709\u7ec4\u4ef6\u3002\u4f46\u6c49\u5b57\u7684\u7ec4\u5408\u65b9\u5f0f\u591a\u6837\uff0c\u8868\u610f\u6587\u5b57\u63cf\u8ff0\u5e8f\u5217\u53ea\u80fd\u63cf\u8ff0\u4e00\u4e9b\u7406\u60f3\u7ec4\u5408\u65b9\u5f0f\u3002\u7a0d\u7a0d\u4e0d\u90a3\u4e48\u7406\u60f3\uff0c\u8b6c\u5982\u201c\u2ffb\u201d\uff0c\u610f\u601d\u662f\u4e24\u4e2a\u7ec4\u4ef6\u76f8\u91cd\u53e0\uff0c\u4f46\u5177\u4f53\u662f\u600e\u4e48\u91cd\u53e0\uff0c\u91cd\u53e0\u65b9\u5411\u5982\u4f55\uff0c\u91cd\u53e0\u7a0b\u5ea6\u5982\u4f55\uff1f\u5168\u65e0\u63cf\u8ff0\u3002\u4e8e\u662f\uff0c\u65e0\u6cd5\u4ece\u8868\u610f\u6587\u5b57\u63cf\u8ff0\u5e8f\u5217\u4e2d\u8fd8\u539f\u5b57\u5f62\u3002\u7ed3\u679c\u662f\u53c8\u591a\u4e86\u51e0\u5957\u7f3a\u635f\u800c\u4e0d\u5b8c\u5907\u7684\u7cfb\u7edf\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4e0d\u8fc7\uff0c\u5ba1\u7a3f\u610f\u89c1\u4e5f\u4fc3\u4f7f\u6211\u518d\u4e00\u904d\u601d\u8003\uff0c\u8fc7\u53bb\u7684\u52aa\u529b\u548c\u9057\u4ea7\uff0c\u662f\u5426\u8fd8\u6709\u4ef7\u503c\uff0c\u6216\u8005\uff0c\u7ecf\u8fc7\u6539\u9020\u63d0\u70bc\u540e\uff0c\u8fd8\u80fd\u53d1\u6325\u4f5c\u7528\u4e48\uff1f<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u5c06\u8fc7\u53bb\u7684\u63a2\u7d22\u7684\u7684\u9057\u61be\u7efc\u5408\u603b\u7ed3\u4e0b\uff0c\u53ef\u5217\u51fa\u5982\u4e0b\u51e0\u6761\uff1a<\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\">\n<li>\n<p>\u7ec4\u5408\u7ec4\u4ef6\u5b9a\u4e49\u57df\u53d7\u9650<\/p>\n<\/li>\n<li>\n<p>\u8868\u610f\u6587\u5b57\u63cf\u8ff0\u5e8f\u5217\u7f3a\u4e4f\u7cbe\u786e\u6027<\/p>\n<\/li>\n<li>\n<p>\u4e0d\u901a\u7528\u6216\u5e94\u7528\u573a\u666f\u53d7\u9650<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<div class=\"paragraph\">\n<p>\u800c\u89e3\u51b3\u65b9\u6cd5\u7684\u8bbe\u8ba1\u4e5f\u76f8\u5e94\u7684\uff1a<\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\">\n<li>\n<p>\u7ec4\u5408\u7ec4\u4ef6\u5b9a\u4e49\u57df\u53d7\u9650<\/p>\n<div class=\"openblock\">\n<div class=\"content\">\n<div class=\"paragraph\">\n<p>\u9996\u5148\u5f53\u7136\u662f\u89e3\u9664\u8fd9\u4e00\u9650\u5236\uff0c\u4e14\u89e3\u9664\u9650\u5236\u7684\u65b9\u5f0f\u53c8\u4e0d\u80fd\u5e26\u6765\u65b0\u7684\u95ee\u9898\u3002\u6240\u4ee5\u9700\u6ee1\u8db3\u5982\u4e0b\u6761\u4ef6\uff1a<\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\">\n<li>\n<p>\u4e0d\u9650\u5236\u5b9a\u4e49\u57df\u4ec5\u4e3a Unicode \u6536\u5f55\u5b57\u3002\u56e0\u5176\u4e0d\u5b8c\u5907\u3002<\/p>\n<\/li>\n<li>\n<p>\u5b9a\u4e49\u7684\u57fa\u7840\u7ec4\u5408\u5fc5\u987b\u80fd\u591f\u7ec4\u5408\u4efb\u610f\u5b57\u7b26\u3002\u5426\u5219\u5373\u6210\u53e6\u4e00\u4e0d\u5b8c\u5907\u7cfb\u7edf\u3002<\/p>\n<\/li>\n<li>\n<p>\u4e0d\u5f97\u4efb\u610f\u65b0\u589e\uff0c\u5220\u51cf\uff0c\u4fee\u6539\u57fa\u7840\u7ec4\u5408\u7ec4\u4ef6\u3002\u4ee5\u514d\u9020\u6210\u7ec4\u5408\u65b9\u5f0f\u5931\u6548\u4ee5\u53ca\u4e0d\u7a33\u5b9a\u3002<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<div class=\"paragraph\">\n<p>\u7ed3\u5408\u8fd9\u4e09\u70b9\u8981\u6c42\uff0c\u4e0d\u96be\u60f3\u5230\uff0c\u57fa\u7840\u7b14\u753b\u5373\u662f\u7b26\u5408\u4ee5\u4e0a\u6240\u6709\u8981\u6c42\u7684\u7406\u60f3\u9009\u62e9\u3002\u4f46\u4e0d\u80fd\u53ea\u662f\u7c97\u7cd9\u5730\u9009\u53d6\u4e94\u7c7b\u7b14\u753b\uff0c\u800c\u662f\u8981\u5217\u4e3e\u81f3\u5c11 63 \u79cd\u57fa\u7840\u7b14\u753b\uff0c\u4ee5\u53ca\u989d\u5916\u7684\u955c\u50cf\uff0c\u65cb\u8f6c\u64cd\u4f5c\u7b26\u624d\u591f\u7528\u3002\u56e0\u4e3a\uff0c\u6c49\u5b57\u662f\u542b\u6709\u955c\u50cf\u5b57\u548c\u5012\u7f6e\u5b57\u7684\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<p>\u8868\u610f\u6587\u5b57\u63cf\u8ff0\u5e8f\u5217\u7f3a\u4e4f\u7cbe\u786e\u6027<\/p>\n<div class=\"openblock\">\n<div class=\"content\">\n<div class=\"paragraph\">\n<p>\u8868\u610f\u6587\u5b57\u63cf\u8ff0\u5e8f\u5217\u80fd\u63cf\u8ff0\u7684\u7ed3\u6784\u6709\u5176\u8303\u5f0f\uff0c\u5373\u6240\u63cf\u8ff0\u7684\u7ec4\u4ef6\u662f\u5782\u76f4\u5c45\u4e2d\u5206\u9694\u7684(\u2ff1,\u2ff3)\u6216\u662f\u6c34\u5e73\u5c45\u4e2d\u5206\u9694\u7684(\u2ff0,\u2ff2)\u6216\u662f\u5c45\u4e2d\u5d4c\u5408\u7684(\u2ff4)\u6216\u662f\u8fb9\u5305\u56f4\u7684(\u2ff5,\u2ff6,\u2ff7,\u2ffc)\u6216\u662f\u89d2\u5305\u56f4\u7684(\u2ff8,\u2ff9,\u2ffa,\u2ffd)\u3002\u8fd9\u4e9b\u63cf\u8ff0\u7b26\u6240\u64cd\u4f5c\u7684\u63cf\u8ff0\u5bf9\u8c61\u7686\u6709\u5916\u5f62\uff0c\u5bf9\u4e8e\u5c45\u4e2d\u5206\u9694\u7684\u6587\u5b57\uff0c\u53ea\u9700\u8ba1\u7b97\u957f\u6216\u5bbd\u53d6\u5e73\u5747\u503c\uff0c\u5404\u4e2a\u7ec4\u4ef6\u5c31\u80fd\u4f9d\u636e\u5747\u503c\u8c03\u6574\u957f\u5bbd\u6bd4\uff0c\u53d6\u5f97\u65b0\u5f62\u72b6\u3002\u5305\u56f4\u7ed3\u6784\u7684\u8bdd\uff0c\u5185\u90e8\u7ec4\u4ef6\u88ab\u5d4c\u5408\uff0c\u53ea\u9700\u6309\u5916\u90e8\u7ec4\u4ef6\u4f9d\u6bd4\u4f8b\u7f29\u5c0f\uff0c\u5373\u53d6\u5f97\u65b0\u5916\u5f62\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u63cf\u8ff0\u7b26 \u2ffb \u4ee3\u8868\u63cf\u8ff0\u4e24\u4e2a\u64cd\u4f5c\u5b50(\u88ab\u64cd\u4f5c\u5bf9\u8c61)\u662f\u76f8\u4e92\u91cd\u53e0\u7684\uff0c\u5373\u8fb9\u754c\u5931\u6548\u3002\u4e8e\u662f\u5728\u7ec4\u4ef6\u6392\u5e03\u4e2d\u5c31\u7ec4\u4ef6\u5916\u5f62\u5c31\u4e0d\u80fd\u4f5c\u4e3a\u8ba1\u7b97\u4f9d\u636e\u3002\u800c\u9664\u6b64\u4e4b\u5916\uff0c\u63cf\u8ff0\u7b26(IDS)\u548c\u64cd\u4f5c\u5bf9\u8c61(\u7b14\u753b\uff0c\u5b57\u6839)\u6ca1\u6709\u5185\u7980\u6027\u7684\u5176\u4ed6\u4efb\u4f55\u8ba1\u7b97\u4f9d\u636e\uff0c\u4e8e\u662f\u5bfc\u81f4\u4e86\u8fd9\u4e00\u63cf\u8ff0\u7cfb\u7edf\u7684\u5931\u80fd\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u6240\u4ee5\uff0c\u6211\u4eec\u5c31\u5f97\u5f15\u5165\u989d\u5916\u7684\u4fe1\u606f\u6765\u8865\u8db3\u7f3a\u635f\u3002\u5206\u9694\u6216\u5305\u56f4\u63cf\u8ff0\u7b26\u6240\u63cf\u8ff0\u7684\u7ec4\u4ef6\u6709\u5176\u5916\u5f62\uff0c\u63cf\u8ff0\u7684\u7ec4\u5408\u4e5f\u6709\u5176\u7ec4\u5408\u5916\u5f62\uff0c\u7ec4\u5408\u5916\u5f62\u5373\u4e3a\u6846\u5916\u5f62\u3002\u5176\u4e2d\u5171\u6709\u51e0\u79cd\u6570\u636e\uff1a\u5916\u6846\u7684\u5927\u5c0f\u548c\u4f4d\u7f6e\uff0c\u7ec4\u4ef6\u5728\u5916\u6846\u5185\u5d4c\u5408\u540e\u7684\u5927\u5c0f\u548c\u4f4d\u7f6e\u3002\u4e8e\u662f\u6700\u540e\u53ef\u4ee5\u5f97\u51fa\u7ec4\u4ef6\u4ee5\u6846\u4e3a\u5ea7\u6807\u7cfb\u539f\u70b9\u7684\u4f4d\u7f6e\u548c\u5927\u5c0f\u4fe1\u606f\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u63cf\u8ff0\u7b26 \u2ffb \u5931\u80fd\u4e86\u7ec4\u4ef6\u5f62\u72b6\u540e\uff0c\u76f8\u5e94\u7684\u5916\u6846\u8ba1\u7b97\u5c31\u65e0\u6cd5\u8fdb\u884c\u4e86\u3002\u4e8e\u662f\u7ec4\u4ef6\u7684\u4f4d\u7f6e\u4fe1\u606f\u548c\u5927\u5c0f\u4fe1\u606f\u90fd\u65e0\u6cd5\u8fdb\u884c\u8ba1\u7b97\u3002\u4e8e\u662f\uff0c\u6211\u4eec\u9700\u8865\u8db3\u7684\uff0c\u5373\u8fd9\u4e24\u4e2a\u4fe1\u606f\u3002\u6709\u4e86\u8fd9\u4e24\u4e2a\u4fe1\u606f\uff0c\u6846\u5927\u5c0f\u4e5f\u53ef\u901a\u8fc7\u7528\u77e9\u5f62\u6700\u5c0f\u5316\u5305\u56f4\u4e24\u4e2a\u7ec4\u4ef6\u7684\u65b9\u5f0f\u6765\u5f97\u51fa\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u8981\u63cf\u8ff0\u5e73\u9762\u4f4d\u7f6e\u548c\u5927\u5c0f\u4fe1\u606f\uff0c\u6211\u4eec\u9700\u5f15\u5165\u5e73\u9762\u5ea7\u6807\u7cfb\u6765\u8fdb\u884c\u4e86\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u5e73\u9762\u5ea7\u6807\u7684\u63cf\u8ff0\u662f\u4e2a\u503c\u5f97\u5c55\u5f00\u7684\u8bdd\u9898\uff0c\u6211\u4eec\u5c06\u5176\u653e\u5728\u540e\u9762\u8ba8\u8bba\u3002\u73b0\u5728\uff0c\u6211\u4eec\u6682\u4e14\u770b\u770b\u7f3a\u96773.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<p>\u4e0d\u901a\u7528\u6216\u5e94\u7528\u573a\u666f\u53d7\u9650<\/p>\n<div class=\"openblock\">\n<div class=\"content\">\n<div class=\"paragraph\">\n<p>Unicode \u6709\u4f5c\u4e3a\u6807\u51c6\u4fe1\u606f\u4ea4\u6362\u5b57\u7b26\u96c6\u7684\u8981\u6c42\uff0c\u6240\u4ee5\u7ec4\u4ef6\u5fc5\u987b\u4ece\u81ea\u8eab\u96c6\u4e2d\u9009\u53d6\u3002\u800c\u81ea\u8eab\u96c6\u6536\u5f55\u7684\u57fa\u7840\u7ec4\u4ef6\u5c1a\u4e0d\u80fd\u8986\u76d6\u5fc5\u9700\u7684\u57fa\u7840\u7ec4\u4ef6\u3002\u518d\u52a0\u4e0a Unicode \u81ea\u5df1\u7684 Ideographic Description Characters(IDC) \u63cf\u8ff0\u80fd\u529b\u4e0d\u5b8c\u5907\u3002\u4e8e\u662f\u9020\u6210\u4e86\u7f3a\u9677 1, 2.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u800c Unicode \u4e4b\u5916\u7684\u9ad8\u6821\uff0c\u6280\u672f\u56e2\u4f53\uff0c\u5546\u4e1a\u673a\u6784\u4e5f\u5c1d\u8bd5\u8fc7\u8bbe\u8ba1\u6216\u5b9e\u73b0\u51fa Unicode \u517c\u5bb9\u53c8\u5177\u6709\u5b8c\u5907\u63cf\u8ff0\u80fd\u529b\u7684\u7cfb\u7edf\u3002\u5927\u90e8\u5206\u63a5\u8fd1\u5b8c\u5907\uff0c\u6709\u4e00\u4e9b\u5219\u6ca1\u6709\u4fdd\u6301 Unicode \u7684\u517c\u5bb9\u6027\uff0c\u4ee5\u81f4\u5e94\u7528\u573a\u666f\u53d7\u9650\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u53e6\u5916\u4e00\u4e2a\u91cd\u8981\u7684\u539f\u56e0\u662f\uff0c\u5bf9\u7075\u6d3b\u6027\u548c\u5b9e\u65f6\u6027\u7684\u8981\u6c42\u5f88\u96be\u6ee1\u8db3\u3002\u6bd4\u5982\uff0c\u5b66\u8005\u9700\u8981\u5f15\u7528\u53e4\u7c4d\u4e2d\u7684\u7247\u6bb5\uff0c\u4f46\u5176\u4e2d\u7684\u51e0\u4e2a\u6587\u5b57\u6709\u591a\u4e2a\u53d8\u4f53\uff0c\u5e76\u6ca1\u6709\u88ab\u6807\u51c6\u6536\u5f55\u3002\u6216\u662f\u65b0\u53d1\u6398\u51fa\u4e86\u53e4\u7c4d\uff0c\u51fa\u73b0\u4e86\u4e4b\u524d\u6ca1\u89c1\u8fc7\u7684\u5b57\uff0c\u9700\u8981\u5c06\u5176\u5f15\u5165\u6807\u51c6\uff0c\u5e76\u66f4\u65b0\u6240\u6709\u4eba\u7684\u8ba1\u7b97\u673a\u7cfb\u7edf\uff0c\u624d\u80fd\u6b63\u5e38\u7f16\u7801\uff0c\u663e\u793a\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4ee5\u4e0a\u7684\u8981\u6c42\u90fd\u9700\u8981\u8d70\u4e00\u4e2a\u6f2b\u957f\u5e76\u4e14\u5f88\u53ef\u80fd\u4e0d\u4f1a\u6210\u529f\u7684\u6d41\u7a0b\uff0c\u4f1a\u5f71\u54cd\u5199\u6587\u7ae0\u7684\u8fdb\u5ea6\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u8fd9\u4e2a\u95ee\u9898\u7684\u89e3\u51b3\u65b9\u6848\u5728 Smaji CJKV \u6709\u7ed9\u51fa\uff0c\u56e0\u6b64\u4e0d\u518d\u8d58\u8ff0\u4e86\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/li>\n<\/ol>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4e8b\u5b9e\u4e0a, Smaji CJKV \u5728\u4e00\u5f00\u59cb\u5e76\u672a\u8bbe\u60f3\u8bbe\u8ba1\u4e00\u4e2a\u5b57\u5f62\u63cf\u8ff0\u7cfb\u7edf\u3002\u63a5\u53d7\u7684\u4ec5\u662f\u4f4d\u56fe\u6216\u8005\u77e2\u91cf\u56fe\u7684\u5f55\u5165\u3002\u5f53\u6838\u5fc3\u7cfb\u7edf\u80fd\u591f\u517c\u5bb9\u8fd0\u4f5c\u540e\u3002\u63cf\u8ff0\u7cfb\u7edf\u7684\u8bbe\u8ba1\u53d8\u5f97\u53ef\u80fd\u3002\u800c\u524d\u9762\u63d0\u5230\u7684\u5ba1\u7a3f\u610f\u89c1\u5bf9\u4e8e\u8865\u5145\u4fe1\u606f\u7684\u8981\u6c42\uff0c\u8ba9\u6211\u91cd\u65b0\u601d\u8003\u4e86\u8fc7\u53bb\u7684\u7ecf\u9a8c\uff0c\u7136\u540e\u624d\u5f00\u59cb\u7740\u624b\u5b57\u5f62\u63cf\u8ff0\u8bed\u8a00\u7684\u8bbe\u8ba1\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u7136\u540e\uff0c\u6211\u4eec\u5c31\u6765\u89e3\u51b3\u4e4b\u524d\u8df3\u8fc7\u7684\u95ee\u9898\uff1a<\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\" start=\"2\">\n<li>\n<p>\u8868\u610f\u6587\u5b57\u63cf\u8ff0\u5e8f\u5217\u7f3a\u4e4f\u7cbe\u786e\u6027<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<div class=\"paragraph\">\n<p>\u6b64\u95ee\u9898\u7684\u89e3\u51b3\u601d\u8def\u548c\u65b9\u6cd5\uff0c\u9700\u66f4\u591a\u7bc7\u5e45\u8fdb\u884c\u8bb2\u8ff0\uff0c\u6240\u4ee5\u53e6\u8d77\u4e0b\u8ff0\u5c0f\u8282\u8fdb\u884c\u3002<\/p>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_\u5b57\u5f62\u8f6e\u5ed3\u63cf\u8ff0\u8bed\u8a00_glyph_outline_description_language\">\u5b57\u5f62\u8f6e\u5ed3\u63cf\u8ff0\u8bed\u8a00 (Glyph Outline Description Language)<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\u56e0\u4e3a\u6b64\u8bed\u8a00\u7684\u6807\u51c6\u5f62\u5f0f\u662f xml, \u6240\u4ee5\u6700\u9002\u5408\u7528 XML Schema Definition \u6765\u63cf\u8ff0\u5b83\u3002\u4ee5\u4e0b\u662f\u8fd9\u95e8\u8bed\u8a00\u7684\u7cbe\u786e\u8bed\u6cd5\u63cf\u8ff0\u6587\u6863 <a href=\"http:\/\/cjkv.smaji.org\/xml\/1.0\/xsd\/god.xsd\">god.xsd<\/a><\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_\u521b\u5efa_xml_\u6587\u6863\">\u521b\u5efa XML \u6587\u6863<\/h3>\n<div class=\"paragraph\">\n<p>XML \u6587\u6863\u7531\u53ef\u9009\u7684 XML\u58f0\u660e\uff0c\u53ef\u9009\u7684\u6587\u6863\u7c7b\u578b\u58f0\u660e\uff0c\u6587\u6863(\u6839)\u5143\u7d20\u7ec4\u6210\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>XML \u7248\u672c\u7684\u58f0\u660e\u53ef\u4ee5\u4fdd\u8bc1\u672a\u6765\u7684 XML \u7684\u53d8\u66f4\u4e0d\u4f1a\u5f71\u54cd\u6b64\u6587\u6863\u7684\u8bed\u6cd5\u8bed\u4e49\uff0c\u7f16\u7801\u58f0\u660e\u53ef\u4ee5\u544a\u8bc9 XML \u5904\u7406\u5668\u6b64\u6587\u6863\u91c7\u7528\u7684\u7f16\u7801. GOD 1.0 \u6587\u6863\u7684\u91c7\u7528\u7684 XML\u7248\u672c\u4e3a 1.0, \u7f16\u7801\u4e3a <code>UTF-8<\/code>. \u6240\u4ee5\u5176 XML \u7f16\u7801\u5934\u56fa\u5b9a\u4e3a\uff1a<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"rouge highlight\"><code data-lang=\"xml\"><span class=\"cp\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u56e0\u4e3a xml \u7248\u672c\u9ed8\u8ba4\u4e3a 1.0, \u4e14\u7f16\u7801\u9ed8\u8ba4\u53ef\u63a5\u53d7 <code>UTF-8<\/code> \u53ca <code>UTF-16<\/code>, \u6240\u4ee5\u4ee5\u4e0a\u58f0\u660e\u5934\u5e76\u4e0d\u662f\u5fc5\u9700\u7684\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"rouge highlight\"><code data-lang=\"xml\"><table class=\"linenotable\"><tbody><tr><td class=\"linenos gl\"><pre class=\"lineno\"> 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n10\n<\/pre><\/td><td class=\"code\"><pre><span class=\"cp\">&lt;?xml version=\"1.0\"?&gt;<\/span>\n<span class=\"nt\">&lt;god<\/span> <span class=\"na\">version=<\/span><span class=\"s\">\"1.0\"<\/span>\n  <span class=\"na\">xmlns=<\/span><span class=\"s\">\"http:\/\/cjkv.smaji.org\/ns\/god\"<\/span>\n  <span class=\"na\">xmlns:xsi=<\/span><span class=\"s\">\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"<\/span>\n  <span class=\"na\">xsi:schemaLocation=<\/span><span class=\"s\">\"http:\/\/cjkv.smaji.org\/ns\/god http:\/\/cjkv.smaji.org\/xml\/1.0\/xsd\/god.xsd\"<\/span><span class=\"nt\">&gt;<\/span>\n  <span class=\"nt\">&lt;glyph<\/span> <span class=\"na\">unicode=<\/span><span class=\"s\">\"516b,0\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\">&lt;stroke<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"t\"<\/span> <span class=\"na\">x=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">y=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">width=<\/span><span class=\"s\">\"56\"<\/span> <span class=\"na\">height=<\/span><span class=\"s\">\"112\"<\/span><span class=\"nt\">\/&gt;<\/span>\n    <span class=\"nt\">&lt;stroke<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"p\"<\/span> <span class=\"na\">x=<\/span><span class=\"s\">\"76\"<\/span> <span class=\"na\">y=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">width=<\/span><span class=\"s\">\"56\"<\/span> <span class=\"na\">height=<\/span><span class=\"s\">\"112\"<\/span><span class=\"nt\">\/&gt;<\/span>\n  <span class=\"nt\">&lt;\/glyph&gt;<\/span>\n<span class=\"nt\">&lt;\/god&gt;<\/span>\n<\/pre><\/td><\/tr><\/tbody><\/table><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u7b2c\u4e00\u884c\u662f\u4e00\u4e2a\u53ef\u9009\u7684 XML \u58f0\u660e\u3002<br>\n\u7b2c\u4e8c\u884c\u548c\u7b2c\u5341\u884c\u5f00\u59cb\u5e76\u7ed3\u675f\u4e00\u4e2a <code>god<\/code> \u6839\u5143\u7d20\u3002\u6839\u5143\u7d20\u4e3b\u8981\u7528\u4e8e\u8868\u660e\u6b64 <code>god<\/code> \u6587\u6863\u7684\u7248\u672c\u3002\u7b2c\u4e8c\u884c\u7684 version \u5c5e\u6027\u5c31\u8868\u660e\u4e86\u6b64 <code>god<\/code> \u6587\u6863\u91c7\u7528 1.0 \u7248\u672c\u7684\u8bed\u6cd5\u548c\u8bed\u4e49\u3002<br>\n\u7b2c\u56db\u884c\u548c\u7b2c\u4e94\u884c\u662f\u53ef\u9009\u7684\uff0c\u7528\u4e8e\u5f15\u5165\u6b64 <code>god<\/code> \u6587\u6863\u7684 XSD \u63cf\u8ff0\u4ee5\u4fbf\u6587\u672c\u7f16\u8f91\u5668\u53ef\u4ee5\u901a\u8fc7\u5b83\u6765\u9a8c\u8bc1\u6b63\u5728\u7f16\u8f91\u7684 <code>god<\/code> \u6587\u6863\u7684\u6b63\u786e\u6027\uff0c\u5e76\u63d0\u4f9b\u81ea\u52a8\u8865\u5168\u7b49\u5efa\u8bae\u3002<br><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u63a5\u4e0b\u6765\u7684\u5b50\u5143\u7d20\u4e3a <code>glyph<\/code>. \u5b83\u542b\u6709\u4e00\u4e2a\u5fc5\u9700\u5c5e\u6027 <code>unicode<\/code>, \u7528\u4e8e\u8868\u660e\u6b64 <code>god<\/code> \u6587\u6863\u6240\u63cf\u8ff0\u7684\u5b57\u5f62\u7684 <code>unicode<\/code>. \u5b83\u7684\u503c\u4e3a 16\u8fdb\u5236\u8868\u793a\u7684 <code>unicode<\/code> \u503c\uff0c\u53ef\u5728\u503c\u540e\u901a\u8fc7\u9017\u53f7\u5206\u9694\u6765\u9644\u52a0<code>\u53d8\u4f53\u9009\u62e9\u5b50<\/code>\u7684\u503c\u3002\u793a\u4f8b\u7684 <code>unicode<\/code> \u503c\u4e3a 516b, \u5373\u4e2d\u6587\u300c\u516b\u300d\u7684 <code>unicode<\/code> \u7f16\u7801\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u300c\u516b\u300d\u7531\u4e24\u4e2a\u7b14\u753b\u7ec4\u6210\uff0c\u7b2c\u4e00\u7b14\u4e3a\u6487\uff0c\u7b2c\u4e8c\u7b14\u4e3a\u637a\uff0c\u4e8e\u662f\u5728 <code>glyph<\/code> \u5143\u7d20\u7684\u4e2d\uff0c\u6211\u4eec\u6dfb\u52a0\u4e24\u4e2a\u5b50\u5143\u7d20\uff0c\u5206\u522b\u4e3a\u7b14\u753b <code>t<\/code>(\u6487) \u548c\u7b14\u753b <code>p<\/code>(\u637a). \u5e76\u7ed9\u51fa\u4e86\u4e24\u4e2a\u7b14\u753b\u7684 x, y \u8f74\u4f4d\u7f6e\u4fe1\u606f\uff0c\u5bbd\u5ea6\uff0c\u957f\u5ea6\u4fe1\u606f\u3002\u5173\u4e8e\u7b14\u753b\u7c7b\u578b\u7684 <code>god<\/code> \u63cf\u8ff0\u3002\u8bf7\u67e5\u8be2 <code>god.xsd<\/code> \u63cf\u8ff0\u6587\u4ef6\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4e0b\u8868\u662f\u53c2\u8003\u624b\u518c\u7684\u6458\u5f55\uff0c\u53ef\u4f9b\u53c2\u8003\u3002<\/p>\n<\/div>\n<details>\n<summary class=\"title\">\u70b9\u51fb\u67e5\u770b\u53c2\u8003\u624b\u518c\u6458\u5f55<\/summary>\n<div class=\"content\">\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>h     | Horizontal\nsh    | Slanted Horizontal\nu     | Upward horizontal\ndu    | Dot \u2013 Upward horizontal\nv     | Vertical\nsv    | Slanted Vertical\nrsv   | Right Slanted Vertical\nt     | Throw\nft    | Flat Throw\nwt    | Wilted Throw\nd     | Dot\ned    | Extended Dot\nld    | Left Dot\nwd    | Wilted Dot\np     | Press\nup    | Upward horizontal \u2013 Press\nhp    | Horizontal \u2013 Press\nfp    | Flat Press\nufp   | Upward horizontal \u2013 Flat Press\nc     | Clockwise curve\na     | Anticlockwise curve\no     | Oval\nhj    | Horizontal \u2013 J hook\nuj    | Upward horizontal \u2013 J hook\nht    | Horizontal \u2013 Throw\nhsv   | Horizontal \u2013 Slanted Vertical\nhv    | Horizontal \u2013 Vertical\nhvj   | Horizontal \u2013 Vertical \u2013 J hook\nhtj   | Horizontal \u2013 Throw \u2013 J hook\nutj   | Upward horizontal \u2013 Throw \u2013 J hook\nhvh   | Horizontal \u2013 Vertical \u2013 Horizontal\nhvu   | Horizontal \u2013 Vertical \u2013 Upward horizontal\nha    | Horizontal \u2013 Anticlockwise curve\nhaj   | Horizontal \u2013 Anticlockwise curve \u2013 J hook\nhpj   | Horizontal \u2013 Press \u2013 J hook\nhtaj  | Horizontal \u2013 Throw \u2013 Anticlockwise curve \u2013 J hook\nhtc   | Horizontal \u2013 Throw \u2013 Clockwise curve\nhtht  | Horizontal \u2013 Throw \u2013 Horizontal \u2013 Throw\nhtcj  | Horizontal \u2013 Throw \u2013 Clockwise curve \u2013 J hook\nhvhv  | Horizontal \u2013 Vertical \u2013 Horizontal \u2013 Vertical\nhthtj | Horizontal \u2013 Throw \u2013 Horizontal \u2013 Throw \u2013 J hook\nvu    | Vertical \u2013 Upward horizontal\nvh    | Vertical \u2013 Horizontal\nva    | Vertical \u2013 Anticlockwise curve\nvaj   | Vertical \u2013 Anticlockwise curve \u2013 J hook\nvhv   | Vertical \u2013 Horizontal \u2013 Vertical\nvht   | Vertical \u2013 Horizontal \u2013 Throw\nvhtj  | Vertical \u2013 Horizontal \u2013 Throw \u2013 J hook\nvj    | Vertical \u2013 J hook\nvc    | Vertical \u2013 Clockwise curve\nvcj   | Vertical \u2013 Clockwise curve \u2013 J hook\ntu    | Throw \u2013 Upward horizontal\nth    | Throw \u2013 Horizontal\ntd    | Throw \u2013 Dot\nwtd   | Wilted Throw \u2013 Dot\ntht   | Throw \u2013 Horizontal \u2013 Throw\nthtj  | Throw \u2013 Horizontal \u2013 Throw \u2013 J hook\ntj    | Throw \u2013 J hook\ncj    | Clockwise curve \u2013 J hook\nfpj   | Flat Press \u2013 J hook\npj    | Press \u2013 J hook\nthtaj | Throw \u2013 Horizontal \u2013 Throw \u2013 Anticlockwise curve \u2013 J hook\ntod   | Throw \u2013 Oval \u2013 Dot<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/details>\n<details>\n<summary class=\"title\">\u70b9\u51fb\u67e5\u770b\u5bf9\u5e94\u56fe\u793a<\/summary>\n<div class=\"content\">\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 1. Inherited names of CJK basic and compound strokes (63 items)<\/caption>\n<colgroup>\n<col style=\"width: 16.6666%;\">\n<col style=\"width: 16.6666%;\">\n<col style=\"width: 16.6666%;\">\n<col style=\"width: 16.6666%;\">\n<col style=\"width: 16.6666%;\">\n<col style=\"width: 16.667%;\">\n<\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">Stroke<\/th>\n<th class=\"tableblock halign-left valign-top\">Chinese name<\/th>\n<th class=\"tableblock halign-left valign-top\">Abbr form<\/th>\n<th class=\"tableblock halign-left valign-top\">Full name<\/th>\n<th class=\"tableblock halign-left valign-top\">Name in Unicode<\/th>\n<th class=\"tableblock halign-left valign-top\">Example<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_h.svg\" alt=\"Cjk m str h\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">H<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">H<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e09 \u8a00 \u96b9 \u82b1<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_sh.svg\" alt=\"Cjk m str sh\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u659c\u6a6b<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SH<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Slanted Horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(H)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e03 \u5f0b \u5b85 \u6208<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_u.svg\" alt=\"Cjk m str u\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6311<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">U<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Upward horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">T<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5201 \u6c42 \u866b \u5730<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_du.svg\" alt=\"Cjk m str du\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u9ede\u6311<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">DU<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Dot \u2013 Upward horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(T)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u51b0 \u51b7 \u6c57 \u6c41<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_v.svg\" alt=\"Cjk m str v\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">V<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">S<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5341 \u572d \u5ddd \u4ec6<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_sv.svg\" alt=\"Cjk m str sv\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u659c\u8c4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SV<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Slanted Vertical<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(S)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e11 \u4e94 \u4e99 \u8cab<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_rsv.svg\" alt=\"Cjk m str rsv\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u53f3\u659c\u8c4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">RSV<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Right Slanted Vertical<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(S)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\ud841\ude74<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_t.svg\" alt=\"Cjk m str t\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">T<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">P<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u7af9 \u5927 \u4e42 \u52ff<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ft.svg\" alt=\"Cjk m str ft\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6241\u6487<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">FT<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Flat Throw<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(P)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5343 \u4e4f \u79be \u65a4<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_wt.svg\" alt=\"Cjk m str wt\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u76f4\u6487<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">WT<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Wilted Throw<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SP<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e5d \u5384 \u6708 \u51e0<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_d.svg\" alt=\"Cjk m str d\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u9ede<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">D<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Dot<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">D<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e3b \u535c \u5915 \u51e1<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ed.svg\" alt=\"Cjk m str ed\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u9577\u9ede<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">ED<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Extended Dot<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(D)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u56ea \u56df \u8fd9 \u51f6<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ld.svg\" alt=\"Cjk m str ld\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5de6\u9ede<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">LD<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Left Dot<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(D)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5fc3 \u5fd9 \u606d \u70f9<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_wd.svg\" alt=\"Cjk m str wd\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u76f4\u9ede<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">WD<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Wilted Dot<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(D)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u516d \u6587 \u5b87 \u7a7a<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_p.svg\" alt=\"Cjk m str p\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u637a<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">P<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Press<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">N<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4eba \u6728 \u5c3a \u51ac<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_up.svg\" alt=\"Cjk m str up\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6311\u637a<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">UP<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Upward horizontal \u2013 Press<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">TN<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6587 \u5ef4 \u7236 \u723b<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hp.svg\" alt=\"Cjk m str hp\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u637a<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HP<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Press<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(TN)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5165 \u516b \u5167 \u5168<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_fp.svg\" alt=\"Cjk m str fp\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6241\u637a<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">FP<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Flat Press<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(N)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8d70 \u8db3 \u5ef4 \u9eb5<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ufp.svg\" alt=\"Cjk m str ufp\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6311\u6241\u637a<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">UFP<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Upward horizontal \u2013 Flat Press<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(TN)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e4b \u4e4f \u5de1 \u8ff4<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_c.svg\" alt=\"Cjk m str c\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5f4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">C<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Clockwise curve<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">W<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_a.svg\" alt=\"Cjk m str a\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u66f2<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">A<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Anticlockwise curve<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">X<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_o.svg\" alt=\"Cjk m str o\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5708<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">O<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Oval<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Q<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u3007 \u3514 \u3ab3 \u3ac8<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hj.svg\" alt=\"Cjk m str hj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u51a7 \u6b20 \u519d \u86cb<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_uj.svg\" alt=\"Cjk m str uj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6311\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">UJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Upward horizontal \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(HG)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e5f \u4e5c \u6c60 \u99b3<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ht.svg\" alt=\"Cjk m str ht\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u6487<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HT<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Throw<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HP<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5915 \u6c34 \u767b \u4ee4<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hsv.svg\" alt=\"Cjk m str hsv\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u659c<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HSV<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Slanted Vertical<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(HP)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4eca \u5f54 \u4e92 \u6046<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hv.svg\" alt=\"Cjk m str hv\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u8c4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HV<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Vertical<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u53e3 \u5df1 \u81fc \u5178<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hvj.svg\" alt=\"Cjk m str hvj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u8c4e\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HVJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Vertical \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u800c \u6c38 \u5370 \u4ee4<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_htj.svg\" alt=\"Cjk m str htj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u6487\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HTJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Throw \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(HZG)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u52fa \u65b9 \u529b \u6bcd<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_utj.svg\" alt=\"Cjk m str utj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6311\u6487\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">UTJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Upward horizontal \u2013 Throw \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(HZG)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e5f \u4e5c \u6c60 \u99b3<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hvh.svg\" alt=\"Cjk m str hvh\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u8c4e\u6a6b<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HVH<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Vertical \u2013 Horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZZ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u51f9 \u5155 \u534d \u96cb<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hvu.svg\" alt=\"Cjk m str hvu\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u8c4e\u6311<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HVU<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Vertical \u2013 Upward horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZT<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6bbc \u9e20 \u8bf4 \u8ba1<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ha.svg\" alt=\"Cjk m str ha\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u66f2<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HA<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Anticlockwise curve<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZW<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6735 \u6cbf \u6bb3 \u6ca1<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_haj.svg\" alt=\"Cjk m str haj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u66f2\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HAJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Anticlockwise curve \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZWG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e5d \u51e0 \u51e1 \u4ea2<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hpj.svg\" alt=\"Cjk m str hpj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u637a\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HPJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Press \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(HZWG)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u98a8 \u8fc5 \u98db \u51f0<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_htaj.svg\" alt=\"Cjk m str htaj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u6487\u66f2\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HTAJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Throw \u2013 Anticlockwise curve \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HXWG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e59 \u6c39 \u4e5e \u4e6d<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_htc.svg\" alt=\"Cjk m str htc\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u6487\u5f4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HTC<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Throw \u2013 Clockwise curve<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">---<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u904e \u8fc7 \u9019 \u8fd9<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_htht.svg\" alt=\"Cjk m str htht\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u6487\u6a6b\u6487<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HTHT<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Throw \u2013 Horizontal \u2013 Throw<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZZP<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5ef6 \u5efa \u5de1 \u53ca<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_htcj.svg\" alt=\"Cjk m str htcj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u6487\u5f4e\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HTCJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Throw \u2013 Clockwise curve \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HPWG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u9673 \u964c \u90a3 \u8036<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hvhv.svg\" alt=\"Cjk m str hvhv\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u8c4e\u6a6b\u8c4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HVHV<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Vertical \u2013 Horizontal \u2013 Vertical<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZZZ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u51f8 \ud847\ude2d \ud843\udc42 \ud84a\udecb<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hthtj.svg\" alt=\"Cjk m str hthtj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6a6b\u6487\u6a6b\u6487\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HTHTJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Horizontal \u2013 Throw \u2013 Horizontal \u2013 Throw \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">HZZZG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e43 \u5b55 \u4ecd \u76c8<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vu.svg\" alt=\"Cjk m str vu\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u6311<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VU<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Upward horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">ST<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u536c \u6c0f \u8863 \u6bd4<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vh.svg\" alt=\"Cjk m str vh\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u6a6b<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VH<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SZ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5c71 \u4e16 \u5321 \u76f4<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_va.svg\" alt=\"Cjk m str va\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u66f2<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VA<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Anticlockwise curve<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SW<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5340 \u4ea1 \u56db \u5339<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vaj.svg\" alt=\"Cjk m str vaj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u66f2\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VAJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Anticlockwise curve \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SWG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5b54 \u5df2 \u4e82 \u4e5f<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vhv.svg\" alt=\"Cjk m str vhv\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u6a6b\u8c4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VHV<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Horizontal \u2013 Vertical<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SZZ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u9f0e \u4e9e \u5433 \u5350<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vht.svg\" alt=\"Cjk m str vht\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u6a6b\u6487<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VHT<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Horizontal \u2013 Throw<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(SZZ)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u594a \u6351 \ud843\udc50 \ud85e\uddae<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vhtj.svg\" alt=\"Cjk m str vhtj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u6a6b\u6487\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VHTJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Horizontal \u2013 Throw \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SZWG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5f13 \u5f1f \u4e10 \u5f31<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vj.svg\" alt=\"Cjk m str vj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5c0f \u6c34 \u5230 \u5bf8<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vc.svg\" alt=\"Cjk m str vc\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u5f4e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VC<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Clockwise curve<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">SWZ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8085 \u562f \u856d \u701f<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vcj.svg\" alt=\"Cjk m str vcj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u8c4e\u5f4e\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">VCJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Vertical \u2013 Clockwise curve \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">---<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\ud861\ude68 \ud861\udedc \ud861\udfa0 \ud861\udfb0<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_tu.svg\" alt=\"Cjk m str tu\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487\u6311<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">TU<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw \u2013 Upward horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">PZ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u53bb \u516c \u7384 \u9109<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_th.svg\" alt=\"Cjk m str th\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487\u6a6b<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">TH<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw \u2013 Horizontal<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(SZ)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e92 \u6bcd \u7259 \u8f66<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_td.svg\" alt=\"Cjk m str td\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487\u9ede<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">TD<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw \u2013 Dot<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">PD<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5de1 \u516a \u5de2 \u7cbc<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_wtd.svg\" alt=\"Cjk m str wtd\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u76f4\u6487\u9ede<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">WTD<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Wilted Throw \u2013 Dot<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(PD)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5973 \u5982 \u59e6 \u3722<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_tht.svg\" alt=\"Cjk m str tht\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487\u6a6b\u6487<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">THT<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw \u2013 Horizontal \u2013 Throw<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(SZZ)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5928 \ud842\ude2e \u4e13 \u7816<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_thtj.svg\" alt=\"Cjk m str thtj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487\u6a6b\u6487\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">THTJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw \u2013 Horizontal \u2013 Throw \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">(SZWG)<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5de7 \u4e9f \u6c61 \u865f<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_tj.svg\" alt=\"Cjk m str tj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">TJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">PG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u4e44<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_cj.svg\" alt=\"Cjk m str cj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5f4e\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">CJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Clockwise curve \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">WG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u72d7 \u8c78 \u8c55 \u8c61<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_fpj.svg\" alt=\"Cjk m str fpj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6241\u637a\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">FPJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Flat Press \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">BXG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5fc3 \u5fc5 \u6c81 \u53af<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_pj.svg\" alt=\"Cjk m str pj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u637a\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">PJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Press \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">XG<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u5f0b \u6208 \u6211 \u92ad<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_thtaj.svg\" alt=\"Cjk m str thtaj\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487\u6a6b\u6487\u66f2\u920e<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">THTAJ<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw \u2013 Horizontal \u2013 Throw \u2013 Anticlockwise curve \u2013 J hook<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">---<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\ud840\udcc9 \ud85b\udcb3 \ud85b\udd31 \u9ce6<\/p><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\"><span class=\"image\"><img src=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_tod.svg\" alt=\"Cjk m str tod\"><\/span><\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\u6487\u5708\u9ede<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">TOD<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">Throw \u2013 Oval \u2013 Dot<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">---<\/p><\/td>\n<td class=\"tableblock halign-left valign-top\"><p class=\"tableblock\">\ud846\uddd1 \ud844\udda2<\/p><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/details>\n<div class=\"paragraph\">\n<p>\u901a\u8fc7 CJKV Smaji \u63d0\u4f9b\u7684\u5b57\u5f62\u8f6e\u5ed3\u751f\u6210\u7a0b\u5e8f\u5904\u7406\u540e\uff0c\u4ea7\u751f\u4e86\u5982\u4e0b\u7684\u5b57\u4f53\u8f6e\u5ed3\u6587\u4ef6\u3002<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\">\n<img src=\"https:\/\/doye.smaji.org\/outlines\/516b,0.outline.svg\" alt=\"the outline of 516b\">\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u9664\u4e86\u76f4\u63a5\u7528\u7b14\u753b\u7ec4\u6210\u5b57\u5f62\u5916\uff0c\u5728 <code>god<\/code> \u4e2d\u4e5f\u80fd\u7528\u5df2\u6709\u7684\u6587\u5b57\u6765\u7ec4\u5b57\u3002\u6bd4\u5982\u300c\u4e15\u300d\u5b57\u5c31\u53ef\u7531\u300c\u4e0d\u300d\u5b57\u52a0\u300c\u4e00\u300d\u7ec4\u6210\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"rouge highlight\"><code data-lang=\"xml\"><table class=\"linenotable\"><tbody><tr><td class=\"linenos gl\"><pre class=\"lineno\">1\n2\n3\n4\n5\n6\n7\n<\/pre><\/td><td class=\"code\"><pre><span class=\"cp\">&lt;?xml version=\"1.0\"?&gt;<\/span>\n<span class=\"nt\">&lt;god<\/span> <span class=\"na\">version=<\/span><span class=\"s\">\"1.0\"<\/span> <span class=\"na\">xmlns=<\/span><span class=\"s\">\"http:\/\/cjkv.smaji.org\/ns\/god\"<\/span><span class=\"nt\">&gt;<\/span>\n  <span class=\"nt\">&lt;glyph<\/span> <span class=\"na\">unicode=<\/span><span class=\"s\">\"4e15,0\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\">&lt;ref<\/span> <span class=\"na\">unicode=<\/span> <span class=\"s\">\"4e0d\"<\/span> <span class=\"na\">x=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">y=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">width=<\/span><span class=\"s\">\"128\"<\/span> <span class=\"na\">height=<\/span><span class=\"s\">\"120\"<\/span><span class=\"nt\">\/&gt;<\/span>\n    <span class=\"nt\">&lt;stroke<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"h\"<\/span> <span class=\"na\">x=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">y=<\/span><span class=\"s\">\"114\"<\/span> <span class=\"na\">width=<\/span><span class=\"s\">\"128\"<\/span> <span class=\"na\">height=<\/span><span class=\"s\">\"14\"<\/span><span class=\"nt\">\/&gt;<\/span>\n  <span class=\"nt\">&lt;\/glyph&gt;<\/span>\n<span class=\"nt\">&lt;\/god&gt;<\/span>\n<\/pre><\/td><\/tr><\/tbody><\/table><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u5f53\u7136\uff0c\u76f4\u63a5\u8f93\u5165 unicode \u867d\u7136\u7cbe\u786e\uff0c\u4f46\u5bf9\u4e8e\u5e38\u7528\u4e14\u65e0\u6b67\u4e49\u7684\u6587\u5b57\uff0c\u76f4\u63a5\u6253\u5b57\u4e5f\u662f\u4e2a\u975e\u5e38\u597d\u7684\u9009\u62e9\u3002\u4e0a\u8ff0 <code>god<\/code> \u6587\u4ef6\u4e5f\u53ef\u4ee5\u6539\u5199\u6210\u5982\u4e0b\u5f62\u5f0f\u3002\u5c06\u7b2c 4 \u884c\u6539\u4e3a<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"rouge highlight\"><code data-lang=\"xml\"><span class=\"nt\">&lt;character<\/span> <span class=\"na\">utf8=<\/span> <span class=\"s\">\"\u4e0d\"<\/span> <span class=\"na\">x=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">y=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">width=<\/span><span class=\"s\">\"128\"<\/span> <span class=\"na\">height=<\/span><span class=\"s\">\"120\"<\/span><span class=\"nt\">\/&gt;<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u5f97\u5230\u5982\u4e0b god \u6587\u4ef6<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"rouge highlight\"><code data-lang=\"xml\"><table class=\"linenotable\"><tbody><tr><td class=\"linenos gl\"><pre class=\"lineno\">1\n2\n3\n4\n5\n6\n7\n<\/pre><\/td><td class=\"code\"><pre><span class=\"cp\">&lt;?xml version=\"1.0\"?&gt;<\/span>\n<span class=\"nt\">&lt;god<\/span> <span class=\"na\">version=<\/span><span class=\"s\">\"1.0\"<\/span> <span class=\"na\">xmlns=<\/span><span class=\"s\">\"http:\/\/cjkv.smaji.org\/ns\/god\"<\/span><span class=\"nt\">&gt;<\/span>\n  <span class=\"nt\">&lt;glyph<\/span> <span class=\"na\">unicode=<\/span><span class=\"s\">\"4e15,0\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\">&lt;character<\/span> <span class=\"na\">utf8=<\/span> <span class=\"s\">\"\u4e0d\"<\/span> <span class=\"na\">x=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">y=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">width=<\/span><span class=\"s\">\"128\"<\/span> <span class=\"na\">height=<\/span><span class=\"s\">\"120\"<\/span><span class=\"nt\">\/&gt;<\/span>\n    <span class=\"nt\">&lt;stroke<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"h\"<\/span> <span class=\"na\">x=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">y=<\/span><span class=\"s\">\"114\"<\/span> <span class=\"na\">width=<\/span><span class=\"s\">\"128\"<\/span> <span class=\"na\">height=<\/span><span class=\"s\">\"14\"<\/span><span class=\"nt\">\/&gt;<\/span>\n  <span class=\"nt\">&lt;\/glyph&gt;<\/span>\n<span class=\"nt\">&lt;\/god&gt;<\/span>\n<\/pre><\/td><\/tr><\/tbody><\/table><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u5747\u53ef\u4ea7\u751f\u5982\u4e0b\u5b57\u5f62\u8f6e\u5ed3\uff1a<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\">\n<img src=\"https:\/\/doye.smaji.org\/outlines\/4e15,0.outline.svg\" alt=\"the outline of 4e15\">\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u6211\u4eec\u518d\u6765\u770b\u770b\u53e6\u5916\u4e00\u4e2a\u5b57\u5f62\u8f6e\u5ed3\uff1a<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\">\n<img src=\"https:\/\/doye.smaji.org\/outlines\/2010f,0.outline.svg\" alt=\"the outline of 2010f\">\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u5b83\u50cf\u4e0d\u50cf\u662f\u300c\u4e86\u300d\u88ab\u5012\u7f6e\u8fc7\u6765\u4e86\u3002\u786e\u5b9e\u662f\u3002\u6c49\u5b57\u4e2d\u5b58\u5728\u7740\u5de6\u53f3\u955c\u50cf\u5b57\uff0c\u4e0a\u4e0b\u955c\u50cf\u5b57\uff0c\u65cb\u8f6c\u5b57\u3002\u56fe\u793a\u4fbf\u662f\u4e00\u4e2a\u65cb\u8f6c\u5b57\u3002\u5b83\u5728 <code>god<\/code> \u91cc\u9762\u53c8\u662f\u600e\u4e48\u8868\u793a\u5462\uff1f<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"rouge highlight\"><code data-lang=\"xml\"><table class=\"linenotable\"><tbody><tr><td class=\"linenos gl\"><pre class=\"lineno\">1\n2\n3\n4\n5\n6\n<\/pre><\/td><td class=\"code\"><pre><span class=\"cp\">&lt;?xml version=\"1.0\"?&gt;<\/span>\n<span class=\"nt\">&lt;god<\/span> <span class=\"na\">version=<\/span><span class=\"s\">\"1.0\"<\/span> <span class=\"na\">xmlns=<\/span><span class=\"s\">\"http:\/\/cjkv.smaji.org\/ns\/god\"<\/span><span class=\"nt\">&gt;<\/span>\n  <span class=\"nt\">&lt;glyph<\/span> <span class=\"na\">unicode=<\/span><span class=\"s\">\"2010f,0\"<\/span> <span class=\"na\">transform=<\/span><span class=\"s\">\"rotate180\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\">&lt;character<\/span> <span class=\"na\">utf8=<\/span><span class=\"s\">\"\u4e86\"<\/span> <span class=\"na\">x=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">y=<\/span><span class=\"s\">\"0\"<\/span> <span class=\"na\">width=<\/span><span class=\"s\">\"88\"<\/span> <span class=\"na\">height=<\/span><span class=\"s\">\"128\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n  <span class=\"nt\">&lt;\/glyph&gt;<\/span>\n<span class=\"nt\">&lt;\/god&gt;<\/span>\n<\/pre><\/td><\/tr><\/tbody><\/table><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p><code>god<\/code> \u7684\u4e00\u4e2a\u8bbe\u8ba1\u7406\u5ff5\u662f\uff0c\u5bf9\u4e8e\u96b6\u5b9a\u548c\u96b6\u53d8\u540e\u7684\u6c49\u5b57\uff0c\u5176\u6784\u6210\u662f\u57fa\u7840\u7ec4\u4ef6\uff0c\u7b14\u753b\u7684\u7ec4\u5408\uff0c\u800c\u4e0d\u662f\u5bf9\u57fa\u7840\u7ec4\u4ef6\u548c\u7b14\u753b\u7684\u64cd\u5f04\u3002\u56e0\u6b64\uff0c\u955c\u50cf\u6216\u65cb\u8f6c\u64cd\u4f5c\u4ec5\u53ef\u4f5c\u7528\u4e8e\u5b57\u7684\u6574\u4f53\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u56e0\u6b64\uff0c\u6211\u4eec\u53ef\u4ee5\u5728 <code>glyph<\/code> \u5143\u7d20\u91cc\u589e\u52a0 <code>transform<\/code> \u5c5e\u6027\uff0c\u5e76\u7ed9\u51fa<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><code>mirror_horizontal<\/code><\/p>\n<\/li>\n<li>\n<p><code>mirror_vertical<\/code><\/p>\n<\/li>\n<li>\n<p><code>rotate180<\/code><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4e09\u8005\u4e4b\u4e00\u4f5c\u4e3a\u5c5e\u6027\u7684\u503c\u4ee5\u6307\u793a\u8f6c\u53d8\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u56e0\u4e3a <code>unicode<\/code> 2010f \u7684\u5b57\u5f62\u6b63\u597d\u662f\u300c\u4e86\u300d\u5b57\u7684\u65cb\u8f6c\u3002\u6240\u4ee5\u5728\u6b64 <code>god<\/code> \u6587\u4ef6\u4e2d\uff0c\u7b2c 6 \u884c\u6307\u793a\u4e86 <code>transform<\/code> \u7684\u5c5e\u6027\u4e3a <code>rotate180<\/code>, \u7b2c 7 \u884c\u5219\u76f4\u63a5\u5f15\u5165\u300c\u4e86\u300d\u5b57\u7684\u5b57\u5f62\u4f5c\u4e3a\u57fa\u7840\u3002\u5373\u5f97\u5230\u4e86\u6240\u9700\u7684\u5b57\u5f62\u3002<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_smaji_cjvk_\u5bf9\u4e8e_god_\u7684\u652f\u6301\">Smaji CJVK \u5bf9\u4e8e GOD \u7684\u652f\u6301<\/h3>\n<div class=\"sect3\">\n<h4 id=\"_smaji_glyph_outline\"><a href=\"https:\/\/github.com\/smaji-org\/smaji_glyph_outline\">Smaji Glyph Outline<\/a><\/h4>\n<div class=\"paragraph\">\n<p>\u4e00\u4e2a OCaml \u5e93\uff0c\u7528\u4e8e\u8bfb\u53d6\uff0c\u5bfc\u51fa\uff0c\u8f6c\u6362\u5b57\u5f62\u8f6e\u5ed3\u6570\u636e\u548c\u6587\u4ef6\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u652f\u6301\u7684\u5b57\u5f62\u8f6e\u5ed3\u683c\u5f0f\u4e3a\uff1a<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>SVG, \u53ef\u7f29\u653e\u77e2\u91cf\u56fe\u5f62\u3002\u4f7f\u7528\u6781\u4e3a\u5e7f\u6cdb\uff0c\u652f\u6301\u5f02\u5e38\u4e30\u5bcc\u7684\u77e2\u91cf\u56fe\u5f62\u683c\u5f0f\u3002<\/p>\n<\/li>\n<li>\n<p>GLIF, \u5b57\u5f62\u4ea4\u6362\u683c\u5f0f\u3002\u7528\u4e8e Unified Font Object<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div class=\"sect3\">\n<h4 id=\"_smaji_god\"><a href=\"https:\/\/github.com\/smaji-org\/smaji_god\">Smaji God<\/a><\/h4>\n<div class=\"paragraph\">\n<p>\u4e00\u4e2a OCaml \u5e93\uff0c\u7528\u4e8e\u8bfb\u53d6\uff0c\u5904\u7406\uff0c\u5bfc\u51fa GOD \u6587\u6863\u3002<\/p>\n<\/div>\n<\/div>\n<div class=\"sect3\">\n<h4 id=\"_smaji_dynglyph\"><a href=\"https:\/\/github.com\/smaji-org\/smaji_dyn_glyph\">Smaji DynGlyph<\/a><\/h4>\n<div class=\"paragraph\">\n<p>\u4e00\u4e2a\u53ef\u6267\u884c\u7a0b\u5e8f\uff0c\u7528\u6237\u53ef\u901a\u8fc7\u5b83\u5c06 GOD \u6587\u6863\u751f\u6210\u5b57\u4f53\u8f6e\u5ed3\u6587\u4ef6\uff0c\u8f6e\u5ed3\u6587\u4ef6\u53ef\u7528\u4e8e\u5b57\u4f53\u7684\u751f\u6210\u3002\u53e6\u5916\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u6b64\u7a0b\u5e8f\u751f\u6210\u7b14\u753b\u52a8\u753b\u6587\u4ef6\u7528\u4e8e\u6f14\u793a\u3002<\/p>\n<\/div>\n<\/div>\n<div class=\"sect3\">\n<h4 id=\"_smaji_dynglyph_collection\"><a href=\"https:\/\/github.com\/smaji-org\/smaji_dyn_glyph_sample\">Smaji DynGlyph Collection<\/a><\/h4>\n<div class=\"paragraph\">\n<p>\u4e00\u4e2a git \u4ed3\u5e93\uff0c\u5b58\u6709 dyn-glyph \u7a0b\u5e8f\u4f7f\u7528\u7684\u793a\u4f8b\u57fa\u7840\u7b14\u753b\u5e93\uff0c\u4ee5\u53ca\u7528\u6237\u63d0\u4ea4\u7684 GOD \u6587\u6863\u96c6\u5408\u3002<\/p>\n<\/div>\n<\/div>\n<div class=\"sect3\">\n<h4 id=\"_online_god_editor\"><a href=\"https:\/\/cjkv.smaji.org\/gen_svg\">Online God Editor<\/a><\/h4>\n<div class=\"paragraph\">\n<p>\u5728\u7ebf\u7f16\u8f91\uff0c\u63d0\u4ea4 god \u6587\u4ef6\uff0c\u5e76\u751f\u6210 svg \u8f6e\u5ed3\u6587\u4ef6\u6216\u52a8\u753b\u6587\u4ef6\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>","category":[{"@attributes":{"term":"cjkv"}},{"@attributes":{"term":"cjkv"}},{"@attributes":{"term":"unicode"}},{"@attributes":{"term":"god"}}]},{"title":"The first step of the Smaji CJKV project: to record regular script","link":{"@attributes":{"href":"https:\/\/doye.smaji.org\/cjkv_variation_first_step.html","rel":"alternate"}},"published":"2023-03-07T22:31:00+08:00","updated":"2023-03-07T22:31:00+08:00","author":{"name":"ZAN DoYe"},"id":"tag:doye.smaji.org,2023-03-07:\/cjkv_variation_first_step.html","summary":"<div class=\"section\" id=\"a-brief-introduction-of-regular-script\">\n<h2>A brief introduction of regular script (\u6977\u66f8)<\/h2>\n<p>In 211 BC, Zheng, King of Qin(\u79e6\u738b\u653f), subjugated six remaining major states of Zhou and established the Qin dynasty.<\/p>\n<p>To unify the state and promote commerce, the Qin introduced a range of reforms: standardized currency, weights, measures and a \u2026<\/p><\/div>","content":"<div class=\"section\" id=\"a-brief-introduction-of-regular-script\">\n<h2>A brief introduction of regular script (\u6977\u66f8)<\/h2>\n<p>In 211 BC, Zheng, King of Qin(\u79e6\u738b\u653f), subjugated six remaining major states of Zhou and established the Qin dynasty.<\/p>\n<p>To unify the state and promote commerce, the Qin introduced a range of reforms: standardized currency, weights, measures and a uniform writing system.<\/p>\n<p>The written language of the Qin was logographic, as that of the Zhou had been. Prime minister Li Si (\u674e\u65af) standardized the writing system to be of uniform size and shape across the whole country. He is credited with creating the &quot;small seal script&quot; (\u5c0f\u7bc6).<\/p>\n<p>During the same period or even earlier, the clerical script (\u96b8\u66f8) was developed from the local script varieties in the state of Qin in the Warring States period (\u6230\u570b\u6642\u671f). For example, Shuihudi Qin bamboo slips (217 BC) (\u7761\u864e\u5730\u79e6\u7c21), are seen as a form of early clerical script.<\/p>\n<p>Variant graphs arise during the historical processes of liding (\u96b8\u5b9a, lit. 'clerical fixing') and libian (\u96b8\u8b8a, lit. 'clerical changing'). Libian was the natural evolving process of the seal script into the clerical script, which often involved significant omissions, additions, or transmutations of graphical form, while liding is the direct regularization and linearization of shapes to convert them into clerical forms while also preserving the original structure.<\/p>\n<p>The early development of regular script (\u6977\u66f8) started from the Han dynasty. Examples include the Calligraphy Manual of Xuanhe Era (\u5ba3\u548c\u66f8\u8b5c) credit Wang Cizhong (\u738b\u6b21\u4ef2) with creating regular script based on clerical script in the early Western Han; Xuanshi Biao (\u5ba3\u793a\u8868), Jianjizhi Biao (\u85a6\u5b63\u76f4\u8868), and Liming Biao (\u529b\u547d\u8868), written by  Zhong Yao (\u937e\u7e47) who lived in the Eastern Han to the Cao Wei period. But regular script did not become dominant until the early Southern and Northern Dynasties (\u5357\u5317\u671d), in the 5th century.<\/p>\n<p>There was a variety of regular script which emerged from neo-clerical as well as from Zhong Yao's regular script, known as &quot;Wei regular&quot; (\u9b4f\u6977, Weikai) or &quot;Wei stele&quot; (\u9b4f\u7891, Weibei).<\/p>\n<p>Since then, regular script is taken as the official script in Imperial China for more than 15 centuries. During these period, Chinese literary culture were adopted by neighboring countries and states now called 'Chinese-character culture sphere' (\u6f22\u5b57\u6587\u5316\u5708). New derivatives, variations were developing among the culture sphere.<\/p>\n<\/div>\n<div class=\"section\" id=\"what-should-be-included-in-the-cjkv-database\">\n<h2>What should be included in the cjkv database<\/h2>\n<p>Variant Chinese characters exist within and across all regions where Chinese characters are used, China, Taiwan, Japan, Korea, Vietnam, Singapore etc. Some of the governments of these regions have made efforts to standardize the use of variants, by establishing certain variants as standard.<\/p>\n<p>Start from the Qing dynasty, after the Kangxi Dictionary (\u5eb7\u7199\u5b57\u5178) was published in 1716, the forms found in the Kangxi dictionary are usually the ones consider to be orthodox(\u6b63\u5b57), at least by late Imperial China standards. Variants that differ from the orthodox form, mainly used in informal situations, are known as folk variants (\u4fd7\u5b57). Some of these are longstanding abbreviations or alternate forms.<\/p>\n<p>The first step of the Smaji CJKV project is to collect and record regular script characters. It's a culture-neutral and technology-neutral project. It is not compliance with any so-called standards. It doesn't distinguish which one is orthodox and which one is not.<\/p>\n<p>The only rule to determine whether or not a character glyph should be included is whether it's distinguishable from any already included glyphs in any of the following forms:<\/p>\n<ol class=\"arabic simple\">\n<li>Component. For example, \u6cea and \u6dda.<\/li>\n<li>Structure. For example, \u7fa4 and \u7fa3. Their components are the same but differ in structure (\u2ff0\u541b\u7f8a) and (\u2ff1\u541b\u7f8a).<\/li>\n<li>Stroke. For example, \u5434 and \u5433.<\/li>\n<\/ol>\n<p>In some instances, the difference between strokes is very subtle. In order to clarify this situation, the following tables list basic and inherited strokes.<\/p>\n<div class=\"section\" id=\"abbreviation-form-of-the-basic-strokes-10-items\">\n<h3>Abbreviation form of the basic strokes (10 items)<\/h3>\n<table border=\"1\" class=\"docutils\">\n<colgroup>\n<col width=\"13%\" \/>\n<col width=\"46%\" \/>\n<col width=\"25%\" \/>\n<col width=\"16%\" \/>\n<\/colgroup>\n<thead valign=\"bottom\">\n<tr><th class=\"head\">Abbr form<\/th>\n<th class=\"head\">Shape of stroke<\/th>\n<th class=\"head\">English name<\/th>\n<th class=\"head\">Chinese name<\/th>\n<\/tr>\n<\/thead>\n<tbody valign=\"top\">\n<tr><td>H<\/td>\n<td><img alt=\"\" class=\"first last\" src=\"https:\/\/doye.smaji.org\/images\/Basic_h.png\" \/>\n<\/td>\n<td>Horizontal<\/td>\n<td>\u6a6b<\/td>\n<\/tr>\n<tr><td>V<\/td>\n<td><img alt=\"\" class=\"first last\" src=\"https:\/\/doye.smaji.org\/images\/Basic_v.png\" \/>\n<\/td>\n<td>Vertical<\/td>\n<td>\u8c4e<\/td>\n<\/tr>\n<tr><td>T<\/td>\n<td><img alt=\"\" class=\"first last\" src=\"https:\/\/doye.smaji.org\/images\/Basic_t.png\" \/>\n<\/td>\n<td>Throw<\/td>\n<td>\u6487<\/td>\n<\/tr>\n<tr><td>P<\/td>\n<td><img alt=\"\" class=\"first last\" src=\"https:\/\/doye.smaji.org\/images\/Basic_p.png\" \/>\n<\/td>\n<td>Press<\/td>\n<td>\u637a<\/td>\n<\/tr>\n<tr><td>D<\/td>\n<td><img alt=\"\" class=\"first last\" src=\"https:\/\/doye.smaji.org\/images\/Basic_d.png\" \/>\n<\/td>\n<td>Dot<\/td>\n<td>\u9ede<\/td>\n<\/tr>\n<tr><td>U<\/td>\n<td><img alt=\"\" class=\"first last\" src=\"https:\/\/doye.smaji.org\/images\/Basic_u.png\" \/>\n<\/td>\n<td>Upward horizontal<\/td>\n<td>\u6311<\/td>\n<\/tr>\n<tr><td>C<\/td>\n<td><img alt=\"\" class=\"first last\" src=\"https:\/\/doye.smaji.org\/images\/Basic_c.png\" \/>\n<\/td>\n<td>Clockwise curve<\/td>\n<td>\u5f4e<\/td>\n<\/tr>\n<tr><td>A<\/td>\n<td><img alt=\"\" class=\"first last\" src=\"https:\/\/doye.smaji.org\/images\/Basic_a.png\" \/>\n<\/td>\n<td>Anticlockwise curve<\/td>\n<td>\u66f2<\/td>\n<\/tr>\n<tr><td>J<\/td>\n<td><img alt=\"\" class=\"first last\" src=\"https:\/\/doye.smaji.org\/images\/Basic_j.png\" \/>\n<\/td>\n<td>J hook<\/td>\n<td>\u920e<\/td>\n<\/tr>\n<tr><td>O<\/td>\n<td><img alt=\"\" class=\"first last\" src=\"https:\/\/doye.smaji.org\/images\/Basic_o.png\" \/>\n<\/td>\n<td>Oval<\/td>\n<td>\u5708<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"section\" id=\"inherited-names-of-cjk-basic-and-compound-strokes-63-items\">\n<h3>Inherited names of CJK basic and compound strokes (63 items)<\/h3>\n<table border=\"1\" class=\"docutils\">\n<colgroup>\n<col width=\"29%\" \/>\n<col width=\"9%\" \/>\n<col width=\"7%\" \/>\n<col width=\"37%\" \/>\n<col width=\"11%\" \/>\n<col width=\"8%\" \/>\n<\/colgroup>\n<thead valign=\"bottom\">\n<tr><th class=\"head\">Stroke<\/th>\n<th class=\"head\">Chinese name<\/th>\n<th class=\"head\">Abbr form<\/th>\n<th class=\"head\">Full name<\/th>\n<th class=\"head\">Name in Unicode<\/th>\n<th class=\"head\">Example<\/th>\n<\/tr>\n<\/thead>\n<tbody valign=\"top\">\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_h.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b<\/td>\n<td>H<\/td>\n<td>Horizontal<\/td>\n<td>H<\/td>\n<td>\u4e09 \u8a00 \u96b9 \u82b1<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_sh.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u659c\u6a6b<\/td>\n<td>SH<\/td>\n<td>Slanted Horizontal<\/td>\n<td>(H)<\/td>\n<td>\u4e03 \u5f0b \u5b85 \u6208<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_u.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6311<\/td>\n<td>U<\/td>\n<td>Upward horizontal<\/td>\n<td>T<\/td>\n<td>\u5201 \u6c42 \u866b \u5730<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_du.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u9ede\u6311<\/td>\n<td>DU<\/td>\n<td>Dot \u2013 Upward horizontal<\/td>\n<td>(T)<\/td>\n<td>\u51b0 \u51b7 \u6c57 \u6c41<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_v.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u8c4e<\/td>\n<td>V<\/td>\n<td>Vertical<\/td>\n<td>S<\/td>\n<td>\u5341 \u572d \u5ddd \u4ec6<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_sv.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u659c\u8c4e<\/td>\n<td>SV<\/td>\n<td>Slanted Vertical<\/td>\n<td>(S)<\/td>\n<td>\u4e11 \u4e94 \u4e99 \u8cab<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_rsv.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u53f3\u659c\u8c4e<\/td>\n<td>RSV<\/td>\n<td>Right Slanted Vertical<\/td>\n<td>(S)<\/td>\n<td>\ud841\ude74<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_t.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6487<\/td>\n<td>T<\/td>\n<td>Throw<\/td>\n<td>P<\/td>\n<td>\u7af9 \u5927 \u4e42 \u52ff<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ft.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6241\u6487<\/td>\n<td>FT<\/td>\n<td>Flat Throw<\/td>\n<td>(P)<\/td>\n<td>\u5343 \u4e4f \u79be \u65a4<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_wt.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u76f4\u6487<\/td>\n<td>WT<\/td>\n<td>Wilted Throw<\/td>\n<td>SP<\/td>\n<td>\u4e5d \u5384 \u6708 \u51e0<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_d.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u9ede<\/td>\n<td>D<\/td>\n<td>Dot<\/td>\n<td>D<\/td>\n<td>\u4e3b \u535c \u5915 \u51e1<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ed.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u9577\u9ede<\/td>\n<td>ED<\/td>\n<td>Extended Dot<\/td>\n<td>(D)<\/td>\n<td>\u56ea \u56df \u8fd9 \u51f6<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ld.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u5de6\u9ede<\/td>\n<td>LD<\/td>\n<td>Left Dot<\/td>\n<td>(D)<\/td>\n<td>\u5fc3 \u5fd9 \u606d \u70f9<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_wd.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u76f4\u9ede<\/td>\n<td>WD<\/td>\n<td>Wilted Dot<\/td>\n<td>(D)<\/td>\n<td>\u516d \u6587 \u5b87 \u7a7a<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_p.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u637a<\/td>\n<td>P<\/td>\n<td>Press<\/td>\n<td>N<\/td>\n<td>\u4eba \u6728 \u5c3a \u51ac<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_up.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6311\u637a<\/td>\n<td>UP<\/td>\n<td>Upward horizontal \u2013 Press<\/td>\n<td>TN<\/td>\n<td>\u6587 \u5ef4 \u7236 \u723b<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hp.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u637a<\/td>\n<td>HP<\/td>\n<td>Horizontal \u2013 Press<\/td>\n<td>(TN)<\/td>\n<td>\u5165 \u516b \u5167 \u5168<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_fp.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6241\u637a<\/td>\n<td>FP<\/td>\n<td>Flat Press<\/td>\n<td>(N)<\/td>\n<td>\u8d70 \u8db3 \u5ef4 \u9eb5<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ufp.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6311\u6241\u637a<\/td>\n<td>UFP<\/td>\n<td>Upward horizontal \u2013 Flat Press<\/td>\n<td>(TN)<\/td>\n<td>\u4e4b \u4e4f \u5de1 \u8ff4<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_c.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u5f4e<\/td>\n<td>C<\/td>\n<td>Clockwise curve<\/td>\n<td>W<\/td>\n<td>&nbsp;<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_a.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u66f2<\/td>\n<td>A<\/td>\n<td>Anticlockwise curve<\/td>\n<td>X<\/td>\n<td>&nbsp;<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_o.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u5708<\/td>\n<td>O<\/td>\n<td>Oval<\/td>\n<td>Q<\/td>\n<td>\u3007 \u3514 \u3ab3 \u3ac8<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u920e<\/td>\n<td>HJ<\/td>\n<td>Horizontal \u2013 J hook<\/td>\n<td>HG<\/td>\n<td>\u51a7 \u6b20 \u519d \u86cb<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_uj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6311\u920e<\/td>\n<td>UJ<\/td>\n<td>Upward horizontal \u2013 J hook<\/td>\n<td>(HG)<\/td>\n<td>\u4e5f \u4e5c \u6c60 \u99b3<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ht.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u6487<\/td>\n<td>HT<\/td>\n<td>Horizontal \u2013 Throw<\/td>\n<td>HP<\/td>\n<td>\u5915 \u6c34 \u767b \u4ee4<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hsv.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u659c<\/td>\n<td>HSV<\/td>\n<td>Horizontal \u2013 Slanted Vertical<\/td>\n<td>(HP)<\/td>\n<td>\u4eca \u5f54 \u4e92 \u6046<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hv.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u8c4e<\/td>\n<td>HV<\/td>\n<td>Horizontal \u2013 Vertical<\/td>\n<td>HZ<\/td>\n<td>\u53e3 \u5df1 \u81fc \u5178<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hvj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u8c4e\u920e<\/td>\n<td>HVJ<\/td>\n<td>Horizontal \u2013 Vertical \u2013 J hook<\/td>\n<td>HZG<\/td>\n<td>\u800c \u6c38 \u5370 \u4ee4<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_htj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u6487\u920e<\/td>\n<td>HTJ<\/td>\n<td>Horizontal \u2013 Throw \u2013 J hook<\/td>\n<td>(HZG)<\/td>\n<td>\u52fa \u65b9 \u529b \u6bcd<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_utj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6311\u6487\u920e<\/td>\n<td>UTJ<\/td>\n<td>Upward horizontal \u2013 Throw \u2013 J hook<\/td>\n<td>(HZG)<\/td>\n<td>\u4e5f \u4e5c \u6c60 \u99b3<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hvh.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u8c4e\u6a6b<\/td>\n<td>HVH<\/td>\n<td>Horizontal \u2013 Vertical \u2013 Horizontal<\/td>\n<td>HZZ<\/td>\n<td>\u51f9 \u5155 \u534d \u96cb<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hvu.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u8c4e\u6311<\/td>\n<td>HVU<\/td>\n<td>Horizontal \u2013 Vertical \u2013 Upward horizontal<\/td>\n<td>HZT<\/td>\n<td>\u6bbc \u9e20 \u8bf4 \u8ba1<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_ha.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u66f2<\/td>\n<td>HA<\/td>\n<td>Horizontal \u2013 Anticlockwise curve<\/td>\n<td>HZW<\/td>\n<td>\u6735 \u6cbf \u6bb3 \u6ca1<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_haj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u66f2\u920e<\/td>\n<td>HAJ<\/td>\n<td>Horizontal \u2013 Anticlockwise curve \u2013 J hook<\/td>\n<td>HZWG<\/td>\n<td>\u4e5d \u51e0 \u51e1 \u4ea2<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hpj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u637a\u920e<\/td>\n<td>HPJ<\/td>\n<td>Horizontal \u2013 Press \u2013 J hook<\/td>\n<td>(HZWG)<\/td>\n<td>\u98a8 \u8fc5 \u98db \u51f0<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_htaj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u6487\u66f2\u920e<\/td>\n<td>HTAJ<\/td>\n<td>Horizontal \u2013 Throw \u2013 Anticlockwise curve \u2013 J hook<\/td>\n<td>HXWG<\/td>\n<td>\u4e59 \u6c39 \u4e5e \u4e6d<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_htc.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u6487\u5f4e<\/td>\n<td>HTC<\/td>\n<td>Horizontal \u2013 Throw \u2013 Clockwise curve<\/td>\n<td>---<\/td>\n<td>\u904e \u8fc7 \u9019 \u8fd9<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_htht.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u6487\u6a6b\u6487<\/td>\n<td>HTHT<\/td>\n<td>Horizontal \u2013 Throw \u2013 Horizontal \u2013 Throw<\/td>\n<td>HZZP<\/td>\n<td>\u5ef6 \u5efa \u5de1 \u53ca<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_htcj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u6487\u5f4e\u920e<\/td>\n<td>HTCJ<\/td>\n<td>Horizontal \u2013 Throw \u2013 Clockwise curve \u2013 J hook<\/td>\n<td>HPWG<\/td>\n<td>\u9673 \u964c \u90a3 \u8036<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hvhv.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u8c4e\u6a6b\u8c4e<\/td>\n<td>HVHV<\/td>\n<td>Horizontal \u2013 Vertical \u2013 Horizontal \u2013 Vertical<\/td>\n<td>HZZZ<\/td>\n<td>\u51f8 \ud847\ude2d \ud843\udc42 \ud84a\udecb<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_hthtj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6a6b\u6487\u6a6b\u6487\u920e<\/td>\n<td>HTHTJ<\/td>\n<td>Horizontal \u2013 Throw \u2013 Horizontal \u2013 Throw \u2013 J hook<\/td>\n<td>HZZZG<\/td>\n<td>\u4e43 \u5b55 \u4ecd \u76c8<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vu.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u8c4e\u6311<\/td>\n<td>VU<\/td>\n<td>Vertical \u2013 Upward horizontal<\/td>\n<td>ST<\/td>\n<td>\u536c \u6c0f \u8863 \u6bd4<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vh.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u8c4e\u6a6b<\/td>\n<td>VH<\/td>\n<td>Vertical \u2013 Horizontal<\/td>\n<td>SZ<\/td>\n<td>\u5c71 \u4e16 \u5321 \u76f4<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_va.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u8c4e\u66f2<\/td>\n<td>VA<\/td>\n<td>Vertical \u2013 Anticlockwise curve<\/td>\n<td>SW<\/td>\n<td>\u5340 \u4ea1 \u56db \u5339<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vaj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u8c4e\u66f2\u920e<\/td>\n<td>VAJ<\/td>\n<td>Vertical \u2013 Anticlockwise curve \u2013 J hook<\/td>\n<td>SWG<\/td>\n<td>\u5b54 \u5df2 \u4e82 \u4e5f<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vhv.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u8c4e\u6a6b\u8c4e<\/td>\n<td>VHV<\/td>\n<td>Vertical \u2013 Horizontal \u2013 Vertical<\/td>\n<td>SZZ<\/td>\n<td>\u9f0e \u4e9e \u5433 \u5350<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vht.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u8c4e\u6a6b\u6487<\/td>\n<td>VHT<\/td>\n<td>Vertical \u2013 Horizontal \u2013 Throw<\/td>\n<td>(SZZ)<\/td>\n<td>\u594a \u6351 \ud843\udc50 \ud85e\uddae<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vhtj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u8c4e\u6a6b\u6487\u920e<\/td>\n<td>VHTJ<\/td>\n<td>Vertical \u2013 Horizontal \u2013 Throw \u2013 J hook<\/td>\n<td>SZWG<\/td>\n<td>\u5f13 \u5f1f \u4e10 \u5f31<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u8c4e\u920e<\/td>\n<td>VJ<\/td>\n<td>Vertical \u2013 J hook<\/td>\n<td>SG<\/td>\n<td>\u5c0f \u6c34 \u5230 \u5bf8<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vc.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u8c4e\u5f4e<\/td>\n<td>VC<\/td>\n<td>Vertical \u2013 Clockwise curve<\/td>\n<td>SWZ<\/td>\n<td>\u8085 \u562f \u856d \u701f<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_vcj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u8c4e\u5f4e\u920e<\/td>\n<td>VCJ<\/td>\n<td>Vertical \u2013 Clockwise curve \u2013 J hook<\/td>\n<td>---<\/td>\n<td>\ud861\ude68 \ud861\udedc \ud861\udfa0 \ud861\udfb0<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_tu.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6487\u6311<\/td>\n<td>TU<\/td>\n<td>Throw \u2013 Upward horizontal<\/td>\n<td>PZ<\/td>\n<td>\u53bb \u516c \u7384 \u9109<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_th.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6487\u6a6b<\/td>\n<td>TH<\/td>\n<td>Throw \u2013 Horizontal<\/td>\n<td>(SZ)<\/td>\n<td>\u4e92 \u6bcd \u7259 \u8f66<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_td.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6487\u9ede<\/td>\n<td>TD<\/td>\n<td>Throw \u2013 Dot<\/td>\n<td>PD<\/td>\n<td>\u5de1 \u516a \u5de2 \u7cbc<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_wtd.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u76f4\u6487\u9ede<\/td>\n<td>WTD<\/td>\n<td>Wilted Throw \u2013 Dot<\/td>\n<td>(PD)<\/td>\n<td>\u5973 \u5982 \u59e6 \u3722<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_tht.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6487\u6a6b\u6487<\/td>\n<td>THT<\/td>\n<td>Throw \u2013 Horizontal \u2013 Throw<\/td>\n<td>(SZZ)<\/td>\n<td>\u5928 \ud842\ude2e \u4e13 \u7816<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_thtj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6487\u6a6b\u6487\u920e<\/td>\n<td>THTJ<\/td>\n<td>Throw \u2013 Horizontal \u2013 Throw \u2013 J hook<\/td>\n<td>(SZWG)<\/td>\n<td>\u5de7 \u4e9f \u6c61 \u865f<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_tj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6487\u920e<\/td>\n<td>TJ<\/td>\n<td>Throw \u2013 J hook<\/td>\n<td>PG<\/td>\n<td>\u4e44<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_cj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u5f4e\u920e<\/td>\n<td>CJ<\/td>\n<td>Clockwise curve \u2013 J hook<\/td>\n<td>WG<\/td>\n<td>\u72d7 \u8c78 \u8c55 \u8c61<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_fpj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6241\u637a\u920e<\/td>\n<td>FPJ<\/td>\n<td>Flat Press \u2013 J hook<\/td>\n<td>BXG<\/td>\n<td>\u5fc3 \u5fc5 \u6c81 \u53af<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_pj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u637a\u920e<\/td>\n<td>PJ<\/td>\n<td>Press \u2013 J hook<\/td>\n<td>XG<\/td>\n<td>\u5f0b \u6208 \u6211 \u92ad<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_thtaj.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6487\u6a6b\u6487\u66f2\u920e<\/td>\n<td>THTAJ<\/td>\n<td>Throw \u2013 Horizontal \u2013 Throw \u2013 Anticlockwise curve \u2013 J hook<\/td>\n<td>---<\/td>\n<td>\ud840\udcc9 \ud85b\udcb3 \ud85b\udd31 \u9ce6<\/td>\n<\/tr>\n<tr><td><object class=\"first last\" data=\"https:\/\/doye.smaji.org\/images\/Cjk_m_str_tod.svg\" type=\"image\/svg+xml\"><\/object>\n<\/td>\n<td>\u6487\u5708\u9ede<\/td>\n<td>TOD<\/td>\n<td>Throw \u2013 Oval \u2013 Dot<\/td>\n<td>---<\/td>\n<td>\ud846\uddd1 \ud844\udda2<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n","category":[{"@attributes":{"term":"cjkv"}},{"@attributes":{"term":"cjkv"}},{"@attributes":{"term":"unicode"}},{"@attributes":{"term":"variant"}},{"@attributes":{"term":"variation"}},{"@attributes":{"term":"regular script"}}]},{"title":"Start from scratch, build a workstation from wastes","link":{"@attributes":{"href":"https:\/\/doye.smaji.org\/build%20a%20workstation.html","rel":"alternate"}},"published":"2023-02-21T07:14:00+08:00","updated":"2023-02-21T11:14:00+08:00","author":{"name":"ZAN DoYe"},"id":"tag:doye.smaji.org,2023-02-21:\/build a workstation.html","summary":"<p>The workstation used for the smaji cjkv project was built from wastes.<\/p>\n<p>The glyph collection of cjkv contains more than ten thousand samples. To process such a quantity of images requires the cpu, memory and disk to be of high throughput capacity.<\/p>\n<p>And as a long-term project intended to last \u2026<\/p>","content":"<p>The workstation used for the smaji cjkv project was built from wastes.<\/p>\n<p>The glyph collection of cjkv contains more than ten thousand samples. To process such a quantity of images requires the cpu, memory and disk to be of high throughput capacity.<\/p>\n<p>And as a long-term project intended to last for decades, data safety is one of the most concerned issues.<\/p>\n<div class=\"section\" id=\"computing\">\n<h2>Computing<\/h2>\n<p>IMHO, the most cost-effective high throughput CPUs in the market are those in the retired servers. Due to the internet boom, servers were retired\/replaced at high frequency, resulting in much waste. The number of 'wastes' is so enormous that people has to pay money to dispose them. On the bright side, it costs way lower price to build a workstation from these wastes.<\/p>\n<p>We have two choices: Intel Xeon and AMD EPYC. For example, a second-hand Xeon E5-2696 v3 (PassMark rating 23343) costs only 320 CNY(45 USD), meanwhile, an EPYC 7251 (PassMark rating 14935) costs 440 CNY(64 USD). Intel Xeon is a much better choice unless you already have an AMD motherboard.<\/p>\n<p>Server CPUs are also beneficial to memory and PCI peripherals. Xeon 2696 v3 has 40 PCIe lanes, so we can setup dual graphic cards(PCIe x16 x 2) without performance penalty. For comparison, a Ryzen 5600 CPU has only 24 PCIe lanes, the first graphic card takes up 16 lanes, so the second graphic card can only perform on the remaining 8 lanes i.e. half of 16, which incurs performance penalty.<\/p>\n<p>As already mentioned, retired server memory chips are cheap enough. For example, We can get 4 ECC DDR4 memory chips, 16GiB each, to build a quad channel memory system and these chips cost only 400 CNY(58 USD).<\/p>\n<\/div>\n<div class=\"section\" id=\"storage\">\n<h2>Storage<\/h2>\n<p>Data safety! The critical importance is beyond doubt. This doesn't mean we have to build our storage pool with high price top-level disks and replace the disks regularly. As the storage capacity increased, now the biggest risk becomes URE(Unrecoverable Read Error) instead of disk damage. A RAID5 array can withstand one disk failure, but to replace the disk and rebuild the array is not URE-tolerant. Encountering URE, bang!! the rebuilding RAID5 array is screwed up.<\/p>\n<p>Instead of buying some expensive disks, we can buy a few more cheap disks and build a RAID6 array. ZFS raidz2 is another good solution. These two solutions can withstand two disks failure. As URE is almost impossible to occur at the same position in any two disks of the array, rebuilding will be fairly safe.<\/p>\n<p>Next, in case of fire disaster that burns the RAID array altogether, we need a RDTS(Remote Disaster Tolerant System). We can simply build another RAID6\/raidz2 array as a RDTS and sync them regularly. Done!<\/p>\n<p>In fact, my storage system was also built from wastes(retired server disks). And an SSD disk was added for the raidz2 pool as log and cache device. Cheap, stable, robust and efficient.<\/p>\n<\/div>\n<div class=\"section\" id=\"gpu-and-kde\">\n<h2>GPU and KDE<\/h2>\n<p>I'm a Debian and KDE user. Debian Stable is so stable that some of its components are a bit outdated. Because of CUDA, I need new GPUs and have to keep pace with new nvidia drivers. The recent nvidia driver 525 broke the backward compatibility with old kde component KSysGuard. It can't monitor nvidia graphic cards any more. And the old KSysGuard in Debian Stable(currently Debian 11) can't monitor multi-gpu, so I wrote two patches to fix these issues.<\/p>\n<p>The version of KDE plasma in Debian 11 is 5.20, so we can clone the KSysGuard components from <a class=\"reference external\" href=\"https:\/\/invent.kde.org\/plasma\/ksysguard.git\/\">https:\/\/invent.kde.org\/plasma\/ksysguard.git\/<\/a> and check out the Plasma\/5.20 branch.<\/p>\n<div class=\"section\" id=\"the-new-nvidia-driver-update\">\n<h3>The new nvidia driver update<\/h3>\n<p>Nvidia driver version 525 changed its nvidia-smi output, which KSysGuard is not aware of. Here is <a class=\"reference external\" href=\"https:\/\/doye.smaji.org\/patches\/525.diff\">the patch<\/a>.<\/p>\n<\/div>\n<div class=\"section\" id=\"multiple-gpus\">\n<h3>Multiple GPUs<\/h3>\n<p>And the multi-gpu <a class=\"reference external\" href=\"https:\/\/doye.smaji.org\/patches\/multi_gpu.diff\">enhancement<\/a>.<\/p>\n<\/div>\n<\/div>\n","category":[{"@attributes":{"term":"misc"}},{"@attributes":{"term":"workstation hardware nvidia"}}]},{"title":"2021 - 2022 \u5c0f\u8bb0","link":{"@attributes":{"href":"https:\/\/doye.smaji.org\/2021%202022%20note.html","rel":"alternate"}},"published":"2023-02-16T13:53:00+08:00","updated":"2023-02-16T13:53:00+08:00","author":{"name":"ZAN DoYe"},"id":"tag:doye.smaji.org,2023-02-16:\/2021 2022 note.html","summary":"<p>\u4e24\u5e74\u524d\u7684\u5e74\u8bb0\u91cc\uff0c\u8c08\u4e86\u8c08\u67e5\u9605\u53e4\u6587\u732e\u65f6\u9047\u5230\u7684\u4e00\u4e9b\u4e0d\u4fbf\u3002\u5bf9\u4e8e\u8fd9\u4e9b\u4e0d\u4fbf\uff0c\u4e5f\u6709\u4e00\u4e9b\u6539\u8fdb\u65b9\u6cd5\u7684\u8bbe\u60f3\u3002\n\u4e5f\u505a\u4e86\u4e00\u70b9\u6ca1\u6709\u5934\u7eea\u7684 \u2026<\/p>","content":"<p>\u4e24\u5e74\u524d\u7684\u5e74\u8bb0\u91cc\uff0c\u8c08\u4e86\u8c08\u67e5\u9605\u53e4\u6587\u732e\u65f6\u9047\u5230\u7684\u4e00\u4e9b\u4e0d\u4fbf\u3002\u5bf9\u4e8e\u8fd9\u4e9b\u4e0d\u4fbf\uff0c\u4e5f\u6709\u4e00\u4e9b\u6539\u8fdb\u65b9\u6cd5\u7684\u8bbe\u60f3\u3002\n\u4e5f\u505a\u4e86\u4e00\u70b9\u6ca1\u6709\u5934\u7eea\u7684\u51c6\u5907\u5de5\u4f5c\uff0c\u91c7\u96c6\u4e86\u8bb8\u591a\u5b57\u5f62\uff0c\u4ee5\u5907\u540e\u7528\u3002\n\u90a3\u65f6\u8c08\u6539\u8fdb\u7684\u8bbe\u60f3\uff0c\u8c08\u5f97\u975e\u5e38\u6742\u4e71\u3002\u56e0\u4e3a\u4e00\u5207\u90fd\u6666\u6697\u4e0d\u660e\uff0c\u4e00\u5207\u90fd\u524d\u9014\u6e3a\u832b\u3002<\/p>\n<p>\u7528\u4ec0\u4e48\u65b9\u5f0f\u6539\u8fdb\uff1f\u6539\u8fdb\u7684\u53ef\u884c\u6027\u5982\u4f55\uff1f\u53ef\u884c\u7684\u5404\u4e2a\u65b9\u5f0f\uff0c\u5176\u6295\u5165\u4ea7\u51fa\u6bd4\u53c8\u662f\u5982\u4f55\uff1f\n\u4e1a\u754c\u5df2\u7ecf\u505a\u4e86\u591a\u6b21\u7684\u5c1d\u8bd5\uff0c\u8e1f\u8e70\u4e0d\u524d\u4e86\u8fd1\u56db\u5341\u4f59\u5e74\u3002\u8fd9\u8868\u660e\u4e86\uff0c\u5373\u4f7f\u6709\u53ef\u884c\u7684\u6539\u8fdb\u65b9\u5f0f\uff0c\u5176\u4ee3\u4ef7\u4e5f\u5927\u5230\u4e86\u5927\u5bb6\u90fd\u4e0d\u613f\u63a5\u53d7\u7684\u7a0b\u5ea6\u3002<\/p>\n<p>\u5c94\u8def\u7eb7\u7e41\uff0c\u4e91\u906e\u96fe\u7ed5\u3002\u6709\u65f6\u770b\u7740\u662f\u6b63\u8def\u7684\uff0c\u8d70\u4e86\u51e0\u4e2a\u5c94\u540e\u624d\u53d1\u73b0\u6b64\u8def\u4e0d\u901a\u3002\u51e1\u6b64\u79cd\u79cd\uff0c\u8bf4\u51fa\u6765\uff0c\u4e5f\u914d\u4e0d\u4e0a\u9664\u5915\u7684\u70ed\u95f9\u6c14\u6c1b\u3002\u8fd9\u6b21\u5e74\u8bb0\uff0c\u53ea\u8bf4\u8bf4\u8d70\u5bf9\u4e86\u7684\u90e8\u5206\u3002<\/p>\n<ol class=\"arabic simple\">\n<li>\u8d44\u6e90\u6709\u9650\uff0c\u8def\u5f84\u4f9d\u8d56\uff0c\u8fd9\u4e24\u4e2a\u56e0\u7d20\u51b3\u5b9a\u4e86\u4f5c\u51fa\u7684\u6539\u8fdb\u987b\u4e0e\u73b0\u6709\u4f53\u7cfb\u517c\u5bb9\u3002<ol class=\"loweralpha\">\n<li>\u57fa\u4e8e\u6b64\u6761\u4ef6\uff0c\u5bf9\u91c7\u96c6\u7684\u5b57\u5f62\u548c Unicode \u6536\u5f55\u6587\u5b57\u8fdb\u884c\u5b8c\u5168\u517c\u5bb9\u3002\u6821\u5bf9\uff0c\u8865\u5b8c\u6240\u6709 Unicode \u6536\u5f55\u7684\u8fd1\u5341\u4e07\u4e2a\u6c49\u5b57\u3002\u505a\u5230\u4e00\u5b57\u4e0d\u6f0f\uff0c\u4e00\u4e00\u5bf9\u5e94\u3002<\/li>\n<li>\u6784\u5efa\u5f00\u653e\u7684\u6536\u5f55\u7cfb\u7edf\uff0c\u4fdd\u8bc1\u5feb\u901f\u6536\u5f55\u65b0\u5b57\u7684\u540c\u65f6\u80fd\u591f\u4fdd\u6301\u517c\u5bb9\u6027\u3002<\/li>\n<\/ol>\n<\/li>\n<li>\u4eba\u529b\u8d44\u6e90\u6709\u9650\uff0c\u4e5f\u6709\u5176\u7f3a\u9677\u3002\u8fd9\u4e2a\u56e0\u7d20\u9020\u6210\u4e86\u8fd9\u6837\u4e00\u4e2a\u56f0\u5883\uff1a\u5f53\u6709\u4eba\u53d1\u8d77\u8bf7\u6c42\u8981\u6536\u5f55\u65b0\u5b57\u65f6\uff0c\u5982\u4f55\u786e\u5b9a\u6b64\u65b0\u5b57\u5df2\u6536\u5f55\u4e86\uff1f\u6b64\u65b0\u5b57\u548c\u5df2\u6536\u5f55\u7684\u54ea\u4e9b\u5b57\u6bd4\u8f83\u76f8\u4f3c\uff0c\u53ef\u80fd\u662f\u5176\u53d8\u4f53\uff1f\u5f53\u5df2\u6536\u5f55\u7684\u5b57\u8fbe\u5230\u5341\u4e07\u5b57\u89c4\u6a21\u7684\u65f6\u5019\uff0c\u5df2\u7ecf\u6ca1\u4eba\u80fd\u591f\u8bb0\u4f4f\u8fd9\u4e48\u591a\u5b57\u5f62\u5e76\u8fdb\u884c\u5feb\u901f\u5904\u7406\u4e86\u3002\u8fd9\u4e00\u56f0\u5883\u5df2\u5728\u5f53\u524d\u7684 Unicode \u91cc\u9762\u9020\u6210\u4e86\u8bb8\u591a\u5197\u4f59\u548c\u6742\u4e71\u3002\u53e6\u5916\u4e00\u4e2a\u56f0\u5883\u4fbf\u662f\uff0c\u4e3a\u8fd9\u4e00\u89c4\u6a21\u7684\u5b57\u5e93\u8bbe\u8ba1\u4e00\u5957\u5b57\u4f53\uff0c\u53ef\u80fd\u9700\u8981\u4e00\u4e2a\u5b57\u4f53\u8bbe\u8ba1\u516c\u53f8\u8fd1\u5341\u5e74\u7684\u65f6\u95f4\u624d\u80fd\u5b8c\u6210\u3002<ol class=\"loweralpha\">\n<li>\u8bbe\u8ba1\u4eba\u5de5\u667a\u80fd\u8fdb\u884c\u8f85\u52a9\u8bc6\u522b\uff1a\u6536\u5f55\u4e0e\u5426\uff0c\u76f8\u4f3c\u51e0\u4f55\u3002<\/li>\n<li>\u8bbe\u8ba1\u4eba\u5de5\u667a\u80fd\u8fdb\u884c\u8f85\u52a9\u5b57\u4f53\u8bbe\u8ba1\uff0c\u521b\u9020\u51fa\u7684\u5b57\u4f53\u96c6\u53cd\u5411\u6539\u8fdb 2.a \u8f85\u52a9\u8bc6\u522b\u7684\u7cbe\u5ea6\u3002<\/li>\n<\/ol>\n<\/li>\n<li>\u7f3a\u4e4f\u8de8\u5e73\u53f0\uff0c\u5f02\u4f53\u5b57\u517c\u5bb9\u8f93\u5165\u6cd5\u3002\u5df2\u6709\u7684\u8f93\u5165\u6cd5\uff0c\u5373\u4f7f\u8de8\u5e73\u53f0\uff0c\u4f46\u5f02\u4f53\u5b57\u517c\u5bb9\uff0c\u9700\u5177\u5907\u5b57\u4f53\u76f4\u8bfb\uff0c\u76f4\u753b\u80fd\u529b\u3002<ol class=\"loweralpha\">\n<li>\u5df2\u5f00\u53d1\u5b8c\u6210 Unix, Linux, Windows \u517c\u5bb9\u7684\u8f93\u5165\u6cd5\u8fdb\u884c\u4efb\u610f\u6587\u5b57\u7684\u8f93\u5165\u3002\u524d\u7aef\u7684\u5b57\u4f53\u76f4\u8bfb\u76f4\u753b\uff0c\u8f93\u5165\u6cd5\u903b\u8f91\u5df2\u7136\u89e3\u51b3\u3002Unix, Linux \u7cfb\u7edf\u7684 X Window \u7cfb\u7edf\u63d0\u4f9b\u4e86 XIM \u534f\u8bae\uff1b\u73b0\u4ee3 Windows \u63d0\u4f9b\u4e86 TSF \u670d\u52a1\uff0c\u5747\u5df2\u9002\u914d\u3002<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>\u6539\u8fdb\u65b9\u6cd5\u7684\u8bbe\u8ba1\u548c\u5b9e\u73b0\uff0c\u7ec8\u4e8e\u8fbe\u6210\u903b\u8f91\u95ed\u73af\u3002\u6682\u6b47\u4e00\u4f1a\u513f\u540e\uff0c\u4ee5\u4e0a\u7ed3\u679c\uff0c\u5c06\u9646\u7eed\u53d1\u5e03\u3002<\/p>\n<p>\u8fd9\u4e9b\u6539\u8fdb\u7684\u672a\u6765\u7684\u613f\u666f\uff1a\u5b66\u8005\u4eec\u505a\u7814\u7a76\uff0c\u67e5\u6587\u732e\uff0c\u4e0d\u518d\u79ef\u5e74\u7d2f\u6708\uff0c\u4e0d\u518d\u7a77\u7ecf\u7693\u9996\u3002<\/p>\n","category":[{"@attributes":{"term":"cjkv"}},{"@attributes":{"term":"cjkv"}},{"@attributes":{"term":"unicode"}}]},{"title":"Let's teach the idiot some advanced mathematics","link":{"@attributes":{"href":"https:\/\/doye.smaji.org\/lets-teach-the-idiot-some-advanced-mathematics.html","rel":"alternate"}},"published":"2022-11-09T09:42:00+08:00","updated":"2022-11-09T09:42:00+08:00","author":{"name":"ZAN DoYe"},"id":"tag:doye.smaji.org,2022-11-09:\/lets-teach-the-idiot-some-advanced-mathematics.html","summary":"<p>The last paragraph in the previous post says:<\/p>\n<p><em>Then what about the feasibility of functional programming in golang? It's not so much to express logic in programming languages as to teach an idiot advanced mathematics.<\/em><\/p>\n<p>Well, let's try to teach the idiot some advanced mathematics.<\/p>\n<div class=\"section\" id=\"tail-call-optimization\">\n<h2>Tail call optimization<\/h2>\n<p>Project <a class=\"reference external\" href=\"https:\/\/github.com\/kandu\/go_tailcall\">go_tailcall \u2026<\/a><\/p><\/div>","content":"<p>The last paragraph in the previous post says:<\/p>\n<p><em>Then what about the feasibility of functional programming in golang? It's not so much to express logic in programming languages as to teach an idiot advanced mathematics.<\/em><\/p>\n<p>Well, let's try to teach the idiot some advanced mathematics.<\/p>\n<div class=\"section\" id=\"tail-call-optimization\">\n<h2>Tail call optimization<\/h2>\n<p>Project <a class=\"reference external\" href=\"https:\/\/github.com\/kandu\/go_tailcall\">go_tailcall<\/a><\/p>\n<p>Implement stackless mutually recursive functions via trampolining<\/p>\n<\/div>\n<div class=\"section\" id=\"currying-and-uncurrying\">\n<h2>Currying and Uncurrying<\/h2>\n<p>Project <a class=\"reference external\" href=\"https:\/\/github.com\/kandu\/go_currying\">go_currying<\/a><\/p>\n<p>Create typesafe curried\/uncurried versions of functions<\/p>\n<\/div>\n<div class=\"section\" id=\"pattern-matching\">\n<h2>Pattern matching?<\/h2>\n<p>Pattern matching is worth mentioning, though it's not as essential as the two features mentioned above.<\/p>\n<p>A pattern matching expression will be translated to a decision tree after compilation, which is not possible without compile time code generation. Release 1.4 of golang includes a command called 'go generate' which is NOT part of go build. Although we can write a library to make some improvements, but it's still not a language level facility. So I'd rather write decision trees in plain control structures.<\/p>\n<p>Another important feature related with pattern matching is exhaustiveness checking. Sum types(simulated with interface) in golang are open type, which is unchecked in the type system. But with the help of a higher order function to match all the branches of a sum type, exhaustiveness can also be ensured. That is, types can be closed manually.<\/p>\n<\/div>\n","category":[{"@attributes":{"term":"tec"}},{"@attributes":{"term":"golang"}},{"@attributes":{"term":"functional programming"}}]},{"title":"A glance at the feasibility of functional programming in golang","link":{"@attributes":{"href":"https:\/\/doye.smaji.org\/a-glance-at-the-feasibility-of-functional-programming-in-golang.html","rel":"alternate"}},"published":"2022-08-11T14:32:00+08:00","updated":"2022-11-08T09:23:00+08:00","author":{"name":"ZAN DoYe"},"id":"tag:doye.smaji.org,2022-08-11:\/a-glance-at-the-feasibility-of-functional-programming-in-golang.html","summary":"<p>The most important concept in all mathematics and\/or programming languages is that of a function.<\/p>\n<p>A function is a formula, or rule of correspondence that for each x in its domain , there is a corresponding value y assigned. And the set of corresponding y is called its range.<\/p>\n<p>So \u2026<\/p>","content":"<p>The most important concept in all mathematics and\/or programming languages is that of a function.<\/p>\n<p>A function is a formula, or rule of correspondence that for each x in its domain , there is a corresponding value y assigned. And the set of corresponding y is called its range.<\/p>\n<p>So, the feasibility covers two major points: the description capability of the domain and range; and the description capability of the formula or rule.<\/p>\n<p>A domain or a range is a set consisting of specified type. Thanks to the new release 1.18, which includes an implementation of generic features, i.e. type parameters, the type system of golang finally goes forward for several paces.<\/p>\n<p>The type system of golang is just as capable as other common programming languages. It can now express numeric, boolean, string, algebraic data types, and composites of which it expresses function types.<\/p>\n<p>The algebraic data types and function types are composite types, to which go introduced type parameter.<\/p>\n<p>Two common classes of algebraic types are product types and sum types. Golang represents product types in struct, but it lacks the facility to represent sum types. Lamely, we simulate sum types with a facility in go called interface or simulate it in product types with predefined distinguishing tags.<\/p>\n<p>Below is an example.<\/p>\n<p>We defined two packages, one defines option type and another defines result type.<\/p>\n<p>option.go<\/p>\n<div class=\"highlight\"><pre><span><\/span><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">option<\/span>\n\n<span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&quot;fmt&quot;<\/span>\n\n<span class=\"kd\">const<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span>\n<span class=\"w\">    <\/span><span class=\"nx\">some<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"kc\">iota<\/span>\n<span class=\"w\">    <\/span><span class=\"nx\">none<\/span>\n<span class=\"p\">)<\/span>\n\n<span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">Option<\/span><span class=\"p\">[<\/span><span class=\"nx\">T<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">    <\/span><span class=\"nx\">tag<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">;<\/span>\n<span class=\"w\">    <\/span><span class=\"nx\">value<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">T<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nx\">Return<\/span><span class=\"p\">[<\/span><span class=\"nx\">T<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">](<\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"nx\">T<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nx\">Option<\/span><span class=\"p\">[<\/span><span class=\"nx\">T<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">    <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">Option<\/span><span class=\"p\">[<\/span><span class=\"nx\">T<\/span><span class=\"p\">]{<\/span><span class=\"nx\">value<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">v<\/span><span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nx\">None<\/span><span class=\"p\">[<\/span><span class=\"nx\">T<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">]()<\/span><span class=\"w\"> <\/span><span class=\"nx\">Option<\/span><span class=\"p\">[<\/span><span class=\"nx\">T<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">    <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">Option<\/span><span class=\"p\">[<\/span><span class=\"nx\">T<\/span><span class=\"p\">]{<\/span><span class=\"nx\">value<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nx\">Bind<\/span><span class=\"p\">[<\/span><span class=\"nx\">T1<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">T2<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">](<\/span><span class=\"nx\">o<\/span><span class=\"w\"> <\/span><span class=\"nx\">Option<\/span><span class=\"p\">[<\/span><span class=\"nx\">T1<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">f<\/span><span class=\"w\"> <\/span><span class=\"kd\">func<\/span><span class=\"p\">(<\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"nx\">T1<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nx\">Option<\/span><span class=\"p\">[<\/span><span class=\"nx\">T2<\/span><span class=\"p\">])<\/span><span class=\"w\"> <\/span><span class=\"nx\">Option<\/span><span class=\"p\">[<\/span><span class=\"nx\">T2<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">    <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"nx\">tag<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">some<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">f<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span><span class=\"p\">)<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"nx\">tag<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">none<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">None<\/span><span class=\"p\">[<\/span><span class=\"nx\">T2<\/span><span class=\"p\">]()<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"nb\">panic<\/span><span class=\"p\">(<\/span><span class=\"nx\">o<\/span><span class=\"p\">)<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nx\">Map<\/span><span class=\"p\">[<\/span><span class=\"nx\">T1<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">T2<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">](<\/span><span class=\"nx\">o<\/span><span class=\"w\"> <\/span><span class=\"nx\">Option<\/span><span class=\"p\">[<\/span><span class=\"nx\">T1<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">f<\/span><span class=\"w\"> <\/span><span class=\"kd\">func<\/span><span class=\"p\">(<\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"nx\">T1<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nx\">T2<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nx\">Option<\/span><span class=\"p\">[<\/span><span class=\"nx\">T2<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">    <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"nx\">tag<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">some<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">Return<\/span><span class=\"p\">(<\/span><span class=\"nx\">f<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span><span class=\"p\">))<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"nx\">tag<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">none<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">None<\/span><span class=\"p\">[<\/span><span class=\"nx\">T2<\/span><span class=\"p\">]()<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"nb\">panic<\/span><span class=\"p\">(<\/span><span class=\"nx\">o<\/span><span class=\"p\">)<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">o<\/span><span class=\"w\"> <\/span><span class=\"nx\">Option<\/span><span class=\"p\">[<\/span><span class=\"nx\">T<\/span><span class=\"p\">])<\/span><span class=\"nx\">String<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">    <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"nx\">tag<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">some<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&quot;Some (&quot;<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nx\">Sprintf<\/span><span class=\"p\">(<\/span><span class=\"s\">&quot;%v&quot;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"s\">&quot;)&quot;<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"nx\">tag<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">none<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&quot;None&quot;<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"nb\">panic<\/span><span class=\"p\">(<\/span><span class=\"nx\">o<\/span><span class=\"p\">)<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/pre><\/div>\n<p>result.go<\/p>\n<div class=\"highlight\"><pre><span><\/span><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">result<\/span>\n\n<span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&quot;fmt&quot;<\/span>\n\n<span class=\"kd\">const<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span>\n<span class=\"w\">    <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"kc\">iota<\/span>\n<span class=\"w\">    <\/span><span class=\"kt\">error<\/span>\n<span class=\"p\">)<\/span>\n\n<span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">Result<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">    <\/span><span class=\"nx\">tag<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">;<\/span>\n<span class=\"w\">    <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TO<\/span><span class=\"p\">;<\/span>\n<span class=\"w\">    <\/span><span class=\"kt\">error<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TE<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nx\">Ok<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">](<\/span><span class=\"nx\">o<\/span><span class=\"w\"> <\/span><span class=\"nx\">TO<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nx\">Result<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">    <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">Result<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"p\">]{<\/span><span class=\"nx\">tag<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">o<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"p\">:<\/span><span class=\"kc\">nil<\/span><span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nx\">Error<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">](<\/span><span class=\"nx\">e<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nx\">Result<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">    <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">Result<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"p\">]{<\/span><span class=\"nx\">tag<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"p\">:<\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">e<\/span><span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nx\">Bind<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO1<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TO2<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">](<\/span><span class=\"nx\">o<\/span><span class=\"w\"> <\/span><span class=\"nx\">Result<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">f<\/span><span class=\"w\"> <\/span><span class=\"kd\">func<\/span><span class=\"p\">(<\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"nx\">TO1<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nx\">Result<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO2<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"p\">])<\/span><span class=\"w\"> <\/span><span class=\"nx\">Result<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO2<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">    <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"nx\">tag<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">f<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"nx\">ok<\/span><span class=\"p\">)<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"nx\">tag<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">Error<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO2<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"p\">](<\/span><span class=\"o\">*<\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"kt\">error<\/span><span class=\"p\">)<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"nb\">panic<\/span><span class=\"p\">(<\/span><span class=\"nx\">o<\/span><span class=\"p\">)<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nx\">Map<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO1<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TO2<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">](<\/span><span class=\"nx\">o<\/span><span class=\"w\"> <\/span><span class=\"nx\">Result<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">f<\/span><span class=\"w\"> <\/span><span class=\"kd\">func<\/span><span class=\"p\">(<\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"nx\">TO1<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nx\">TO2<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nx\">Result<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO2<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">    <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"nx\">tag<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">Ok<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO2<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"p\">](<\/span><span class=\"nx\">f<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"nx\">ok<\/span><span class=\"p\">))<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"nx\">tag<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">Error<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO2<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"p\">](<\/span><span class=\"o\">*<\/span><span class=\"nx\">o<\/span><span class=\"p\">.<\/span><span class=\"kt\">error<\/span><span class=\"p\">)<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"nb\">panic<\/span><span class=\"p\">(<\/span><span class=\"nx\">o<\/span><span class=\"p\">)<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">r<\/span><span class=\"w\"> <\/span><span class=\"nx\">Result<\/span><span class=\"p\">[<\/span><span class=\"nx\">TO<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">TE<\/span><span class=\"p\">])<\/span><span class=\"nx\">String<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">    <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">r<\/span><span class=\"p\">.<\/span><span class=\"nx\">tag<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&quot;Ok (&quot;<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nx\">Sprintf<\/span><span class=\"p\">(<\/span><span class=\"s\">&quot;%v&quot;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">r<\/span><span class=\"p\">.<\/span><span class=\"nx\">ok<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"s\">&quot;)&quot;<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">r<\/span><span class=\"p\">.<\/span><span class=\"nx\">tag<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&quot;Error (&quot;<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nx\">Sprintf<\/span><span class=\"p\">(<\/span><span class=\"s\">&quot;%v&quot;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">r<\/span><span class=\"p\">.<\/span><span class=\"nx\">ok<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"s\">&quot;)&quot;<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"nb\">panic<\/span><span class=\"p\">(<\/span><span class=\"nx\">r<\/span><span class=\"p\">)<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/pre><\/div>\n<p>The description capability of the domain and range is somewhat competent, let's have a look at the description capability of formula or rule.<\/p>\n<p>Here is an example program:<\/p>\n<div class=\"highlight\"><pre><span><\/span><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span>\n\n<span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span>\n<span class=\"w\">    <\/span><span class=\"s\">&quot;fmt&quot;<\/span>\n<span class=\"w\">    <\/span><span class=\"s\">&quot;option&quot;<\/span>\n<span class=\"w\">    <\/span><span class=\"s\">&quot;result&quot;<\/span>\n<span class=\"p\">)<\/span>\n\n<span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">    <\/span><span class=\"nx\">a<\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">result<\/span><span class=\"p\">.<\/span><span class=\"nx\">Ok<\/span><span class=\"p\">[<\/span><span class=\"nx\">Option<\/span><span class=\"p\">[<\/span><span class=\"kt\">int<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">](<\/span><span class=\"nx\">result<\/span><span class=\"p\">.<\/span><span class=\"nx\">Return<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">))<\/span>\n<span class=\"w\">    <\/span><span class=\"nx\">b<\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">result<\/span><span class=\"p\">.<\/span><span class=\"nx\">Bind<\/span><span class=\"p\">(<\/span><span class=\"nx\">a<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kd\">func<\/span><span class=\"p\">(<\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"nx\">option<\/span><span class=\"p\">.<\/span><span class=\"nx\">Option<\/span><span class=\"p\">[<\/span><span class=\"kt\">int<\/span><span class=\"p\">])<\/span><span class=\"w\"> <\/span><span class=\"nx\">result<\/span><span class=\"p\">.<\/span><span class=\"nx\">Result<\/span><span class=\"p\">[<\/span><span class=\"nx\">option<\/span><span class=\"p\">.<\/span><span class=\"nx\">Option<\/span><span class=\"p\">[<\/span><span class=\"kt\">int<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">        <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">result<\/span><span class=\"p\">.<\/span><span class=\"nx\">Ok<\/span><span class=\"p\">[<\/span><span class=\"nx\">option<\/span><span class=\"p\">.<\/span><span class=\"nx\">Option<\/span><span class=\"p\">[<\/span><span class=\"kt\">int<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">](<\/span><span class=\"nx\">option<\/span><span class=\"p\">.<\/span><span class=\"nx\">Bind<\/span><span class=\"p\">(<\/span><span class=\"nx\">v<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nx\">option<\/span><span class=\"p\">.<\/span><span class=\"nx\">Option<\/span><span class=\"p\">[<\/span><span class=\"kt\">int<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span>\n<span class=\"w\">            <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">option<\/span><span class=\"p\">.<\/span><span class=\"nx\">Return<\/span><span class=\"p\">(<\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span>\n<span class=\"w\">        <\/span><span class=\"p\">}))<\/span>\n<span class=\"w\">    <\/span><span class=\"p\">})<\/span>\n<span class=\"w\">    <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nx\">Println<\/span><span class=\"p\">(<\/span><span class=\"nx\">b<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span>\n<\/pre><\/div>\n<p>Golang lacks the abilities to infer types globally, that's not a big deal. But the example code above reveals the fact that it even lacks the abilities of local type inference. We have to write everything explicitly in the body of a function even when it's unnecessary.<\/p>\n<p>Then what about the feasibility of functional programming in golang? It's not so much to express logic in programming languages as to teach an idiot advanced mathematics.<\/p>\n","category":[{"@attributes":{"term":"tec"}},{"@attributes":{"term":"golang"}},{"@attributes":{"term":"functional programming"}}]},{"title":"2020 \u5c0f\u8bb0","link":{"@attributes":{"href":"https:\/\/doye.smaji.org\/2020%20note.html","rel":"alternate"}},"published":"2020-12-01T14:09:00+08:00","updated":"2020-12-01T14:09:00+08:00","author":{"name":"ZAN DoYe"},"id":"tag:doye.smaji.org,2020-12-01:\/2020 note.html","summary":"<p>\u6700\u8fd1\u4e24\u5e74\uff0c\u6211\u7a0d\u7a0d\u53bb\u4e86\u89e3\u4e86\u67d0\u7c7b\u89c2\u5ff5\u5728\u4f20\u64ad\uff0c\u7ee7\u627f\u8fc7\u7a0b\u4e2d\u53d1\u751f\u7684\u53d8\u5316\uff1a\u56e0\u4f20\u64ad\u65b9\u5411\u4e0d\u540c\uff0c\u6709\u4e86\u5730\u7406\u533a\u9694\u800c\u4ea7\u751f\u7684\uff1b\u56e0\u4ee3\u4ee3\u6d41\u4f20 \u2026<\/p>","content":"<p>\u6700\u8fd1\u4e24\u5e74\uff0c\u6211\u7a0d\u7a0d\u53bb\u4e86\u89e3\u4e86\u67d0\u7c7b\u89c2\u5ff5\u5728\u4f20\u64ad\uff0c\u7ee7\u627f\u8fc7\u7a0b\u4e2d\u53d1\u751f\u7684\u53d8\u5316\uff1a\u56e0\u4f20\u64ad\u65b9\u5411\u4e0d\u540c\uff0c\u6709\u4e86\u5730\u7406\u533a\u9694\u800c\u4ea7\u751f\u7684\uff1b\u56e0\u4ee3\u4ee3\u6d41\u4f20\uff0c\u6709\u4e86\u65f6\u95f4\u533a\u9694\u800c\u4ea7\u751f\u7684\u3002<\/p>\n<p>\u4f5c\u4e3a\u8bb0\u8f7d\u8fd9\u4e9b\u89c2\u5ff5\u7684\u8f7d\u4f53\uff0c\u6587\u5b57\uff0c\u81ea\u7136\u4e5f\u56e0\u5730\u7406\uff0c\u65f6\u95f4\u533a\u9694\u800c\u4ea7\u751f\u4e86\u8bb8\u591a\u53d8\u5316\u3002<\/p>\n<p>\u4ee5\u524d\uff0c\u6587\u5b57\u90fd\u662f\u4e9b\u8bb0\u8f7d\u5728\u7eb8\u5f20\u4e0a\u7684\u56fe\u5f62\u3002\u8bb0\u5f55\uff0c\u68c0\u7d22\u5e76\u4e0d\u5bb9\u6613\u3002\u5728\u4e86\u89e3\u8fc7\u53bb\u7684\u89c2\u5ff5\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u53d1\u73b0\uff0c\u5373\u4f7f\u5230\u4e86\u73b0\u5728\uff0c\u8fc7\u53bb\u7684\u56fe\u4e66\u5c1a\u6ca1\u6709\u88ab\u5f88\u597d\u5730\u6570\u5b57\u5316\u3002\u5373\u4f7f\u6709\u6570\u5b57\u5316\u7248\u672c\uff0c\u4e5f\u5927\u591a\u662f\u6539\u5199\uff0c\u7b80\u5316\u7684\u7248\u672c\u3002\u9664\u4e86\u5e38\u7528\u6587\u5b57\u5f97\u5230\u4e86\u4fe1\u606f\u5904\u7406\u6280\u672f\u7684\u652f\u6301\u5916\uff0c\u6587\u5b57\u4ecd\u7136\u8fd8\u662f\u8bb0\u5f55\u5728\u7eb8\u5f20\u4e0a\u7684\u56fe\u5f62\u3002\u53ea\u4e0d\u8fc7\u8fd9\u4e9b\u7eb8\u5f20\u53d8\u6210\u53ef\u4ee5\u5b58\u50a8\u5728\u786c\u76d8\u4e0a\u7684\u56fe\u7247\u4e86\u3002\u55ef\uff0c\u56fe\u7247\u4e2d\u7684\u56fe\u7247\uff0c\u8bb0\u5f55\u548c\u68c0\u7d22\u4ecd\u6ca1\u4ec0\u4e48\u4fbf\u5229\u7684\u6539\u5584\u3002<\/p>\n<p>\u6587\u53f2\u5b66\u754c\u7684\u8bba\u8457\uff0c\u90a3\u4e48\u591a\u5730\u91c7\u7528\u56fe\u6863\u7a7f\u63d2\u5f62\u5f0f\u6765\u5199\u4f5c\u3002\u6211\u8fd8\u89c1\u8fc7\u6574\u672c\u6587\u6863\uff0c\u5176\u5927\u591a\u6587\u5b57\u662f\u7528\u624b\u5199\u63cf\u7ed8\u7684\u30022020\uff0c\u4ecd\u7136\u662f\u4e2a\u5200\u8015\u706b\u79cd\u7684\u65f6\u4ee3\u3002<\/p>\n<p>\u5668\u7528\u4e0d\u582a\uff0c\u53ea\u597d\u6682\u7f13\u8bfb\u4e66\uff0c\u5206\u51fa\u4e9b\u7cbe\u529b\u6765\u77a7\u4e00\u77a7\u73b0\u5728\u7684\u8ba1\u7b97\u673a\u6587\u5b57\u5904\u7406\u73b0\u72b6\u3002<\/p>\n<div class=\"section\" id=\"cjk-unified-ideographs\">\n<h2>CJK Unified Ideographs<\/h2>\n<p>\u4e2d\u56fd\uff0c\u65e5\u672c\uff0c\u97e9\u56fd\uff0c\u66fe\u7ecf\u7684\u8d8a\u5357\uff0c\u90fd\u6709\u5404\u81ea\u7684\u6c49\u5b57\u4e66\u5199\u7cfb\u7edf\uff0c\u76f8\u4e92\u95f4\u5927\u591a\u5171\u901a\u4f46\u4e5f\u6709\u5dee\u5f02\u3002\u8ba1\u7b97\u673a\u6280\u672f\u53d1\u5c55\u540e\uff0c\u5404\u56fd\u90fd\u4e3a\u5404\u81ea\u7684\u4e66\u5199\u7cfb\u7edf\u5236\u5b9a\u4e86\u5185\u7801\u3002\u867d\u7136\u8fd9\u4e9b\u4e66\u5199\u7cfb\u7edf\u6570\u5b57\u5316\u540e\u7684\u5916\u5728\u8868\u73b0\u5927\u540c\u5c0f\u5f02\uff0c\u4f46\u5185\u7801\u5374\u662f\u5404\u884c\u5176\u662f\uff0c\u4e92\u4e0d\u517c\u5bb9\u3002\u4e0a\u4e16\u7eaa80\u5e74\u4ee3\uff0c\u6709\u51e0\u4e2a\u9879\u76ee\u8bd5\u56fe\u5236\u5b9a\u4e00\u5957\u7edf\u4e00\u7684\uff0c\u591a\u8bed\u8a00\u7684\u7f16\u7801\u65b9\u6848\u3002\u5176\u4e2d ISO10646, Unicode \u4fbf\u662f\u5176\u4e2d\u5f71\u54cd\u529b\u8f83\u5927\u7684\u4e24\u4e2a\u3002<\/p>\n<p>Unicode \u521d\u59cb\u7684\u76ee\u6807\uff0c\u53ea\u4e3a\u73b0\u4ee3\u7684\u5e7f\u6cdb\u4f7f\u7528\u7684\u8bed\u8a00\u4e66\u5199\u7cfb\u7edf\u7f16\u5236\u7f16\u7801\uff0c\u4e14\u4ec5\u8003\u8651\u8fd9\u4e9b\u7cfb\u7edf\u7684\u5b57\u5143\uff0c\u800c\u975e\u5b57\u5f62\u3002\u8fd9\u4e00\u51b3\u5b9a\u9996\u5148\u5bfc\u81f4\u53ef\u6269\u5145\u5bb9\u91cf\u72ed\u5c0f\uff0c\u53e6\u5916\u4e5f\u5bfc\u81f4\u53e4\u6587\u5b57\u7f16\u7801\uff0c\u5f02\u4f53\uff0c\u53d8\u4f53\u7f3a\u5931\u3002ISO10646 \u7684\u521d\u59cb\u63d0\u6848\u5219\u56e0\u4e3a\u8bbe\u8ba1\u4e0e\u5b9e\u73b0\u539f\u56e0\uff0c\u88ab\u4e1a\u754c\u62b5\u5236\u3002\u8fd9\u4e9b\u5c1d\u8bd5\u5c31\u8fd9\u6837\u5728\u5c0f\u6c14\u6216\u4e0d\u6109\u5feb\u7684\u6c1b\u56f4\u4e2d\u5f00\u59cb\u4e86\u3002\u800c ISO10646 \u4e5f\u56e0\u4e3a\u88ab\u62b5\u5236\u7684\u539f\u56e0\uff0c\u8f6c\u800c\u8c0b\u6c42\u548c Unicode \u5408\u4f5c\u534f\u540c\u53d1\u5c55\u3002<\/p>\n<p>\u5728\u5904\u7406\u6c49\u5b57\u7f16\u7801\u65f6\uff0c\u5b83\u4fe9\u5f53\u5e74\u4e3a\u4e86\u5c3d\u5feb\u6536\u5f55\u5404\u56fd\u7eb7\u7e41\u800c\u4e0d\u517c\u5bb9\u7684\u6587\u5b57\uff0c\u59a5\u534f\u4e86\u4e00\u4e0b\uff0c\u8fdd\u53cd\u4e86\u4e4b\u524d\u5b9a\u4e0b\u7684\u8003\u8651\u5b57\u5143\u800c\u4e0d\u8003\u8651\u5b57\u5f62\u7684\u7b56\u7565\uff0c\u91c7\u7528\u4e86\u201c\u539f\u683c\u5206\u79bb\u539f\u5219\u201d\u3002\u5982\u679c\u67d0\u56fd\u7684\u5185\u7801\u5c06\u5b57\u5206\u522b\u6536\u5f55\uff0c\u5219\u4e0d\u7ba1\u8ba4\u540c\u89c4\u5219\uff0c\u7167\u6837\u6536\u5f55\u3002\u8fd9\u6837\u867d\u7136\u6709\u4e9b\u8bb8\u95ee\u9898\uff0c\u4e5f\u7b97\u662f\u597d\u4e8b\u3002\u81ea\u8ba4\u4e3a\u662f\u59a5\u534f\u4e86\uff0c\u7528\u4e86\u4e00\u4e2a\u504f\u79bb\u539f\u5219\u7684\u65b9\u6cd5\u3002\u5b9e\u9645\u4e0a\uff0c\u5374\u662f\u7528\u4e00\u4e2a\u66f4\u5c0f\u7684\u9519\u8bef\u66ff\u6362\u6389\u539f\u6765\u7684\u60f3\u5f53\u7136\u7684\u8ff7\u601d\u3002<\/p>\n<p>\u4f46\u66f4\u5c0f\u7684\u9519\u8bef\u4e5f\u662f\u9519\u8bef\u3002\u540e\u6765\u610f\u8bc6\u5230\u8fd9\u4e2a\u65b9\u6cd5\u7684\u95ee\u9898\u540e\uff0c\u51c6\u5907\u653e\u5f03\u8fd9\u4e00\u539f\u5219\u6765\u8fdb\u884c\u540e\u7eed\u7684\u5de5\u4f5c\u3002\u4f46\u662f\u5462\uff0c\u5982\u679c\u53ea\u6309\u672c\u8eab\u7684\u8ba4\u540c\u89c4\u5219\u6765\u770b\uff0c\u4f1a\u62d2\u7edd\u8bb8\u591a\u5f02\u4f53\u6587\u5b57\uff0c\u5bfc\u81f4\u5bf9\u90a3\u4e9b\u6587\u5b57\u6ca1\u6cd5\u8fdb\u884c\u6536\u5f55\u3002\u4e8e\u662f\u4e24\u4e2a\u539f\u5219\u5168\u90fd\u4e22\u5f00\u4e00\u8fb9\uff0c\u8fdb\u884c\u4e86\u6c49\u5b57\u7684\u6ee5\u6536\u3002\u540c\u610f\u540c\u6e90\u7684\u8bb8\u591a\u5b57\u90fd\u6309\u4e0d\u540c\u7801\u4f4d\u8fdb\u884c\u6536\u5f55\u4e86\u3002<\/p>\n<p>\u8fd9\u4e0b\u628a\u6240\u6709\u539f\u5219\u4e22\u5f97\u4e00\u5e72\u4e8c\u51c0\uff0c\u56e0\u7978\u5f97\u798f\uff0c\u4e00\u8def\u8d70\u6765\uff0c\u53cd\u800c\u4ece\u9519\u8bef\u4e4b\u8def\u8d70\u5411\u4e86\u504f\u5dee\u4e4b\u8def\u3002\u53ea\u662f\u90a3\u904d\u5e03 Unicode \u7684\uff0c\u5df2\u5e72\u6db8\u6216\u6b63\u6dcb\u6f13\u7684\u6ce5\u6c34\uff0c\u603b\u4f1a\u8ba9\u5b83\u663e\u5f97\u4e0d\u90a3\u4e48\u5149\u6d01\u3002<\/p>\n<p>\u5f00\u59cb\u7684\u5de5\u4f5c\u5e26\u6765\u4e86\u4e9b\u8bb8\u4e89\u8bae\uff0c\u540e\u6765\u7684\u5de5\u4f5c\u5e26\u6765\u4e86\u4e9b\u8bb8\u6df7\u4e71\u3002\u4ee5\u8fd9\u6837\u52a1\u5b9e\u7684\u201c\u59a5\u534f\u201d\uff0c\u6362\u53d6\u4e86\u6536\u5f55\u8fdb\u5ea6\u3002<\/p>\n<p>\u597d\u5728\uff0c\u540e\u7eed\u5f15\u5165\u4e86\u53d8\u4f53\u9009\u62e9\u5b50\uff0c\u4e3a\u4ee5\u540e\u7684\u4ea1\u7f8a\u8865\u7262\u63d0\u4f9b\u4e86\u53ef\u80fd\u3002<\/p>\n<\/div>\n<div class=\"section\" id=\"section-2\">\n<h2>\u6253\u5b57<\/h2>\n<p>\u6709\u4e86\u6570\u636e\u652f\u6491\u540e\uff0c\u7ecf\u8fc7\u673a\u5668\u5b66\u4e60\uff0c\u6211\u4eec\u73b0\u5728\u7528\u7684\u8f93\u5165\u6cd5\u6bd4\u4ee5\u524d\u7684\u8fdb\u6b65\u4e86\u8bb8\u591a\uff0c\u7279\u522b\u662f\u5728\u5e38\u7528\u5b57\u8bcd\u7684\u8f93\u5165\u4e0a\uff0c\u4fbf\u5229\u53c8\u7545\u5feb\u3002\u4f46\u5bf9\u4e8e\u66f4\u591a\u66f4\u5e7f\u7684\u6587\u5b57\u7684\u8986\u76d6\u652f\u6301\uff0c\u8fd8\u662f\u548c\u4ee5\u524d\u4e00\u6837\uff0c\u770b\u4e0d\u5230\u4ec0\u4e48\u5e0c\u671b\u5462\u3002<\/p>\n<p>\u73b0\u6709\u7684\u51e0\u79cd\u5f62\u7801\u3002\u8bbe\u8ba1\u610f\u56fe\u4fbf\u662f\u6587\u5b57\u6839\u636e\u4e00\u5b9a\u89c4\u5219\u62c6\u5206\u6210\u4e00\u4e9b\u7ed3\u6784\u3002\u7136\u540e\u7528\u89c4\u5219\u7684\u7f16\u7801\u63cf\u8ff0\u8fd9\u4e9b\u7ed3\u6784\u548c\u5b83\u4eec\u7684\u7ec4\u5408\u65b9\u5f0f\u3002<\/p>\n<p>\u90a3\u4e48\uff0c\u8bbe\u8ba1\u51fa\u4e00\u79cd\u901a\u7528\u7684\uff0c\u80fd\u5e94\u5bf9\u4e8e\u6240\u6709\u6c49\u5b57\u8f93\u5165\u7684\u8f93\u5165\u6cd5\u7684\u5145\u5206\u5fc5\u8981\u6761\u4ef6\u5c31\u662f\u8bbe\u8ba1\u4e00\u79cd\u901a\u7528\u7684\u6c49\u5b57\u63cf\u8ff0\u8bed\u8a00\uff0c\u5373\u201c\u52a8\u6001\u7ec4\u5b57\u201d\u7684\u901a\u7528\u6027\u5f97\u5230\u8bc1\u660e\u3002<\/p>\n<p>\u6c49\u5b57\u4ece\u4f55\u800c\u6765\u5462\uff1f\u5927\u5bb6\u90fd\u77e5\u9053\u9020\u5b57\u516d\u6cd5\u3002\u7279\u522b\u7684\uff0c\u8c61\u5f62\u5b57\uff0c\u5176\u672c\u8d28\u662f\u5f62\u8c61\u7684\u63cf\u7ed8\uff0c\u800c\u975e\u7ec4\u4ef6\u7684\u7ec4\u5408\u3002\u201c\u52a8\u6001\u7ec4\u5b57\u201d\u7684\u51fa\u53d1\u70b9\u5c31\u548c\u5f88\u5927\u4e00\u90e8\u5206\u6c49\u5b57\u7684\u672c\u8d28\u7ed3\u6784\u4fe1\u606f\u76f8\u8fdd\u3002<\/p>\n<p>\u4e8e\u662f\uff0c\u7ecf\u8fc7\u4e86\u4e24\u5cb8\u4e09\u5730\u6570\u5341\u5e74\u7684\u52aa\u529b\u3002\u63d0\u51fa\u4e86\u5404\u79cd\u65b9\u6848\uff0c\u5982 CDL, HanGlyph, IDS, SCML \u7b49\u7b49\u3002\u7279\u522b\u662f IDS, \u56e0\u4e3a\u662f Unicode \u5185\u7f6e\u7684\u652f\u6301\u3002\u6240\u4ee5\u5927\u5bb6\u57fa\u4e8e\u6b64\u7684\u6295\u5165\u4e5f\u5341\u5206\u79ef\u6781\u3002<\/p>\n<p>\u53ef\u60dc\uff0c\u65e2\u7136\u51fa\u53d1\u70b9\u5c31\u5df2\u7ecf\u76f8\u8fdd\u4e86\u3002\u5927\u5bb6\u90fd\u53d1\u73b0\uff0c\u5e76\u4e0d\u80fd\u7528\u51e0\u4e2a\u57fa\u7840\u7ec4\u4ef6\u5c31\u7ec4\u51fa\u610f\u56fe\u7684\u6c49\u5b57\u3002\u5404\u5730\u5934\u75db\u533b\u5934\uff0c\u811a\u75db\u533b\u811a\uff0c\u63d0\u51fa\u79c1\u6709\u7684\u5404\u79cd\u7ec4\u4ef6\u6765\u521b\u9020\u4e86\u8bb8\u8bb8\u591a\u591a\u4e0d\u76f8\u5bb9\u7684\u65b9\u6848\u3002\u8b6c\u5982\uff0c\u5b83\u4eec\u7684\u96c6\u5408\u4f53 <a class=\"reference external\" href=\"https:\/\/github.com\/kandu\/chise_ids\">CHISE IDS<\/a> \u4f53\u73b0\u7684\u6323\u624e\u548c\u65e0\u5948\u771f\u662f\u4e00\u89c8\u65e0\u4f59\u3002<\/p>\n<\/div>\n<div class=\"section\" id=\"section-3\">\n<h2>\u7f16\u8f91\u8f6f\u4ef6<\/h2>\n<p>\u65e2\u7136\u8fde\u57fa\u672c\u7684\u7f16\u7801\u548c\u8f93\u5165\u90fd\u8fd8\u672a\u89e3\u51b3\uff0c\u8c08\u8fd9\u4e2a\u4f3c\u4e4e\u4e5f\u6ca1\u4ec0\u4e48\u610f\u4e49\u5427\u3002<\/p>\n<\/div>\n<div class=\"section\" id=\"section-4\">\n<h2>\u6570\u636e\u5e93<\/h2>\n<p>\u6587\u732e\u7684\u51c6\u786e\u6536\u5f55\u53ca\u7d22\u5f15\uff0c\u81ea\u7136\u80fd\u5e26\u6765\u5f88\u591a\u4fbf\u5229\u3002\u4e0d\u8fc7\u73b0\u5728\u662f\u6ca1\u4ec0\u4e48\u6307\u671b\u5566\u3002<\/p>\n<\/div>\n","category":[{"@attributes":{"term":"cjkv"}},{"@attributes":{"term":"cjkv"}},{"@attributes":{"term":"unicode"}}]},{"title":"\u55b5\u55b5\uff0c\u51b3\u7b56\u6811\u4e4b\u821e","link":{"@attributes":{"href":"https:\/\/doye.smaji.org\/modal%20editing.html","rel":"alternate"}},"published":"2019-11-11T09:56:00+08:00","updated":"2019-11-12T10:10:00+08:00","author":{"name":"ZAN DoYe"},"id":"tag:doye.smaji.org,2019-11-11:\/modal editing.html","summary":"<p>\u4e0d\u4e45\u524d\uff0c\u6211\u65e0\u610f\u95f4\u770b\u5230\u4e86\u8fc7\u53bb\u7684\u4e00\u4e2a\u529f\u80fd\u8bf7\u6c42: vim edit mode<\/p>\n<p>vi \u7c7b\u7f16\u8f91\u5668\uff0c\u5176\u6700\u5177\u7279\u8272\u7684\uff0c\u4fbf\u662f modal editing. \u6b63\u5982\u5176\u540d\uff0c\u662f\u4e2a\u903b\u8f91\u6d41\u5728\u51b3\u7b56\u6811 \u2026<\/p>","content":"<p>\u4e0d\u4e45\u524d\uff0c\u6211\u65e0\u610f\u95f4\u770b\u5230\u4e86\u8fc7\u53bb\u7684\u4e00\u4e2a\u529f\u80fd\u8bf7\u6c42: vim edit mode<\/p>\n<p>vi \u7c7b\u7f16\u8f91\u5668\uff0c\u5176\u6700\u5177\u7279\u8272\u7684\uff0c\u4fbf\u662f modal editing. \u6b63\u5982\u5176\u540d\uff0c\u662f\u4e2a\u903b\u8f91\u6d41\u5728\u51b3\u7b56\u6811\u4e0a\u6d41\u52a8\uff0c\u53d8\u6362\u7684\u8fc7\u7a0b\u3002<\/p>\n<p>\u5927\u591a\u7f16\u8f91\u5668\uff0c\u6216\u591a\u6216\u5c11\uff0c\u90fd\u4f1a\u5e26\u6709\u4e00\u4e9b modal editing, \u6700\u5e38\u89c1\u7684\uff0c\u4fbf\u662f\u5feb\u6377\u952e\u7ec4\u5408\uff0c\u5982 Ctrl-c, Ctrl-v. \u5f53\u7f16\u8f91\u8005\u6309\u4e0b Ctrl \u540e\uff0c\u5373\u8fdb\u5165\u4e86 Ctrl \u7684\u51b3\u7b56\u5206\u652f\uff0c\u800c\u5728\u8fd9\u4e2a\u5206\u652f\u4e0b\u9762\uff0c\u6709\u8bb8\u591a\u7247\u53f6\u5b50. c \u548c v \u5373\u662f\u8fd9\u7247\u5206\u652f\u4e0b\u7684\u4e24\u7247\u53f6\u5b50\u4e4b\u4e00\u3002\u6b21\u5e38\u89c1\u7684\uff0c\u5feb\u6377\u952e\u5e8f\u5217\u3002\u6bd4\u5982\uff0c\u5728 emacs \u91cc\uff0c\u987a\u5e8f\u5730\u6309 Ctrl-x, Ctrl-c \u5c31\u4f1a\u6267\u884c\u9000\u51fa\u7f16\u8f91\u5668\u7684\u64cd\u4f5c\u3002<\/p>\n<p>vim \u4f5c\u4e3a modal editing \u7684\u4e00\u4e2a\u5178\u8303\uff0c\u5176\u60c5\u6001\u5904\u7406\u5df2\u7ecf\u6e17\u900f\u8fdb\u7f16\u8f91\u8fc7\u7a0b\u7684\u65b9\u65b9\u9762\u9762\u3002\u4e8e\u662f\uff0c\u5b83\u6210\u4e86\u4e00\u7247\u51b3\u7b56\u6811\u68ee\u6797\uff0c\u903b\u8f91\u6d41\u5728\u68ee\u6797\u7684\u6bcf\u9897\u6811\u95f4\u8df3\u52a8\u98de\u821e\u3002\u5f62\u6210\u4e86\u4e00\u7247\u7cbe\u5999\u7edd\u4f26\uff0c\u6d41\u5149\u6ea2\u5f69\u7684\u56fe\u666f\u3002<\/p>\n<div class=\"section\" id=\"section-2\">\n<h2>\u5355\u4e00\u51b3\u7b56\u6811\u7684\u6d41\u52a8\u53d8\u6362<\/h2>\n<div class=\"section\" id=\"normal-mode\">\n<h3>normal mode \u7684\u793a\u4f8b<\/h3>\n<p>\u5728 normal \u6a21\u5f0f\u4e0b\uff0c\u6211\u4eec\u952e\u5165\u6570\u5b57\uff0c\u6bd4\u5982 <tt class=\"docutils literal\">12<\/tt>, \u8fdb\u5165\u51b3\u7b56\u6811\u7684\u4e00\u4e2a\u5206\u652f\uff0c\u5373\u91cd\u590d\u64cd\u4f5c\u8ba1\u6570\u5206\u652f\uff0c\u7136\u540e\u6211\u4eec\u952e\u5165\u5b57\u6bcd <tt class=\"docutils literal\">d<\/tt> (delete)\uff0c\u5219\u5728\u8ba1\u657012\u6b21\u7684\u51b3\u7b56\u4e0a\u8fdb\u5165\u5220\u9664\u5206\u652f\u3002\u7136\u540e\u6211\u4eec\u952e\u5165 <tt class=\"docutils literal\">2w<\/tt> (2 words)\u5373\u5bf9\u8c61\u4e3a\u4e24\u4e2a\u8bcd\u7ec4\u3002\u4e8e\u662f vim \u4f5c\u51fa\u4e86\u6700\u7ec8\u51b3\u7b56\uff0c\u8fde\u7eed\u8fdb\u884c12\u6b21\u64cd\u4f5c\uff0c\u6bcf\u6b21\u5220\u9664\u5f53\u524d\u5149\u6807\u540e\u7684\u8fde\u7eed\u4e24\u4e2a\u8bcd\u7ec4\u3002<\/p>\n<p>\u5982\u679c\u6211\u4eec\u5728 normal \u6a21\u5f0f\u4e0b\uff0c\u952e\u5165 <tt class=\"docutils literal\">12c2w<\/tt> \u548c\u4e4b\u524d\u8bed\u53e5\u7684\u552f\u4e00\u533a\u522b\u662f\u4ece <tt class=\"docutils literal\">d<\/tt> <tt class=\"docutils literal\">delete<\/tt> \u6362\u6210\u4e86 <tt class=\"docutils literal\">c<\/tt> <tt class=\"docutils literal\">change<\/tt> \u4e8e\u662f vim \u5728\u505a\u51fa\u4e86\u548c\u4e4b\u524d\u8bed\u53e5\u540c\u6837\u7684\u64cd\u4f5c\u540e\uff0c\u56e0\u4e3a\u51b3\u51b3\u5b9a\u7684\u64cd\u4f5c\u662f change, \u800c\u975e delete, vim \u9884\u671f\u4f7f\u7528\u8005\u8fd8\u9700\u952e\u5165\u4e00\u4e9b\u65b0\u7684\u6587\u672c\u6765\u66ff\u6362\u65e7\u7684\u3002\u6700\u540e\u6539\u53d8\u6a21\u5f0f\uff0c\u53d8\u4e3a insert mode.<\/p>\n<object data=\"https:\/\/doye.smaji.org\/images\/1.svg\" type=\"image\/svg+xml\">normal mode<\/object>\n<\/div>\n<\/div>\n<div class=\"section\" id=\"section-3\">\n<h2>\u4ece\u6309\u952e\u7ed1\u5b9a\u5f00\u59cb\uff0c\u6765\u77a5\u4e00\u773c\u6a21\u5f0f\u7fa4<\/h2>\n<p>\u4e0a\u9762\u4e00\u6bb5\u8c08\u4e86\u4e86 normal \u6a21\u5f0f\u4e0b\uff0c\u6bd4\u8f83\u5355\u4e00\u7684\u51b3\u7b56\u6811\u8fc7\u7a0b\u3002\u548c\u6267\u884c c \u64cd\u4f5c\u540e\u8fdb\u5165\u4e86 insert \u6a21\u5f0f\u3002\u63a5\u4e0b\u6765\u7684\u8868\u683c\uff0c\u4ece\u6309\u952e\u7ed1\u5b9a\u5f00\u59cb\uff0c\u5f15\u5165\u4e86\u66f4\u591a\u6a21\u5f0f\u7684\u4e00\u5f20\u7b80\u8868\u3002<\/p>\n<pre class=\"literal-block\">\nOverview of which map command works in which mode.  More details below.\n   COMMANDS                    MODES\n:map   :noremap  :unmap     Normal, Visual, Select, Operator-pending\n:nmap  :nnoremap :nunmap    Normal\n:vmap  :vnoremap :vunmap    Visual and Select\n:smap  :snoremap :sunmap    Select\n:xmap  :xnoremap :xunmap    Visual\n:omap  :onoremap :ounmap    Operator-pending\n:map!  :noremap! :unmap!    Insert and Command-line\n:imap  :inoremap :iunmap    Insert\n:lmap  :lnoremap :lunmap    Insert, Command-line, Lang-Arg\n:cmap  :cnoremap :cunmap    Command-line\n:tmap  :tnoremap :tunmap    Terminal-Job\n<\/pre>\n<p>\u5176\u4e2d\u6211\u4eec\u53ef\u4ee5\u770b\u5230<\/p>\n<ul class=\"simple\">\n<li>normal<\/li>\n<li>insert<\/li>\n<li>visual<\/li>\n<li>select<\/li>\n<li>command-line<\/li>\n<li>operator pending<\/li>\n<li>terminal-job<\/li>\n<li>lang-arg<\/li>\n<\/ul>\n<p>\u5217\u8868\u4e2d\u7684\u524d\u51e0\u79cd\u6a21\u5f0f\uff0c\u662f\u4e00\u4e9b\u5bb9\u6613\u88ab\u6211\u4eec\u611f\u77e5\u7684\u5e38\u7528\u6a21\u5f0f\uff0c\u6211\u4eec\u82b1\u8d39\u5927\u591a\u7684\u65f6\u95f4\uff0c\u6700\u7ecf\u5e38\u6027\u5730\u5728\u8fd9\u4e9b\u6a21\u5f0f\u4e0b\u548c\u7f16\u8f91\u5668\u4ea4\u6d41\u3002<\/p>\n<p>\u6bcf\u4e2a\u6a21\u5f0f\uff0c\u90fd\u6709\u5176\u5404\u81ea\u7684\u51b3\u7b56\u6811\u3002\u5176\u4e2d\u5927\u591a\u51b3\u7b56\u7684\u7ec8\u70b9\u662f\u5f53\u524d\u6a21\u5f0f\u4e0b\u7684\u4e00\u4e2a\u64cd\u4f5c\uff1b\u5176\u4e2d\u7684\u53e6\u4e00\u4e9b\u51b3\u7b56\u662f\u8f6c\u53d8\u5f53\u524d\u6a21\u5f0f\u4e3a\u53e6\u4e00\u79cd\u6a21\u5f0f\u3002\u4e8e\u662f\uff0c\u6a21\u5f0f\u4eec\u548c\u5b83\u4eec\u4e4b\u95f4\u7684\u8f6c\u6362\uff0c\u5c31\u5f62\u6210\u4e86\u57fa\u672c\u7684\u6811\u6728\u4e4b\u95f4\u7684\u4ea4\u4e92\uff0c\u5c31\u8fd9\u6837\u4ea4\u7ec7\u6210\u4e86\u4e00\u7247\u5c0f\u6797\u5b50\u3002<\/p>\n<\/div>\n<div class=\"section\" id=\"section-4\">\n<h2>\u56de\u5230\u6309\u952e\u7ed1\u5b9a<\/h2>\n<p>\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u6309\u952e\u7684\u63a5\u53d7\uff0c\u5904\u7406\uff0c\u5e94\u4e0d\u4f1a\u6709\u60c5\u6001\u6811\u7684\u53c2\u4e0e\u3002\u7f16\u8f91\u5668\u53ea\u662f\u5982\u5b9e\u7684\u63a5\u53d7\u4f7f\u7528\u8005\u6309\u952e\uff0c\u7136\u540e\u5982\u5b9e\u8f6c\u53d1\uff0c\u4ea4\u7ed9\u6a21\u5f0f\u7684\u51b3\u7b56\u6811\u6765\u5904\u7406\u800c\u5df2\u3002\u4f46\u6b63\u5982\u524d\u6587\u6240\u8ff0\uff0cvim \u7684\u60c5\u6001\u5904\u7406\u5df2\u7ecf\u6e17\u900f\u8fdb\u7f16\u8f91\u8fc7\u7a0b\u7684\u65b9\u65b9\u9762\u9762\u3002\u6309\u952e\u7684\u5904\u7406\uff0c\u5982\u4e0a\u8ff0\u7684\u6309\u952e\u7ed1\u5b9a\u548c\u6a21\u5f0f\u5217\u8868\u6240\u793a\uff0c\u6beb\u65e0\u7591\u95ee\uff0c\u4e5f\u6210\u4e86\u53e6\u4e00\u7ef4\u5ea6\u7684\uff0c\u524d\u7f6e\u7684\u51b3\u7b56\u6811\u6797\u3002<\/p>\n<p>\u4f7f\u7528\u8005\u5728 command \u6a21\u5f0f\u4e0b\u7684\u6bcf\u6b21 map, \u5c31\u7ed9\u76f8\u5e94\u6a21\u5f0f\u7684\u524d\u7f6e\u8bfb\u53d6\u8fc7\u7a0b\u65b0\u589e\u4e86\u4e00\u6761\u7528\u4e8e\u51b3\u7b56\u4f7f\u7528\u8005\u8f93\u5165\u548c\u8f93\u51fa\u8f6c\u6362\u7684\u51b3\u7b56\u94fe\u3002\u4e8e\u662f\uff0c\u8fd9\u4e9b\u51b3\u7b56\u94fe\u5c31\u5728\u5404\u4e2a\u6a21\u5f0f\u4e0b\u5f62\u6210\u4e86\u4e00\u9897\u9897\u76f8\u5e94\u7684\u51b3\u7b56\u6811\u3002<\/p>\n<div class=\"section\" id=\"section-5\">\n<h3>\u6240\u4ee5\u5462<\/h3>\n<p>\u6a21\u5f0f\u4e4b\u95f4\u53ef\u4ee5\u4e92\u76f8\u8df3\u8f6c\uff0c\u90a3\u4e48\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u5728\u4e00\u6761\u51b3\u7b56\u94fe\u4e2d\u4efb\u610f\u7a7f\u68ad\u5404\u4e2a\u6a21\u5f0f\uff0c\u8fdb\u884c\u5404\u79cd\u64cd\u4f5c\u3002<\/p>\n<p>\u4f8b\u5982\uff0c\u6bcf\u6b21\u5728\u6587\u672c\u7684\u7ed3\u5c3e\uff0c\u6211\u4eec\u90fd\u9700\u8981\u6dfb\u52a0\u65e5\u671f\u4fe1\u606f\uff0c\u5e76\u9644\u4e0a\u7b7e\u540d\u3002\u90a3\u4e48\u6211\u4eec\u5c31\u53ef\u4ee5\u7ed1\u5b9a\u6309\u952e\u5e8f\u5217 <tt class=\"docutils literal\">date<\/tt><\/p>\n<pre class=\"literal-block\">\nmap date :r !date&lt;Enter&gt;4dwoDoYe\n<\/pre>\n<p>\u5148\u8fdb\u5165 command \u6a21\u5f0f\uff0c\u8bfb\u53d6\u6267\u884c\u5916\u90e8\u547d\u4ee4 date \u7684\u7ed3\u679c\u3002\u7136\u540e\u56de\u5230 normal \u6a21\u5f0f\u3002\u5728 normal \u6a21\u5f0f\u4e0b\uff0c\u6267\u884c 4dw \u5220\u6389\u5916\u90e8\u547d\u4ee4 date \u7684\u7ed3\u679c\u6700\u5f00\u5934\u7684\u5e74\u6708\u4fe1\u606f\uff0c\u7136\u540e\u901a\u8fc7\u6309\u952e <tt class=\"docutils literal\">o<\/tt> \u65b0\u5f00\u4e00\u884c\u540e\u8fdb\u5165 insert \u6a21\u5f0f\uff0c\u5728\u6b64\u6a21\u5f0f\u4e0b\u952e\u5165 <tt class=\"docutils literal\">DoYe<\/tt> \u7b7e\u540d\u3002\u4e8e\u662f\uff0c\u6bcf\u4e2a\u6587\u672c\u7684\u7ed3\u5c3e\uff0c\u952e\u5165 <tt class=\"docutils literal\">date<\/tt> \u56db\u4e2a\u6309\u952e\u7684\u8fc7\u7a0b\uff0c\u672c\u8eab\u5373\u662f\u4e00\u4e2a\u51b3\u7b56\u6811\u7684\u6d41\u8f6c\u8fc7\u7a0b\uff0c\u952e\u5165\u5b8c\u6210\u540e\uff0c\u66f4\u662f\u5728\u51b3\u7b56\u6811\u4e4b\u6797\u95f4\u8df3\u8dc3\u7740\u6d41\u52a8\uff0c\u5b8c\u6210\u5404\u79cd\u5de5\u4f5c\u3002\u671f\u95f4\u751a\u81f3\u8fd8\u5e26\u6709\u5916\u90e8\u5de5\u5177\u7684\u4ea4\u4e92\u3002<\/p>\n<\/div>\n<div class=\"section\" id=\"section-6\">\n<h3>\u51b3\u7b56\u94fe\u9012\u5f52<\/h3>\n<p>\u56e0\u4e3a vim \u4e0d\u5bf9\u6309\u952e\u7ed1\u5b9a\u7684\u521b\u9020\u6709\u4efb\u4f55\u9650\u5236\u3002\u81ea\u7136\uff0c\u9700\u8981\u652f\u6301\u51b3\u7b56\u94fe\u7684\u4ea4\u53e0\u72b6\u6001\uff0c\u6bd4\u5982 ab \u94fe\u548c abc \u94fe\u7684\u5171\u5b58\u3002\u66f4\u8fdb\u4e00\u6b65\u7684\uff0c\u51b3\u7b56\u94fe\u7684\u81ea\u9012\u5f52\u548c\u4e92\u76f8\u9012\u5f52\u3002\u5982\u524d\u6587\u6240\u8ff0\uff0c\u7ed1\u5b9a\u6309\u952e\u53ef\u4ee5\u5728\u4efb\u610f\u6a21\u5f0f\u4e2d\u7a7f\u68ad\uff0c\u5728\u51b3\u7b56\u94fe\u7684\u68ee\u6797\u4e2d\u8df3\u8f6c\u53d8\u6362\u3002\u90a3\u4e48\uff0c\u6700\u540e\uff0c\u6211\u4eec\u4e5f\u80fd\u6784\u9020\u4e00\u4e9b\u5728\u8de8\u8d8a\u6811\u6728\u7684\uff0c\u5728\u68ee\u6797\u4e2d\u4efb\u610f\u50b2\u6e38\uff0c\u9012\u5f52\u7684\u7cbe\u7075\u4eec\u3002\n\u6bd4\u5982<\/p>\n<pre class=\"literal-block\">\nmap yin oyin&lt;Esc&gt;yang\nmap yang oyang&lt;Esc&gt;yin\n<\/pre>\n<p>\u4e8e\u662f\uff0c\u82e5\u6211\u4eec\u5728 normal \u6a21\u5f0f\u4e0b\u952e\u5165 <tt class=\"docutils literal\">yin<\/tt> \u6216\u8005 <tt class=\"docutils literal\">yang<\/tt>, vim \u5c31\u5f00\u59cb\u65e0\u9650\u5730\uff0c\u5728\u6587\u672c\u4e2d\u6dfb\u52a0 &quot;yin&quot; &quot;yang&quot; \u4e24\u4e2a\u5355\u8bcd\uff0c\u6c38\u4e0d\u505c\u606f\u3002\u5728\u8fd9\u4e2a\u6c38\u4e0d\u505c\u606f\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6309\u952e\u7684\u51b3\u7b56\u89e3\u6790\uff0c\u5230\u6dfb\u52a0 &quot;yin&quot; &quot;yang&quot; \u7684\u8fc7\u7a0b\u4e2d\u7684\u6a21\u5f0f\u8df3\u8f6c\u548c\u51b3\u7b56\u53d8\u6362\u3002\u5c31\u8fd9\u4e48\u76f8\u4e92\u4ea4\u7ec7\uff0c\u652f\u6491\uff0c\u9012\u5f52\u5730......<\/p>\n<\/div>\n<\/div>\n<div class=\"section\" id=\"mew-mew\">\n<h2>mew mew \u55b5\u55b5<\/h2>\n<p>\u5f00\u5934\u63d0\u5230\uff0c\u4e00\u5207\u8d77\u6e90\u4e8e\u4e00\u4e2a\u529f\u80fd\u8bf7\u6c42\u3002\u601d\u8003\u8fd9\u4e2a\u529f\u80fd\u8bf7\u6c42\u7684\u8fc7\u7a0b\u4e2d\u3002\u53d1\u73b0 vim \u7684\u7cbe\u5999\u80cc\u540e\u6709\u4e00\u4e2a\u66f4\u901a\u7528\u7684\u6a21\u578b\u3002vim \u662f\u8fd9\u4e2a\u6a21\u578b\u7684\u4e00\u4e2a\u7279\u5316\uff0c\u7531\u9644\u52a0\u7684\u7279\u6027\u548c\u9650\u5236\u5851\u9020\u4e86 vim \u7684\u6837\u5b50\u3002\u5176\u80cc\u540e\u7684\u6a21\u578b\uff0c\u82e5\u53ef\u5355\u72ec\u63d0\u53d6\u6784\u5efa\u3002\u90a3\u6211\u4eec\u5c31\u53ef\u4ee5\u6784\u9020\u79cd\u79cd\u4e0d\u540c\u7684 modal editing \u7f16\u8f91\u5f15\u64ce\u3002<\/p>\n<p>\u63d0\u53d6\u7684\u7ed3\u679c\uff0c\u6682\u547d\u540d\u4e3a Modal Editing Witch, mew~ \u5b83\u5e76\u975e\u7b80\u5355\u5730\u53bb\u9664\u6389\u4e00\u4e9b\u7279\u5316\u529f\u80fd\uff0c\u800c\u662f\u628a\u7279\u6027\u548c\u9650\u5236\u7684\u65b9\u6cd5\u7ed3\u6784\u5316\u5730\u89c4\u8303\u4e86\u63a5\u53e3\uff0c\u4ea4\u7ed9\u4e86\u4f7f\u7528\u8005\u3002<\/p>\n<p>\u7279\u5316\u548c\u9650\u5236\u6709\u54ea\u4e9b\u7c7b\u522b\u5462\uff1f\u5e76\u53d1\u673a\u5236\uff0c\u952e\u76d8\u5e03\u5c40\uff0c\u7f16\u8f91\u6a21\u5f0f\u3002\u8fd9\u4e9b\uff0c\u53c8\u662f\u53e6\u5916\u7684\u6545\u4e8b\u4e86\u3002<\/p>\n<\/div>\n","category":[{"@attributes":{"term":"tec"}},{"@attributes":{"term":"modal editing"}},{"@attributes":{"term":"vim"}},{"@attributes":{"term":"editor"}}]},{"title":"\u8543\u528d\u4e4b\u97f3","link":{"@attributes":{"href":"https:\/\/doye.smaji.org\/%E8%95%83%E5%8A%8D%E4%B9%8B%E9%9F%B3.html","rel":"alternate"}},"published":"2016-06-06T13:09:00+08:00","updated":"2016-06-06T13:09:00+08:00","author":{"name":"ZAN DoYe"},"id":"tag:doye.smaji.org,2016-06-06:\/\u8543\u528d\u4e4b\u97f3.html","summary":"<p>\u7ffb\u4e86\u7ffb\u738b\u8def\u524d\u8f29\u7684\u5c08\u6b04\uff0c\u8b80\u5230 <a class=\"reference external\" href=\"https:\/\/zhuanlan.zhihu.com\/p\/19640180\">\u674e\u592a\u767d\u5929\u624d\u5728\u54ea\u91cc\uff1f<\/a> \u4e00\u6587\u3002\u53ef\u5de7\uff0c\u738b\u8def\u524d\u8f29\u767c\u8868\u6b64\u6587\u524d\u4e00\u661f\u671f\uff0c13\u5e7412\u6708\u7684\u300a\u6587\u53f2\u77e5\u8b58\u300b\u4e0a\u6709\u5f35\u4e00\u5357\u524d\u8f29 <a class=\"reference external\" href=\"http:\/\/www.literature.org.cn\/Article.aspx?id=75376\">\u7565\u8bba \u2026<\/a><\/p>","content":"<p>\u7ffb\u4e86\u7ffb\u738b\u8def\u524d\u8f29\u7684\u5c08\u6b04\uff0c\u8b80\u5230 <a class=\"reference external\" href=\"https:\/\/zhuanlan.zhihu.com\/p\/19640180\">\u674e\u592a\u767d\u5929\u624d\u5728\u54ea\u91cc\uff1f<\/a> \u4e00\u6587\u3002\u53ef\u5de7\uff0c\u738b\u8def\u524d\u8f29\u767c\u8868\u6b64\u6587\u524d\u4e00\u661f\u671f\uff0c13\u5e7412\u6708\u7684\u300a\u6587\u53f2\u77e5\u8b58\u300b\u4e0a\u6709\u5f35\u4e00\u5357\u524d\u8f29 <a class=\"reference external\" href=\"http:\/\/www.literature.org.cn\/Article.aspx?id=75376\">\u7565\u8bba\u674e\u767d\u8bd7\u6b4c\u7684\u58f0\u60c5\u4e4b\u7f8e<\/a> \u3002\u5169\u6587\u76f8\u5f97\u76ca\u5f70\u3002<\/p>\n<p>\u5169\u6587\u8ac7\u5230\u674e\u767d\u97f3\u7bc0\u904b\u7528\u7684\u9ad8\u5999\u3002\u8b93\u6211\u60f3\u8d77\u675c\u752b\u7684\u4e00\u9996\u8d77\u624b\u9023\u4ec4\u7684\u4e94\u5f8b\u3002<\/p>\n<blockquote>\n<p><strong>\u8543\u528d<\/strong><\/p>\n<div class=\"line-block\">\n<div class=\"line\">\u81f4\u6b64\u81ea\u50fb\u9060\uff0c\u53c8\u975e\u73e0\u7389\u88dd\u3002<\/div>\n<div class=\"line\">\u5982\u4f55\u6709\u7ad2\u602a\uff0c\u6bcf\u591c\u5410\u5149\u8292\u3002<\/div>\n<div class=\"line\">\u864e\u6c23\u5fc5\u9a30\u8e14\uff0c\u9f8d\u8eab\u5be7\u4e45\u85cf\u3002<\/div>\n<div class=\"line\">\u98a8\u5875\u82e6\u672a\u606f\uff0c\u6301\u6c5d\u5949\u660e\u738b\u3002<\/div>\n<\/div>\n<\/blockquote>\n<div class=\"line-block\">\n<div class=\"line\">\u6839\u64da\u300a\u5ee3\u97fb\u300b\u7d66\u5b57\u6a19\u8a3b\u4e0b\u97f3\u97fb\u3002\u5c0d\u65bc\u591a\u97f3\u5b57\uff0c\u6dfb\u8a3b\u89e3\u4ee5\u65b9\u4fbf\u9078\u64c7\u3002<\/div>\n<div class=\"line\">\u5713\u5708\u7232\u5e73\u8072\uff0c\u4e09\u89d2\u5f62\u7232\u4ec4\u8072\uff0c\u5be6\u5fc3\u4e09\u89d2\u7232\u4ec4\u8072\u4e2d\u7684\u5165\u8072\u3002<\/div>\n<\/div>\n<blockquote>\n<ruby>\u81f4\n<rt>(\u965f\u5229\u5207,4.06\u81f3\u97fb,\u53bb\u58f0)<\/rt><\/ruby>\n<ruby>\u6b64\n<rt>(\u96cc\u6c0f\u5207,3.04\u7d19\u97fb,\u4e0a\u58f0)<\/rt><\/ruby>\n<ruby>\u81ea\n<rt>(\u75be\u4e8c\u5207,4.06\u81f3\u97fb,\u53bb\u58f0)<\/rt><\/ruby>\n<ruby>\u50fb\n<rt>(\u82b3\u8f9f\u5207,5.22\u6614\u97fb,\u5165\u58f0,\u8aa4\u4e5f\u90aa\u50fb\u4e5f\u82b3\u8f9f\u5207\u56db|\u666e\u64ca\u5207,5.23\u932b\u97fb,\u5165\u58f0,\u90aa\u50fb)<\/rt><\/ruby>\n<ruby>\u9060\n<rt>\n(\u96f2\u962e\u5207,3.20\u962e\u97fb,\u4e0a\u58f0,\u9059\u903a\u4e5f\u96f2\u962e\u5207\u4e8c|\u4e8e\u9858\u5207,4.25\u9858\u97fb,\u53bb\u58f0,\u96e2\u4e5f\u4e8e\u9858\u5207\u4e00)<\/rt><\/ruby>\n<ruby>\uff0c\n<rt><\/rt><\/ruby>\n<ruby>\u53c8\n<rt>(\u4e8e\u6551\u5207,4.49\u5ba5\u97fb,\u53bb\u58f0)<\/rt><\/ruby>\n<ruby>\u975e\n<rt>(\u752b\u5fae\u5207,1.08\u5fae\u97fb,\u5e73\u58f0)<\/rt><\/ruby>\n<ruby>\u73e0\n<rt>(\u7ae0\u4ff1\u5207,1.10\u865e\u97fb,\u5e73\u58f0)<\/rt><\/ruby>\n<ruby>\u7389\n<rt>(\u9b5a\u6b32\u5207,5.03\u71ed\u97fb,\u5165\u58f0)<\/rt><\/ruby>\n<ruby>\u88dd\n<rt>(\u5074\u7f8a\u5207,2.10\u967d\u97fb,\u5e73\u58f0,\u88dd\u675f\u53c8\u5074\u4eae\u5207|\u5074\u4eae\u5207,4.41\u6f3e\u97fb,\u53bb\u58f0,\u884c\u88dd\u53c8\u5074\u826f\u5207)<\/rt><\/ruby>\n<ruby>\u3002\n<rt><\/rt><\/ruby>\n<br \/>\n<ruby>\u5982\n<rt>\n(\u4eba\u8af8\u5207,1.09\u9b5a\u97fb,\u5e73\u58f0,\u800c\u4e5f\u5747\u4e5f\u4f3c\u4e5f\u8b00\u4e5f\u5f80\u4e5f\u82e5\u4e5f\u53c8\u59d3\u6649\u4e2d\u7d93\u90e8\u9b4f\u6709\u9673\u90e1\u4e1e\u99ae\u7fca\u5982\u6df3\u6ce8\u6f22\u66f8\u53c8\u865c\u59d3\u5f8c\u9b4f\u66f8\u5982\u7f85\u6c0f\u5f8c\u6539\u7232\u5982\u6c0f\u4eba\u8af8\u5207\u516b|\u4eba\u6055\u5207,4.09\u5fa1\u97fb,\u53bb\u58f0,\u53c8\u5c12\u8af8\u5207)<\/rt><\/ruby>\n<ruby>\u4f55\n<rt>\n(\u80e1\u6b4c\u5207,2.07\u6b4c\u97fb,\u5e73\u58f0,\u8f9d\u4e5f\u2246\u8aaa\u6587\u510b\u4e5f\u53c8\u59d3\u51fa\u81ea\u5468\u6210\u738b\u6bcd\u5f1f\u5510\u53d4\u865e\u5f8c\u5c01\u65bc\u97d3\u97d3\u6ec5\u5b50\u5b6b\u5206\u6563\u6c5f\u6dee\u9592\u97f3\u4ee5\u97d3\u7232\u4f55\u5b57\u96a8\u97f3\u8b8a\u9042\u7232\u4f55\u6c0f\u51fa\u5eec\u6c5f\u6771\u6d77\u9673\u90e1\u4e09\u671b\u80e1\u6b4c\u5207\u4e03|\u80e1\u53ef\u5207,3.33\u54ff\u97fb,\u4e0a\u58f0,\u4e0a\u540c)<\/rt><\/ruby>\n<ruby>\u6709\n<rt>(\u4e91\u4e45\u5207,3.44\u6709\u97fb,\u4e0a\u58f0)<\/rt><\/ruby>\n<ruby>\u7ad2\n<rt>\n(\u6e20\u7f88\u5207,1.05\u652f\u97fb,\u5e73\u58f0,\u7570\u4e5f\u2246\u8aaa\u6587\u4f5c\u5947\u53c8\u865c\u8907\u59d3\u5f8c\u9b4f\u66f8\u5947\u65a4\u6c0f\u5f8c\u6539\u7232\u5947\u6c0f\u6e20\u7f88\u5207\u53c8\u5c45\u5b9c\u5207\u5341|\u5c45\u5b9c\u5207,1.05\u652f\u97fb,\u5e73\u58f0,\u4e0d\u5076\u4e5f\u53c8\u8667\u4e5f\u53c8\u6e20\u7f88\u5207)<\/rt><\/ruby>\n<ruby>\u602a\n<rt>(\u53e4\u58de\u5207,4.16\u602a\u97fb,\u53bb\u58f0)<\/rt><\/ruby>\n<ruby>\uff0c\n<rt><\/rt><\/ruby>\n<ruby>\u6bcf\n<rt>\n(\u6b66\u7f6a\u5207,3.14\u8cc4\u97fb,\u4e0a\u58f0,\u96d6\u4e5f\u8f9d\u4e5f\u983b\u4e5f\u8aaa\u6587\u4f5c\ud847\udd0b\u8278\u76db\u4e0a\u51fa\u4e5f|\u83ab\u4f69\u5207,4.18\u968a\u97fb,\u53bb\u58f0,\u6578\u4e5f\u53c8\u6b66\u7f6a\u5207)<\/rt><\/ruby>\n<ruby>\u591c\n<rt>(\u7f8a\u8b1d\u5207,4.40\u79a1\u97fb,\u53bb\u58f0)<\/rt><\/ruby>\n<ruby>\u5410\n<rt>\n(\u4ed6\u9b6f\u5207,3.10\u59e5\u97fb,\u4e0a\u58f0,\u53e3\u5410\u4ea6\u865c\u8907\u59d3\u4e09\u6c0f\u5f8c\u9b4f\u66f8\u6709\u5410\u595a\u5410\u96e3\u5410\u842c\u6c0f\u53c8\u865c\u4e09\u5b57\u59d3[\u4e09\/\u4e8c]\u6c0f\u6155\u5bb9\u5ec6\u5eb6\u9577\u5144\u5410\u8c37\u6e3e\u5f8c\u5c07\u6240\u90e8\u5c45\u897f\u96f6\u4ee5\u897f\u7518\u677e\u4e4b\u5357\u6975\u4e4e\u767d\u862d\u6578\u5343\u91cc\u5176\u5b6b\u8449\u5ef6\u66f0\u79ae\u4e91\u5b6b\u5b50\u5f97\u4ee5\u738b\u7236\u5b57\u7232\u6c0f\u9042\u4ee5\u5410\u8c37\u6e3e\u7232\u6c0f\u53c8\u5f8c\u9b4f\u66f8\u5410\u4f0f\u76e7\u6c0f|\u6e6f\u6545\u5207,4.11\u66ae\u97fb,\u53bb\u58f0,\u6b50\u4e5f\u53c8\u6e6f\u53e4\u5207)<\/rt><\/ruby>\n<ruby>\u5149\n<rt>\n(\u53e4\u9ec3\u5207,2.11\u5510\u97fb,\u5e73\u58f0,\u660e\u4e5f\u4ea6\u5dde\u540d\u6f22\u897f\u967d\u7e23\u5730\u5c6c\u6c5f\u590f\u90e1\u6881\u7f6e\u5149\u5dde\u56e0\u6d6e\u5149\u5c71\u7232\u540d\u53c8\u59d3\u7530\u5149\u4e4b\u5f8c\u79e6\u672b\u5b50\u5b6b\u907f\u5730\u4ee5\u5149\u7232\u6c0f\u6649\u6709\u6a02\u5b89\u5149\u9038\u53e4\u9ec3\u5207\u5341\u56db|\u53e4\u66e0\u5207,4.42\u5b95\u97fb,\u53bb\u58f0,\u4e0a\u8272\u53c8\u53e4\u9ec3\u5207)<\/rt><\/ruby>\n<ruby>\u8292\n<rt>\n(\u6b66\u65b9\u5207,2.10\u967d\u97fb,\u5e73\u58f0,\u8349\u7aef\u4e5f|\u83ab\u90ce\u5207,2.11\u5510\u97fb,\u5e73\u58f0,\u8349\u7aef\u4ea6\u59d3\u53f2\u8a18\u6709\u9b4f\u76f8\u8292\u536f\u53c8\u97f3\u4ea1)<\/rt><\/ruby>\n<ruby>\u3002\n<rt><\/rt><\/ruby>\n<br \/>\n<ruby>\u864e\n<rt>(\u547c\u53e4\u5207,3.10\u59e5\u97fb,\u4e0a\u58f0)<\/rt><\/ruby>\n<ruby>\u6c23\n<rt>\n(\u53bb\u65e3\u5207,4.08\u672a\u97fb,\u53bb\u58f0,\u6c23\u606f\u4e5f\u53bb\u65e3\u5207\u2246\u8aaa\u6587\u672c\u97f3\u6b37\u4e94|\u8a31\u65e3\u5207,4.08\u672a\u97fb,\u53bb\u58f0,\u2246\u8aaa\u6587\u66f0\u994b\u5ba2\u82bb\u7c73\u6625\u79cb\u50b3\u66f0\u9f4a\u4eba\u4f86\u6c23\u8af8\u4faf\u993c)<\/rt><\/ruby>\n<ruby>\u5fc5\n<rt>(\u5351\u5409\u5207,5.05\u8cea\u97fb,\u5165\u58f0)<\/rt><\/ruby>\n<ruby>\u9a30\n<rt>(\u5f92\u767b\u5207,2.17\u767b\u97fb,\u5e73\u58f0)<\/rt><\/ruby>\n<ruby>\u8e14\n<rt>(\u4e11\u654e\u5207,4.36\u6548\u97fb,\u53bb\u58f0,\u7328\u8df3|\u6555\u89d2\u5207,5.04\u89ba\u97fb,\u5165\u58f0,\u8ddb\u4e5f)<\/rt><\/ruby>\n<ruby>\uff0c\n<rt><\/rt><\/ruby>\n<ruby>\u9f8d\n<rt>(\u529b\u937e\u5207,1.03\u937e\u97fb,\u5e73\u58f0)<\/rt><\/ruby>\n<ruby>\u8eab\n<rt>(\u5931\u4eba\u5207,1.17\u771e\u97fb,\u5e73\u58f0)<\/rt><\/ruby>\n<ruby>\u5be7\n<rt>(\u5974\u4e01\u5207,2.15\u9752\u97fb,\u5e73\u58f0)<\/rt><\/ruby>\n<ruby>\u4e45\n<rt>(\u8209\u6709\u5207,3.44\u6709\u97fb,\u4e0a\u58f0)<\/rt><\/ruby>\n<ruby>\u85cf\n<rt>\n(\u6628\u90ce\u5207,2.11\u5510\u97fb,\u5e73\u58f0,\u96b1\u4e5f\u533f\u4e5f\u6628\u90ce\u5207\u53c8\u5f82\u6d6a\u5207\u4e00|\u5f82\u6d6a\u5207,4.42\u5b95\u97fb,\u53bb\u58f0,\u901a\u4fd7\u6587\u66f0\u5eab\u85cf\u66f0\u5e11\u5f82\u6d6a\u5207\u53c8\u5f82\u90ce\u5207\u4e09)<\/rt><\/ruby>\n<ruby>\u3002\n<rt><\/rt><\/ruby>\n<br \/>\n<ruby>\u98a8\n<rt>\n(\u65b9\u620e\u5207,1.01\u6771\u97fb,\u5e73\u58f0,\u654e\u4e5f\u4f5a\u4e5f\u544a\u4e5f\u8072\u4e5f\u6cb3\u5716\u66f0\u98a8\u8005\u5929\u5730\u4e4b\u4f7f\u5143\u547d\u5305\u66f0\u9682\u967d\u6012\u800c\u7232\u98a8\u65b9\u620e\u5207\u4e03|\u65b9\u9cf3\u5207,4.01\u9001\u97fb,\u53bb\u58f0,\u4e0a\u540c\u898b\u8a69)<\/rt><\/ruby>\n<ruby>\u5875\n<rt>(\u76f4\u73cd\u5207,1.17\u771e\u97fb,\u5e73\u58f0)<\/rt><\/ruby>\n<ruby>\u82e6\n<rt>\n(\u5eb7\u675c\u5207,3.10\u59e5\u97fb,\u4e0a\u58f0,\u9ea4\u4e5f\u52e4\u4e5f\u60a3\u4e5f\u8aaa\u6587\u66f0\u5927\u82e6\u82d3\u4e5f\u5eb7\u675c\u5207\u4e8c|\u82e6\u6545\u5207,4.11\u66ae\u97fb,\u53bb\u58f0,\u56f0\u4e5f[\u4eca\u4e4b\u82e6\u8f9b\/\u4eca\u4eba\u82e6\u8eca]\u662f)<\/rt><\/ruby>\n<ruby>\u672a\n<rt>(\u7121\u6cb8\u5207,4.08\u672a\u97fb,\u53bb\u58f0)<\/rt><\/ruby>\n<ruby>\u606f\n<rt>(\u76f8\u5373\u5207,5.24\u8077\u97fb,\u5165\u58f0)<\/rt><\/ruby>\n<ruby>\uff0c\n<rt><\/rt><\/ruby>\n<ruby>\u6301\n<rt>(\u76f4\u4e4b\u5207,1.07\u4e4b\u97fb,\u5e73\u58f0)<\/rt><\/ruby>\n<ruby>\u6c5d\n<rt>(\u4eba\u6e1a\u5207,3.08\u8a9e\u97fb,\u4e0a\u58f0)<\/rt><\/ruby>\n<ruby>\u5949\n<rt>(\u6276\u96b4\u5207,3.02\u816b\u97fb,\u4e0a\u58f0)<\/rt><\/ruby>\n<ruby>\u660e\n<rt>(\u6b66\u5175\u5207,2.12\u5e9a\u97fb,\u5e73\u58f0)<\/rt><\/ruby>\n<ruby>\u738b\n<rt>\n(\u96e8\u65b9\u5207,2.10\u967d\u97fb,\u5e73\u58f0,\u5927\u4e5f\u541b\u4e5f\u5b57\u6797\u4e91\u4e09\u8005\u5929\u5730\u4eba\u4e00\u8cab\u4e09\u7232\u738b\u5929\u4e0b\u6240\u6cd5\u53c8\u59d3\u51fa\u592a\u539f\u7405\u90aa\u5468\u9748\u738b\u592a\u5b50\u6649\u4e4b\u5f8c\u5317\u6d77\u9673\u7559\u9f4a\u738b\u7530\u548c\u4e4b\u5f8c\u6771\u6d77\u51fa\u81ea\u59eb\u59d3\u9ad9\u5e73\u4eac\u5146\u9b4f\u4fe1\u9675\u541b\u4e4b\u5f8c\u5929\u6c34\u6771\u5e73\u65b0\u8521\u65b0\u91ce\u5c71\u967d\u4e2d\u5c71\u7ae0\u6b66\u6771\u840a\u6cb3\u6771\u8005\u6bb7\u738b\u5b50\u6bd4\u5343\u7232\u7d02\u6240\u5bb3\u5b50\u5b6b\u4ee5\u738b\u8005\u4e4b\u5f8c\u53f7\u66f0\u738b\u6c0f\u91d1\u57ce\u5ee3\u6f22\u9577\u6c99\u5802\u9091\u6cb3\u5357\u5171\u4e8c\u5341\u4e00\u671b\u53c8\u6f22\u8907\u59d3\u4e94\u6c0f\u5de6\u50b3\u6649\u6709\u6a02\u738b\u9b92\u5c0f\u738b\u6843\u7532\u8cc8\u57f7\u82f1\u8ce2\u50b3\u4e91\u6771\u839e\u6709\u4e94\u738b\u6c0f\u53f2\u8a18\u4e91\u51fa\u9f4a\u5a01\u738b\u81f3\u5efa\u738b\u4e94\u738b\u4e4b\u5f8c\u98a8\u4fd7\u901a\u4e91\u6f22\u6709\u4e2d\u90ce\u5a01\u738b\u5f3c\u51fa\u81ea\u695a\u5a01\u738b\u5f8c\u6f22\u6709\u65b0\u8c50\u4ee4\u738b\u53f2\u97f3\u96e8\u65b9\u5207\u53c8\u96e8\u8a91\u5207\u56db|\u4e8e\u653e\u5207,4.41\u6f3e\u97fb,\u53bb\u58f0,\u9738\u738b\u53c8\u76db\u4e5f\u53c8\u4e8e\u65b9\u5207)<\/rt><\/ruby>\n<ruby>\u3002\n<rt><\/rt><\/ruby>\n<br \/>\n<br \/>\n<ruby>\u81f4\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\u6b64\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\u81ea\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\u50fb\n<rt>(\u25bc)<\/rt><\/ruby>\n<ruby>\u9060\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\uff0c\n<rt><\/rt><\/ruby>\n<ruby>\u53c8\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\u975e\n<rt>(\u25cb)<\/rt><\/ruby>\n<ruby>\u73e0\n<rt>(\u25cb)<\/rt><\/ruby>\n<ruby>\u7389\n<rt>(\u25bc)<\/rt><\/ruby>\n<ruby>\u88dd\n<rt>(\u25bd|\u25cb)<\/rt><\/ruby>\n<ruby>\u3002\n<rt><\/rt><\/ruby>\n<br \/>\n<ruby>\u5982\n<rt>(\u25bd|\u25cb)<\/rt><\/ruby>\n<ruby>\u4f55\n<rt>(\u25bd|\u25cb)<\/rt><\/ruby>\n<ruby>\u6709\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\u7ad2\n<rt>(\u25cb)<\/rt><\/ruby>\n<ruby>\u602a\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\uff0c\n<rt><\/rt><\/ruby>\n<ruby>\u6bcf\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\u591c\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\u5410\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\u5149\n<rt>(\u25bd|\u25cb)<\/rt><\/ruby>\n<ruby>\u8292\n<rt>(\u25cb)<\/rt><\/ruby>\n<ruby>\u3002\n<rt><\/rt><\/ruby>\n<br \/>\n<ruby>\u864e\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\u6c23\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\u5fc5\n<rt>(\u25bc)<\/rt><\/ruby>\n<ruby>\u9a30\n<rt>(\u25cb)<\/rt><\/ruby>\n<ruby>\u8e14\n<rt>(\u25bc|\u25bd)<\/rt><\/ruby>\n<ruby>\uff0c\n<rt><\/rt><\/ruby>\n<ruby>\u9f8d\n<rt>(\u25cb)<\/rt><\/ruby>\n<ruby>\u8eab\n<rt>(\u25cb)<\/rt><\/ruby>\n<ruby>\u5be7\n<rt>(\u25cb)<\/rt><\/ruby>\n<ruby>\u4e45\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\u85cf\n<rt>(\u25bd|\u25cb)<\/rt><\/ruby>\n<ruby>\u3002\n<rt><\/rt><\/ruby>\n<br \/>\n<ruby>\u98a8\n<rt>(\u25bd|\u25cb)<\/rt><\/ruby>\n<ruby>\u5875\n<rt>(\u25cb)<\/rt><\/ruby>\n<ruby>\u82e6\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\u672a\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\u606f\n<rt>(\u25bc)<\/rt><\/ruby>\n<ruby>\uff0c\n<rt><\/rt><\/ruby>\n<ruby>\u6301\n<rt>(\u25cb)<\/rt><\/ruby>\n<ruby>\u6c5d\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\u5949\n<rt>(\u25bd)<\/rt><\/ruby>\n<ruby>\u660e\n<rt>(\u25cb)<\/rt><\/ruby>\n<ruby>\u738b\n<rt>(\u25bd|\u25cb)<\/rt><\/ruby>\n<ruby>\u3002\n<rt><\/rt><\/ruby><\/blockquote>\n<p>\u5b9a\u4e0b\u4f86\u7232<\/p>\n<div class=\"line-block\">\n<div class=\"line\">\u4ec4\u4ec4\u4ec4\u4ec4\u4ec4 \u4ec4\u5e73\u5e73\u4ec4\u5e73<\/div>\n<div class=\"line\">\u5e73\u5e73\u4ec4\u5e73\u4ec4 \u4ec4\u4ec4\u4ec4\u5e73\u5e73<\/div>\n<div class=\"line\">\u4ec4\u4ec4\u4ec4\u5e73\u4ec4 \u5e73\u5e73\u5e73\u4ec4\u5e73<\/div>\n<div class=\"line\">\u5e73\u5e73\u4ec4\u4ec4\u4ec4 \u5e73\u4ec4\u4ec4\u5e73\u5e73<\/div>\n<div class=\"line\"><br \/><\/div>\n<\/div>\n<p>\u6574\u9ad4\u4e00\u770b\u7684\u8a71\uff0c\u6b64\u4e94\u5f8b\u7232\u9996\u53e5\u4ec4\u8d77\u4ec4\u6536\u5f0f\u3002<\/p>\n<p>\u5e38\u683c\u7684\u4ec4\u8d77\u4ec4\u6536\u5f0f\u7232<\/p>\n<div class=\"line-block\">\n<div class=\"line\">\u4ec4\u4ec4\u5e73\u5e73\u4ec4 \u5e73\u5e73\u4ec4\u4ec4\u5e73<\/div>\n<div class=\"line\">\u5e73\u5e73\u5e73\u4ec4\u4ec4 \u4ec4\u4ec4\u4ec4\u5e73\u5e73<\/div>\n<div class=\"line\">\u4ec4\u4ec4\u5e73\u5e73\u4ec4 \u5e73\u5e73\u4ec4\u4ec4\u5e73<\/div>\n<div class=\"line\">\u5e73\u5e73\u5e73\u4ec4\u4ec4 \u4ec4\u4ec4\u4ec4\u5e73\u5e73<\/div>\n<div class=\"line\"><br \/><\/div>\n<\/div>\n<div class=\"line-block\">\n<div class=\"line\">\u9996\u806f\u51fa\u53e5\u4e94\u9023\u4ec4\uff0c\u7531\u4ec4\u8d77\u4ec4\u6536\u53e5\u8b8a\u5316\u800c\u4f86\u3002\u7b2c\u4e09\u5b57\u5b9c\u5e73\u800c\u4ec4\uff0c\u5c0f\u62d7\u3002\u7b2c\u56db\u5b57\u5b9c\u5e73\u800c\u4ec4\uff0c\u5927\u62d7\u3002\u5c0d\u53e5\u7232\u4ec4\u5e73\u8173\uff0c\u7b2c\u4e00\u5b57\u5b9c\u5e73\u800c\u4ec4\uff0c\u72af\u5b64\u5e73\u3002\u6b64\u5c0d\u53e5\u7b2c\u4e09\u5b57\u7531\u4ec4\u8b8a\u5e73\uff0c\u6551\u4e86\u5927\u5c0f\u5773\u4e26\u5b64\u5e73\u3002<\/div>\n<div class=\"line\">\u981c\u806f\u51fa\u53e5\u7531\u4ec4\u4ec4\u8173\u4e09\u56db\u5169\u5b57\u5e73\u4ec4\u5c0d\u8abf\u800c\u4f86\u3002\u662f\u51fa\u73fe\u983b\u7e41\u7684\u8b8a\u683c\u3002<\/div>\n<div class=\"line\">\u9838\u806f\u51fa\u53e5\u7b2c\u4e09\u5b57\u5b9c\u5e73\u800c\u4ec4\uff0c\u5c0d\u53e5\u9032\u884c\u4e86\u5c0f\u62d7\u6551\u3002<\/div>\n<div class=\"line\">\u5c3e\u806f\u51fa\u53e5\u7b2c\u4e09\u5b57\u5b9c\u5e73\u800c\u4ec4\uff0c\u6b64\u8b8a\u683c\u5341\u5206\u5e38\u898b\u3002<\/div>\n<div class=\"line\"><br \/><\/div>\n<\/div>\n<div class=\"line-block\">\n<div class=\"line\">\u201c\u88dd\u201d\u201c\u832b\u201d\u201c\u738b\u201d\u4e09\u5b57\u62bc\u201c\u967d\u201d\u97fb\u3002\u800c\u201c\u85cf\u201d\u5b57\u62bc\u201c\u5510\u201d\u97fb\uff0c\u7232\u9130\u97fb\u3002<\/div>\n<div class=\"line\">\u5f8c\u4f86\u7684\u5e73\u6c34\u97fb\uff0c\u5408\u4f75\u4e86\u8a31\u591a\u9130\u97fb\u3002\u82e5\u6309\u5e73\u6c34\u97fb\uff0c\u5247\u56db\u5b57\u58d3\u201c\u967d\u201d\u97fb\u3002<\/div>\n<div class=\"line\"><br \/><\/div>\n<\/div>\n<p>\u770b\u4f3c\u7121\u6587\u7b46\u7684\u53e5\u5b50\u80cc\u5f8c\u7684\u7528\u5178\uff0c\u662f\u7121\u9700\u77e5\u66c9\u7684\u3002\u5982\u679c\u5f88\u662f\u597d\u5947\uff1a <a class=\"reference external\" href=\"http:\/\/www.gudianwenxue.com\/article\/6658.html\">\u300a\u675c\u8a69\u8a73\u8a3b\u30fb\u8543\u528d\u300b<\/a><\/p>\n","category":{"@attributes":{"term":"rhyme"}}}]}