鹿野桂一郎
- Keybase: https://keybase.io/golden_lucky
- Twitter: @golden_lucky
- GitHub: k16shikano@github
- Blog: https://golden-lucky.hatenablog.com/
いわゆるドキュメント技術(TeXやPDF)と出版に関する話題が中心
% inspired by https://tech.aptpod.co.jp/entry/2020/11/20/160000 | |
% with http://taku910.github.io/mecab/ | |
% ref. https://tex.stackexchange.com/questions/500372/conditional-string-replacements-in-lualatex | |
\documentclass[a4paper]{ltjsarticle} | |
\usepackage[no-math]{luatexja-fontspec} | |
\usepackage{luacode,luatexbase} | |
%\usepackage[callback={preline},verbosity=1]{nodetree} | |
%\usepackage{lipsum} | |
\usepackage[textwidth=32em,textheight=5cm,paperwidth=32em,paperheight=5cm]{geometry} |
{-# LANGUAGE OverloadedStrings #-} | |
module Main where | |
import System.Environment (getArgs) | |
import Data.Char (chr) | |
import Numeric (showHex, readHex) | |
import Data.ByteString (ByteString) | |
import qualified Data.ByteString.Char8 as B |
% https://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=2899&parent=16984 | |
\documentclass[uplatex]{jsarticle} | |
\usepackage{xparse} | |
\usepackage{okumacro} | |
\ExplSyntaxOn | |
\seq_new:N \l__body_seq | |
\seq_new:N \l__ruby_seq |
% inspired by https://tex.stackexchange.com/questions/524022/switch-string-commands-based-on-random-values-to-produce-random-cards | |
\documentclass{article} | |
\usepackage{xparse} | |
\usepackage{scsnowman} | |
\usepackage{multicol} | |
\ExplSyntaxOn | |
\NewDocumentCommand{\jackpodsc}{} | |
{\three_snowmen:} |
鹿野桂一郎
module Main where | |
import System.Environment (getArgs) | |
import System.Random | |
import Data.List | |
scan2020 :: [Int] -> [[Int]] | |
scan2020 [] = [] | |
scan2020 ls@(x:xs) | |
| isPrefixOf the2020 ls = the2020 : (scan2020 $ drop 4 ls) |
% platexで文字の置換 https://ja.stackoverflow.com/questions/53898/platex%E3%81%A7%E6%96%87%E5%AD%97%E3%81%AE%E7%BD%AE%E6%8F%9B をexpl3でやってみる。 | |
% おそらくenvironの制限で、この書き方だとinstead環境のネストには対応していない。 | |
% xparseの新しい引数指定オプションbを使うと環境の本体がとれて、これだとうまくいくかもしれない。 | |
\documentclass[uplatex]{jsarticle} | |
\usepackage{xparse} | |
\usepackage{environ} | |
\ExplSyntaxOn |
\def\seqinsert{\ifmmode\allowbreak\else\hspace{0pt plus 0.02em}\fi} | |
\def\seqsplit#1{\SQSPL@scan#1\SQSPL@end} | |
\def\SQSPL@scan{\futurelet\SQSPL@next\SQSPL@scani} | |
\def\SQSPL@scani#1{% | |
\ifx \SQSPL@end \SQSPL@next \def\SQSPL@process{\@gobble}% | |
\else \ifx \@sptoken\SQSPL@next \def\SQSPL@process{\SQSPL@sp@doprocess}% | |
\else \def\SQSPL@process{\SQSPL@doprocess}\fi\fi% | |
\SQSPL@process{#1}} | |
\def\SQSPL@doprocess#1{#1\SQSPL@insert} | |
\def\SQSPL@sp@doprocess{◇\SQSPL@scan} |