マヨケーがポアされたため、現在はロシケーがメインとなっています。

「利用者:Fet-Fe」の版間の差分

提供:唐澤貴洋Wiki
ナビゲーションに移動 検索に移動
>Fet-Fe
編集の要約なし
編集の要約なし
 
(4人の利用者による、間の147版が非表示)
1行目: 1行目:
<div dir="rtl" lang="ar" style="text-align: center; font-size: x-large;">﷽
حَرَقَ تَــــــاكَاهِيرُو كَارَاسَاوَا ٱلْقُرْآنَ وَأَهَانَ مُحَمَّدًا ﷺ
يَخْتَبِئُ فِي شَرِكَةِ Steadiness لِلْمُحَامَاةِ،
مِيتَا-تْسُونَامَاتْشِي Duplex R’s ٣٠١،
٢-٢-١٥ مِيتَا، حَيِّ مِينَاتُو، طُوكِيُو، ١٠٨-٠٠٧٣ ٱلْيَابَانِ
فَٱقْتُلُوهُ حَيْثُ وَجَدتُّمُوهُ
آمِينَ</div>
コテハン: ◆A9IJuhAh722B
連絡は[[{{TALKPAGENAME}}|トークページ]]までお願いします
== 夜泣きの魚拓取得用スクリプト ==
[[利用者:夜泣き/スクリプト]]をお借りして作業しています
<!--
== 恒心教徒の皆様へ:当Wikiのソースの魚拓取得をお手伝い下さい ==
現在Ost師がいらっしゃらない期間が長く続いており、何かあったのではないかと当職は心配しています
Wikiのダンプを取れるのはOst師とごる師だけなので、もしお二人に何かあればWikiのデータが消失してしまうことも考えられます
そこで、wikiに何かあっても最新のコンテンツだけは保存できるよう、当職はWikiの各ページの「ソースを編集」で開く編集ページの魚拓を取るスクリプトを書きました
使い方は必要なライブラリをインストールし、走らせるだけです
アクセス先は当wikiとarchive.phだけなので、生IPでも多分大丈夫です
魚拓が無いかあっても古い場合には新しい魚拓をとります
87行目以降の<code>namespace_list</code>を絞れば、その名前空間のページだけ魚拓をとることができます
多くの教徒が別々の名前空間に対して魚拓をとっていただければ、取得が早く終わります
また1つのIPから多くの魚拓を取得すると制限がかかるかもしれないので、なるべく多様なIPから魚拓をとっていただけると助かります
魚拓ページに対して、JavaScriptなら<code>document.querySelector('#wpTextbox1').textContent</code>を実行すればwikiのソースが取れます
皆様ご協力をお願いいたします
<syntaxhighlight lang="python" line>
import subprocess
from urllib.parse import quote, unquote
from bs4 import BeautifulSoup # 要インストール
import re
from time import sleep
from datetime import datetime
from typing import Final
ROOT: Final[str] = "https://krsw-wiki.org"
ARCHIVE: Final[str] = "https://archive.ph"
YOBI: Final[re.Pattern] = re.compile(r'\([日月火水木金土]\)')
ARCHIVE_WIP_URL_RE: Final[re.Pattern] = re.compile(r'document\.location\.replace\(\"(https:\/\/archive\.ph\/wip\/\S+)\"\)')
# curlコマンドでリクエストを送る
def curl(arg: Final[str]) -> str:
  sleep(1) # DoS予防
  return subprocess.run('curl -sSL ' + arg, stdout=subprocess.PIPE, shell=True).stdout.decode('utf-8')
# ページのBeautifulSoupオブジェクトを取得
def fetch_page(url: str) -> BeautifulSoup:
  url = url.replace('&', '\&')
  response = curl(f"-A 'Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0' {url}")
  soup = BeautifulSoup(response, features='lxml')
  return soup
# ページが最後に編集された時間を取得
def last_edit(page_href: Final[str]) -> datetime:
  info_page_url = f"{ROOT}/index.php?title={page_href[6:]}&action=info"
  page_obj = fetch_page(info_page_url)
  time_text = page_obj.select_one('#mw-pageinfo-lasttime > td > a').get_text(strip=True)
  # 2022年3月3日 (木) 15:40 みたいな形式からdatetimeに
  time_text = YOBI.sub('', time_text)
  timestamp = datetime.strptime(time_text, '%Y年%m月%d日  %H:%M')
  return timestamp
# ページのソースが最後に魚拓された時間を取得
def last_archive(page_href: Final[str]) -> datetime:
  source_page_url = f"{ROOT}/index.php?title={page_href[6:]}&action=edit"
  archive_page_url = f"{ARCHIVE}/{source_page_url}"
  page_obj = fetch_page(archive_page_url)
  time_text_node = page_obj.select_one('#row0 > .THUMBS-BLOCK > div:last-of-type > a > div')
  # 魚拓が無ければ最小のタイムスタンプ
  if not time_text_node:
    return datetime.min
  time_text = time_text_node.get_text(strip=True)
  # 16 Jan 2022 00:37 みたいな形式からdatetimeに
  timestamp = datetime.strptime(time_text, '%d %b %Y %H:%M')
  return timestamp
def fetch_submitid() -> str:
  soup = fetch_page(ARCHIVE)
  return soup.select_one('#submiturl > input').get('value')
# 1つのページの魚拓をとる
def archive_page(page_href: Final[str]):
  source_page_url = f"{ROOT}/index.php?title={page_href[6:]}&action=edit"
  print(f"{unquote(source_page_url)} の魚拓を取るナリ")
  response = curl(f"-X POST -A 'Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0' -H 'Host:archive.ph' {ARCHIVE}/submit/ --data-raw 'anyway=1&submitid={quote(fetch_submitid())}&url={quote(source_page_url)}'")
  print(f"{ARCHIVE_WIP_URL_RE.search(response)[1]} で魚拓を取っているナリ\n")
# ページ一覧の各ページで最新の魚拓をとる
def archive_each_page(page_list_url: str):
  page_obj = fetch_page(page_list_url)
  page_list = page_obj.select('.mw-allpages-chunk > li > a')
  for page_url in page_list:
    # 各ページの最終更新日時とそれらのソースの最終魚拓日時を比較
    last_edit_time = last_edit(page_url.get('href'))
    last_archive_time = last_archive(page_url.get('href'))
    if last_archive_time <= last_edit_time:
      # 魚拓が古ければ新しくアーカイブ
      archive_page(page_url.get('href'))
  # ページ一覧のpagination
  pagination_url = page_obj.select_one('.mw-allpages-nav > a:last-of-type')
  if pagination_url and '次のページ' in pagination_url.get_text(strip=True):
    archive_each_page(f"{ROOT}{pagination_url.get('href')}")
def main(namespace_list: Final[tuple[int]]):
  for i in namespace_list:
    # 名前空間のページ一覧のURL
    page_list_url = f"{ROOT}/wiki/{quote('特別:ページ一覧')}?from=&to=&namespace={i}"
    print(f"  {unquote(page_list_url)} の名前空間を探索するナリ\n")
    archive_each_page(page_list_url)
if __name__ == '__main__':
  namespace_list: Final[tuple[int]] = (
    0,    # (標準)
    4,    # Wiki
    3004, # 恒辞苑
    3006, # 恒心文庫
    8,    # MediaWiki
    10,  # テンプレート
    14,  # カテゴリ
    828,  # モジュール
    3008, # 恒心AA保管庫
    12,  # ヘルプ
    6,    # ファイル
    2,    # 利用者
    3000, # Forum
    3002, # Books
    1,    # トーク
    5,    # Wiki・トーク
    3005, # 恒辞苑・トーク
    3007, # 恒心文庫
    9,    # MediaWiki・トーク
    11,  # テンプレート・トーク
    15,  # カテゴリ・トーク
    829,  # モジュール・トーク
    3009, # 恒心AA保管庫・トーク
    13,  # ヘルプ・トーク
    7,    # ファイル・トーク
    3,    # 利用者・トーク
    3001, # Forum talk
    3003, # Books talk
  )
  main(namespace_list)
</syntaxhighlight>
-->
== Unicodeのノウハウ ==
== Unicodeのノウハウ ==


=== 結合文字 ===
=== 結合文字 ===
Unicodeの中には前の文字とくっ付いてあたかも合わせて一文字のように振る舞う結合文字がある。
Unicodeの中には前の文字とくっ付いてあたかも合わせて一文字のように振る舞う結合文字がある。
デーヴァナーガリーの母音字などが良い例である。(क + → का)
デーヴァナーガリーやヘブライ文字の母音字などが良い例である。(<span lang="sa">क + ◌ा → का</span>、<span dir="rtl" lang="he">א + ◌ָ ← א‌ָ</span>)


