Skip to content

Instantly share code, notes, and snippets.

module ReVIEW
module BuilderOverride
def inline_href(arg)
# 区切り文字に単純に|を使うようにする
url, label = arg.split(/\s*\|\s*/, 2)
url = url.gsub(/\\,/, ',').strip
if label
label = label.gsub(/\\,/, ',').strip
end
compile_href(url, label)
@kmuto
kmuto / dvipdfmx-segv.md
Created April 29, 2021 07:30
dvipdfmx Git 48a7fd2442de366a8ab9042334396bd87b63ca17 +特定STIX利用dviで壊れる
(gdb) run foo.dvi
3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20][21][22][23][24][25][26][27][28][29][30][31][32][33][34][35][36][37][38][39][40][41][42][43][44][45][46][47][48][49][50][51][52][53][54][55][56][57][58][59][60][61][62][63][64][65][66][67][68][69][70][71][72][73][74][75][76][77][78][79][80][81][82][83][84][85][86][87][88][89][90][91][92][93][94][95][96][97][98][99][100][101][102][103][104][105][106][107][108][109][110][111][112][113][114][115][116][117][118][119][120][121][122][123][124][125][126][127][128][129][130][131][132][133][134][135][136][137][138][139][140][141][142][143][144][145][146][147][148][149][150][151][152][153][154][155][156][157][158][159][160][161][162][163][164][165][166][167][168][169][170][171][172][173][174][175][176][177][178][179][180][181][182][183][184][185][186][187][188][189][190][191][192][193][194][195][196][197][198][199][200][201][202][203][204][205][206][207][208][209][210][211][212][213][214][215][216][217][218][219][220][221][222][223][2
@kmuto
kmuto / review-ext.rb
Last active February 2, 2020 14:44
dtのfootnoteの特例
module ReVIEW
module CompilerOverride
def compile_dlist(f)
@strategy.dl_begin
while /\A\s*:/ =~ f.peek
if @strategy.class.to_s =~ /LATEX/
s = f.gets
@strategy.dt(s.sub(/\A\s*:/, '').strip)
else
@strategy.dt(text(f.gets.sub(/\A\s*:/, '').strip))
@kmuto
kmuto / dropcap.re
Created January 20, 2020 14:10
ドロップキャップ
= ドロップキャップ
@<u>{2}行取りの設定にしています。■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
@<u>{日}本語も入れられます。ただ、幅がイマイチなのでちょっと格好悪いですね。uインラインマークアップは本来アンダーラインを想定しているものですが、ひとまずこれを代用しています。
@kmuto
kmuto / break.tex
Created December 16, 2019 00:34
breakallコードがhyperrefの作用箇所でおかしくなってしまう
%!ptex2pdf -l -u break.tex
\documentclass[uplatex]{jsarticle}
% hyperref有効にすると
% ! TeX capacity exceeded, sorry [input stack size=5000].
% <to be read again>
% \HyPsd@@LetCommand
% l.61 \section{\reviewcode{Hello}}
% になってしまう (https://github.com/kmuto/review/issues/1432)
\usepackage[dvipdfmx]{hyperref}
def convert(content)
config = ReVIEW::Configure.values
config['builder'] = 'html'
config['secnolevel'] = 0 # 見出し採番しないとして
ReVIEW::I18n.setup(config['language'])
builder = ReVIEW::HTMLBuilder.new
book = ReVIEW::Book::Base.new('.')
book.config = config
compiler = ReVIEW::Compiler.new(builder)
% for user-defined macro
% 目次の前までの前付の採番。とりあえずAlphにしている
% 選択肢はhttp://www.latex-cmd.com/struct/pagestyle.html あたりを参照
\let\frontmatterorg\frontmatter% 既存の前付マクロを別名で退避して
\def\frontmatter{%
\frontmatterorg% ここで元のマクロを呼び出す
\pagenumbering{Alph}% 採番をAlphにする
}
% 目次の実体tableofcontentsをjsbook.clsからコピーして、中身をいじる
@kmuto
kmuto / review-ext.rb
Created August 25, 2019 02:29
U+00A5 を\textyen (Yに=を重ねる)にする
# ¥: U+00A5 を\textyen (Yに=を重ねる)にする
# ¥: U+FFE5 はそのまま
module ReVIEW
module LATEXBuilderOverride
def result
# 半角円記号を統合させず代替の\textyenのほうを使う
# 本当はhspaceするよりもコード環境のほうでxkanjiskipを設定したほうがよさそう
super.gsub('¥', '\hspace{0pt}\textyen{}\hspace{0pt}')
end
end
@kmuto
kmuto / review-ext.rb
Last active August 16, 2019 05:45
指定の幅で折り返す実装。Re:VIEW masterブランチの環境で動作する
module ReVIEW
module LATEXBuilderOverride
# gem install unicode_display_width
require 'unicode/display_width'
require 'unicode/display_width/string_ext'
CR = '→' # 送り出し文字。LaTeXコードも可
ZWSCALE = 0.875 # 和文・欧文の比率。\setlength{\xkanjiskip}{\z@} しておいたほうがよさそう
def split_line(s, n)
@kmuto
kmuto / gist:965a41e26582b32cac6a559e6c46cfcc
Created June 8, 2019 12:59
fboxで囲むreview-ext.rbの例
module ReVIEW
module LATEXBuilderOverride
def image_image(id, caption, metric)
metrics = parse_metric('latex', metric)
# image is always bound here
puts "\\begin{reviewimage}%%#{id}"
# ↓ここからが変更箇所
# 要するに、includegraphicsを\fbox{}で囲んでいる
# 太さとかアキを変えたいときには、http://www3.otani.ac.jp/fkdsemi/pLaTeX_manual/kasen.html を参考にreview-custom.styに記述
# 画像によって変えたいというときには、たとえばidを見てfboxで囲むかどうかを判定、みたいなロジックをここに加えればよい