SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
表とリスト
鹿野 桂一郎
ラムダノート株式会社
k16.shikano@lambdanote.com
@golden_lucky
2021 年 11 月 13 日
於 TeXConf 2021
1 / 14
構造とスタイルの分離の話?
近いけどちょっと違う(と思う)
構造/スタイルを「どう書くか」という話
cf. 『TEX は軽量マークアップ言語の夢をみるか』
(TEXConf 2017)
https://www.slideshare.net/k16shikano/tex-80841192
軽量マークアップ言語の層
組版エンジンの層
Markdown
reStructuredText
Re:VIEW記法
AsciiDoc
2 / 14
せっかく2次元の平面がある
のだしベタなテキスト以外
の表現がしたい
スタイルの観点
インデント
行頭の記号や連番
格子(表)
もっとも、
「見出し」とか「ドロップキャップ」とかも紙面が 2 次元であるこ
とを前提としたスタイルだし、いわゆる組版は全部そうだっていえるのかも
4 / 14
構造の観点
表
箇条書き(ネストもあるよ)
ドキュメントの「構造」として 2 次元の紙面というメディアを前提とした概
念が広く認知されているのは、よく考えるとよく考えたくなりますね
5 / 14
テキストエディタの観点
表←敵
箇条書き(ネストもあるよ)←まあまあ
テキストエディタに限らず、非 WYSIWYG な編集ツールでは「行単位で文字
列がまとまっている」ことが前提になっていることが多い。
(Unix 文化を引
きずっているだけかも)
6 / 14
表を
箇条書きのネストで
記述すればいいんじゃね?
List-Driven Tables
reStructuredtext(の実装である Docutils)で
発明されたっぽい
https://docutils.sourceforge.io/docs/dev/rst/
alternatives.html#list-driven-tables
Dylan Jay さんという方のアイデアとされている
.. list-table:: Frozen Delights!
:widths: 15 10 30
:header-rows: 1
* - Treat
- Quantity
- Description
* - Albatross
- 2.99
- On a stick!
* - Crunchy Frog
- 1.49
- If we took the bones out,
it wouldn't be crunchy,
now would it?
* - Gannet Ripple
- 1.99
- On a stick!
8 / 14
TEX でList Table?
TEX の記法で、
「ネストした箇条書き」と「表」と、
どっちが書きやすい?
軽量マークアップ言語の記法を TEX で使いたいな
ら、最初から軽量マークアップ言語を使えばいいの
では?
そもそも表を気軽に使うな!
9 / 14
TEX でList Table !
1 regex_new:N c_listtable_mark
2 regex_gset:Nn c_listtable_mark { [nr]+[*-][s]+[*-] }
3
4 regex_new:N c_listtable_nested_mark
5 regex_gset:Nn c_listtable_nested_mark { [nr]+[s]{2,}[*-] }
6
7 seq_new:N l_table_lines_seq
8 seq_new:N l_cell_items_seq
9 scan_new:N s_lastline
10
11 NewEnviron{parse_listtable}[1]{
12 exp_args:NNf regex_split:NnN c_listtable_mark { BODYs_lastline }
13 l_table_lines_seq
14 seq_remove_all:Nn l_table_lines_seq { }
15
16 begin{tabular}{#1}hline
17 seq_map_inline:Nn l_table_lines_seq
18 {
19 exp_args:NNf regex_split:NnN c_listtable_nested_mark { ##1 }
20 l_cell_items_seq
21 seq_get_right:NN l_cell_items_seq c_tmpa_tl
22 exp_args:Nnf regex_match:nnTF { c{s_lastline} } { c_tmpa_tl }
23 { seq_use:Nnnn l_cell_items_seq { } { & } { & } }
24 { seq_put_right:Nn l_cell_items_seq { c_empty_tl }
25 seq_use:Nnnn l_cell_items_seq { } { & } { hline } }
26 }hline
27 end{tabular}
28 }
10 / 14
TEX でList Table !(続き)
RequirePackage{xparse}
RequirePackage{environ}
NewDocumentEnvironment{listtable}{ }{%
obeylines%
obeyspaces%
parse_listtable%
}{%
endparse_listtable%
}
やっていることは単純
「表の各行になる箇条書き」を正規表現で切り出してl_table_lines_seq に格納
そのシーケンスから「セルになる箇条書き」を正規表現で切り出してl_cell_items_seq
に格納(途中に「&」を挟む)
そのシーケンスの末尾に「」を挿入
全体を tabular でくるむ
regex_split:NnN が末尾にゴミを挿入するっぽいのでちょっとはまった(22 行め付近)
11 / 14
便利?
documentclass[uplatex]{jsarticle}
usepackage{listtable}
usepackage{amsmath}
begin{document}
begin{listtable}{|p{5em}|p{4em}|p{7em}|}
* - Treat
- Quantity
- Description
* - Albatross
- 2.99
- On a stick!
* - Crunchy Frog
- 1.49
- If we took the bones out,
it wouldn't be crunchy,
now would it?
* - Gannet Ripple
- 1.99
- On a stick!
end{listtable}
end{document}
12 / 14
便利なような気もする
documentclass[uplatex]{jsarticle}
usepackage{listtable}
usepackage{amsmath}
begin{document}
begin{listtable}{|c|c|c|}
* - $x$
- fbox{gge}
- adfdf $sqrt{mathrm{da}}$ dsd
* - d herko
- TeX
- c
* - texttt{ho ge}
- yes
- no%
end{listtable}
end{document}
13 / 14
まとめ(という名のrant)
記法とスタイルにうまく折り合いをつけることが
「テキストエディタでやる組版」に求められることな
のでは
記法(スタイルではなく)を構造から独立させると
いうムーブメントが軽量マークアップなのかもしれ
ない
ラムダノート株式会社は出版を中心として技術文書
まわりのお手伝いをいろいろする会社です
https://lambdanote.com
Lambda Note
14 / 14

Más contenido relacionado

Más de Keiichiro Shikano

TeX原稿からEPUBを作りたい
TeX原稿からEPUBを作りたいTeX原稿からEPUBを作りたい
TeX原稿からEPUBを作りたいKeiichiro Shikano
 
イテレーティブでインクリメンタルな技術書の作り方
イテレーティブでインクリメンタルな技術書の作り方イテレーティブでインクリメンタルな技術書の作り方
イテレーティブでインクリメンタルな技術書の作り方Keiichiro Shikano
 
『新装版リファクタリング ―既存のコードを安全に改善する―』 のここがすごい
『新装版リファクタリング ―既存のコードを安全に改善する―』 のここがすごい『新装版リファクタリング ―既存のコードを安全に改善する―』 のここがすごい
『新装版リファクタリング ―既存のコードを安全に改善する―』 のここがすごいKeiichiro Shikano
 
Index makes your book perfect
Index makes your book perfectIndex makes your book perfect
Index makes your book perfectKeiichiro Shikano
 
多値で簡単パーサーコンビネーター
多値で簡単パーサーコンビネーター多値で簡単パーサーコンビネーター
多値で簡単パーサーコンビネーターKeiichiro Shikano
 
オーム社開発部がTeXを使う3つのおもな理由
オーム社開発部がTeXを使う3つのおもな理由オーム社開発部がTeXを使う3つのおもな理由
オーム社開発部がTeXを使う3つのおもな理由Keiichiro Shikano
 

Más de Keiichiro Shikano (12)

TeX原稿からEPUBを作りたい
TeX原稿からEPUBを作りたいTeX原稿からEPUBを作りたい
TeX原稿からEPUBを作りたい
 
イテレーティブでインクリメンタルな技術書の作り方
イテレーティブでインクリメンタルな技術書の作り方イテレーティブでインクリメンタルな技術書の作り方
イテレーティブでインクリメンタルな技術書の作り方
 
Gaucheで本を作る
Gaucheで本を作るGaucheで本を作る
Gaucheで本を作る
 
『新装版リファクタリング ―既存のコードを安全に改善する―』 のここがすごい
『新装版リファクタリング ―既存のコードを安全に改善する―』 のここがすごい『新装版リファクタリング ―既存のコードを安全に改善する―』 のここがすごい
『新装版リファクタリング ―既存のコードを安全に改善する―』 のここがすごい
 
TUG 2014 参加体験記
TUG 2014 参加体験記TUG 2014 参加体験記
TUG 2014 参加体験記
 
xml2tex at TUG 2014
xml2tex at TUG 2014xml2tex at TUG 2014
xml2tex at TUG 2014
 
Csspage1 2014-06-22
Csspage1 2014-06-22Csspage1 2014-06-22
Csspage1 2014-06-22
 
Index makes your book perfect
Index makes your book perfectIndex makes your book perfect
Index makes your book perfect
 
Our docsys-pyfes-2012-11
Our docsys-pyfes-2012-11Our docsys-pyfes-2012-11
Our docsys-pyfes-2012-11
 
Texuser 2012-lt
Texuser 2012-lt Texuser 2012-lt
Texuser 2012-lt
 
多値で簡単パーサーコンビネーター
多値で簡単パーサーコンビネーター多値で簡単パーサーコンビネーター
多値で簡単パーサーコンビネーター
 
オーム社開発部がTeXを使う3つのおもな理由
オーム社開発部がTeXを使う3つのおもな理由オーム社開発部がTeXを使う3つのおもな理由
オーム社開発部がTeXを使う3つのおもな理由
 

Último

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 

Último (11)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

表とリスト(List Driven Table in LaTeX )