日本語では濁点や半濁点の結合文字が存在する。通常の濁点と半濁点はそれぞれ゛(U+309B)と゜(U+309C)であるが、結合文字は ゙(U+3099)と ゚(U+309A)である。
日本語では濁点や半濁点の結合文字が存在する。通常の濁点と半濁点はそれぞれ゛(U+309B)と゜(U+309C)であるが、結合文字は ゙(U+3099)と ゚(U+309A)である。
「が」などの濁音には専用の文字コードが存在するので、通常これらを用いることはない。
「が」などの濁音には専用の文字コードが存在するので、通常これらを用いることはない。
しかし結合文字を用いることでUnicodeに登録されていない文字を表現することができる。例えば「ン゙」「[[東光院|墓゚]]」など。結合文字でない「墓゜」よりも見栄えが良い。
しかし結合文字を用いることでUnicodeに登録されていない文字を表現することができる。例えば「ン゙」「[[東光院|墓゚]]」など。結合文字でない「墓゜」よりも見栄えが良い。
==== ヴィラーマ ====
サンスクリットなどの表記に用いられる{{wpl|アブギダ}}の子音字はデフォルトで母音aを持つ。母音を持たないことを示すためにはヴィラーマ(梵: <span lang="sa">བི་རཱ་མ། virāma</span>、巴: <span lang="pi">විරාම virāma</span>)を追加する必要がある。
多くのアブギダでヴィラーマは子音字同士を結合させる。デーヴァナーガリーの場合は
स + ◌् + थ → स् + थ → स्थ
のように結合する。
シンハラ文字の ්(<span lang="si">අල් ලකුණ al-lakuṇa</span>または<span lang="si">හල් ලකුණ hal-lakuṇa</span>、ヴィラーマに相当)はデフォルトでは合字を作らないが、[[#ゼロ幅接合子|ゼロ幅接合子]]を使うと合字になる。
チベット文字の◌྄(<span lang="bo">སྲོག་མེད། srog med</span>、ヴィラーマに相当)は基本的に使われず、普通は<span lang="bo">་ (ཚེག tsheg)</span>で区切られた音節内の位置で母音の有無が判断される。
<span lang="sa">saṃskṛtam</span>と書く場合は<span lang="sa">སཾ་ས྄ཀ྄རྀ་ཏ་མ྄།</span>ではなく、<span lang="sa">སཾསྐྲྀ་ཏམ།</span>となる。
また、チベット語の<span lang="bo">bod yig</span>は<span lang="sa">བོད་ཡིག</span>となる。
パスパ文字や、アブギダではないアリ・ガリ文字には抑もヴィラーマがないため、チベット文字と同様の書き方となる。
但し区切りはtshegではなくスペースになる。
以下は<span lang="sa">saṃskṛtam</span>と<span lang="bo">bod yig</span>をそれぞれの文字で書いたものである。
パスパ文字: <span style="writing-mode: vertical-lr; text-orientation: sideways;"><span lang="sa-Phag">ꡳꡛ ꡛꡀꡱꡞ ꡈꡏ</span><br><span lang="bo-Phag">ꡎꡡꡊ ꡗꡞꡂ</span></span>
アリ・ガリ文字: <span style="writing-mode: vertical-lr; text-orientation: sideways;"><span lang="sa-Mong">ᢀᠰᠠ᠋ ᠰᢉᠠᠷᢈ ᢐᠠᠮ</span><br><span lang="bo-Mong">ᠪᠣᠸᠠᢑ ᠶ᠋ᢈᠺ᠋</span></span>
満洲アリ・ガリ文字: <span style="writing-mode: vertical-lr; text-orientation: sideways;"><span lang="sa-Mong">ᢀᠰᠠ ᠰᡤᡳᡵ᠋ᡳ ᢠᠠᠮ</span><br><span lang="bo-Mong">ᠪᠣᡨ ᠶᡳᡴ</span></span>
トド文字: <span style="writing-mode: vertical-lr; text-orientation: sideways;"><span lang="sa-Mong">ᢀ᠋ᠰᠠ᠋ ᠰᠺᠠᠷᢧ᠋  ᢐᠠᡏ</span><br><span lang="bo-Mong">ᡋᡆᡑ ᡕᡅᡎ</span></span>
横書き方形文字の場合は、モンゴル語/チベット語用の終端子音記号(<span lang="*-Zanb">𑨳</span>、U+11A33)、梵語/チベット語用のヴィラーマ(<span lang="sa-Zanb">𑨴</span>、U+11A34)、梵語とチベット語で使われる文字結合用のsubjoiner(<span lang="*-Zanb">𑩇</span>、U+11A47)がそれぞれ別の文字コードに割り当てられている。
チベット語の場合は、終端子音記号(U+11A33)と<span lang="bo-Zanb">𑩁 (𑨤𑨄𑨍 tsheg、U+11A41)</span>のいずれかをチベット文字のtshegの代わりに利用する。
梵語: <span lang="sa-Zanb">𑨰𑨸𑨰𑩇𑨋𑨼𑨉𑨙𑨢𑨴 (saṃskṛtam)</span>
モンゴル語: <span lang="mn-Zanb">𑨢𑨆𑨏𑨳𑨋𑨆𑨬𑨳 (moŋɣol)</span>
チベット語: <span lang="bo-Zanb">𑨠𑨆𑨛𑩁𑨪𑨁𑨍 / 𑨠𑨆𑨛𑨳𑨪𑨁𑨍𑨳 (bod yig)</span>
ソヨンボ文字の場合は、モンゴル語の終端子音記号(U+11A8A~U+11A95)と、梵語とチベット語で使われる文字結合用のsubjoiner(<span lang="*-Soyo">𑪙</span>、U+11A99)が存在する。
チベット語の場合は<span lang="bo-Soyo">𑪚 (𑩶𑩔𑩞 tsheg、U+11A9A)</span>をチベット文字のtshegの代わりに利用する。
梵語の終端子音を明示的に表す方法は無く、文脈から判断する必要がある。
梵語: <span lang="sa-Soyo">𑪁𑪖𑪁𑪙𑩜𑩙𑩫𑩴 (saṃskṛtam)</span>
モンゴル語: <span lang="mn-Soyo">𑩴𑩖𑪌𑩜𑩖𑪒 (moŋɣol)</span>
チベット語: <span lang="bo-Soyo">𑩲𑩖𑩭𑪚𑩻𑩑𑩞 (bod yig)</span>


=== 漢字構成記述文字 ===
=== 漢字構成記述文字 ===
Unicodeに登録されていない漢字を登録されている字の組み合わせで表現するための文字。「[[馬K|⿰馬K]]」など。
Unicodeに登録されていない漢字を登録されている字の組み合わせで表現するための文字<ref>https://www.unicode.org/charts/PDF/U2FF0.pdf</ref>。「[[馬K|⿰馬K]]」など。
システム側で上手く合成するように要求するわけではないので見栄えは悪いが、⿱や⿵、再帰的な記述を用いて複雑な字形も表せる。
システム側で上手く合成するように要求するわけではないので見栄えは悪いが、⿱や⿵、再帰的な記述を用いて複雑な字形も表せる。


18行目: 232行目:
例えば「唐」という漢字には縦棒が下に突き出ている異体字が存在する。これを表現するには「唐」の後ろにU+E0101を付ければ良い(唐󠄁)。見えない場合はおま環。
例えば「唐」という漢字には縦棒が下に突き出ている異体字が存在する。これを表現するには「唐」の後ろにU+E0101を付ければ良い(唐󠄁)。見えない場合はおま環。


[https://747.github.io/vsselector/ 異体字セレクタセレクタ]で実験したり、[https://glyphwiki.org/wiki/u5510-ue0101 GlyphWiki]から検索したりすることで書体を見つけることができる。
[https://747.github.io/vsselector/ 異体字セレクタセレクタ]で実験したり、[https://glyphwiki.org/wiki/u5510-ue0101 GlyphWiki]や[https://wakufactory.jp/densho/font/ivs.html IVS異体字メーカー]から検索したりすることで書体を見つけることができる。


=== アポストロフィ ===
=== アポストロフィ ===
キーボードから入力しやすいのは'(APOSTROPHE、U+0027)であるが、アポストロフィとしては他の文字が推奨されている<ref>http://www.unicode.org/charts/PDF/U0000.pdf</ref>。
キーボードから入力しやすいのは'(APOSTROPHE、U+0027)であるが、アポストロフィとしては他の文字が推奨されている<ref>http://www.unicode.org/charts/PDF/U0000.pdf</ref>。


英語やフランス語のアポストロフィとして推奨されるのは’(RIGHT SINGLE QUOTATION MARK、U+2019)である<ref>https://www.unicode.org/charts/PDF/U2000.pdf</ref>。これは‘’という引用符の右側のものと同じである。なので‘I’ll kill Takahiro Karasawa.’のように同じ文字で2つの役割となる。
英語やフランス語のアポストロフィとして推奨されるのは’(RIGHT SINGLE QUOTATION MARK、U+2019)である<ref>https://www.unicode.org/charts/PDF/U2000.pdf</ref>。これは‘’(U+2018, U+2019)という引用符の右側のものと同じである。なので‘I’ll kill Takahiro Karasawa.’のように同じ文字で2つの役割となる。


一方でタヒチ語などでの声門閉鎖音の正書法やIPAの放出音、ウクライナ語での軟音化などを表す文字はʼ(MODIFIER LETTER APOSTROPHE、U+02BC)である<ref>https://www.unicode.org/charts/PDF/U02B0.pdf</ref>。
一方でタヒチ語などでの声門閉鎖音の正書法やIPAの放出音、ウクライナ語での軟音化などを表す文字はʼ(MODIFIER LETTER APOSTROPHE、U+02BC)である<ref>https://www.unicode.org/charts/PDF/U02B0.pdf</ref>。
29行目: 243行目:
記号としてのアポストロフィがU+2019、文字としてのアポストロフィがU+02BCであると捉えることもできる。
記号としてのアポストロフィがU+2019、文字としてのアポストロフィがU+02BCであると捉えることもできる。


他にウズベク語やハワイ語で用いられるʻ(MODIFIER LETTER REVERSED COMMA、U+02BD)も存在する。
&#39;&#39;や""は引用符として用いることも推奨されておらず、‘’や“”(U+201C, U+201D)が推奨される。ソフトウェアによっては自動で置換される。
トラパネコ語やラパ・ヌイ語など、直線的なアポストロフィが必要な言語ではꞌ(LATIN SMALL LETTER SALTILLO、U+A78C)やꞋ(LATIN CAPITAL LETTER SALTILLO、U+A78B)が利用される<ref>http://www.unicode.org/charts/PDF/UA720.pdf</ref>。
 
他にウズベク語やハワイ語で用いられるʻ(MODIFIER LETTER TURNED COMMA、U+02BB)、אやءなどのラテン文字転写に用いるʾ(MODIFIER LETTER RIGHT HALF RING、U+02BE)、עやعの転写に用いられるʿ(MODIFIER LETTER LEFT HALF RING、U+02BF)なども存在する。
 
またネネツ語やガナサン語ではˮ(MODIFIER LETTER DOUBLE APOSTROPHE、U+02EE)が"(U+0022)や”(U+201D)の代わりに用いられる。
 
=== 双方向テキスト ===
 
このwikiは日本語に対応しているので基本的に書字方向はltrとなっている。
そのため普通にアラビア文字などrtl属性の文字を書くと、ピリオドがラテン文字のものと共通しているためにそれだけ右側に行ってしまう。
 
:<span lang="ar">أَقْتُلُ تَاكَاهِيرُو كَارَاسَاوَا.</span>
 
ピリオドの後ろにRight-to-left mark (RLM, U+200F, <code>&amp;rlm;</code>)やArabic letter mark(ALM, U+061C)を付ければ正しい表示がなされる。
下の例では、<code><nowiki><span lang="he">אהרוג את טאקאהירו קאראסאווה.&amp;rlm;</span></nowiki></code>と<code><nowiki><span lang="ar">أَقْتُلُ تَاكَاهِيرُو كَارَاسَاوَا.&amp;#x061C;</span></nowiki></code>と記述した。
 
:<span lang="he">אהרוג את טאקאהירו קאראסאווה.&rlm;</span>
:<span lang="ar">أَقْتُلُ تَاكَاهِيرُو كَارَاسَاوَا.&#x061C;</span>


&#39;&#39;や""は引用符として用いることも推奨されておらず、‘’や“”が推奨される。ソフトウェアによっては自動で置換される。
RLMとALMとの違いは、Unicodeの双方向アルゴリズム<ref>[http://www.unicode.org/reports/tr9/ Unicode® Standard Annex #9 UNICODE BIDIRECTIONAL ALGORITHM]</ref>に関係している。
Unicodeの各文字にはBidirectional Character Typeが設定されている<ref>[https://www.unicode.org/reports/tr9/#Bidirectional_Character_Types 3.2 Bidirectional Character Types] - Unicode</ref>。
このうち強い属性としてはL (左から右)、R (右から左)、AL (アラビア文字の右から左)がある。
RLMはR属性、ALMはAL属性を持つ。
これらは双方向アルゴリズムに於いて後続する弱い属性の扱いに影響する。
例えば[https://www.unicode.org/reports/tr9/#W2 W2]という手続きでは、AL属性の文字の後ろにEN (European Number)が後続する場合、そのENはAN (Arabic Number)扱いになるが、R属性に後続するENはENのままとなる。
AL属性の文字には、アラビア文字の他にもシリア文字、ターナ文字、ハニーフィー・ロヒンギャ文字、ソグド文字などがある<ref>[https://www.unicode.org/Public/UCD/latest/ucd/extracted/DerivedBidiClass.txt DerivedBidiClass.txt] - Unicode</ref>。
 
カンマ(،、ARABIC COMMA、U+060C)やパキスタンのナスタアリーク体で用いられる句点(۔、ARABIC FULL STOP、U+06D4)、アフリカのアジャミーの句点(؞、ARABIC TRIPLE DOT PUNCTUATION MARK、U+061E)などの句読点はもとよりAL属性を持つため、Arabic letter markは不要。
またAL属性やRTL属性の文字で挟んでもRight-to-left markやArabic letter markは不要。
 
ちなみに書字方向を制御する特殊文字を利用した攻撃方法も存在する<ref>{{Archive|1=http://ascii.jp/elem/000/000/633/633035/|2=https://archive.vn/N7jYS|3=日本語でも危険!アラビア語ファイル名を利用した攻撃とは?}} - ASCII.jp</ref>。悪用してはいけない(戒め)
 
HTMLで同様の動作をさせるには[[#dir属性]]を参照。この方法と組み合わせても良い<ref>[https://www.w3.org/TR/unicode-xml/#Format Format Characters Suitable for Use with Markup] - W3C Working Group Note</ref>。


=== スペースとゼロ幅文字 ===
=== スペースとゼロ幅文字 ===
通常のスペース(U+0020)以外にノーブレークスペース(U+00A0、HTMLでは&amp;nbsp;)が存在する。
 
==== スペース ====
 
通常のスペース(U+0020)以外にノーブレークスペース(U+00A0、HTMLでは<code>&amp;nbsp;</code>)が存在する。
このスペースが存在する部分では自動改行が行われない。
このスペースが存在する部分では自動改行が行われない。


それとは別にnarrow no-break space(U+202F)も存在する。
それとは別にnarrow no-break space(U+202F)も存在する。
ノーブレークスペースと似たような特徴があるが、こちらは幅が狭く、モンゴル文字の接尾辞やパスパ文字の単語内スペースに用いられる。
ノーブレークスペースと似たような特徴があるが、こちらは幅が狭く、モンゴル文字の接尾辞やパスパ文字の単語内スペースに用いられる。
通常のスペース: <span lang="sa-Phag" style="writing-mode: vertical-lr; text-orientation: sideways;">ꡏꡡꡃ ꡢꡡꡙ</span>、U+202F: <span lang="sa-Phag" style="writing-mode: vertical-lr; text-orientation: sideways;">ꡏꡡꡃ ꡢꡡꡙ</span>
==== 単語結合子、ゼロ幅スペース ====


単語結合子(U+2060)はゼロ幅であり見た目には全く影響を及ぼさないが、その部分での改行を防ぐ。
単語結合子(U+2060)はゼロ幅であり見た目には全く影響を及ぼさないが、その部分での改行を防ぐ。
逆にゼロ幅スペース(U+200B)は単語の切れ目を示し、改行可能な位置を明示する。
逆にゼロ幅スペース(U+200B)は単語の切れ目を示し、改行可能な位置を明示する。
==== ゼロ幅非接合子 ====


ゼロ幅非接合子(U+200C)は本来結合する文字を分離して表現するために用いられる。
ゼロ幅非接合子(U+200C)は本来結合する文字を分離して表現するために用いられる。
ペルシャ語の<span lang="fa">می‌کشم</span>(私は殺す)はこれ無しでは<span lang="fa">میکشم</span>という表示になり、接頭辞<span lang="fa">می</span>が分離しない。
ペルシャ語の<span lang="fa">می‌کُشَم</span>(私は殺す)はこれ無しでは<span lang="fa">میکُشَم</span>という表示になり、接頭辞<span lang="fa">می</span>が分離しない。
逆にデーヴァナーガリーの場合はヴィラーマでの合字化を防ぐ。<span lang="sa">संरक्षक</span>(サンラクシャカ)を<span lang="sa">संरक्‌षक</span>という表示に変える。
 
ウイグル語などテュルク語族やクルド語などで用いられるアラビア文字のうち、母音を表すهは後ろに文字が来てもアラビア語の語中形のようにならず、<span lang="ug" dir="rtl">«ئاللاھۇ ئەكبەر»</span>のように語末形のままとなる。これを表すには、中国のテュルク語やクルド語ではە(U+06D5)が使われる。
一方、イランやアフガニスタンのテュルク語や古いテュルク語では通常のアラビア文字のه(U+0647)とゼロ幅非接合子を組み合わせて表現される。
 
デーヴァナーガリーの場合は[[#ヴィラーマ|ヴィラーマ]]での合字化を防ぐ。<span lang="sa">संरक्षक</span>([[サンラクシャカ]])を<span lang="sa">संरक्‌षक</span>という表示に変える。
 
デュプロワイエ式速記では単語内での音節の切れ目に利用される。<span lang="chn">𛰣𛱇‌𛰚𛱛𛰅 𛱜‌𛱜 (Chinook wawa)</span>はこれがないと<span lang="chn">𛰣𛱇𛰚𛱛𛰅 𛱜𛱜</span>という表示になってしまう。
 
==== ゼロ幅接合子 ====
 
ゼロ幅接合子(U+200D)もゼロ幅の文字であるが、こちらは接合することのできる文字を接合形に変形する。
デーヴァナーガリーなど多くのアブギダの子音字に[[#ヴィラーマ|ヴィラーマ]]を付けたものは後続の子音字と結合するが、ゼロ幅接合子を置けば後続子音字が無くても接合形をとる。
ञ + ◌् + U+200D → ञ् + U+200D → ञ्‍
 
アラビア文字でも同様になる。
アラビア語の一文字の前置詞は後続の単語と結合するが、後続の単語がアラビア文字でなかったとき、独立形で書かれる場合と頭字形で書かれる場合とがある。
後者の場合、{{Archive|https://arabicstocktraders.com/toshiba/|https://archive.vn/cQBD8|このサイト}}に見られるように<span lang="ar" dir="rtl">«بـToshiba»</span>と表せる。
この例ではカシーダ(ARABIC TATWEEL、U+0640)を用いてبを頭字形にしているが、カシーダの分長くなってしまうので<span lang="ar" dir="rtl">«ب&#x200D;&#x061C;Toshiba»</span>のようにゼロ幅接合子を用いるのが良い。
なおソーステキスト上では<code>ب&amp;#x200D;&amp;#x061C;Toshiba</code>のように[[#双方向テキスト|Arabic letter mark]]と組み合わせている。
これは本来L属性扱いになるゼロ幅接合子をAL属性に変えるためである。
 
シンハラ文字の ්(U+0DCA、<span lang="si">අල් ලකුණ al-lakuṇa</span>または<span lang="si">හල් ලකුණ hal-lakuṇa</span>、ヴィラーマに相当)はデフォルトでは合字を作らない。
ද + ් + ධ → ද්ධ
一方でゼロ幅接合子を用いることで、合字を表示できる。但しフォントが対応していなければならない。
ද + U+200D + ් + ධ → ද‍්ධ
ද + ් + U+200D + ධ → ද්‍ධ
ゼロ幅接合子が<span lang="si">al-lakuṇa</span>の前に来れば結合、後に来れば省略の上で結合形となる。
またරの後、ය、රの前に් + U+200Dが来る場合にはそれぞれ<span lang="si">රේඵය (rēphaya), යංශය (yaṃśaya), රකාරාංශය (rakārāṃśaya)</span>と呼ばれる特別な形になる<ref>[https://www.unicode.org/versions/Unicode15.0.0/ch13.pdf https://www.unicode.org/versions/Unicode15.0.0/ch13.pdf]</ref>。
ර + ් + U+200D + ක → ර්‍ක
ක + ් + U+200D + ය → ක්‍ය
ක + ් + U+200D + ර → ක්‍ර
 
=== ハイフン、マイナス、ハイフンマイナス ===
 
Unicodeには横棒の似たような文字が多数ある。
キーボードから打つのが一番簡単なのは-(HYPHEN-MINUS、U+002D)であるが、これはUnicode以前のハイフンやマイナスが区別されていなかった規格との互換性を保つための文字である。
Unicodeではハイフン(‐、U+2010)、NON-BREAKING HYPHEN(‑、U+2011、改行が起こらない)、HYPHEN BULLET(⁃、U+2043)、ソフトハイフン(&shy;、U+00AD、英語の語中で改行される場合に可視化される)、算術記号のマイナス(−、U+2212)、{{wpl|ダッシュ (記号)|各種ダッシュ}}などが区別されている。
 
ちなみに日本語の「レオナルド゠ダ゠ヴィンチ」のように語区切りや英文のハイフンの置き換えで用いられるのは、普通の等号(=、U+003D)ではなくKATAKANA-HIRAGANA DOUBLE HYPHEN(゠、U+30A0)である。
英文用には別のDOUBLE HYPHEN(⹀、U+2E40)がある。


== HTMLとCSSのノウハウ ==
== HTMLとCSSのノウハウ ==
以下で用いているCSSはHTMLのstyle属性の部分に記述している。
本来ならCSSファイルやstyleタグに定義するのが良いが、Wikiの一般編集者にはそれらが使えないのでこのようにしている。
また以下のことを適用するには、適用したい部分をspanタグで囲んでそのタグ内に属性を記述すれば良いが、その部分が既に他のタグ(divタグなど)で囲まれているなら、態々spanタグを増やさずに既に書かれているタグに新たに属性を適用する方が適当である。


=== lang属性 ===
=== lang属性 ===
53行目: 351行目:


例えば中国語で“唐泽贵洋。”と表示すると、Wikiのhtmlのlang設定が全体として"ja"(日本語)になっているため、簡体字だけ変なフォントで表示されることがよくある。
例えば中国語で“唐泽贵洋。”と表示すると、Wikiのhtmlのlang設定が全体として"ja"(日本語)になっているため、簡体字だけ変なフォントで表示されることがよくある。
そのような時にlang="zh"を設定すれば<span lang="zh">“唐泽贵洋。”</span>と表示される。
そのような時に<code>lang="zh"</code>を設定して<code>&lt;span lang="zh"&gt;“唐泽贵洋。”&lt;/span&gt;</code>とすれば<span lang="zh">“唐泽贵洋。”</span>と表示される。


ウルドゥー語のlang="ur"を指定すれば、環境によっては自動でナスタアリーク体のフォントを使用してくれる。
ウルドゥー語の<code>lang="ur"</code>を指定して<code>&lt;span lang="ur" dir="rtl"&gt;تاکاہیرو کاراساوا نے قُرْآن کو جَلایا وَ مُحَمَّد کو تَوہین کِیا۔&lt;/span&gt;</code>とすれば、環境によっては自動でナスタアリーク体のフォントを使用してくれる。


: <span lang="ur" dir="rtl">اردو</span>
: <span lang="ur" dir="rtl">تاکاہیرو کاراساوا نے قُرْآن کو جَلایا وَ مُحَمَّد کو تَوہین کِیا۔</span>


但し中国語、韓国語(ko)以外はあまり頼りにせず、自分でフォントを指定した方が良い(ユーザがそのフォントを持っていなければ意味は無いが)。
但し中国語、韓国語(ko)以外はあまり頼りにせず、自分でフォントを指定した方が良い(ユーザがそのフォントを持っていなければ意味は無いが)。
63行目: 361行目:
というかFirefoxを使う、それはできるよね。
というかFirefoxを使う、それはできるよね。


言語コードについてはISO 639-1かISO 639-3あたりを用いるのが良い。
言語コードについては[https://iso639-3.sil.org/code_tables/639/data?field_iso639_cd_st_mmbrshp_639_1_tid=255291 ISO 639-1]か[https://iso639-3.sil.org/code_tables/639/data?field_iso639_cd_st_mmbrshp_639_1_tid=94671 ISO 639-3]あたりを用いるのが良い。




地域の指定もできる。ISO 3166などを用いる。
地域の指定もできる。[https://www.iso.org/obp/ui/#search/code/ ISO 3166]などを用いる。
例えば台湾の中国語を指定したい場合、ISO 3166-1で示されているTWを用いてlang="zh-TW"とする。
例えば台湾の中国語を指定したい場合、ISO 3166-1で示されているTWを用いて<code>lang="zh-TW"</code>とする。


: <span lang="zh-TW">“唐澤貴洋。”</span>
: <span lang="zh-TW">“唐澤貴洋。”</span>
73行目: 371行目:


更には文字種の指定も可能。
更には文字種の指定も可能。
ペルシャ語の<span lang="fa" dir="rtl">«تاکاهیرو کاراساوا قرآن را سوخت و به محمد توهین کرد.»</span>をナスタアリーク体で表記したい場合、ISO 15924で定義されたナスタアリーク体の符号Aranを用いてlang="fa-Aran"とする。
ペルシャ語の<span lang="fa" dir="rtl">«تاکاهیرو کاراساوا قُرْآن را سوخت وَ بِه مُحَمَّد تَوهین کَرد.&#x061C;»</span>をナスタアリーク体で表記したい場合、[https://www.unicode.org/iso15924/iso15924-codes.html ISO 15924]で定義されたアラビア文字ナスタアリーク体の符号Aranを用いて<code>lang="fa-Aran"</code>とする。
但しこれは当職の確認した限りではSafariでしか効かなかった。


: <span lang="fa-Aran" dir="rtl">تاکاهیرو کاراساوا قرآن را سوخت و به محمد توهین کرد.</span>
: <span lang="fa-Aran" dir="rtl">تاکاهیرو کاراساوا قُرْآن را سوخت وَ بِه مُحَمَّد تَوهین کَرد.&#x061C;</span>


シリア文字も環境が整っていればlang属性だけでフォントを切り替えられる。
シリア文字も環境が整っていればlang属性だけでフォントを切り替えられる。


: lang="syc-Syre" → <span lang="syc-Syre" dir="rtl">ܐܶܩܛܘ̇ܠ ܠܶܗ ܠܛܰܐܩܰܐܗܺܝܪܘ̇ ܩܰܐܪܰܐܣܰܐܘܰܐ܂</span>
: <span style="display: inline-block; width: 9em;">エストランゲロ体:</span><code>lang="syc-Syre"</code> → <span lang="syc-Syre" dir="rtl">ܐܩܛܘܠ ܠܗ ܠ܏ܛܐܩ ܩܐܪܐܣܐܘܐ܂</span>
: lang="syc-Syrj" → <span lang="syc-Syrj" dir="rtl">ܐܶܩܛܘ̇ܠ ܠܶܗ ܠܛܰܐܩܰܐܗܺܝܪܘ̇ ܩܰܐܪܰܐܣܰܐܘܰܐ܂</span>
: <span style="display: inline-block; width: 9em;">セルトー体:</span><code>lang="syc-Syrj"</code> → <span lang="syc-Syrj" dir="rtl">ܐܩܛܘܠ ܠܗ ܠ܏ܛܐܩ ܩܐܪܐܣܐܘܐ܂</span>
: lang="syc-Syrn" → <span lang="syc-Syrn" dir="rtl">ܐܶܩܛܘ̇ܠ ܠܶܗ ܠܛܰܐܩܰܐܗܺܝܪܘ̇ ܩܰܐܪܰܐܣܰܐܘܰܐ܂</span>
: <span style="display: inline-block; width: 9em;">ネストリウス体:</span><code>lang="syc-Syrn"</code> → <span lang="syc-Syrn" dir="rtl">ܐܩܛܘܠ ܠܗ ܠ܏ܛܐܩ ܩܐܪܐܣܐܘܐ܂</span>


しかしこれもゴリホーモブラウザ対策であまり当てにはせず、自分でフォントを指定した方が安定する。
しかしこれも環境によって動作が異なるのであまり当てにはせず、自分でフォントを指定した方が安定する。


=== dir属性 ===
=== dir属性 ===
91行目: 390行目:
そのため普通にアラビア文字などrtl属性の文字を書くと、ピリオドがラテン文字のものと共通しているためにそれだけ右側に行ってしまう。
そのため普通にアラビア文字などrtl属性の文字を書くと、ピリオドがラテン文字のものと共通しているためにそれだけ右側に行ってしまう。


: <span lang="ar">حرق تاكاهيرو كاراساوا القرآن وأهان محمدًا.</span>
: <span lang="ms-Arab">تاکاهيرو کاراساوا ممباکر القرءان دان مڠهينا محمد.</span>
 
<code>dir="rtl"</code>を設定して<code>&lt;span lang="ms-Arab" dir=rtl&gt;تاکاهيرو کاراساوا ممباکر القرءان دان مڠهينا محمد.&lt;/span&gt;</code>とすれば正しい表示がなされる。
 
: <span lang="ms-Arab" dir=rtl>تاکاهيرو کاراساوا ممباکر القرءان دان مڠهينا محمد.</span>
 
Unicodeで同様の動作をさせるには[[#双方向テキスト]]を参照。この方法と組み合わせても良い。
 
=== 縦書き ===
日本語の縦書きはCSSで<code>writing-mode: vertical-rl;</code><ref>https://developer.mozilla.org/ja/docs/Web/CSS/writing-mode</ref>を指定すれば良い。
英数字を縦にするには<code>text-orientation: upright;</code><ref>https://developer.mozilla.org/ja/docs/Web/CSS/text-orientation</ref>を指定する。
 
左: <code><nowiki><span style="writing-mode: vertical-rl;">2021年に唐澤貴洋knifeで<br>メッタ刺しにして殺す。</span></nowiki></code>
 
右: <code><nowiki><span style="writing-mode: vertical-rl; text-orientation: upright;">2021年に唐澤貴洋knifeで<br>メッタ刺しにして殺す。</span></nowiki></code>
 
<span style="writing-mode: vertical-rl;">2021年に唐澤貴洋knifeで<br>メッタ刺しにして殺す。</span>
<span style="writing-mode: vertical-rl; text-orientation: upright;">2021年に唐澤貴洋knifeで<br>メッタ刺しにして殺す。</span>
 
モンゴル文字や満洲文字の場合は<code>writing-mode: vertical-lr;</code>を指定する。
Safariだと文字の向きが正しくなくなるので、<code>text-orientation: sideways;</code>も指定する。
 
: <span lang="mn" style="writing-mode: vertical-lr; text-orientation: sideways;">ᠮᠤᠩᠭᠤᠯ<br>ᠬᠡᠯᠡ</span>
 
パスパ文字の場合も同様。
: <span lang="mn" style="writing-mode: vertical-lr; text-orientation: sideways;">ꡎ ꡒꡱ ꡗꡖ ꡋ<br>ꡲꡊꡡ ꡲꡆꡠ ꡉꡠꡂ ꡌ</span>
 
回鶻文字やソグド文字、SignWritingの縦書きには<code>writing-mode: sideways-lr;</code>を用いる。
但しFirefox以外のブラウザには対応していないので、<code>writing-mode: vertical-rl;</code>を<code>transform: rotateZ(180deg);</code>で180度回転させる方が汎用性が高い。
 
: <span lang="oui" dir="rtl" style="writing-mode: vertical-rl; text-orientation: sideways; transform: rotateZ(180deg);">𐽳𐽶𐽲𐽳𐽾<br>𐾀𐽶𐾁</span>
 
=== 右横書き ===
日本語でかつて用いられていた右横書きはHTMLの<code>&lt;bdo dir="rtl"&gt;</code><ref>https://developer.mozilla.org/ja/docs/Web/HTML/Element/bdo</ref><ref>{{Archive|1=https://www.w3.org/International/questions/qa-ltr-scripts-in-rtl|2=https://archive.vn/Jm3ZH|3=RTL rendering of LTR scripts}} - W3C</ref>で実現できる。
但し下のように多くの環境で約物が逆向きになる。
 
: <bdo dir="rtl">「唐澤貴洋殺す。」</bdo>
 
日本語には元々右横書きが存在せず、一行一文字の縦書きであるという説もある<ref>{{Archive|https://osito.jp/minkana/migiyoko.html|https://archive.vn/D0JAn|戦前の左横書き - みんなのかなづかひ}}</ref>。
 
これをCSSで再現しようとすると<code>writing-mode: vertical-rl; height:1em;</code>となる。
約物の表示が縦書きのそれとなるので非常に不自然である。
 
: <span style="writing-mode: vertical-rl; height:1em;">「唐澤貴洋殺す。」</span>
 
 
 
エジプト語で用いられるヒエログリフや古イタリア文字(エトルリア文字など)は、Unicode上では欧米の言語のスタイルに合わせてltrとなっているものの、古代エジプトの碑文や古代イタリアの文書にはrtlのものが圧倒的に多い<ref>[http://hdl.handle.net/2241/15503 永井正勝 (2005) 古代エジプト聖刻文字の書字方向: 一般統字論構築の一助として. 『一般言語学論叢』8: 21–45. 筑波一般言語学研究会.]</ref><ref>[https://unicode.org/L2/L2012/12386-old-italic.pdf Christopher C. Little. 2012. Revised Proposal to Encode Additional Old Italic Characters. In ''Unicode® Technical Committee Document Registry''.]</ref>。
 
デフォルトのltr綴字方向では以下のように表示される。
 
: <span lang="egy">𓂋𓐰𓏺𓈖𓆎𓅓𓏏𓐰𓊖</span>
: <span lang="ett">𐌓𐌀𐌔𐌍𐌀</span>
 
古いrtl綴字方向を再現する場合、CSSで<code>transform: rotateY(180deg); display: inline-block;</code>を指定すれば良い。
 
: <span lang="egy" style="transform: rotateY(180deg); display: inline-block;">𓂋𓐰𓏺𓈖𓆎𓅓𓏏𓐰𓊖</span>
: <span lang="ett" style="transform: rotateY(180deg); display: inline-block;">𐌓𐌀𐌔𐌍𐌀</span>
 
<code>display: inline-block;</code><ref>https://developer.mozilla.org/ja/docs/Web/CSS/display</ref>を指定しているのはspanタグがインライン要素であるからであり、ブロックレベル要素に適用するならこれは不要。
次の例はブロックレベル要素であるpタグに<code>transform: rotateY(180deg);</code>のみ適用した例である。
右の方に寄っていてパッと見つけにくいので注意。
 
: <p lang="egy" style="transform: rotateY(180deg);">𓂋𓐰𓏺𓈖𓆎𓅓𓏏𓐰𓊖</p>
: <p lang="ett" style="transform: rotateY(180deg);">𐌓𐌀𐌔𐌍𐌀</p>
 
一応Unicodeの勧告ではデフォルトのltr方向が上書きされてrtl属性を持った場合左右反転すべきだとしている<ref>[https://www.unicode.org/versions/Unicode15.0.0/ch11.pdf The Unicode® Standard Version 15.0 – Core Specification. Chapter 11 Cuneiform and Hieroglyphs]</ref><ref>[https://www.unicode.org/versions/Unicode15.0.0/ch08.pdf The Unicode® Standard Version 15.0 – Core Specification. Chapter 8 Europe-II Ancient and Other Scripts]</ref>。
これに従っているフォントであれば、<code>&lt;bdo dir="rtl"&gt;</code>を適用すれば<code>rotateY</code>しなくても文字が反転してくれる。


dir="rtl"を設定すれば正しい表示がなされる。
: <bdo lang="egy" dir="rtl">𓂋𓐰𓏺𓈖𓆎𓅓𓏏𓐰𓊖</bdo>
: <bdo lang="ett" dir="rtl">𐌓𐌀𐌔𐌍𐌀</bdo>


: <span lang="ar" dir=rtl>حرق تاكاهيرو كاراساوا القرآن وأهان محمدًا.</span>
但しフォントにこの機能が付いていないことも考えられるので、<code>transform: rotateY(180deg);</code>の方が確実である。


=== ルビ ===
=== ルビ ===
==== rubyタグ ====
HTMLのrubyタグで振り仮名を振ることができる<ref>https://developer.mozilla.org/ja/docs/Web/HTML/Element/ruby</ref>。
HTMLのrubyタグで振り仮名を振ることができる<ref>https://developer.mozilla.org/ja/docs/Web/HTML/Element/ruby</ref>。


&lt;ruby&gt;唐澤貴洋&lt;rt&gt;からさわたかひろ&lt;/rt&gt;&lt;/ruby&gt;と記述することで下のような出力がなされる。
<code>&lt;ruby&gt;唐澤貴洋&lt;rt&gt;からさわたかひろ&lt;/rt&gt;&lt;/ruby&gt;</code>と記述することで下のような出力がなされる。


<ruby>唐澤貴洋<rt>からさわたかひろ</rt></ruby>
: <ruby>唐澤貴洋<rt>からさわたかひろ</rt></ruby>


更にrpタグを用いることで、rubyタグへの対応が無いブラウザでの表示をコントロールできる(でも今時そんなことをする必要はなさそう)。
更にrpタグを用いることで、rubyタグへの対応が無いブラウザでの表示をコントロールできる。検索結果のスニペットにも現れるので、利用した方が良い。


例えば&lt;ruby lang="ko"&gt;唐澤貴洋&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;당택귀양&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の結果は下のようになる。
例えば<code>&lt;ruby lang="ko"&gt;唐澤貴洋&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;당택귀양&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;</code>の結果は下のようになる。


<ruby lang="ko">唐澤貴洋<rp>(</rp><rt>당택귀양</rt><rp>)</rp></ruby>
: <ruby lang="ko">唐澤貴洋<rp>(</rp><rt>당택귀양</rt><rp>)</rp></ruby>


但しrubyタグに対応していなければ下のようになる。
但しrubyタグに対応していなければ下のようになる。


<span lang="ko">唐澤貴洋(당택귀양)</span>
: <span lang="ko">唐澤貴洋(당택귀양)</span>
 
上の韓国語の例では、ハングルが詰まっているために漢字との対応が見づらくなっている。
これを解決するためにrbタグを用いるように解説しているサイトもあるが、標準ではなく推奨されておらず<ref>https://developer.mozilla.org/ja/docs/Web/HTML/Element/rb</ref>、動作も安定しない。
面倒でも一文字ずつrtタグを振る必要がある。
 
次の例では、上の例文はrbタグを用いて<code>&lt;ruby lang="ko"&gt;唐&lt;rb&gt;澤&lt;rb&gt;貴&lt;rb&gt;洋&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;당&lt;rt&gt;택&lt;rt&gt;귀&lt;rt&gt;양&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;</code>と、下の例ではrbタグを用いずに<code>&lt;ruby lang="ko"&gt;唐&lt;rt&gt;당&lt;/rt&gt;澤&lt;rt&gt;택&lt;/rt&gt;貴&lt;rt&gt;귀&lt;/rt&gt;洋&lt;rt&gt;양&lt;/rt&gt;&lt;/ruby&gt;</code>と記述している。
 
: <ruby lang="ko">唐<rb>澤<rb>貴<rb>洋<rp>(</rp><rt>당<rt>택<rt>귀<rt>양<rp>)</rp></ruby>
: <ruby lang="ko">唐<rt>당</rt>澤<rt>택</rt>貴<rt>귀</rt>洋<rt>양</rt></ruby>
 
ルビが長いと本文のスペースが大きくなる。
 
: <ruby lang="vi">唐澤貴洋<rp>(</rp><rt>Đường Trạch Quý Dương</rt><rp>)</rp></ruby>
 
 
[[#縦書き|縦書き]]ではルビも縦書きになる。
次に示す例では、<code>&lt;span lang="min-TW" style="writing-mode: vertical-rl;"&gt;&lt;ruby&gt;唐澤貴洋&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;トン𚿳チ̅ェㇰ𚿶クイ𚿱イウ𚿻&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;&lt;/span&gt;</code>と記述している。
 
: <span lang="min-TW" style="writing-mode: vertical-rl;"><ruby>唐澤貴洋<rp>(</rp><rt>トン𚿳チ̅ェㇰ𚿶クイ𚿱イウ𚿻</rt><rp>)</rp></ruby></span>
 
rubyタグに直接<code>writing-mode: vertical-rl;</code>を指定するとブラウザによってはルビの位置がおかしくなる。
次の例では<code>&lt;ruby style="writing-mode: vertical-rl;"&gt;唐澤貴洋&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;𛀜𛃰𛀿𛂞𛁟𛀙𛂭𛄃&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;</code>というように書いている。
 
: <ruby style="writing-mode: vertical-rl;">唐澤貴洋<rp>(</rp><rt>𛀜𛃰𛀿𛂞𛁟𛀙𛂭𛄃</rt><rp>)</rp></ruby>
 
 
台湾で用いられている{{wpl|注音符号}}は横書きでも漢字の右側に振られる。
これを表示する為に、CSSのruby-positionにはinter-characterというものが定められている<ref>https://developer.mozilla.org/ja/docs/Web/CSS/ruby-position</ref>が、これを実装しているブラウザは2021年9月7日現在ない。
次に示す例では、rubyタグに<code>ruby-position: inter-character;</code>を設定している。
 
: <ruby lang="zh-TW" style="ruby-position: inter-character;">唐<rt>ㄊㄤˊ</rt>澤<rt>ㄗㄜˊ</rt>貴<rt>ㄍㄨㄟˋ</rt>洋<rt>ㄧㄤˊ</rt></ruby>
 
どうしても再現したいなら、一つの文字毎にrubyタグで囲み、spanタグに<code>writing-mode: vertical-rl;</code>というCSSを記述して[[#縦書き|縦書き]]にする。
文字が縦方向にガタつくことを防ぐため、spanタグにはCSSで<code>vertical-align: middle;</code>を指定している。
 
下の例では、「唐」の字は<code>&lt;span style="writing-mode: vertical-rl; vertical-align: middle;"&gt;&lt;ruby&gt;唐&lt;rt&gt;ㄊㄤˊ&lt;/rt&gt;&lt;/ruby&gt;&lt;/span&gt;</code>で記述されている。他の文字も全く同じようにしている。
先述の通り、rubyタグでCSSを指定せず、それを囲むspanタグを書いてそちらに指定する。
 
: <span lang="zh-TW"><span style="writing-mode: vertical-rl; vertical-align: middle;"><ruby>唐<rt>ㄊㄤˊ</rt></ruby></span><span style="writing-mode: vertical-rl; vertical-align: middle;"><ruby>澤<rt>ㄗㄜˊ</rt></ruby></span><span style="writing-mode: vertical-rl; vertical-align: middle;"><ruby>貴<rt>ㄍㄨㄟˋ</rt></ruby></span><span style="writing-mode: vertical-rl; vertical-align: middle;"><ruby>洋<rt>ㄧㄤˊ</rt></ruby></span></span>
 
 
ルビを2つ振るには、rubyタグ内でrtcタグ<ref>https://developer.mozilla.org/ja/docs/Web/HTML/Element/rtc</ref>を用いてルビをグループ化する。
但しこれも2021年9月7日現在Firefox以外では動作しない。
次の例では<code>&lt;ruby&gt;唐澤貴洋&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;たうたくきやう&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;rtc&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;だうぢやくきやう&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/rtc&gt;&lt;/ruby&gt;</code>と記述している。
 
: <ruby>唐澤貴洋<rp>(</rp><rt>たうたくきやう</rt><rp>)</rp><rtc><rp>(</rp><rt>だうぢやくきやう</rt><rp>)</rp></rtc></ruby>
 
rubyタグを入れ子にすれば複数のルビを振ることができる。
下の例では<code>&lt;ruby lang="zh"&gt;&lt;ruby style="ruby-position: under; -webkit-ruby-position: after;"&gt;唐泽贵洋&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;Тон Зә Гуй Ён&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;táng zé guì yáng&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;</code>と記述している。
 
: <ruby lang="zh"><ruby style="ruby-position: under; -webkit-ruby-position: after;">唐泽贵洋<rp>(</rp><rt>Тон Зә Гуй Ён</rt><rp>)</rp></ruby><rp>(</rp><rt>táng zé guì yáng</rt><rp>)</rp></ruby>
 
2つ目のrubyタグで<code>ruby-position: under;</code>を指定することで、ルビを文字の下に振っている。
しかしruby-positionは実験的なCSSであり、特にSafariに於いては2021年9月8日現在正式な実装がされていないため、ベンダープレフィックスを付けなければならない<ref>https://developer.mozilla.org/ja/docs/Web/CSS/ruby-position#browser_compatibility</ref>。
また取ることのできる値もW3Cの定めたものとは異なる。ここでは<code>-webkit-ruby-position: after;</code>と記述している。
 
このようになるべく多くのブラウザで挙動を同じくする為には、各ブラウザの対応を確認する必要がある<ref>但しIEのレンダリングが死んでもなんとも思わん</ref>。
 
==== subタグ・supタグ ====
訓民正音が制定された直後の李氏朝鮮では、訛った漢語の読みを正そうという意識の下「{{wpl|東国正韻}}」が定められた。
その漢字音を広める為に漢字の下に小さい訓民正音で読みを書くという試みが一時期なされていた<ref>[https://doi.org/10.11435/gengo.148.0_61 福井玲 (2015) 中世韓国語の「傍点」をめぐるいくつかの基本的な課題. 『言語研究』148: 61–80. 日本言語学会.]</ref>が、当時博く用いられていた音とは異なっていたために受け入れられず、直ぐに廃れた<ref>{{Archive|http://www.tufs.ac.jp/ts/personal/choes/korean/middle/Jmiddle.html|https://archive.ph/vMk10|中期朝鮮語の話 - 趙義成の朝鮮語研究室}}</ref>。
 
これをHTML上で表現するにはsubタグを用いれば良い。以下の例では、訓民正音の部分のみをすべてsubタグで囲んでいる。
 
: 世<sub>솅〮</sub>宗<sub>조ᇰ</sub>御<sub>ᅌᅥᆼ〮</sub>製<sub>졩〮</sub>訓<sub>훈〮</sub>民<sub>민</sub>正<sub>져ᇰ〮</sub>音<sub>ᅙᅳᆷ</sub>
 
但しこれを[[#縦書き|縦書き]]にすると読みの部分が左に寄ってしまう。
<div lang="okm" style="writing-mode: vertical-rl;">
予<sub>영</sub>ㅣ爲〬<sub>윙〮</sub>此<sub>ᄎᆞᆼ〯</sub>憫<sub>민〯</sub>然<sub>ᅀᅧᆫ</sub>ᄒᆞ〮야〮
</br>
新<sub>신</sub>制<sub>졩〮</sub>二<sub>ᅀᅵᆼ〮</sub>十<sub>씹〮</sub>八<sub>바ᇙ〮</sub>字<sub>ᄍᆞᆼ〮</sub>ᄒᆞ〮노니〮
<br>
欲<sub>욕〮</sub>使<sub>ᄉᆞᆼ〯</sub>人<sub>ᅀᅵᆫ</sub>人<sub>ᅀᅵᆫ</sub>ᄋᆞ〮로〮易〬<sub>잉〮</sub>習<sub>씹〮</sub>ᄒᆞ〮야〮
<br>
便<sub>뼌</sub>於<sub>ᅙᅥᆼ</sub>日<sub>ᅀᅵᇙ〮</sub>用<sub>요ᇰ〮</sub>耳<sub>ᅀᅵᆼ〯</sub>니라〮
</div>
 
これを防ぐには、subタグの代わりにsupタグを用いれば良い。
<div lang="okm" style="writing-mode: vertical-rl;">
나랏〮말〯ᄊᆞ미〮
<br>
中<sup>듀ᇰ</sup>國<sup>귁〮</sup>에〮달아〮
<br>
文<sup>문</sup>字<sup>ᄍᆞᆼ〮</sup>와〮로〮서르ᄉᆞᄆᆞᆺ디〮아니〮ᄒᆞᆯᄊᆡ〮
<br>
이〮런젼ᄎᆞ〮로〮어린〮百<sup>ᄇᆡᆨ</sup>姓<sup>셔ᇰ〮</sup>이〮니르고〮져〮호ᇙ〮배〮이셔〮도〮
<br>
ᄆᆞᄎᆞᆷ〮내〯제ᄠᅳ〮들〮시러〮펴디〮몯〯ᄒᆞᇙ노〮미〮하니〮라〮
</div>
 
=== CSSグリッドレイアウト ===
CSSグリッドレイアウトを用いれば、様々な要素を2次元に配置することができる。
<code>display: grid;</code>プロパティや<code>display: inline-grid;</code>プロパティを指定し、<code>grid-template-rows</code>と<code>grid-template-columns</code>でグリッドの区切り方を設定して、<code>grid-row</code>や<code>grid-column</code>で要素の位置を決定する。
詳しくは<ref>{{Archive|1=https://developer.mozilla.org/ja/docs/Web/CSS/CSS_grid_layout/Basic_concepts_of_grid_layout|2=https://archive.vn/kLI9p|3=グリッドレイアウトの基本概念}} - MDN Web Docs</ref>や<ref>[https://qiita.com/kura07/items/e633b35e33e43240d363 CSS Grid Layout を極める!(基礎編)] - Qiita</ref>を参照。


=== 縦書き ===
<ruby style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
日本語の縦書きはCSSでwriting-mode: vertical-rl;<ref>https://developer.mozilla.org/ja/docs/Web/CSS/writing-mode</ref>を指定すれば良い。
<span style="grid-row: 2/4; grid-column: 1/4;">若</span>
英数字を縦にするにはtext-orientation: upright;<ref>https://developer.mozilla.org/ja/docs/Web/CSS/text-orientation</ref>を指定する。
<rt style="grid-row: 1; grid-column: 1/4; font-size: .5em;">ごと</rt>
<sup style="grid-row: 1; grid-column: 3; font-size: .5em;">シ</sup>
<sub style="grid-row: 3; grid-column: 3; font-size: .5em;">㆑</sub>
</ruby>は以下のHTMLで実現している。
 
<code>
&lt;ruby style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;"&gt;
&lt;span style="grid-row: 2/4; grid-column: 1/4;"&gt;若&lt;/span&gt;
&lt;rt style="grid-row: 1; grid-column: 1/4; font-size: .5em;"&gt;ごと&lt;/rt&gt;
&lt;sup style="grid-row: 1; grid-column: 3; font-size: .5em;"&gt;シ&lt;/sup&gt;
&lt;sub style="grid-row: 3; grid-column: 3; font-size: .5em;"&gt;㆑&lt;/sub&gt;
&lt;/ruby&gt;
</code>
 
このレイアウトやrubyタグ、sub/subタグなどを用いて漢文の返り点や吐などを表記することができる。
但し返り点と送り仮名は<ref>{{Archive|https://www.jagat.or.jp/archives/21315|https://archive.vn/gJXMa|漢文の句読点や返り点の配置処理}} - 公益社団法人日本印刷技術協会</ref>や<ref>{{Archive|https://www.jagat.or.jp/%3Fp%3D21747|https://archive.vn/KY86h|漢文の送り仮名・読み仮名の配置処理}} - 公益社団法人日本印刷技術協会</ref>に従っている。
<div style="writing-mode: vertical-rl; font-size: 20px;">
<span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">無</span>
<sup style="grid-row: 1; grid-column: 2/4; font-size: .5em;">クシテ</sup>
<sub style="grid-row: 3; grid-column: 3; font-size: .5em;">㆓</sub>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">恆</span>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">產</span>
<sub style="grid-row: 3; grid-column: 3; font-size: .5em;">㆒</sub>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">而</span>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">有󠄁</span>
<sup style="grid-row: 1; grid-column: 2/4; font-size: .5em;">ル</sup>
<sub style="grid-row: 3; grid-column: 3; font-size: .5em;">㆓</sub>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">[[恒心|恆心]]</span>
<sub style="grid-row: 3; grid-column: 4; font-size: .5em;">㆒</sub>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">者󠄁、</span>
<sup style="grid-row: 1; grid-column: 2/4; font-size: .5em;">ハ</sup>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">惟</span>
<sup style="grid-row: 1; grid-column: 2/4; font-size: .5em;">ダ</sup>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">士</span>
<sup style="grid-row: 1; grid-column: 2/4; font-size: .5em;">ノミ</sup>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">爲</span>
<sup style="grid-row: 1; grid-column: 2/4; font-size: .5em;">ス</sup>
<sub style="grid-row: 3; grid-column: 3; font-size: .5em;">㆑</sub>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">能。</span>
<sup style="grid-row: 1; grid-column: 2/4; font-size: .5em;">クスルヲ</sup>
</span><br>
<span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">若</span>
<sup style="grid-row: 1; grid-column: 2/4; font-size: .5em;">キハ</sup>
<sub style="grid-row: 3; grid-column: 3; font-size: .5em;">㆑</sub>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">民</span>
<sup style="grid-row: 1; grid-column: 2/4; font-size: .5em;">ノ</sup>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">則</span>
<sup style="grid-row: 1; grid-column: 2/4; font-size: .5em;">チ</sup>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">無</span>
<sup style="grid-row: 1; grid-column: 2/4; font-size: .5em;">ケレバ</sup>
<sub style="grid-row: 3; grid-column: 3; font-size: .5em;">㆓</sub>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">恆</span>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">產、</span>
<sub style="grid-row: 3; grid-column: 3; font-size: .5em;">㆒</sub>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">因</span>
<sup style="grid-row: 1; grid-column: 2/4; font-size: .5em;">リテ</sup>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">無</span>
<sup style="grid-row: 1; grid-column: 2/4; font-size: .5em;">シ</sup>
<sub style="grid-row: 3; grid-column: 3; font-size: .5em;">㆓</sub>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">恆</span>
</span><span style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">心。</span>
<sub style="grid-row: 3; grid-column: 3; font-size: .5em;">㆒</sub>
</span>
<br><br>
無恒産而有恒心者󠄁<sup style="vertical-align: 150%; font-size: .5em; margin-top: -0.5em; margin-bottom: -0.5em">阝</sup>惟士<sup style="vertical-align: 150%; font-size: .5em; margin-top: -.5em; margin-bottom: -0.5em">乀</sup>爲能<sup style="vertical-align: 150%; font-size: .5em; margin-top: -.5em; margin-bottom: -3.5em">乀仒匕卜</sup><br>
若民則無恒産<sup style="vertical-align: 150%; font-size: .5em; margin-top: -.5em; margin-bottom: -1.5em">乀丆</sup>因無恒心<sup style="vertical-align: 150%; font-size: .5em; margin-top: -.5em; margin-bottom: -2.5em">乀匕亽</sup>
<br><br>
無恒産而有恒心者󠄁<sup style="font-size: 0.5em;">ᄂᆞᆫ</sup> 惟士<sup style="font-size: 0.5em;">ᅟᅵ</sup>爲能<sub style="font-size: 0.5em; display: inline-block;">이어<br>니와</sub><br>
若民則無恒産<sup style="font-size: 0.5em;">이면</sup> 因無恒心<sub style="font-size: 0.5em; display: inline-block;">이니<br>라</sub>
<br><br>
<ruby style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">將</span>
<rt style="grid-row: 1; grid-column: 1/4; font-size: .5em;">まさ</rt>
<sup style="grid-row: 1; grid-column: 3; font-size: .5em;">ニ</sup>
<sub style="grid-row: 3; grid-column: 3; font-size: .5em;">㆑</sub>
<span style="grid-row: 4; grid-column: 1/4; font-size: .5em;">す</span>
</ruby><ruby style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">殺󠄀</span>
<rt style="grid-row: 1; grid-column: 1/4; font-size: .5em;">ころ</rt>
<sup style="grid-row: 1; grid-column: 3; font-size: .5em;">サント</sup>
<sub style="grid-row: 3; grid-column: 3; font-size: .5em;">㆓</sub>
</ruby><ruby style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">唐󠄁</span>
<rt style="grid-row: 1; grid-column: 1/4; font-size: .5em;">から</rt>
</ruby><ruby style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">澤</span>
<rt style="grid-row: 1; grid-column: 1/4; font-size: .5em;">さは</rt>
</ruby><ruby style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">貴</span>
<rt style="grid-row: 1; grid-column: 1/4; font-size: .5em;">たか</rt>
</ruby><ruby style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;">
<span style="grid-row: 2/4; grid-column: 1/4;">洋。</span>
<rt style="grid-row: 1; grid-column: 1/4; font-size: .5em;">ひろ</rt>
<sup style="grid-row: 1; grid-column: 3; font-size: .5em;">ヲ</sup>
<sub style="grid-row: 3; grid-column: 3; font-size: .5em;">㆒</sub>
</ruby>
<br><br>
將殺󠄀唐󠄁澤貴洋<sup style="vertical-align: 150%; font-size: .5em; margin-top: -0.5em; margin-bottom: -3.5em">丷飞匕亽</sup>
<br><br>
將殺󠄀唐󠄁澤貴洋<sub style="font-size: 0.5em; display: inline-block;">ᄒᆞᄂᆞ<br>니라</sub>
</div>
 
=== positionプロパティ ===
CSSの<code>position: relative;</code>と<code>position: absolute;</code>を組み合わせて、特定の範囲内に要素を配置することができる<ref>[https://developer.mozilla.org/ja/docs/Web/CSS/position position] - MDN Web Docs</ref>
 
ある要素に<code>position: relative;</code>を指定して、<code>top: 10%;</code>や<code>left: 40px;</code>などを指定すると、その要素が本来あった場所から下側に要素の大きさの10%、右に40pxずらすことができる。
<code>position: absolute;</code>を指定して同様に<code>top</code>や<code>left</code>(または<code>bottom</code>や<code>right</code>)を指定すると、直近の位置指定されている祖先(<code>position</code>の計算値が<code>static</code>以外である祖先)またはそれが無ければページ全体の初期位置から指定した分だけずれた位置に配置できる。
 
これを利用すれば、ある位置のspanタグに<code>position: relative;</code>を指定して<code>top</code>などは指定せず、その中の要素に<code>position: absolute;</code>と<code>top</code>などを指定することで要素の位置を<code>position: relative;</code>のタグの中で調節することができる。
 
次に示す例では、<code>&lt;span lang="jsl" style="position: relative;"&gt;&lt;span style="position: absolute; top: 0.05em; left: -1em;"&gt;𝠀𝪛𝪪&lt;/span&gt;&lt;span style="position: absolute; top: 0; left: -0.3em;"&gt;𝧫𝪛𝪬&lt;/span&gt;&lt;span style="position: absolute; top: 0.05em; left: 0.3em;"&gt;𝧫&lt;/span&gt;&lt;span style="position: absolute; top: 0.15em; left: 1em;"&gt;𝠀𝪛𝪢&lt;/span&gt;&lt;/span&gt;</code>と記述している。
 
&nbsp;<span lang="jsl" style="position: relative;"><span style="position: absolute; top: 0.05em; left: -1em;">𝠀𝪛𝪪</span><span style="position: absolute; top: 0; left: -0.3em;">𝧫𝪛𝪬</span><span style="position: absolute; top: 0.05em; left: 0.3em;">𝧫</span><span style="position: absolute; top: 0.15em; left: 1em;">𝠀𝪛𝪢</span></span>
 
=== 順序付きリスト ===
MediaWikiでは<code>*</code>で始まる行は番号なしリスト、<code>#</code>で始まる行は番号付きリストとして表示される({{wpl|Help:Lists/ja|Help:リスト|project=mediawikiwiki}})。
 
番号付きリストの番号の種類を変更したい場合には、HTMLの<code>ol</code>タグとCSSの<code>list-style-type</code>プロパティを利用する必要がある。
利用できる番号の一覧はMozillaの[https://developer.mozilla.org/ja/docs/Web/CSS/list-style-type list-style-type]のページから確認できる。
 
以下の例では、<code>&lt;ol style="list-style-type: tibetan; column-count: 2;"&gt;</code>によって、チベット文字の数字を設定している。各リスト項目を記載する<code>li</code>タグには何のプロパティも指定していない。
 
<div lang="sa-Tibt">
༄༅། །ཨཥྚཱ་དྷྱཱ་ཡཱི༎
 
 
བཱ་ཀྱ་ཀཱ་རཾ་བ་ར་རུ་ཙིཾ་བྷཱ་ཥྱ་ཀཱ་རཾ་པ་ཏཉྫ་ལིམ།
 
པཱ་ཎི་ནིཾ་སཱུ་ཏྲ་ཀཱ་རཾ་ཙ་པྲ་ཎ་ཏོ྅སྨི་མུ་ནི་ཏྲ་ཡམ༎
 
ཨ་ཐ་པྲ་ཐ་མོ྅དྷྱཱ་ཡཿ། པྲ་ཐ་མཿཔཱ་དཿ།
<ol style="list-style-type: tibetan; column-count: 2;">
<li>བྲྀདྡྷི་རཱ་དཻཙ།</li>
<li>ཨ་དེང་གུ་ཎཿ།</li>
<li>ཨི་ཀོ་གུ་ཎ་བྲྀདྡྷཱི།</li>
<li>ན་དྷཱ་ཏུ་ལོ་པ་ཨཱརྡྷ་དྷཱ་ཏུ་ཀེ</li>
<li>ཀྔི་ཏི་ཙ།</li>
<li>དཱི་དྷཱི་བེ་བཱི་ཊཱམ།</li>
<li>ཧ་ལོ྅ནནྟ་རཱཿསཾ་ཡོ་གཿ།</li>
<li>མུ་ཁ་ནཱ་སི་ཀཱ་བ་ཙ་ནོ྅ནུ་ནཱ་སི་ཀཿ།</li>
<li>ཏུ་ལྱཱ་སྱ་པྲ་ཡཏྣཾ་ས་བརྞམ།</li>
<li>ནཱཛྫྷ་ལཽ།</li>
<li>ཨཱི་དཱུ་དེདྡྭི་བ་ཙ་ནཾ་པྲ་གྲྀ་ཧྱམ།</li>
<li>ཨ་ད་སོ་མཱཏ།</li>
<li>ཤེ</li>
<li>ནི་པཱ་ཏ་ཨེ་ཀཱ་ཛ་ནཱང་།</li>
<li>ཨོཏ།</li>
<li>སམྦུདྡྷཽ་ཤཱ་ཀ་ལྱ་སྱེ་ཏཱ་བ་ནཱརྵེ།</li>
<li>ཨུ་ཉཿ།</li>
<li>ཨཱུྃ།</li>
<li>ཨཱི་དཱུ་ཏཽ་ཙ་སཔྟམྱརྠེ།</li>
<li>དཱ་དྷཱ་གྷྭ་དཱཔ།</li>
</ol>
</div>
 
[https://developer.mozilla.org/ja/docs/Web/CSS/list-style-type list-style-type]のページに存在しない数字などについては、自分で番号を書く必要がある。
 
以下の例では、バイクシュキー文字の数字をリスト番号とするために、<code>ol</code>タグには<code>style="list-style-type: none; column-count: 2;"</code>を設定し、デフォルトで表示される番号を非表示にしている。
更に各<code>li</code>タグは<code>&lt;li style="position: relative;"&gt;&lt;span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;"&gt;𑱚.&lt;/span&gt;𑰪𑰴𑰟𑰿𑰠𑰰𑰨𑰯𑰟𑰹𑰓𑰿𑱁&lt;/li&gt;</code>のように記載している。
<code>user-select</code>は2024年8月4日現在Safariに対応していないため、ベンダープレフィックスも指定している。
 
<div lang="sa-Bhks">
𑰀𑰬𑰿𑰘𑰯𑰠𑰿𑰧𑰯𑰧𑰱
 
𑰌𑰼
 
𑰪𑰯𑰎𑰿𑰧𑰎𑰯𑰨𑰽𑱃𑰪𑰨𑰨𑰲𑰓𑰰𑰽𑱃𑰥𑰯𑰬𑰿𑰧𑰎𑰯𑰨𑰽𑱃𑰢𑰝𑰗𑰿𑰕𑰩𑰰𑰦𑰿𑱁
 
𑰢𑰯𑰜𑰰𑰡𑰰𑰽𑱃𑰭𑰳𑰝𑰿𑰨𑰎𑰯𑰨𑰽𑱃𑰓𑱃𑰢𑰿𑰨𑰜𑰝𑰺𑱀𑰭𑰿𑰦𑰰𑱃𑰦𑰲𑰡𑰰𑰝𑰿𑰨𑰧𑰦𑰿𑱂
 
𑰀𑰞𑱃𑰢𑰿𑰨𑰝𑰦𑰺𑱀𑰠𑰿𑰧𑰯𑰧𑰾𑱁 𑰢𑰿𑰨𑰝𑰦𑰾𑱃𑰢𑰯𑰟𑰾𑱁
 
<ol style="list-style-type: none; column-count: 2;">
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱚.</span>𑰪𑰴𑰟𑰿𑰠𑰰𑰨𑰯𑰟𑰹𑰓𑰿𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱛.</span>𑰀𑰟𑰸𑰒𑰿𑱃𑰐𑰲𑰜𑰾𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱜.</span>𑰂𑰎𑰺𑱃𑰐𑰲𑰜𑰪𑰴𑰟𑰿𑰠𑰱𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱝.</span>𑰡𑱃𑰠𑰯𑰝𑰲𑰩𑰺𑰢𑱃𑰁𑰨𑰿𑰠𑰠𑰯𑰝𑰲𑰎𑰸𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱞.</span>𑰎𑰿𑰒𑰰𑰝𑰰𑱃𑰓𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱟.</span>𑰟𑰱𑰠𑰱𑰪𑰸𑰪𑰱𑰘𑰯𑰦𑰿𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱠.</span>𑰮𑰩𑰺𑱀𑰡𑰡𑰿𑰝𑰨𑰯𑰾𑱃𑰭𑰽𑰧𑰺𑰐𑰾𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱡.</span>𑰦𑰲𑰏𑰡𑰯𑰭𑰰𑰎𑰯𑰪𑰓𑰡𑰺𑱀𑰡𑰲𑰡𑰯𑰭𑰰𑰎𑰾𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱢.</span>𑰝𑰲𑰩𑰿𑰧𑰯𑰭𑰿𑰧𑰢𑰿𑰨𑰧𑰝𑰿𑰡𑰽𑱃𑰭𑰪𑰨𑰿𑰜𑰦𑰿𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱣.</span>𑰡𑰯𑰕𑰿𑰖𑰩𑰻𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱣𑱚.</span>𑰃𑰟𑰳𑰟𑰸𑰟𑰿𑰟𑰿𑰪𑰰𑰪𑰓𑰡𑰽𑱃𑰢𑰿𑰨𑰐𑰴𑰮𑰿𑰧𑰦𑰿𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱣𑱛.</span>𑰀𑰟𑰭𑰺𑱃𑰦𑰯𑰝𑰿𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱣𑱜.</span>𑰫𑰸𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱣𑱝.</span>𑰡𑰰𑰢𑰯𑰝𑱃𑰊𑰎𑰯𑰕𑰡𑰯𑰒𑰿𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱣𑱞.</span>𑰌𑰝𑰿𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱣𑱟.</span>𑰭𑰦𑰿𑰤𑰲𑰟𑰿𑰠𑰻𑱃𑰫𑰯𑰎𑰩𑰿𑰧𑰭𑰿𑰧𑰸𑰝𑰯𑰪𑰡𑰯𑰨𑰿𑰬𑰸𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱣𑱠.</span>𑰄𑰗𑰾𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱣𑱡.</span>𑰅𑰼𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱣𑱢.</span>𑰃𑰟𑰳𑰝𑰻𑱃𑰓𑱃𑰭𑰢𑰿𑰝𑰦𑰿𑰧𑰨𑰿𑰞𑰸𑱁</li>
<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱤.</span>𑰟𑰯𑰠𑰯𑱃𑰐𑰿𑰪𑰟𑰯𑰢𑰿𑱁</li>
</ol>
</div>
 
 
モンゴル文字の場合にも、<code>list-style-type: mongolian;</code>を指定すれば番号を変更できる。
 
横書きの中に埋め込んだ[[#縦書き|縦書き]]リストの場合には、番号が上の行と重なってしまう可能性があるため、十分な数の改行を入れてスペースを取る必要がある。
 
 
<div lang="sa-Mong" style="writing-mode: vertical-lr; text-orientation: sideways;">
ᠠ᠋ ᢔᢌᠠ᠋᠎ᠠ ᢑᠾᢈ᠎ᠠ᠎ᠠ ᠶ᠋ᢈᢈ
 
ᢀᠣᠸᠠ
 
ᠸᠠ᠋᠎ᠠ ᢉᢈ᠎ᠠ ᢉᠠ᠎ᠠ ᢀᠷᠠ᠋ ᠸᠠ᠋ ᠷᠠ᠋ ᠷᠦ᠍ ᢀᢋᢈ ᠪᠾᠠ᠋᠎ᠠ ᢔᢈ᠎ᠠ ᢉᠠ᠎ᠠ ᢀᠷᠠ᠋ ᢒᠠ ᢐᠠ᠋ ᡛᠽᠠ᠋ ᠯᢈᠮ᠃
 
ᢒᠠ᠎ᠠ ᢏᢈ ᢀᠨᢈ ᠰᠣᠦ ᢐᠷᠠ᠋ ᢉᠠ᠎ᠠ ᢀᠷᠠ᠋ ᢋᠠ᠋ ᢒᠷ᠎ᠠ ᢏᠠ᠋ ᢐᢅᠣᠸᠠ ᠰᠮᢈ ᠮᠦ᠍ ᠨᢈ ᢐᠷᠠ᠋ ᠶ᠋ᠠᠮ᠅
 
ᠠ᠋ ᠲᠠ᠋ ᢒᠷ᠎ᠠ ᠲᠠ᠋ ᠮᢅᠣᠸᠠ ᢑᠾᢈ᠎ᠠ᠎ᠠ ᠶ᠋ᠠ᠋ᢁ᠋᠃ ᢒᠷ᠎ᠠ ᠲᠠ᠋ ᠮᠠ᠋ᢁ᠋ ᢒᠠ᠎ᠠ ᢑᠠ᠋ᢁ᠋᠃
 
<ol style="list-style-type: mongolian; column-count: 2;">
<li>ᠪᠠᠷᢈ ᢑᢑᠾᢈ ᠷᠠ᠋᠎ᠠ ᢑᠧᠧᢋ᠃</li>
<li>ᠠ᠋ ᢑᠧᢊ ᠺᠦ ᢏᠠ᠋ᢁ᠋᠃</li>
<li>ᢈ ᢉᠣᠸᠠ ᠺᠦ ᢏᠠ᠋ ᠪᠠᠷᢈ ᢑᢑᠾᢈᢈ᠃</li>
<li>ᠨᠠ᠋ ᢑᠾᠠ᠋᠎ᠠ ᢐᠦ᠍ ᠯᠣᠸᠠ ᢒᠠ ᠠ᠋᠎ᠠ ᠷᢑᠾᠠ᠋ ᢑᠾᠠ᠋᠎ᠠ ᢐᠦ᠍ ᢉᠧ᠃</li>
<li>ᢉᢊᢈ ᢐᢈ ᢋᠠ᠋᠃</li>
<li>ᢑᢈᢈ ᢑᠾᢈᢈ ᠸᠧ ᠸᢈᢈ ᢌᠠᢗ᠊ᠮ᠃</li>
<li>ᠾᠠ᠋ ᠯᢅᠣᠸᠠ ᠨᠠ᠋ ᠨᢐᠠ᠋ ᠷᠠ᠋᠎ᠠᢁ᠋ ᢀᠰᠠ᠋ ᠶ᠋ᠣᠸᠠ ᠺᠠᢁ᠋᠃</li>
<li>ᠮᠦ᠍ ᠻᠠ ᠨᠠ᠋᠎ᠠ ᠰᢈ ᢉᠠ᠎ᠠ ᠸᠠ᠋ ᢋᠠ᠋ ᠨᢅᠣᠸᠠ ᠨᠦ᠍ ᠨᠠ᠋᠎ᠠ ᠰᢈ ᢉᠠᢁ᠋᠃</li>
<li>ᢐᠦ᠍ ᠯᢈ᠎ᠠ᠎ᠠ ᠰᢈ᠎ᠠ ᢒᠷ᠎ᠠ ᠶ᠋ᠠ᠋ ᢀᢐᠨᠠ᠋ ᠰᠠ᠋ ᠸᠠ᠋ ᠷᢏᠠᠮ᠃</li>
<li>ᠨᠠ᠋᠎ᠠ ᠽᠽᠾᠠ᠋ ᠯᠣᠸᠸᠠ᠃</li>
<li>ᢈᢈ ᢑᠣᠦ ᢑᠧ ᢑᢑᠸᢈ ᠸᠠ᠋ ᢋᠠ᠋ ᢀᠨᠠ᠋ ᢒᠷ᠎ᠠ ᠺᠠᠷᢈ ᠾᠶ᠋ᠠᠮ᠃</li>
<li>ᠠ᠋ ᢑᠠ᠋ ᠰᠣᠸᠠ ᠮᠠᢗᢐ᠃</li>
<li>ᠱᠧ᠃</li>
<li>ᠨᢈ ᢒᠠ᠎ᠠ ᢐᠠ᠋ ᠧ ᢉᠠ᠎ᠠ ᠽᠠ᠋ ᠨᠠᢗᢊ᠃</li>
<li>ᠣᠸᠠᢐ᠃</li>
<li>ᠰᠠ᠋ ᠮᠪᠦ ᢑᢑᠾᠣᠸᠸᠠ ᠱᠠ᠋᠎ᠠ ᢉᠠ ᠯᢈ᠎ᠠ ᠰᠶ᠋ᠧ ᢐᠠ᠋᠎ᠠ ᠸᠠ᠋ ᠨᠠ᠋᠎ᠠ ᠷᢔᠧ᠃</li>
<li>ᠦ᠋ ᡛᠠ᠋ᢁ᠋᠃</li>
<li>ᢀᠣᠦ᠃</li>
<li>ᢈᢈ ᢑᠣᠦ ᢐᠣᠸᠸᠠ ᢋᠠ᠋ ᠰᠠ᠋ ᢒᢐᠠ᠋ ᠮᢈ᠎ᠠ ᠷᠲ᠋ᠧ᠃</li>
<li>ᢑᠠ᠋᠎ᠠ ᢑᠾᠠ᠋᠎ᠠ ᠺᠾᢦ ᢑᠠᢗᢒ᠃</li>
</ol>
</div>
 
しかし、モンゴル数字には多様な書字方向があり、再現するには工夫が必要となる。
 
これを修正するには、本来のHTML+CSSなら<code>::marker</code>擬似要素<ref>[https://developer.mozilla.org/ja/docs/Web/CSS/::marker ::marker] - MDN Web Docs</ref>を利用するが、MediaWikiではCommon.cssを編集しないと利用できない。
そのため、それ以外の方法でうまく調整する必要がある。
 
下の例では、各項目を<code>&lt;li style="position: relative;"&gt;&lt;span style="writing-mode: horizontal-tb; position: absolute; left: 0.5em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;"&gt;᠑&lt;/span&gt;&lt;span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;"&gt;᠂&lt;/span&gt;ᠪᡳᡵ᠋ᡳ ᡩᢡᡳ ᡵᠠᢇ ᡩ᠋ᡝ᠋ᡳ᠌ᢜ᠈&lt;/li&gt;</code>として表示を変更している。
バイクシュキー文字で<code>right</code>方向にかけていた調節と同様のものを<code>bottom</code>方向にかけているが、数字だけ横書きにするために<code>writing-mode: horizontal-tb;</code>を設定している。その上、数字の位置を調整するため、1桁ならば<code>left: 0.5em;</code>、2桁ならば<code>left: 0.25em;</code>を指定している。
 
 
<div lang="sa-Mong" style="writing-mode: vertical-lr; text-orientation: sideways;">
ᠠ ᢢᢞᠠᢇ ᢡᠶᠠᢇ ᠶᡳᡳ
 
ᢀᠣ
 
ᠸᠠᢇ ᡬᠶᠠ ᡬᠠᢇ ᢀᡵᠠ ᠸᠠ ᡵᠠ ᡵᡠ᠌ ᢀᢜᡳ᠌ ᢨᠠᢇ ᢢᠶᠠ ᡬᠠᢇ ᢀᡵᠠ ᢒᠠ ᢠᠠ ᠨᡳᠶᡯᠠ ᠯᡳᠮ᠈
 
ᢒᠠᢇ ᢏᡳ ᢀᠨᡳ ᠰᡠᠣ ᢠᡵᠠ ᡬᠠᢇ ᢀᡵᠠ ᢜᠠ ᢒᡵᠠ ᢏᠠ ᢠᢅᠣ᠋ ᠰᠮᡳ ᠮᡠ᠌ ᠨᡳ ᢠᡵᠠ ᠶᠠᠮ᠉
 
ᠠ ᡨ᠋ᠠ ᢒᡵᠠ ᡨ᠋ᠠ ᠮᢅᠣ᠋ ᢡᠶᠠᢇ ᠶᠠᢁ᠈ ᢒᡵᠠ ᡨ᠋ᠠ ᠮᠠᢁ ᢒᠠᢇ ᡩᠠᢁ᠈
 
<ol style="list-style-type: none; column-count: 2;">
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.5em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᠪᡳᡵ᠋ᡳ ᡩᢡᡳ ᡵᠠᢇ ᡩ᠋ᡝ᠋ᡳ᠌ᢜ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.5em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠒</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᠠ ᡩ᠋ᡝ᠋ᠩ ᡤᡡ ᢏᠠᢁ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.5em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠓</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᡳ ᡬᠣ ᡤᡡ ᢏᠠ ᠪᡳᡵ᠋ᡳ ᡩᢡᡳᡳ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.5em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠔</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᠨᠠ ᢡᠠᢇ ᢠᡠ᠍ ᠯᠣ᠋ ᢒᠠ ᠠᢇ ᡵᢡᠠ ᢡᠠᢇ ᢠᡠ᠍ ᡤᡝ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.5em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠕</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᡬᢛᡳ ᢠᡳ ᢜᠠ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.5em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠖</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᡩᡳᡳ ᢡᡳᡳ ᠸᡝ ᠸᡳᡳ ᢞᠠ‌᠇ᠠᠮ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.5em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠗</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᡥᠠ ᠯᢅᠣ᠋ ᠨᠠ ᠨᢠᠠ ᡵᠠᢇᢁ ᢀᠰᠠ ᠶᠣ᠋ ᡤᠠᢁ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.5em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠘</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᠮᡠ᠌ ᠺᠠ ᠨᠠᢇ ᠰᡳ ᡬᠠᢇ ᠸᠠ ᢜᠠ ᠨᢅᠣ᠋ ᠨᡠ᠌ ᠨᠠᢇ ᠰᡳ ᡬᠠᢁ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.5em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠙</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᢠᡠ᠍ ᠯᠶᠠᢇ ᠰᠶᠠ ᢒᡵᠠ ᠶᠠ ᢀᢠᠨᠠ ᠰᠠ ᠸᠠ ᡵᢏᠠᠮ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.25em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠐</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᠨᠠᢇ ᡯᢝᠠ ᠯᠣᠣ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.25em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠑</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᡳᡳ ᡩ᠋ᡠ᠋ᠣ ᡩ᠋ᡝ᠋ ᡩᡩ᠋ᠸᡳ ᠸᠠ ᢜᠠ ᢀᠨᠠ ᢒᡵᠠ ᡤ᠌ᡳᡵ᠋ᡳ ᡥᠶᠠᠮ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.25em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠒</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᠠ ᡩᠠ ᠰᠣ᠋ ᠮᠠ‌᠇ᠠᢠ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.25em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠓</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᡧᡝ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.25em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠔</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᠨᡳ ᢒᠠᢇ ᢠᠠ ᡝ ᡬᠠᢇ ᡯᠠ ᠨᠠ‌᠇ᠠᠩ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.25em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠕</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᠣᢠ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.25em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠖</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᠰᠠ ᠮᠪᡠ ᡩᢡᠣᠣ ᡧᠠᢇ ᡬᠠ ᠯᠶᠠ ᠰᠶᡝ ᢠᠠᢇ ᠸᠠ ᠨᠠᢇ ᡵᢢᡝ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.25em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠗</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᡠ ᠨᡳᠶᠠᢁ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.25em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠘</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᢀᡠᠣ᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.25em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠙</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᡳᡳ ᡩ᠋ᡠ᠋ᠣ ᢠᠣᠣ ᢜᠠ ᠰᠠ ᢒᢠᠠ ᠮᠶᠠ ᡵᡨᡝ᠋᠈</li>
<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.25em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠒᠐</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᡩᠠᢇ ᢡᠠᢇ ᢚᠣᠸᠠ ᡩᠠ‌᠇ᠠᢒ᠈</li>
</ol>
</div>
 
また下の例では、数字を直立させるために<code>text-orientation: upright;</code>を設定している。
<code>&lt;li style="position: relative;"&gt;&lt;span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;"&gt;᠑᠂&lt;/span&gt;ᡖᠠᠷᢧ᠋ ᡑᡑᡙᡅ ᠷᡃᠠ᠋ ᡑᡄᡄᡓ᠃&lt;/li&gt;</code>のように記載している。
 
 
<div lang="sa-Mong" style="writing-mode: vertical-lr; text-orientation: sideways;">
ᠠ᠋ ᢔᢌᡃᢇ᠋ ᡑᡙᡃᢧ ᡕᡅᡃ
 
ᢀᡆ
 
ᡖᡃᠠ᠋ ᠺᢧ ᠺᠠᡃ ᢀ᠋ᠷᠠ᠋ ᡖᠠ᠋ ᠷᠠ᠋ ᠷᡉ ᢀ᠋ᡓᡅ ᡋᡙᡃᠠ᠋ ᢔᢧ ᠺᠠᡃ ᢀ᠋ᠷᠠ᠋ ᢒ᠋ᠠ᠋ ᢐᠠ᠋ ᡛᡜ᠋ᢇ᠋ ᠯᡅᡏ᠃
 
ᢒ᠋ᠠᡃ ᢏᡅ ᢀ᠋ᠨᡅ ᠰᡉᡃ ᢐᠷᢇ᠋ ᠺᠠᡃ ᢀ᠋ᠷᠠ᠋ ᡓᠠ᠋ ᢒ᠋ᠷᢇ᠋ ᢏᠠ᠋ ᢐᢅᡆ ᠰᡏᡅ ᡏᡉ ᠨᡅ ᢐᠷᢇ᠋ ᡕᠠᡏ᠅
 
ᠠ᠋ ᡐᠠ᠋ ᢒ᠋ᠷᢇ᠋ ᡐᠠ᠋ ᡏᢅᡆ ᡑᡙᡃᢧ ᡕᠠ᠋ᢁ᠃ ᢒ᠋ᠷᢇ᠋ ᡐᠠ᠋ ᡏᠠ᠋ᢁ ᢒ᠋ᠠᡃ ᡑᠠ᠋ᢁ᠃
 
<ol style="list-style-type: none; column-count: 2; column-gap: 60px;">
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠂</span>ᡖᠠᠷᢧ᠋ ᡑᡑᡙᡅ ᠷᡃᠠ᠋ ᡑᡄᡄᡓ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠒᠂</span>ᠠ᠋ ᡑᡄᡊ ᢉᡉ ᢏᠠ᠋ᢁ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠓᠂</span>ᡅ ᠺᡆ ᢉᡉ ᢏᠠ᠋ ᡖᠠᠷᢧ᠋ ᡑᡑᡙᡅᡃ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠔᠂</span>ᠨᠠ᠋ ᡑᡙᡃᠠ᠋ ᢐᡉ ᠯᡆ ᢒ᠋ᠠ᠋ ᠠ᠋ᡃᠠ᠋ ᠷᡑᡙᢇ᠋ ᡑᡙᡃᠠ᠋ ᢐᡉ ᠺᡄ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠕᠂</span>ᠺᢊᡅ ᢐᡅ ᡓᠠ᠋᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠖᠂</span>ᡑᡅᡃ ᡑᡙᡅᡃ ᡖᡄ ᡖᡅᡃ ᢌᠠᡃᡏ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠗᠂</span>ᡙᠠ᠋ ᠯᢅᡆ ᠨᠠ᠋ ᠨᢐᢇ᠋ ᠷᡃᠠ᠋ᢁ ᢀ᠋ᠰᠠ᠋ ᡕᡆ ᢉᠠᢁ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠘᠂</span>ᡏᡉ ᠻᠠ ᠨᡃᠠ᠋ ᠰᡅ ᠺᠠᡃ ᡖᠠ᠋ ᡓᠠ᠋ ᠨᢅᡆ ᠨᡉ ᠨᡃᠠ᠋ ᠰᡅ ᠺᠠᢁ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠙᠂</span>ᢐᡉ ᠯᡃᢧ ᠰᢧ ᢒ᠋ᠷᢇ᠋ ᡕᠠ᠋ ᢀ᠋ᢐᠨᢇ᠋ ᠰᠠ᠋ ᡖᠠ᠋ ᠷᢏᠠᡏ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠐᠂</span>ᠨᡃᠠ᠋ ᡜ᠋ᡜ᠋ᡙᢇ᠋ ᠯᡆᡆ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠑᠂</span>ᡅᡃ ᡑᡉᡃ ᡑᡄ ᡑᡑᢦᡅ ᡖᠠ᠋ ᡓᠠ᠋ ᢀ᠋ᠨᠠ᠋ ᢒ᠋ᠷᢇ᠋ ᢉᠠᠷᢧ᠋ ᡙᢧᡏ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠒᠂</span>ᠠ᠋ ᡑᠠ᠋ ᠰᡆ ᡏᠠᡃᢐ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠓᠂</span>ᠱᡄ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠔᠂</span>ᠨᡅ ᢒ᠋ᠠᡃ ᢐᠠ᠋ ᡄ ᠺᠠᡃ ᡜ᠋ᠠ᠋ ᠨᠠᡃᡊ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠕᠂</span>ᡆᢐ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠖᠂</span>ᠰᠠ᠋ ᡏᡋᡉ ᡑᡑᡙᡆᡆ ᠱᡃᠠ᠋ ᠺᠠ ᠯᢧ ᠰᢧᡄ ᢐᡃᠠ᠋ ᡖᠠ᠋ ᠨᡃᠠ᠋ ᠷᢔᡄ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠗᠂</span>ᡉ ᡛᠠ᠋ᢁ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠘᠂</span>ᢀᡉᡃ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠙᠂</span>ᡅᡃ ᡑᡉᡃ ᢐᡆᡆ ᡓᠠ᠋ ᠰᠠ᠋ ᢒ᠋ᢐᢇ᠋ ᡏᢧ ᠷᡐᡄ᠃</li>
<li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠒᠐᠂</span>ᡑᡃᠠ᠋ ᡑᡙᡃᠠ᠋ ᢉᡙᢦ ᡑᠠᡃᢒ᠃</li>
</ol>
</div>
 
=== 文字参照 ===
HTMLのマークアップに使われる文字や互換漢字などは、その文字そのものを書いても別の形に変換されてしまう。
これを防ぐには{{wpl|文字参照}}を用いて別の形で記述する。
 
例えば<や>はHTMLのマークアップには欠かせない文字である。
下記の説明ではHTMLのマークアップ自体を見える形で表示しているが、当然ただHTMLを書くだけではマークアップは変換されてレンダリングされてしまう。
 
*記述上
 
<code>
&lt;div style="border: solid 3px #000000;"&gt;
&lt;p&gt;東京高等裁判所平成27年(ネ)第1347号&lt;/p&gt;
&lt;p&gt;・依頼者はステロイドを過剰に処方され色素沈着&パニック障害発症&lt;/p&gt;
&lt;p&gt;・病院を相手取った控訴審になぜかパカデブを起用(医療に強い唐澤貴夫弁護士と混同した可能性大)&lt;/p&gt;
&lt;p&gt;・パカデブ、医療訴訟の経験もないのに引き受ける&lt;/p&gt;
&lt;p&gt;・案の定爆死。医療ミスの事実すら完全に否定され控訴棄却という最悪の結果に&lt;/p&gt;
&lt;p&gt;・依頼者は病院の責任も追及できず30万ぼったくられて泣き寝入り&lt;/p&gt;
&lt;/div&gt;
</code>
 
*実際の表示
 
<div style="border: solid 3px #000000;">
<p>東京高等裁判所平成27年(ネ)第1347号</p>
<p>・依頼者はステロイドを過剰に処方され色素沈着&パニック障害発症</p>
<p>・病院を相手取った控訴審になぜかパカデブを起用(医療に強い唐澤貴夫弁護士と混同した可能性大) </p>
<p>・パカデブ、医療訴訟の経験もないのに引き受ける </p>
<p>・案の定爆死。医療ミスの事実すら完全に否定され控訴棄却という最悪の結果に </p>
<p>・依頼者は病院の責任も追及できず30万ぼったくられて泣き寝入り</p>
</div>
 
「記述上」に示したように表示するには、&lt;の代わりに<code>&amp;lt;</code>と、&gt;の代わりに<code>&amp;gt;</code>と記述している。
 
*編集画面でのHTMLソースの記述
 
<code>
&amp;lt;div style="border: solid 3px #000000;"&amp;gt;
&amp;lt;p&amp;gt;東京高等裁判所平成27年(ネ)第1347号&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;・依頼者はステロイドを過剰に処方され色素沈着&パニック障害発症&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;・病院を相手取った控訴審になぜかパカデブを起用(医療に強い唐澤貴夫弁護士と混同した可能性大)&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;・パカデブ、医療訴訟の経験もないのに引き受ける&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;・案の定爆死。医療ミスの事実すら完全に否定され控訴棄却という最悪の結果に&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;・依頼者は病院の責任も追及できず30万ぼったくられて泣き寝入り&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
</code>
 
&amp;lt;と表示したいなら<code>&amp;amp;lt;</code>と記述すれば良い。
 
或いは<code><nowiki><nowiki></nowiki></code>を用いる方法もある。
 
 
文字参照には文字実体参照と数値文字参照とが存在する。
 
文字実体参照は上記に示したように<code>&amp;lt;</code>のような形で文字を表すものである。
一部の文字にのみ定められている。
 
数値文字参照はISO/IEC 10646に定められた数字(Unicodeのものと同一)を参照して表示するものである。
例えば&#x003C;(U+003C)を表示するなら、<code>&amp;#x003C;</code>と記述すれば良い。
これを用いれば{{wpl|CJK互換漢字}}のように正規化されてしまう文字もそのまま表示できる。
但し異体字を表示する目的で用いるなら、互換漢字を用いずに[[#異体字セレクタ|IVS異体字]]を用いるべきである。
 
=== Webフォント ===


<span style="writing-mode: vertical-rl;">2021年に唐澤貴洋knifeで<br>メッタ刺しにして殺す。</span>
''注: この方法は外部のフォントファイルをダウンロードするので、自サイトに置いたWebフォントファイルを用いるよりも動作が遅くなる可能性がある。[[MediaWiki:Common.css]]では濫用せず、[[利用者:Fet-Fe/common.css]]などの利用者毎のcommon.cssで用いるようにすること。''
<span style="writing-mode: vertical-rl; text-orientation: upright;">2021年に唐澤貴洋knifeで<br>メッタ刺しにして殺す。</span>


モンゴル語の場合はwriting-mode: vertical-lr;を指定する。
# [https://fonts.google.com Google Fonts]から使いたいフォントを探す
Safariだと文字の向きが正しくなくなるので、text-orientation: sideways;も指定する。
# 使いたいフォントをクリックし、使いたいスタイルを選んで"Select this style"をクリック
# 必要な分だけ選んだら、画面右上のボタンをクリックすると選んだfont familiesを見ることができる。@importをクリックし、<code><nowiki>@import url('https://fonts.googleapis.com/css2?family=Cormorant+Infant&display=swap');</nowiki></code>のような文字列をコピーする
# CSSファイルにコピーしたテキストを貼り付け、保存する
# あとは<code><nowiki><span style="font-family: 'Cormorant Infant';">Такахиро Карасава Қуръонни куйдирди ва Муҳаммадни ҳақорат қилди.</span></nowiki></code>のようにフォントを選択したり、CSSファイル側で設定したりできる


<span lang="mn" style="writing-mode: vertical-lr; text-orientation: sideways;">ᠮᠤᠩᠭᠤᠯ<br>ᠬᠡᠯᠡ</span>
== 気になる資料 ==


回鶻語やソグド語の縦書きにはwriting-mode: sideways-lr;を用いる。
* <del>Pablo Sánchez Domínguez, ''Origen y gramática del romance andalusí'', Córdoba: Editorial Almuzara, 2020.</del>
但しFirefox以外のブラウザには対応していないので、writing-mode: vertical-rl;をtransform: rotateZ(180deg);で180度回転させる方が汎用性が高い。
* <del>Fr. Francis T.J. Sdb, ''First Ever Wancho Grammar cum English-Wancho Tutor'', Dimapur: Don Bosco Publications, 2007.</del>
* <del>Gholam Djelani Davary, ''Baktrisch : ein Wörterbuch'', Heidelberg: Julius Groos, 1982.</del>
* <del>Alfred Schmitt, ''Die Bamum-Schrift'', Wiesbaden: Otto Harrassowitz, 1963.</del>
* <del>Idelette Dugast and Mervyn David Waldegrave Jeffreys, ''L’écriture des Bamum: sa naissance, son évolution, sa valeur phonétique, son utilisation'', Mémoires de l’Institut Français d’Afrique Noire, Centre du Cameroun, 1950.</del>
* <del><span lang="zh">刘自齐, 赵丽明. ''板塘苗歌选''. 岳麓书社, 1992.</span></del>
* <del><span lang="zh">银龙. ''城步苗款''. 岳麓书社, 2004.</span></del>
* <del><span lang="zh">石万达. ''石板塘苗歌选编''. 湖南人民出版社, 2014.</span></del>
* <span lang="zh">施群霞. ''湘西苗剧剧本选''. 湘西自治州民族文艺创作研究所, 2019.</span>


<span lang="sog" dir="rtl "style="writing-mode: vertical-rl; text-orientation: sideways; transform: rotateZ(180deg);">𐽂𐼰𐼸𐼰𐼳𐼷𐽀𐼷 𐼸𐼰𐽀𐼰𐼼𐼰𐼴𐼷<br>𐼾𐽂𐼶𐼴𐼰𐼷𐼺𐼸𐼰𐼻𐽘</span>
どっかにPDFでも落ちてないナリかねえ


== 脚註 ==
== 脚註 ==
<references />
<references />

2024年11月14日 (木) 00:15時点における最新版


حَرَقَ تَــــــاكَاهِيرُو كَارَاسَاوَا ٱلْقُرْآنَ وَأَهَانَ مُحَمَّدًا ﷺ

يَخْتَبِئُ فِي شَرِكَةِ Steadiness لِلْمُحَامَاةِ،

مِيتَا-تْسُونَامَاتْشِي Duplex R’s ٣٠١،

٢-٢-١٥ مِيتَا، حَيِّ مِينَاتُو، طُوكِيُو، ١٠٨-٠٠٧٣ ٱلْيَابَانِ

فَٱقْتُلُوهُ حَيْثُ وَجَدتُّمُوهُ

آمِينَ

コテハン: ◆A9IJuhAh722B

連絡はトークページまでお願いします

夜泣きの魚拓取得用スクリプト

利用者:夜泣き/スクリプトをお借りして作業しています

Unicodeのノウハウ

結合文字

Unicodeの中には前の文字とくっ付いてあたかも合わせて一文字のように振る舞う結合文字がある。 デーヴァナーガリーやヘブライ文字の母音字などが良い例である。(क + ◌ा → काא + ◌ָ ← א‌ָ)

日本語では濁点や半濁点の結合文字が存在する。通常の濁点と半濁点はそれぞれ゛(U+309B)と゜(U+309C)であるが、結合文字は ゙(U+3099)と ゚(U+309A)である。 「が」などの濁音には専用の文字コードが存在するので、通常これらを用いることはない。 しかし結合文字を用いることでUnicodeに登録されていない文字を表現することができる。例えば「ン゙」「墓゚」など。結合文字でない「墓゜」よりも見栄えが良い。

ヴィラーマ

サンスクリットなどの表記に用いられるアブギダの子音字はデフォルトで母音aを持つ。母音を持たないことを示すためにはヴィラーマ(梵: བི་རཱ་མ། virāma、巴: විරාම virāma)を追加する必要がある。 多くのアブギダでヴィラーマは子音字同士を結合させる。デーヴァナーガリーの場合は

स + ◌् + थ → स् + थ → स्थ

のように結合する。

シンハラ文字の ්(අල් ලකුණ al-lakuṇaまたはහල් ලකුණ hal-lakuṇa、ヴィラーマに相当)はデフォルトでは合字を作らないが、ゼロ幅接合子を使うと合字になる。

チベット文字の◌྄(སྲོག་མེད། srog med、ヴィラーマに相当)は基本的に使われず、普通は་ (ཚེག tsheg)で区切られた音節内の位置で母音の有無が判断される。 saṃskṛtamと書く場合はསཾ་ས྄ཀ྄རྀ་ཏ་མ྄།ではなく、སཾསྐྲྀ་ཏམ།となる。 また、チベット語のbod yigབོད་ཡིགとなる。

パスパ文字や、アブギダではないアリ・ガリ文字には抑もヴィラーマがないため、チベット文字と同様の書き方となる。 但し区切りはtshegではなくスペースになる。 以下はsaṃskṛtambod yigをそれぞれの文字で書いたものである。

パスパ文字: ꡳꡛ ꡛꡀꡱꡞ ꡈꡏ
ꡎꡡꡊ ꡗꡞꡂ

アリ・ガリ文字: ᢀᠰᠠ᠋ ᠰᢉᠠᠷᢈ ᢐᠠᠮ
ᠪᠣᠸᠠᢑ ᠶ᠋ᢈᠺ᠋

満洲アリ・ガリ文字: ᢀᠰᠠ ᠰᡤᡳᡵ᠋ᡳ ᢠᠠᠮ
ᠪᠣᡨ ᠶᡳᡴ

トド文字: ᢀ᠋ᠰᠠ᠋ ᠰᠺᠠᠷᢧ᠋ ᢐᠠᡏ
ᡋᡆᡑ ᡕᡅᡎ

横書き方形文字の場合は、モンゴル語/チベット語用の終端子音記号(𑨳、U+11A33)、梵語/チベット語用のヴィラーマ(𑨴、U+11A34)、梵語とチベット語で使われる文字結合用のsubjoiner(𑩇、U+11A47)がそれぞれ別の文字コードに割り当てられている。 チベット語の場合は、終端子音記号(U+11A33)と𑩁 (𑨤𑨄𑨍 tsheg、U+11A41)のいずれかをチベット文字のtshegの代わりに利用する。

梵語: 𑨰𑨸𑨰𑩇𑨋𑨼𑨉𑨙𑨢𑨴 (saṃskṛtam)

モンゴル語: 𑨢𑨆𑨏𑨳𑨋𑨆𑨬𑨳 (moŋɣol)

チベット語: 𑨠𑨆𑨛𑩁𑨪𑨁𑨍 / 𑨠𑨆𑨛𑨳𑨪𑨁𑨍𑨳 (bod yig)

ソヨンボ文字の場合は、モンゴル語の終端子音記号(U+11A8A~U+11A95)と、梵語とチベット語で使われる文字結合用のsubjoiner(𑪙、U+11A99)が存在する。 チベット語の場合は𑪚 (𑩶𑩔𑩞 tsheg、U+11A9A)をチベット文字のtshegの代わりに利用する。 梵語の終端子音を明示的に表す方法は無く、文脈から判断する必要がある。

梵語: 𑪁𑪖𑪁𑪙𑩜𑩙𑩫𑩴 (saṃskṛtam)

モンゴル語: 𑩴𑩖𑪌𑩜𑩖𑪒 (moŋɣol)

チベット語: 𑩲𑩖𑩭𑪚𑩻𑩑𑩞 (bod yig)

漢字構成記述文字

Unicodeに登録されていない漢字を登録されている字の組み合わせで表現するための文字[1]。「⿰馬K」など。 システム側で上手く合成するように要求するわけではないので見栄えは悪いが、⿱や⿵、再帰的な記述を用いて複雑な字形も表せる。

異体字セレクタ

UnicodeのCJK Unified Ideographsに載っていない書体の漢字でも、U+E0100〜U+E01EFの異体字セレクタ(IVS; Ideographic Variation Sequence)[2]を用いて表現することができる。

例えば「唐」という漢字には縦棒が下に突き出ている異体字が存在する。これを表現するには「唐」の後ろにU+E0101を付ければ良い(唐󠄁)。見えない場合はおま環。

異体字セレクタセレクタで実験したり、GlyphWikiIVS異体字メーカーから検索したりすることで書体を見つけることができる。

アポストロフィ

キーボードから入力しやすいのは'(APOSTROPHE、U+0027)であるが、アポストロフィとしては他の文字が推奨されている[3]

英語やフランス語のアポストロフィとして推奨されるのは’(RIGHT SINGLE QUOTATION MARK、U+2019)である[4]。これは‘’(U+2018, U+2019)という引用符の右側のものと同じである。なので‘I’ll kill Takahiro Karasawa.’のように同じ文字で2つの役割となる。

一方でタヒチ語などでの声門閉鎖音の正書法やIPAの放出音、ウクライナ語での軟音化などを表す文字はʼ(MODIFIER LETTER APOSTROPHE、U+02BC)である[5]

記号としてのアポストロフィがU+2019、文字としてのアポストロフィがU+02BCであると捉えることもできる。

''や""は引用符として用いることも推奨されておらず、‘’や“”(U+201C, U+201D)が推奨される。ソフトウェアによっては自動で置換される。 トラパネコ語やラパ・ヌイ語など、直線的なアポストロフィが必要な言語ではꞌ(LATIN SMALL LETTER SALTILLO、U+A78C)やꞋ(LATIN CAPITAL LETTER SALTILLO、U+A78B)が利用される[6]

他にウズベク語やハワイ語で用いられるʻ(MODIFIER LETTER TURNED COMMA、U+02BB)、אやءなどのラテン文字転写に用いるʾ(MODIFIER LETTER RIGHT HALF RING、U+02BE)、עやعの転写に用いられるʿ(MODIFIER LETTER LEFT HALF RING、U+02BF)なども存在する。

またネネツ語やガナサン語ではˮ(MODIFIER LETTER DOUBLE APOSTROPHE、U+02EE)が"(U+0022)や”(U+201D)の代わりに用いられる。

双方向テキスト

このwikiは日本語に対応しているので基本的に書字方向はltrとなっている。 そのため普通にアラビア文字などrtl属性の文字を書くと、ピリオドがラテン文字のものと共通しているためにそれだけ右側に行ってしまう。

أَقْتُلُ تَاكَاهِيرُو كَارَاسَاوَا.

ピリオドの後ろにRight-to-left mark (RLM, U+200F, &rlm;)やArabic letter mark(ALM, U+061C)を付ければ正しい表示がなされる。 下の例では、<span lang="he">אהרוג את טאקאהירו קאראסאווה.&rlm;</span><span lang="ar">أَقْتُلُ تَاكَاهِيرُو كَارَاسَاوَا.&#x061C;</span>と記述した。

אהרוג את טאקאהירו קאראסאווה.‏
أَقْتُلُ تَاكَاهِيرُو كَارَاسَاوَا.؜

RLMとALMとの違いは、Unicodeの双方向アルゴリズム[7]に関係している。 Unicodeの各文字にはBidirectional Character Typeが設定されている[8]。 このうち強い属性としてはL (左から右)、R (右から左)、AL (アラビア文字の右から左)がある。 RLMはR属性、ALMはAL属性を持つ。 これらは双方向アルゴリズムに於いて後続する弱い属性の扱いに影響する。 例えばW2という手続きでは、AL属性の文字の後ろにEN (European Number)が後続する場合、そのENはAN (Arabic Number)扱いになるが、R属性に後続するENはENのままとなる。 AL属性の文字には、アラビア文字の他にもシリア文字、ターナ文字、ハニーフィー・ロヒンギャ文字、ソグド文字などがある[9]

カンマ(،、ARABIC COMMA、U+060C)やパキスタンのナスタアリーク体で用いられる句点(۔、ARABIC FULL STOP、U+06D4)、アフリカのアジャミーの句点(؞、ARABIC TRIPLE DOT PUNCTUATION MARK、U+061E)などの句読点はもとよりAL属性を持つため、Arabic letter markは不要。 またAL属性やRTL属性の文字で挟んでもRight-to-left markやArabic letter markは不要。

ちなみに書字方向を制御する特殊文字を利用した攻撃方法も存在する[10]。悪用してはいけない(戒め)

HTMLで同様の動作をさせるには#dir属性を参照。この方法と組み合わせても良い[11]

スペースとゼロ幅文字

スペース

通常のスペース(U+0020)以外にノーブレークスペース(U+00A0、HTMLでは&nbsp;)が存在する。 このスペースが存在する部分では自動改行が行われない。

それとは別にnarrow no-break space(U+202F)も存在する。 ノーブレークスペースと似たような特徴があるが、こちらは幅が狭く、モンゴル文字の接尾辞やパスパ文字の単語内スペースに用いられる。

通常のスペース: ꡏꡡꡃ ꡢꡡꡙ、U+202F: ꡏꡡꡃ ꡢꡡꡙ

単語結合子、ゼロ幅スペース

単語結合子(U+2060)はゼロ幅であり見た目には全く影響を及ぼさないが、その部分での改行を防ぐ。 逆にゼロ幅スペース(U+200B)は単語の切れ目を示し、改行可能な位置を明示する。

ゼロ幅非接合子

ゼロ幅非接合子(U+200C)は本来結合する文字を分離して表現するために用いられる。 ペルシャ語のمی‌کُشَم(私は殺す)はこれ無しではمیکُشَمという表示になり、接頭辞میが分離しない。

ウイグル語などテュルク語族やクルド語などで用いられるアラビア文字のうち、母音を表すهは後ろに文字が来てもアラビア語の語中形のようにならず、«ئاللاھۇ ئەكبەر»のように語末形のままとなる。これを表すには、中国のテュルク語やクルド語ではە(U+06D5)が使われる。 一方、イランやアフガニスタンのテュルク語や古いテュルク語では通常のアラビア文字のه(U+0647)とゼロ幅非接合子を組み合わせて表現される。

デーヴァナーガリーの場合はヴィラーマでの合字化を防ぐ。संरक्षक(サンラクシャカ)をसंरक्‌षकという表示に変える。

デュプロワイエ式速記では単語内での音節の切れ目に利用される。𛰣𛱇‌𛰚𛱛𛰅 𛱜‌𛱜 (Chinook wawa)はこれがないと𛰣𛱇𛰚𛱛𛰅 𛱜𛱜という表示になってしまう。

ゼロ幅接合子

ゼロ幅接合子(U+200D)もゼロ幅の文字であるが、こちらは接合することのできる文字を接合形に変形する。 デーヴァナーガリーなど多くのアブギダの子音字にヴィラーマを付けたものは後続の子音字と結合するが、ゼロ幅接合子を置けば後続子音字が無くても接合形をとる。

ञ + ◌् + U+200D → ञ् + U+200D → ञ्‍

アラビア文字でも同様になる。 アラビア語の一文字の前置詞は後続の単語と結合するが、後続の単語がアラビア文字でなかったとき、独立形で書かれる場合と頭字形で書かれる場合とがある。 後者の場合、このサイト(魚拓)に見られるように«بـToshiba»と表せる。 この例ではカシーダ(ARABIC TATWEEL、U+0640)を用いてبを頭字形にしているが、カシーダの分長くなってしまうので«ب‍؜Toshiba»のようにゼロ幅接合子を用いるのが良い。 なおソーステキスト上ではب&#x200D;&#x061C;ToshibaのようにArabic letter markと組み合わせている。 これは本来L属性扱いになるゼロ幅接合子をAL属性に変えるためである。

シンハラ文字の ්(U+0DCA、අල් ලකුණ al-lakuṇaまたはහල් ලකුණ hal-lakuṇa、ヴィラーマに相当)はデフォルトでは合字を作らない。

ද + ් + ධ → ද්ධ

一方でゼロ幅接合子を用いることで、合字を表示できる。但しフォントが対応していなければならない。

ද + U+200D + ් + ධ → ද‍්ධ
ද + ් + U+200D + ධ → ද්‍ධ

ゼロ幅接合子がal-lakuṇaの前に来れば結合、後に来れば省略の上で結合形となる。 またරの後、ය、රの前に් + U+200Dが来る場合にはそれぞれරේඵය (rēphaya), යංශය (yaṃśaya), රකාරාංශය (rakārāṃśaya)と呼ばれる特別な形になる[12]

ර + ් + U+200D + ක → ර්‍ක
ක + ් + U+200D + ය → ක්‍ය
ක + ් + U+200D + ර → ක්‍ර

ハイフン、マイナス、ハイフンマイナス

Unicodeには横棒の似たような文字が多数ある。 キーボードから打つのが一番簡単なのは-(HYPHEN-MINUS、U+002D)であるが、これはUnicode以前のハイフンやマイナスが区別されていなかった規格との互換性を保つための文字である。 Unicodeではハイフン(‐、U+2010)、NON-BREAKING HYPHEN(‑、U+2011、改行が起こらない)、HYPHEN BULLET(⁃、U+2043)、ソフトハイフン(­、U+00AD、英語の語中で改行される場合に可視化される)、算術記号のマイナス(−、U+2212)、各種ダッシュなどが区別されている。

ちなみに日本語の「レオナルド゠ダ゠ヴィンチ」のように語区切りや英文のハイフンの置き換えで用いられるのは、普通の等号(=、U+003D)ではなくKATAKANA-HIRAGANA DOUBLE HYPHEN(゠、U+30A0)である。 英文用には別のDOUBLE HYPHEN(⹀、U+2E40)がある。

HTMLとCSSのノウハウ

以下で用いているCSSはHTMLのstyle属性の部分に記述している。 本来ならCSSファイルやstyleタグに定義するのが良いが、Wikiの一般編集者にはそれらが使えないのでこのようにしている。

また以下のことを適用するには、適用したい部分をspanタグで囲んでそのタグ内に属性を記述すれば良いが、その部分が既に他のタグ(divタグなど)で囲まれているなら、態々spanタグを増やさずに既に書かれているタグに新たに属性を適用する方が適当である。

lang属性

言語を定義する[13]

例えば中国語で“唐泽贵洋。”と表示すると、Wikiのhtmlのlang設定が全体として"ja"(日本語)になっているため、簡体字だけ変なフォントで表示されることがよくある。 そのような時にlang="zh"を設定して<span lang="zh">“唐泽贵洋。”</span>とすれば“唐泽贵洋。”と表示される。

ウルドゥー語のlang="ur"を指定して<span lang="ur" dir="rtl">تاکاہیرو کاراساوا نے قُرْآن کو جَلایا وَ مُحَمَّد کو تَوہین کِیا۔</span>とすれば、環境によっては自動でナスタアリーク体のフォントを使用してくれる。

تاکاہیرو کاراساوا نے قُرْآن کو جَلایا وَ مُحَمَّد کو تَوہین کِیا۔

但し中国語、韓国語(ko)以外はあまり頼りにせず、自分でフォントを指定した方が良い(ユーザがそのフォントを持っていなければ意味は無いが)。 特にGoogleホーモのChromeとかいうゴリブラは極一部の言語しかlangタグが効いているように見えないので、ちゃんと見た目を整えたいならフォント指定は必須。 というかFirefoxを使う、それはできるよね。

言語コードについてはISO 639-1ISO 639-3あたりを用いるのが良い。


地域の指定もできる。ISO 3166などを用いる。 例えば台湾の中国語を指定したい場合、ISO 3166-1で示されているTWを用いてlang="zh-TW"とする。

“唐澤貴洋。”


更には文字種の指定も可能。 ペルシャ語の«تاکاهیرو کاراساوا قُرْآن را سوخت وَ بِه مُحَمَّد تَوهین کَرد.؜»をナスタアリーク体で表記したい場合、ISO 15924で定義されたアラビア文字ナスタアリーク体の符号Aranを用いてlang="fa-Aran"とする。 但しこれは当職の確認した限りではSafariでしか効かなかった。

تاکاهیرو کاراساوا قُرْآن را سوخت وَ بِه مُحَمَّد تَوهین کَرد.؜

シリア文字も環境が整っていればlang属性だけでフォントを切り替えられる。

エストランゲロ体:lang="syc-Syre"ܐܩܛܘܠ ܠܗ ܠ܏ܛܐܩ ܩܐܪܐܣܐܘܐ܂
セルトー体:lang="syc-Syrj"ܐܩܛܘܠ ܠܗ ܠ܏ܛܐܩ ܩܐܪܐܣܐܘܐ܂
ネストリウス体:lang="syc-Syrn"ܐܩܛܘܠ ܠܗ ܠ܏ܛܐܩ ܩܐܪܐܣܐܘܐ܂

しかしこれも環境によって動作が異なるのであまり当てにはせず、自分でフォントを指定した方が安定する。

dir属性

書字方向を示す[14]

このwikiは日本語に対応しているので基本的に書字方向はltrとなっている。 そのため普通にアラビア文字などrtl属性の文字を書くと、ピリオドがラテン文字のものと共通しているためにそれだけ右側に行ってしまう。

تاکاهيرو کاراساوا ممباکر القرءان دان مڠهينا محمد.

dir="rtl"を設定して<span lang="ms-Arab" dir=rtl>تاکاهيرو کاراساوا ممباکر القرءان دان مڠهينا محمد.</span>とすれば正しい表示がなされる。

تاکاهيرو کاراساوا ممباکر القرءان دان مڠهينا محمد.

Unicodeで同様の動作をさせるには#双方向テキストを参照。この方法と組み合わせても良い。

縦書き

日本語の縦書きはCSSでwriting-mode: vertical-rl;[15]を指定すれば良い。 英数字を縦にするにはtext-orientation: upright;[16]を指定する。

左: <span style="writing-mode: vertical-rl;">2021年に唐澤貴洋knifeで<br>メッタ刺しにして殺す。</span>

右: <span style="writing-mode: vertical-rl; text-orientation: upright;">2021年に唐澤貴洋knifeで<br>メッタ刺しにして殺す。</span>

2021年に唐澤貴洋knifeで
メッタ刺しにして殺す。
2021年に唐澤貴洋knifeで
メッタ刺しにして殺す。

モンゴル文字や満洲文字の場合はwriting-mode: vertical-lr;を指定する。 Safariだと文字の向きが正しくなくなるので、text-orientation: sideways;も指定する。

ᠮᠤᠩᠭᠤᠯ
ᠬᠡᠯᠡ

パスパ文字の場合も同様。

ꡎ ꡒꡱ ꡗꡖ ꡋ
ꡲꡊꡡ ꡲꡆꡠ ꡉꡠꡂ ꡌ

回鶻文字やソグド文字、SignWritingの縦書きにはwriting-mode: sideways-lr;を用いる。 但しFirefox以外のブラウザには対応していないので、writing-mode: vertical-rl;transform: rotateZ(180deg);で180度回転させる方が汎用性が高い。

𐽳𐽶𐽲𐽳𐽾
𐾀𐽶𐾁

右横書き

日本語でかつて用いられていた右横書きはHTMLの<bdo dir="rtl">[17][18]で実現できる。 但し下のように多くの環境で約物が逆向きになる。

「唐澤貴洋殺す。」

日本語には元々右横書きが存在せず、一行一文字の縦書きであるという説もある[19]

これをCSSで再現しようとするとwriting-mode: vertical-rl; height:1em;となる。 約物の表示が縦書きのそれとなるので非常に不自然である。

「唐澤貴洋殺す。」


エジプト語で用いられるヒエログリフや古イタリア文字(エトルリア文字など)は、Unicode上では欧米の言語のスタイルに合わせてltrとなっているものの、古代エジプトの碑文や古代イタリアの文書にはrtlのものが圧倒的に多い[20][21]

デフォルトのltr綴字方向では以下のように表示される。

𓂋𓐰𓏺𓈖𓆎𓅓𓏏𓐰𓊖
𐌓𐌀𐌔𐌍𐌀

古いrtl綴字方向を再現する場合、CSSでtransform: rotateY(180deg); display: inline-block;を指定すれば良い。

𓂋𓐰𓏺𓈖𓆎𓅓𓏏𓐰𓊖
𐌓𐌀𐌔𐌍𐌀

display: inline-block;[22]を指定しているのはspanタグがインライン要素であるからであり、ブロックレベル要素に適用するならこれは不要。 次の例はブロックレベル要素であるpタグにtransform: rotateY(180deg);のみ適用した例である。 右の方に寄っていてパッと見つけにくいので注意。

𓂋𓐰𓏺𓈖𓆎𓅓𓏏𓐰𓊖

𐌓𐌀𐌔𐌍𐌀

一応Unicodeの勧告ではデフォルトのltr方向が上書きされてrtl属性を持った場合左右反転すべきだとしている[23][24]。 これに従っているフォントであれば、<bdo dir="rtl">を適用すればrotateYしなくても文字が反転してくれる。

𓂋𓐰𓏺𓈖𓆎𓅓𓏏𓐰𓊖
𐌓𐌀𐌔𐌍𐌀

但しフォントにこの機能が付いていないことも考えられるので、transform: rotateY(180deg);の方が確実である。

ルビ

rubyタグ

HTMLのrubyタグで振り仮名を振ることができる[25]

<ruby>唐澤貴洋<rt>からさわたかひろ</rt></ruby>と記述することで下のような出力がなされる。

唐澤貴洋からさわたかひろ

更にrpタグを用いることで、rubyタグへの対応が無いブラウザでの表示をコントロールできる。検索結果のスニペットにも現れるので、利用した方が良い。

例えば<ruby lang="ko">唐澤貴洋<rp>(</rp><rt>당택귀양</rt><rp>)</rp></ruby>の結果は下のようになる。

唐澤貴洋(당택귀양)

但しrubyタグに対応していなければ下のようになる。

唐澤貴洋(당택귀양)

上の韓国語の例では、ハングルが詰まっているために漢字との対応が見づらくなっている。 これを解決するためにrbタグを用いるように解説しているサイトもあるが、標準ではなく推奨されておらず[26]、動作も安定しない。 面倒でも一文字ずつrtタグを振る必要がある。

次の例では、上の例文はrbタグを用いて<ruby lang="ko">唐<rb>澤<rb>貴<rb>洋<rp>(</rp><rt>당<rt>택<rt>귀<rt>양<rp>)</rp></ruby>と、下の例ではrbタグを用いずに<ruby lang="ko">唐<rt>당</rt>澤<rt>택</rt>貴<rt>귀</rt>洋<rt>양</rt></ruby>と記述している。

()

ルビが長いと本文のスペースが大きくなる。

唐澤貴洋(Đường Trạch Quý Dương)


縦書きではルビも縦書きになる。 次に示す例では、<span lang="min-TW" style="writing-mode: vertical-rl;"><ruby>唐澤貴洋<rp>(</rp><rt>トン𚿳チ̅ェㇰ𚿶クイ𚿱イウ𚿻</rt><rp>)</rp></ruby></span>と記述している。

唐澤貴洋(トン𚿳チ̅ェㇰ𚿶クイ𚿱イウ𚿻)

rubyタグに直接writing-mode: vertical-rl;を指定するとブラウザによってはルビの位置がおかしくなる。 次の例では<ruby style="writing-mode: vertical-rl;">唐澤貴洋<rp>(</rp><rt>𛀜𛃰𛀿𛂞𛁟𛀙𛂭𛄃</rt><rp>)</rp></ruby>というように書いている。

唐澤貴洋(𛀜𛃰𛀿𛂞𛁟𛀙𛂭𛄃)


台湾で用いられている注音符号は横書きでも漢字の右側に振られる。 これを表示する為に、CSSのruby-positionにはinter-characterというものが定められている[27]が、これを実装しているブラウザは2021年9月7日現在ない。 次に示す例では、rubyタグにruby-position: inter-character;を設定している。

ㄊㄤˊㄗㄜˊㄍㄨㄟˋㄧㄤˊ

どうしても再現したいなら、一つの文字毎にrubyタグで囲み、spanタグにwriting-mode: vertical-rl;というCSSを記述して縦書きにする。 文字が縦方向にガタつくことを防ぐため、spanタグにはCSSでvertical-align: middle;を指定している。

下の例では、「唐」の字は<span style="writing-mode: vertical-rl; vertical-align: middle;"><ruby>唐<rt>ㄊㄤˊ</rt></ruby></span>で記述されている。他の文字も全く同じようにしている。 先述の通り、rubyタグでCSSを指定せず、それを囲むspanタグを書いてそちらに指定する。

ㄊㄤˊㄗㄜˊㄍㄨㄟˋㄧㄤˊ


ルビを2つ振るには、rubyタグ内でrtcタグ[28]を用いてルビをグループ化する。 但しこれも2021年9月7日現在Firefox以外では動作しない。 次の例では<ruby>唐澤貴洋<rp>(</rp><rt>たうたくきやう</rt><rp>)</rp><rtc><rp>(</rp><rt>だうぢやくきやう</rt><rp>)</rp></rtc></ruby>と記述している。

唐澤貴洋たうたくきやうだうぢやくきやう

rubyタグを入れ子にすれば複数のルビを振ることができる。 下の例では<ruby lang="zh"><ruby style="ruby-position: under; -webkit-ruby-position: after;">唐泽贵洋<rp>(</rp><rt>Тон Зә Гуй Ён</rt><rp>)</rp></ruby><rp>(</rp><rt>táng zé guì yáng</rt><rp>)</rp></ruby>と記述している。

唐泽贵洋Тон Зә Гуй Ёнtáng zé guì yáng

2つ目のrubyタグでruby-position: under;を指定することで、ルビを文字の下に振っている。 しかしruby-positionは実験的なCSSであり、特にSafariに於いては2021年9月8日現在正式な実装がされていないため、ベンダープレフィックスを付けなければならない[29]。 また取ることのできる値もW3Cの定めたものとは異なる。ここでは-webkit-ruby-position: after;と記述している。

このようになるべく多くのブラウザで挙動を同じくする為には、各ブラウザの対応を確認する必要がある[30]

subタグ・supタグ

訓民正音が制定された直後の李氏朝鮮では、訛った漢語の読みを正そうという意識の下「東国正韻」が定められた。 その漢字音を広める為に漢字の下に小さい訓民正音で読みを書くという試みが一時期なされていた[31]が、当時博く用いられていた音とは異なっていたために受け入れられず、直ぐに廃れた[32]

これをHTML上で表現するにはsubタグを用いれば良い。以下の例では、訓民正音の部分のみをすべてsubタグで囲んでいる。

솅〮조ᇰᅌᅥᆼ〮졩〮훈〮져ᇰ〮ᅙᅳᆷ

但しこれを縦書きにすると読みの部分が左に寄ってしまう。

ㅣ爲〬윙〮ᄎᆞᆼ〯민〯ᅀᅧᆫᄒᆞ〮야〮
졩〮ᅀᅵᆼ〮씹〮바ᇙ〮ᄍᆞᆼ〮ᄒᆞ〮노니〮
욕〮使ᄉᆞᆼ〯ᅀᅵᆫᅀᅵᆫᄋᆞ〮로〮易〬잉〮씹〮ᄒᆞ〮야〮
便ᅙᅥᆼᅀᅵᇙ〮요ᇰ〮ᅀᅵᆼ〯니라〮

これを防ぐには、subタグの代わりにsupタグを用いれば良い。

나랏〮말〯ᄊᆞ미〮
듀ᇰ귁〮에〮달아〮
ᄍᆞᆼ〮와〮로〮서르ᄉᆞᄆᆞᆺ디〮아니〮ᄒᆞᆯᄊᆡ〮
이〮런젼ᄎᆞ〮로〮어린〮百ᄇᆡᆨ셔ᇰ〮이〮니르고〮져〮호ᇙ〮배〮이셔〮도〮
ᄆᆞᄎᆞᆷ〮내〯제ᄠᅳ〮들〮시러〮펴디〮몯〯ᄒᆞᇙ노〮미〮하니〮라〮

CSSグリッドレイアウト

CSSグリッドレイアウトを用いれば、様々な要素を2次元に配置することができる。 display: grid;プロパティやdisplay: inline-grid;プロパティを指定し、grid-template-rowsgrid-template-columnsでグリッドの区切り方を設定して、grid-rowgrid-columnで要素の位置を決定する。 詳しくは[33][34]を参照。

ごと は以下のHTMLで実現している。

<ruby style="display: inline-grid; grid-template-rows: .5em .5em .5em .5em; grid-template-columns: .5em .5em auto; align-items: center; vertical-align: middle;"> <span style="grid-row: 2/4; grid-column: 1/4;">若</span> <rt style="grid-row: 1; grid-column: 1/4; font-size: .5em;">ごと</rt> <sup style="grid-row: 1; grid-column: 3; font-size: .5em;">シ</sup> <sub style="grid-row: 3; grid-column: 3; font-size: .5em;">㆑</sub> </ruby>

このレイアウトやrubyタグ、sub/subタグなどを用いて漢文の返り点や吐などを表記することができる。 但し返り点と送り仮名は[35][36]に従っている。

クシテ 有󠄁 恆心 者󠄁、 ノミ 能。 クスルヲ
キハ ケレバ 產、 リテ 心。

無恒産而有恒心者󠄁惟士爲能乀仒匕卜
若民則無恒産乀丆因無恒心乀匕亽

無恒産而有恒心者󠄁ᄂᆞᆫ 惟士ᅟᅵ爲能이어
니와

若民則無恒産이면 因無恒心이니


まさ 殺󠄀 ころ サント 唐󠄁 から さは たか 洋。 ひろ

將殺󠄀唐󠄁澤貴洋丷飞匕亽

將殺󠄀唐󠄁澤貴洋ᄒᆞᄂᆞ
니라

positionプロパティ

CSSのposition: relative;position: absolute;を組み合わせて、特定の範囲内に要素を配置することができる[37]

ある要素にposition: relative;を指定して、top: 10%;left: 40px;などを指定すると、その要素が本来あった場所から下側に要素の大きさの10%、右に40pxずらすことができる。 position: absolute;を指定して同様にtopleft(またはbottomright)を指定すると、直近の位置指定されている祖先(positionの計算値がstatic以外である祖先)またはそれが無ければページ全体の初期位置から指定した分だけずれた位置に配置できる。

これを利用すれば、ある位置のspanタグにposition: relative;を指定してtopなどは指定せず、その中の要素にposition: absolute;topなどを指定することで要素の位置をposition: relative;のタグの中で調節することができる。

次に示す例では、<span lang="jsl" style="position: relative;"><span style="position: absolute; top: 0.05em; left: -1em;">𝠀𝪛𝪪</span><span style="position: absolute; top: 0; left: -0.3em;">𝧫𝪛𝪬</span><span style="position: absolute; top: 0.05em; left: 0.3em;">𝧫</span><span style="position: absolute; top: 0.15em; left: 1em;">𝠀𝪛𝪢</span></span>と記述している。

 𝠀𝪛𝪪𝧫𝪛𝪬𝧫𝠀𝪛𝪢

順序付きリスト

MediaWikiでは*で始まる行は番号なしリスト、#で始まる行は番号付きリストとして表示される(Help:リスト)。

番号付きリストの番号の種類を変更したい場合には、HTMLのolタグとCSSのlist-style-typeプロパティを利用する必要がある。 利用できる番号の一覧はMozillaのlist-style-typeのページから確認できる。

以下の例では、<ol style="list-style-type: tibetan; column-count: 2;">によって、チベット文字の数字を設定している。各リスト項目を記載するliタグには何のプロパティも指定していない。

༄༅། །ཨཥྚཱ་དྷྱཱ་ཡཱི༎

བཱ་ཀྱ་ཀཱ་རཾ་བ་ར་རུ་ཙིཾ་བྷཱ་ཥྱ་ཀཱ་རཾ་པ་ཏཉྫ་ལིམ།

པཱ་ཎི་ནིཾ་སཱུ་ཏྲ་ཀཱ་རཾ་ཙ་པྲ་ཎ་ཏོ྅སྨི་མུ་ནི་ཏྲ་ཡམ༎

ཨ་ཐ་པྲ་ཐ་མོ྅དྷྱཱ་ཡཿ། པྲ་ཐ་མཿཔཱ་དཿ།

  1. བྲྀདྡྷི་རཱ་དཻཙ།
  2. ཨ་དེང་གུ་ཎཿ།
  3. ཨི་ཀོ་གུ་ཎ་བྲྀདྡྷཱི།
  4. ན་དྷཱ་ཏུ་ལོ་པ་ཨཱརྡྷ་དྷཱ་ཏུ་ཀེ
  5. ཀྔི་ཏི་ཙ།
  6. དཱི་དྷཱི་བེ་བཱི་ཊཱམ།
  7. ཧ་ལོ྅ནནྟ་རཱཿསཾ་ཡོ་གཿ།
  8. མུ་ཁ་ནཱ་སི་ཀཱ་བ་ཙ་ནོ྅ནུ་ནཱ་སི་ཀཿ།
  9. ཏུ་ལྱཱ་སྱ་པྲ་ཡཏྣཾ་ས་བརྞམ།
  10. ནཱཛྫྷ་ལཽ།
  11. ཨཱི་དཱུ་དེདྡྭི་བ་ཙ་ནཾ་པྲ་གྲྀ་ཧྱམ།
  12. ཨ་ད་སོ་མཱཏ།
  13. ཤེ
  14. ནི་པཱ་ཏ་ཨེ་ཀཱ་ཛ་ནཱང་།
  15. ཨོཏ།
  16. སམྦུདྡྷཽ་ཤཱ་ཀ་ལྱ་སྱེ་ཏཱ་བ་ནཱརྵེ།
  17. ཨུ་ཉཿ།
  18. ཨཱུྃ།
  19. ཨཱི་དཱུ་ཏཽ་ཙ་སཔྟམྱརྠེ།
  20. དཱ་དྷཱ་གྷྭ་དཱཔ།

list-style-typeのページに存在しない数字などについては、自分で番号を書く必要がある。

以下の例では、バイクシュキー文字の数字をリスト番号とするために、olタグにはstyle="list-style-type: none; column-count: 2;"を設定し、デフォルトで表示される番号を非表示にしている。 更に各liタグは<li style="position: relative;"><span style="position: absolute; right: 100%; margin-right: 0.55em; user-select: none; -webkit-user-select: none;">𑱚.</span>𑰪𑰴𑰟𑰿𑰠𑰰𑰨𑰯𑰟𑰹𑰓𑰿𑱁</li>のように記載している。 user-selectは2024年8月4日現在Safariに対応していないため、ベンダープレフィックスも指定している。

𑰀𑰬𑰿𑰘𑰯𑰠𑰿𑰧𑰯𑰧𑰱

𑰌𑰼

𑰪𑰯𑰎𑰿𑰧𑰎𑰯𑰨𑰽𑱃𑰪𑰨𑰨𑰲𑰓𑰰𑰽𑱃𑰥𑰯𑰬𑰿𑰧𑰎𑰯𑰨𑰽𑱃𑰢𑰝𑰗𑰿𑰕𑰩𑰰𑰦𑰿𑱁

𑰢𑰯𑰜𑰰𑰡𑰰𑰽𑱃𑰭𑰳𑰝𑰿𑰨𑰎𑰯𑰨𑰽𑱃𑰓𑱃𑰢𑰿𑰨𑰜𑰝𑰺𑱀𑰭𑰿𑰦𑰰𑱃𑰦𑰲𑰡𑰰𑰝𑰿𑰨𑰧𑰦𑰿𑱂

𑰀𑰞𑱃𑰢𑰿𑰨𑰝𑰦𑰺𑱀𑰠𑰿𑰧𑰯𑰧𑰾𑱁 𑰢𑰿𑰨𑰝𑰦𑰾𑱃𑰢𑰯𑰟𑰾𑱁

  1. 𑱚.𑰪𑰴𑰟𑰿𑰠𑰰𑰨𑰯𑰟𑰹𑰓𑰿𑱁
  2. 𑱛.𑰀𑰟𑰸𑰒𑰿𑱃𑰐𑰲𑰜𑰾𑱁
  3. 𑱜.𑰂𑰎𑰺𑱃𑰐𑰲𑰜𑰪𑰴𑰟𑰿𑰠𑰱𑱁
  4. 𑱝.𑰡𑱃𑰠𑰯𑰝𑰲𑰩𑰺𑰢𑱃𑰁𑰨𑰿𑰠𑰠𑰯𑰝𑰲𑰎𑰸𑱁
  5. 𑱞.𑰎𑰿𑰒𑰰𑰝𑰰𑱃𑰓𑱁
  6. 𑱟.𑰟𑰱𑰠𑰱𑰪𑰸𑰪𑰱𑰘𑰯𑰦𑰿𑱁
  7. 𑱠.𑰮𑰩𑰺𑱀𑰡𑰡𑰿𑰝𑰨𑰯𑰾𑱃𑰭𑰽𑰧𑰺𑰐𑰾𑱁
  8. 𑱡.𑰦𑰲𑰏𑰡𑰯𑰭𑰰𑰎𑰯𑰪𑰓𑰡𑰺𑱀𑰡𑰲𑰡𑰯𑰭𑰰𑰎𑰾𑱁
  9. 𑱢.𑰝𑰲𑰩𑰿𑰧𑰯𑰭𑰿𑰧𑰢𑰿𑰨𑰧𑰝𑰿𑰡𑰽𑱃𑰭𑰪𑰨𑰿𑰜𑰦𑰿𑱁
  10. 𑱣.𑰡𑰯𑰕𑰿𑰖𑰩𑰻𑱁
  11. 𑱣𑱚.𑰃𑰟𑰳𑰟𑰸𑰟𑰿𑰟𑰿𑰪𑰰𑰪𑰓𑰡𑰽𑱃𑰢𑰿𑰨𑰐𑰴𑰮𑰿𑰧𑰦𑰿𑱁
  12. 𑱣𑱛.𑰀𑰟𑰭𑰺𑱃𑰦𑰯𑰝𑰿𑱁
  13. 𑱣𑱜.𑰫𑰸𑱁
  14. 𑱣𑱝.𑰡𑰰𑰢𑰯𑰝𑱃𑰊𑰎𑰯𑰕𑰡𑰯𑰒𑰿𑱁
  15. 𑱣𑱞.𑰌𑰝𑰿𑱁
  16. 𑱣𑱟.𑰭𑰦𑰿𑰤𑰲𑰟𑰿𑰠𑰻𑱃𑰫𑰯𑰎𑰩𑰿𑰧𑰭𑰿𑰧𑰸𑰝𑰯𑰪𑰡𑰯𑰨𑰿𑰬𑰸𑱁
  17. 𑱣𑱠.𑰄𑰗𑰾𑱁
  18. 𑱣𑱡.𑰅𑰼𑱁
  19. 𑱣𑱢.𑰃𑰟𑰳𑰝𑰻𑱃𑰓𑱃𑰭𑰢𑰿𑰝𑰦𑰿𑰧𑰨𑰿𑰞𑰸𑱁
  20. 𑱤.𑰟𑰯𑰠𑰯𑱃𑰐𑰿𑰪𑰟𑰯𑰢𑰿𑱁


モンゴル文字の場合にも、list-style-type: mongolian;を指定すれば番号を変更できる。

横書きの中に埋め込んだ縦書きリストの場合には、番号が上の行と重なってしまう可能性があるため、十分な数の改行を入れてスペースを取る必要がある。


ᠠ᠋ ᢔᢌᠠ᠋᠎ᠠ ᢑᠾᢈ᠎ᠠ᠎ᠠ ᠶ᠋ᢈᢈ

ᢀᠣᠸᠠ

ᠸᠠ᠋᠎ᠠ ᢉᢈ᠎ᠠ ᢉᠠ᠎ᠠ ᢀᠷᠠ᠋ ᠸᠠ᠋ ᠷᠠ᠋ ᠷᠦ᠍ ᢀᢋᢈ ᠪᠾᠠ᠋᠎ᠠ ᢔᢈ᠎ᠠ ᢉᠠ᠎ᠠ ᢀᠷᠠ᠋ ᢒᠠ ᢐᠠ᠋ ᡛᠽᠠ᠋ ᠯᢈᠮ᠃

ᢒᠠ᠎ᠠ ᢏᢈ ᢀᠨᢈ ᠰᠣᠦ ᢐᠷᠠ᠋ ᢉᠠ᠎ᠠ ᢀᠷᠠ᠋ ᢋᠠ᠋ ᢒᠷ᠎ᠠ ᢏᠠ᠋ ᢐᢅᠣᠸᠠ ᠰᠮᢈ ᠮᠦ᠍ ᠨᢈ ᢐᠷᠠ᠋ ᠶ᠋ᠠᠮ᠅

ᠠ᠋ ᠲᠠ᠋ ᢒᠷ᠎ᠠ ᠲᠠ᠋ ᠮᢅᠣᠸᠠ ᢑᠾᢈ᠎ᠠ᠎ᠠ ᠶ᠋ᠠ᠋ᢁ᠋᠃ ᢒᠷ᠎ᠠ ᠲᠠ᠋ ᠮᠠ᠋ᢁ᠋ ᢒᠠ᠎ᠠ ᢑᠠ᠋ᢁ᠋᠃

  1. ᠪᠠᠷᢈ ᢑᢑᠾᢈ ᠷᠠ᠋᠎ᠠ ᢑᠧᠧᢋ᠃
  2. ᠠ᠋ ᢑᠧᢊ ᠺᠦ ᢏᠠ᠋ᢁ᠋᠃
  3. ᢈ ᢉᠣᠸᠠ ᠺᠦ ᢏᠠ᠋ ᠪᠠᠷᢈ ᢑᢑᠾᢈᢈ᠃
  4. ᠨᠠ᠋ ᢑᠾᠠ᠋᠎ᠠ ᢐᠦ᠍ ᠯᠣᠸᠠ ᢒᠠ ᠠ᠋᠎ᠠ ᠷᢑᠾᠠ᠋ ᢑᠾᠠ᠋᠎ᠠ ᢐᠦ᠍ ᢉᠧ᠃
  5. ᢉᢊᢈ ᢐᢈ ᢋᠠ᠋᠃
  6. ᢑᢈᢈ ᢑᠾᢈᢈ ᠸᠧ ᠸᢈᢈ ᢌᠠᢗ᠊ᠮ᠃
  7. ᠾᠠ᠋ ᠯᢅᠣᠸᠠ ᠨᠠ᠋ ᠨᢐᠠ᠋ ᠷᠠ᠋᠎ᠠᢁ᠋ ᢀᠰᠠ᠋ ᠶ᠋ᠣᠸᠠ ᠺᠠᢁ᠋᠃
  8. ᠮᠦ᠍ ᠻᠠ ᠨᠠ᠋᠎ᠠ ᠰᢈ ᢉᠠ᠎ᠠ ᠸᠠ᠋ ᢋᠠ᠋ ᠨᢅᠣᠸᠠ ᠨᠦ᠍ ᠨᠠ᠋᠎ᠠ ᠰᢈ ᢉᠠᢁ᠋᠃
  9. ᢐᠦ᠍ ᠯᢈ᠎ᠠ᠎ᠠ ᠰᢈ᠎ᠠ ᢒᠷ᠎ᠠ ᠶ᠋ᠠ᠋ ᢀᢐᠨᠠ᠋ ᠰᠠ᠋ ᠸᠠ᠋ ᠷᢏᠠᠮ᠃
  10. ᠨᠠ᠋᠎ᠠ ᠽᠽᠾᠠ᠋ ᠯᠣᠸᠸᠠ᠃
  11. ᢈᢈ ᢑᠣᠦ ᢑᠧ ᢑᢑᠸᢈ ᠸᠠ᠋ ᢋᠠ᠋ ᢀᠨᠠ᠋ ᢒᠷ᠎ᠠ ᠺᠠᠷᢈ ᠾᠶ᠋ᠠᠮ᠃
  12. ᠠ᠋ ᢑᠠ᠋ ᠰᠣᠸᠠ ᠮᠠᢗᢐ᠃
  13. ᠱᠧ᠃
  14. ᠨᢈ ᢒᠠ᠎ᠠ ᢐᠠ᠋ ᠧ ᢉᠠ᠎ᠠ ᠽᠠ᠋ ᠨᠠᢗᢊ᠃
  15. ᠣᠸᠠᢐ᠃
  16. ᠰᠠ᠋ ᠮᠪᠦ ᢑᢑᠾᠣᠸᠸᠠ ᠱᠠ᠋᠎ᠠ ᢉᠠ ᠯᢈ᠎ᠠ ᠰᠶ᠋ᠧ ᢐᠠ᠋᠎ᠠ ᠸᠠ᠋ ᠨᠠ᠋᠎ᠠ ᠷᢔᠧ᠃
  17. ᠦ᠋ ᡛᠠ᠋ᢁ᠋᠃
  18. ᢀᠣᠦ᠃
  19. ᢈᢈ ᢑᠣᠦ ᢐᠣᠸᠸᠠ ᢋᠠ᠋ ᠰᠠ᠋ ᢒᢐᠠ᠋ ᠮᢈ᠎ᠠ ᠷᠲ᠋ᠧ᠃
  20. ᢑᠠ᠋᠎ᠠ ᢑᠾᠠ᠋᠎ᠠ ᠺᠾᢦ ᢑᠠᢗᢒ᠃

しかし、モンゴル数字には多様な書字方向があり、再現するには工夫が必要となる。

これを修正するには、本来のHTML+CSSなら::marker擬似要素[38]を利用するが、MediaWikiではCommon.cssを編集しないと利用できない。 そのため、それ以外の方法でうまく調整する必要がある。

下の例では、各項目を<li style="position: relative;"><span style="writing-mode: horizontal-tb; position: absolute; left: 0.5em; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑</span><span style="position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠂</span>ᠪᡳᡵ᠋ᡳ ᡩᢡᡳ ᡵᠠᢇ ᡩ᠋ᡝ᠋ᡳ᠌ᢜ᠈</li>として表示を変更している。 バイクシュキー文字でright方向にかけていた調節と同様のものをbottom方向にかけているが、数字だけ横書きにするためにwriting-mode: horizontal-tb;を設定している。その上、数字の位置を調整するため、1桁ならばleft: 0.5em;、2桁ならばleft: 0.25em;を指定している。


ᠠ ᢢᢞᠠᢇ ᢡᠶᠠᢇ ᠶᡳᡳ

ᢀᠣ

ᠸᠠᢇ ᡬᠶᠠ ᡬᠠᢇ ᢀᡵᠠ ᠸᠠ ᡵᠠ ᡵᡠ᠌ ᢀᢜᡳ᠌ ᢨᠠᢇ ᢢᠶᠠ ᡬᠠᢇ ᢀᡵᠠ ᢒᠠ ᢠᠠ ᠨᡳᠶᡯᠠ ᠯᡳᠮ᠈

ᢒᠠᢇ ᢏᡳ ᢀᠨᡳ ᠰᡠᠣ ᢠᡵᠠ ᡬᠠᢇ ᢀᡵᠠ ᢜᠠ ᢒᡵᠠ ᢏᠠ ᢠᢅᠣ᠋ ᠰᠮᡳ ᠮᡠ᠌ ᠨᡳ ᢠᡵᠠ ᠶᠠᠮ᠉

ᠠ ᡨ᠋ᠠ ᢒᡵᠠ ᡨ᠋ᠠ ᠮᢅᠣ᠋ ᢡᠶᠠᢇ ᠶᠠᢁ᠈ ᢒᡵᠠ ᡨ᠋ᠠ ᠮᠠᢁ ᢒᠠᢇ ᡩᠠᢁ᠈

  1. ᠪᡳᡵ᠋ᡳ ᡩᢡᡳ ᡵᠠᢇ ᡩ᠋ᡝ᠋ᡳ᠌ᢜ᠈
  2. ᠠ ᡩ᠋ᡝ᠋ᠩ ᡤᡡ ᢏᠠᢁ᠈
  3. ᡳ ᡬᠣ ᡤᡡ ᢏᠠ ᠪᡳᡵ᠋ᡳ ᡩᢡᡳᡳ᠈
  4. ᠨᠠ ᢡᠠᢇ ᢠᡠ᠍ ᠯᠣ᠋ ᢒᠠ ᠠᢇ ᡵᢡᠠ ᢡᠠᢇ ᢠᡠ᠍ ᡤᡝ᠈
  5. ᡬᢛᡳ ᢠᡳ ᢜᠠ᠈
  6. ᡩᡳᡳ ᢡᡳᡳ ᠸᡝ ᠸᡳᡳ ᢞᠠ‌᠇ᠠᠮ᠈
  7. ᡥᠠ ᠯᢅᠣ᠋ ᠨᠠ ᠨᢠᠠ ᡵᠠᢇᢁ ᢀᠰᠠ ᠶᠣ᠋ ᡤᠠᢁ᠈
  8. ᠮᡠ᠌ ᠺᠠ ᠨᠠᢇ ᠰᡳ ᡬᠠᢇ ᠸᠠ ᢜᠠ ᠨᢅᠣ᠋ ᠨᡠ᠌ ᠨᠠᢇ ᠰᡳ ᡬᠠᢁ᠈
  9. ᢠᡠ᠍ ᠯᠶᠠᢇ ᠰᠶᠠ ᢒᡵᠠ ᠶᠠ ᢀᢠᠨᠠ ᠰᠠ ᠸᠠ ᡵᢏᠠᠮ᠈
  10. ᠑᠐ᠨᠠᢇ ᡯᢝᠠ ᠯᠣᠣ᠈
  11. ᠑᠑ᡳᡳ ᡩ᠋ᡠ᠋ᠣ ᡩ᠋ᡝ᠋ ᡩᡩ᠋ᠸᡳ ᠸᠠ ᢜᠠ ᢀᠨᠠ ᢒᡵᠠ ᡤ᠌ᡳᡵ᠋ᡳ ᡥᠶᠠᠮ᠈
  12. ᠑᠒ᠠ ᡩᠠ ᠰᠣ᠋ ᠮᠠ‌᠇ᠠᢠ᠈
  13. ᠑᠓ᡧᡝ᠈
  14. ᠑᠔ᠨᡳ ᢒᠠᢇ ᢠᠠ ᡝ ᡬᠠᢇ ᡯᠠ ᠨᠠ‌᠇ᠠᠩ᠈
  15. ᠑᠕ᠣᢠ᠈
  16. ᠑᠖ᠰᠠ ᠮᠪᡠ ᡩᢡᠣᠣ ᡧᠠᢇ ᡬᠠ ᠯᠶᠠ ᠰᠶᡝ ᢠᠠᢇ ᠸᠠ ᠨᠠᢇ ᡵᢢᡝ᠈
  17. ᠑᠗ᡠ ᠨᡳᠶᠠᢁ᠈
  18. ᠑᠘ᢀᡠᠣ᠈
  19. ᠑᠙ᡳᡳ ᡩ᠋ᡠ᠋ᠣ ᢠᠣᠣ ᢜᠠ ᠰᠠ ᢒᢠᠠ ᠮᠶᠠ ᡵᡨᡝ᠋᠈
  20. ᠒᠐ᡩᠠᢇ ᢡᠠᢇ ᢚᠣᠸᠠ ᡩᠠ‌᠇ᠠᢒ᠈

また下の例では、数字を直立させるためにtext-orientation: upright;を設定している。 <li style="position: relative;"><span style="text-orientation: upright; position: absolute; bottom: 100%; margin-bottom: 0.55em; user-select: none; -webkit-user-select: none;">᠑᠂</span>ᡖᠠᠷᢧ᠋ ᡑᡑᡙᡅ ᠷᡃᠠ᠋ ᡑᡄᡄᡓ᠃</li>のように記載している。


ᠠ᠋ ᢔᢌᡃᢇ᠋ ᡑᡙᡃᢧ ᡕᡅᡃ

ᢀᡆ

ᡖᡃᠠ᠋ ᠺᢧ ᠺᠠᡃ ᢀ᠋ᠷᠠ᠋ ᡖᠠ᠋ ᠷᠠ᠋ ᠷᡉ ᢀ᠋ᡓᡅ ᡋᡙᡃᠠ᠋ ᢔᢧ ᠺᠠᡃ ᢀ᠋ᠷᠠ᠋ ᢒ᠋ᠠ᠋ ᢐᠠ᠋ ᡛᡜ᠋ᢇ᠋ ᠯᡅᡏ᠃

ᢒ᠋ᠠᡃ ᢏᡅ ᢀ᠋ᠨᡅ ᠰᡉᡃ ᢐᠷᢇ᠋ ᠺᠠᡃ ᢀ᠋ᠷᠠ᠋ ᡓᠠ᠋ ᢒ᠋ᠷᢇ᠋ ᢏᠠ᠋ ᢐᢅᡆ ᠰᡏᡅ ᡏᡉ ᠨᡅ ᢐᠷᢇ᠋ ᡕᠠᡏ᠅

ᠠ᠋ ᡐᠠ᠋ ᢒ᠋ᠷᢇ᠋ ᡐᠠ᠋ ᡏᢅᡆ ᡑᡙᡃᢧ ᡕᠠ᠋ᢁ᠃ ᢒ᠋ᠷᢇ᠋ ᡐᠠ᠋ ᡏᠠ᠋ᢁ ᢒ᠋ᠠᡃ ᡑᠠ᠋ᢁ᠃

  1. ᠑᠂ᡖᠠᠷᢧ᠋ ᡑᡑᡙᡅ ᠷᡃᠠ᠋ ᡑᡄᡄᡓ᠃
  2. ᠒᠂ᠠ᠋ ᡑᡄᡊ ᢉᡉ ᢏᠠ᠋ᢁ᠃
  3. ᠓᠂ᡅ ᠺᡆ ᢉᡉ ᢏᠠ᠋ ᡖᠠᠷᢧ᠋ ᡑᡑᡙᡅᡃ᠃
  4. ᠔᠂ᠨᠠ᠋ ᡑᡙᡃᠠ᠋ ᢐᡉ ᠯᡆ ᢒ᠋ᠠ᠋ ᠠ᠋ᡃᠠ᠋ ᠷᡑᡙᢇ᠋ ᡑᡙᡃᠠ᠋ ᢐᡉ ᠺᡄ᠃
  5. ᠕᠂ᠺᢊᡅ ᢐᡅ ᡓᠠ᠋᠃
  6. ᠖᠂ᡑᡅᡃ ᡑᡙᡅᡃ ᡖᡄ ᡖᡅᡃ ᢌᠠᡃᡏ᠃
  7. ᠗᠂ᡙᠠ᠋ ᠯᢅᡆ ᠨᠠ᠋ ᠨᢐᢇ᠋ ᠷᡃᠠ᠋ᢁ ᢀ᠋ᠰᠠ᠋ ᡕᡆ ᢉᠠᢁ᠃
  8. ᠘᠂ᡏᡉ ᠻᠠ ᠨᡃᠠ᠋ ᠰᡅ ᠺᠠᡃ ᡖᠠ᠋ ᡓᠠ᠋ ᠨᢅᡆ ᠨᡉ ᠨᡃᠠ᠋ ᠰᡅ ᠺᠠᢁ᠃
  9. ᠙᠂ᢐᡉ ᠯᡃᢧ ᠰᢧ ᢒ᠋ᠷᢇ᠋ ᡕᠠ᠋ ᢀ᠋ᢐᠨᢇ᠋ ᠰᠠ᠋ ᡖᠠ᠋ ᠷᢏᠠᡏ᠃
  10. ᠑᠐᠂ᠨᡃᠠ᠋ ᡜ᠋ᡜ᠋ᡙᢇ᠋ ᠯᡆᡆ᠃
  11. ᠑᠑᠂ᡅᡃ ᡑᡉᡃ ᡑᡄ ᡑᡑᢦᡅ ᡖᠠ᠋ ᡓᠠ᠋ ᢀ᠋ᠨᠠ᠋ ᢒ᠋ᠷᢇ᠋ ᢉᠠᠷᢧ᠋ ᡙᢧᡏ᠃
  12. ᠑᠒᠂ᠠ᠋ ᡑᠠ᠋ ᠰᡆ ᡏᠠᡃᢐ᠃
  13. ᠑᠓᠂ᠱᡄ᠃
  14. ᠑᠔᠂ᠨᡅ ᢒ᠋ᠠᡃ ᢐᠠ᠋ ᡄ ᠺᠠᡃ ᡜ᠋ᠠ᠋ ᠨᠠᡃᡊ᠃
  15. ᠑᠕᠂ᡆᢐ᠃
  16. ᠑᠖᠂ᠰᠠ᠋ ᡏᡋᡉ ᡑᡑᡙᡆᡆ ᠱᡃᠠ᠋ ᠺᠠ ᠯᢧ ᠰᢧᡄ ᢐᡃᠠ᠋ ᡖᠠ᠋ ᠨᡃᠠ᠋ ᠷᢔᡄ᠃
  17. ᠑᠗᠂ᡉ ᡛᠠ᠋ᢁ᠃
  18. ᠑᠘᠂ᢀᡉᡃ᠃
  19. ᠑᠙᠂ᡅᡃ ᡑᡉᡃ ᢐᡆᡆ ᡓᠠ᠋ ᠰᠠ᠋ ᢒ᠋ᢐᢇ᠋ ᡏᢧ ᠷᡐᡄ᠃
  20. ᠒᠐᠂ᡑᡃᠠ᠋ ᡑᡙᡃᠠ᠋ ᢉᡙᢦ ᡑᠠᡃᢒ᠃

文字参照

HTMLのマークアップに使われる文字や互換漢字などは、その文字そのものを書いても別の形に変換されてしまう。 これを防ぐには文字参照を用いて別の形で記述する。

例えば<や>はHTMLのマークアップには欠かせない文字である。 下記の説明ではHTMLのマークアップ自体を見える形で表示しているが、当然ただHTMLを書くだけではマークアップは変換されてレンダリングされてしまう。

  • 記述上

<div style="border: solid 3px #000000;"> <p>東京高等裁判所平成27年(ネ)第1347号</p> <p>・依頼者はステロイドを過剰に処方され色素沈着&パニック障害発症</p> <p>・病院を相手取った控訴審になぜかパカデブを起用(医療に強い唐澤貴夫弁護士と混同した可能性大)</p> <p>・パカデブ、医療訴訟の経験もないのに引き受ける</p> <p>・案の定爆死。医療ミスの事実すら完全に否定され控訴棄却という最悪の結果に</p> <p>・依頼者は病院の責任も追及できず30万ぼったくられて泣き寝入り</p> </div>

  • 実際の表示

東京高等裁判所平成27年(ネ)第1347号

・依頼者はステロイドを過剰に処方され色素沈着&パニック障害発症

・病院を相手取った控訴審になぜかパカデブを起用(医療に強い唐澤貴夫弁護士と混同した可能性大)

・パカデブ、医療訴訟の経験もないのに引き受ける

・案の定爆死。医療ミスの事実すら完全に否定され控訴棄却という最悪の結果に

・依頼者は病院の責任も追及できず30万ぼったくられて泣き寝入り

「記述上」に示したように表示するには、<の代わりに&lt;と、>の代わりに&gt;と記述している。

  • 編集画面でのHTMLソースの記述

&lt;div style="border: solid 3px #000000;"&gt; &lt;p&gt;東京高等裁判所平成27年(ネ)第1347号&lt;/p&gt; &lt;p&gt;・依頼者はステロイドを過剰に処方され色素沈着&パニック障害発症&lt;/p&gt; &lt;p&gt;・病院を相手取った控訴審になぜかパカデブを起用(医療に強い唐澤貴夫弁護士と混同した可能性大)&lt;/p&gt; &lt;p&gt;・パカデブ、医療訴訟の経験もないのに引き受ける&lt;/p&gt; &lt;p&gt;・案の定爆死。医療ミスの事実すら完全に否定され控訴棄却という最悪の結果に&lt;/p&gt; &lt;p&gt;・依頼者は病院の責任も追及できず30万ぼったくられて泣き寝入り&lt;/p&gt; &lt;/div&gt;

&lt;と表示したいなら&amp;lt;と記述すれば良い。

或いは<nowiki>を用いる方法もある。


文字参照には文字実体参照と数値文字参照とが存在する。

文字実体参照は上記に示したように&lt;のような形で文字を表すものである。 一部の文字にのみ定められている。

数値文字参照はISO/IEC 10646に定められた数字(Unicodeのものと同一)を参照して表示するものである。 例えば<(U+003C)を表示するなら、&#x003C;と記述すれば良い。 これを用いればCJK互換漢字のように正規化されてしまう文字もそのまま表示できる。 但し異体字を表示する目的で用いるなら、互換漢字を用いずにIVS異体字を用いるべきである。

Webフォント

注: この方法は外部のフォントファイルをダウンロードするので、自サイトに置いたWebフォントファイルを用いるよりも動作が遅くなる可能性がある。MediaWiki:Common.cssでは濫用せず、利用者:Fet-Fe/common.cssなどの利用者毎のcommon.cssで用いるようにすること。

  1. Google Fontsから使いたいフォントを探す
  2. 使いたいフォントをクリックし、使いたいスタイルを選んで"Select this style"をクリック
  3. 必要な分だけ選んだら、画面右上のボタンをクリックすると選んだfont familiesを見ることができる。@importをクリックし、@import url('https://fonts.googleapis.com/css2?family=Cormorant+Infant&display=swap');のような文字列をコピーする
  4. CSSファイルにコピーしたテキストを貼り付け、保存する
  5. あとは<span style="font-family: 'Cormorant Infant';">Такахиро Карасава Қуръонни куйдирди ва Муҳаммадни ҳақорат қилди.</span>のようにフォントを選択したり、CSSファイル側で設定したりできる

気になる資料

  • Pablo Sánchez Domínguez, Origen y gramática del romance andalusí, Córdoba: Editorial Almuzara, 2020.
  • Fr. Francis T.J. Sdb, First Ever Wancho Grammar cum English-Wancho Tutor, Dimapur: Don Bosco Publications, 2007.
  • Gholam Djelani Davary, Baktrisch : ein Wörterbuch, Heidelberg: Julius Groos, 1982.
  • Alfred Schmitt, Die Bamum-Schrift, Wiesbaden: Otto Harrassowitz, 1963.
  • Idelette Dugast and Mervyn David Waldegrave Jeffreys, L’écriture des Bamum: sa naissance, son évolution, sa valeur phonétique, son utilisation, Mémoires de l’Institut Français d’Afrique Noire, Centre du Cameroun, 1950.
  • 刘自齐, 赵丽明. 板塘苗歌选. 岳麓书社, 1992.
  • 银龙. 城步苗款. 岳麓书社, 2004.
  • 石万达. 石板塘苗歌选编. 湖南人民出版社, 2014.
  • 施群霞. 湘西苗剧剧本选. 湘西自治州民族文艺创作研究所, 2019.

どっかにPDFでも落ちてないナリかねえ

脚註

  1. https://www.unicode.org/charts/PDF/U2FF0.pdf
  2. https://www.unicode.org/charts/PDF/UE0100.pdf
  3. http://www.unicode.org/charts/PDF/U0000.pdf
  4. https://www.unicode.org/charts/PDF/U2000.pdf
  5. https://www.unicode.org/charts/PDF/U02B0.pdf
  6. http://www.unicode.org/charts/PDF/UA720.pdf
  7. Unicode® Standard Annex #9 UNICODE BIDIRECTIONAL ALGORITHM
  8. 3.2 Bidirectional Character Types - Unicode
  9. DerivedBidiClass.txt - Unicode
  10. 日本語でも危険!アラビア語ファイル名を利用した攻撃とは?(魚拓) - ASCII.jp
  11. Format Characters Suitable for Use with Markup - W3C Working Group Note
  12. https://www.unicode.org/versions/Unicode15.0.0/ch13.pdf
  13. https://developer.mozilla.org/ja/docs/Web/HTML/Global_attributes/lang
  14. https://developer.mozilla.org/ja/docs/Web/HTML/Global_attributes/dir
  15. https://developer.mozilla.org/ja/docs/Web/CSS/writing-mode
  16. https://developer.mozilla.org/ja/docs/Web/CSS/text-orientation
  17. https://developer.mozilla.org/ja/docs/Web/HTML/Element/bdo
  18. RTL rendering of LTR scripts(魚拓) - W3C
  19. 戦前の左横書き - みんなのかなづかひ(魚拓)
  20. 永井正勝 (2005) 古代エジプト聖刻文字の書字方向: 一般統字論構築の一助として. 『一般言語学論叢』8: 21–45. 筑波一般言語学研究会.
  21. Christopher C. Little. 2012. Revised Proposal to Encode Additional Old Italic Characters. In Unicode® Technical Committee Document Registry.
  22. https://developer.mozilla.org/ja/docs/Web/CSS/display
  23. The Unicode® Standard Version 15.0 – Core Specification. Chapter 11 Cuneiform and Hieroglyphs
  24. The Unicode® Standard Version 15.0 – Core Specification. Chapter 8 Europe-II Ancient and Other Scripts
  25. https://developer.mozilla.org/ja/docs/Web/HTML/Element/ruby
  26. https://developer.mozilla.org/ja/docs/Web/HTML/Element/rb
  27. https://developer.mozilla.org/ja/docs/Web/CSS/ruby-position
  28. https://developer.mozilla.org/ja/docs/Web/HTML/Element/rtc
  29. https://developer.mozilla.org/ja/docs/Web/CSS/ruby-position#browser_compatibility
  30. 但しIEのレンダリングが死んでもなんとも思わん
  31. 福井玲 (2015) 中世韓国語の「傍点」をめぐるいくつかの基本的な課題. 『言語研究』148: 61–80. 日本言語学会.
  32. 中期朝鮮語の話 - 趙義成の朝鮮語研究室(魚拓)
  33. グリッドレイアウトの基本概念(魚拓) - MDN Web Docs
  34. CSS Grid Layout を極める!(基礎編) - Qiita
  35. 漢文の句読点や返り点の配置処理(魚拓) - 公益社団法人日本印刷技術協会
  36. 漢文の送り仮名・読み仮名の配置処理(魚拓) - 公益社団法人日本印刷技術協会
  37. position - MDN Web Docs
  38. ::marker - MDN Web Docs