ネットオフのタダ本は得?
問題点:送料がかかること。
- タダ本MAXは483円-15冊/月。
- 送料440円。1500円以上の買い物で無料。
- 会計ごとに42円かかる。
商品代金の10~15%割引を時々行っている。これはタダ本付属クーポンのほぼ上位互換であるため、タダ本の特典内容について考える必要はない。
110円の本を15冊買う場合、タダ本なら$483+440+42=965$円。タダ本でなければ$110\cdot15\cdot(1-0.1)+42=1527$円。
- 110円の本を29冊買う場合、タダ本なら$483+110\cdot14\cdot(1-0.15)+42=483+1309+42=1834$円。タダ本でなければ$110\cdot29\cdot(1-0.15)+42=2754$円。
損益分岐点は、$923/110=8.4$冊、つまり月に8冊以上の本が本当に欲しいかどうかによる。
意外と対象外の本が多く、セットも対象外であるため、イライラする。
- 自動継続のため注意。
VR180カメラで写真が撮りたい!
注: カメラ初心者です。間違いがあったらすみません。
基礎知識
IPD
- IPD(Interpupillary Distance)にはNear IPD(NIPD)とFar IPD(FIPD)があり、両者は3mm程度差がある。1 VRでは恐らくFIPDを使う。
- 人間のIPDは国内の統計によれば18~34歳で64.1±3.0mm2であり、海外の統計によれば20代あたりまでは年齢とともに増加するようである。
カメラ
カメラのセンサーサイズ
幾何光学?
- 曲率一定の曲面による反射
$$ n_{1} \sin \theta = n_{2} \sin \theta \iff n_{1}(\alpha + \theta) \approx n_{2}(\phi - \beta), \alpha \approx \frac{h}{u_{o}}, \beta \approx \frac{h}{u_{i}}, \phi \approx \frac{h}{R} $$ より $$ \frac{n_{1}}{u_{o}} + \frac{n_{2}}{u_{i}} = \frac{n_{2}-n_{1}}{R} $$
入射側,透過側の曲率(curvature)を$R_1,R_2$とし、$u$: 被写体距離, $u'$: 入射側より先の屈折率が$n$であったとしたときの焦点距離(thin lens approximation), $u_{o}$: 焦点距離とし、($(u,u',1,n),(u',u_{o},n,1)$に対して上式を2度使い$u'$を消去すれば、以下の式が得られる。 ガウスのレンズ公式 証明 - あなばブログ
- レンズメーカーの式(lensmaker's equation)
$$ \frac{1}{f} = (n-1)\left(\frac{1}{R_{1}} - \frac{1}{R_{2}} + \frac{(n-1)d}{nR_{1}R_{2}}\right) $$
- レンズの公式(thin lens formula)
$$ \frac{1}{f} = \frac{1}{u_{o}} + \frac{1}{u} $$
- カメラレンズの焦点距離表示
「全群繰り出し」「フロントフォーカス」「リアフォーカス」「インナーフォーカス」の4種類がある。8「全群繰り出し」は焦点距離が不変だが、その他は被写体距離に応じて焦点距離が変わる。これを「ブリージング」という。^focus-type-3
$F$: カメラレンズの焦点距離表示,
$$ f = \begin{cases}F & \text{全群繰り出し} \\ F (1 + \frac{u_{o}}{u}) & \text{otherwise}\end{cases} $$
$f$: 焦点距離(focal length), $N$: F値(f-number), $D$: 有効口径(直径)(effective aperture)
$$ N = \frac{f}{D} $$
- 画角
画角は像側、被写体画角は物体側の角度によって決まる。
$\alpha$: 画角(angle of view, AOV), $alpha_\infty$: 無限遠画角, $d$: 指定方向のセンサーサイズ
$$ \alpha = 2 \tan^{-1} \frac{d}{2f(1 + \frac{u}{v})} \left( \to_{u \to \infty} 2 \tan^{-1} \frac{d}{2f(1 + \frac{v}{u})} \approx \frac{f}{d} \right) $$
$\alpha'$: 被写体画角, $h$: 被写体サイズ
$$ \alpha' \approx \frac{h}{d\frac{u}{v}} = \frac{hf(1 + \frac{v}{u})}{du} \approx \frac{hf}{du} ( u \to \infty ) $$
- ボケ(bokeh)
$(u,v,f)$がレンズの式を満たしている状態で、$v'$を焦点にもつ被写体距離$u'$の被写体の$v$における錯乱円直径(circle of confusion, COC)$c$を求めたい。相似を考えて
$$ \frac{c}{D} = \begin{cases}\frac{v - v'}{v'} & v' < v \\ \frac{v' - v}{v'} & v' > v\end{cases} = \frac{|v-v'|}{v'} $$
$$ \frac{1}{f} = \frac{1}{u'} + \frac{1}{v'} $$
$v'$を削除すると以下のようになるらしい。
$$ u'_{\mp} = \frac{uf^{2}}{f^{2} \pm \frac{f}{D}c (s - f)} $$
9 ここで錯乱円画角(独自用語)は
$$ \gamma = \frac{c}{d} $$
複数の被写体をボケずに写せるかどうかを調べたい。
$DOF$: 被写界深度(depth of field, DOF), $u$: 被写体距離(distance to subject) $$ \mathrm{DOF} = u'_{+} - u'_{-} = \frac{uf^{2}}{f^{2} - \frac{f}{D}c (s - f)} - \frac{uf^{2}}{f^{2} + \frac{f}{D}c (s - f)} = \frac{2f^{2}Ncu(u-f)}{f^{4}-N^{2}c^{2}(u-f)^{2}} \approx c \frac{u^{2}}{fD} $$ 10
背景ボケを調べたい。 $b$: 背景錯乱円直径(background blur disk radius) $$ b = \lim_{u' \to \infty} \frac{f^{2} - \frac{uf^{2}}{u'}}{\frac{f}{D}(u - f)} = \frac{fD}{u-f} \approx \frac{cu^{2}}{\mathrm{DOF}(u-f)} \approx \frac{fD}{u} $$
- 光量
$H$: 光量, $T$: レンズ透過率, $L$: シーン輝度, $v(\theta)$: ケラレ係数
$$ H = \frac{qLt}{N^{2}} = \frac{qLtD^{2}}{f^{2}}, q = \frac{\pi}{4}T v(\theta) \cos^{4} \theta $$ 11
- ISO感度とノイズ
n倍するもの | 被写体の占める画角 | 背景の占める画角 | 1センサー当たり明るさ | 被写界深度 | 背景ボケ | ノイズ |
---|---|---|---|---|---|---|
センサーサイズ | 1/n | 1/n | 1 | n | 1/n | 1 |
センサー画素密度 | 1 | 1 | 1/n2 | 1 | 1 | 1 |
有効口径(レンズ固定時のF値の逆数) | 1 | 1 | n2 | 1/n | n | 1 |
焦点距離 | n | n | 1/n2 | 1/n | n | 1 |
シャッタースピード | 1 | 1 | n | 1 | 1 | 1 |
ISO感度 | 1 | 1 | n | 1 | 1 | n |
レンズ透過率(NDフィルター) | 1 | 1 | n | 1 | 1 | 1 |
輝度(ストロボ) | 1 | 1 | 被写体のみn | 1 | 1 | 1 |
被写体との距離 | 1/n | 1 | 1 | n2 | 1/n | 1 |
帰結
要するに1つのパラメータを変えて、他のパラメータを変更することにより元通りの写真が撮れるかを検討したいわけである。 これらの値を$\log_n$したものによるベクトルの(部分)集合が張る$\mathbb{R}^n$上の部分空間で線形代数ごっこをすると(別に線形代数を持ち出さなくても良いが)いくつかの結論が得られる。
- センサーサイズを小さくすると、被写体に近づいて[圧縮効果減少(かつ遠近歪み)]を起こすか、焦点距離を下げて[被写界深度の上昇(=背景ボケの低下)]を起こさなければならない。更に同じ解像度を用いる場合、センサー画素密度が上がるため、1センサー当たり明るさを上げる必要があり、これ以上レンズ透過率・シャッタースピードを上げられない場合、[ノイズの上昇]が起こる。
- ストロボは被写体の明るさと背景の明るさの比を変えるための唯一のパラメータである。
- 明るさを変えるためのパラメータがとても多い。
人物撮影における変数決定の手順(要出典)
決めるもの | 調節するもの |
---|---|
光の柔らかさ | ディフューザー |
HSS(後述)を避けたい | シャッタースピードを1/100にする |
被写体の画角 | 焦点距離 |
背景が邪魔か/人数 | 絞り |
背景の明るさ | ISO感度,NDフィルター |
人物の明るさ | ストロボ |
作り方
既製品or自作, カメラorアクションカメラで4通りに大別できる。
- 既製品
- カメラ
- フルサイズセンサー, RFマウント: 95k~ + RF5.2mm F2.8 L DUAL FISHEYE: 222.8k (自分で加工すれば、恐らくEOS R5を利用する必要はない)
- APS-Cセンサー, RFマウント: 65k~ + CES 2024で発表された上のAPS-C版 (こちらも自分で加工すれば、恐らくEOS R7を利用する必要はない)
- ビデオカメラ:
- Kandao Qoocam EGO: 49.5k
- AliexpressのUSBカメラ/魚眼ありなし: 5~15k
- その他は(センサーサイズに対する)コスパが急激に落ちる。5chのテンプレを参照。
- カメラ
- 自作
- アクションカメラ×2, 場合によっては魚眼レンズに交換?
- Insta360: 50k?×2,
GoPro Heroであれば1/1.9 or 1/2.3サイズセンサー, 10~30k×2
- Insta360: 50k?×2,
- カメラ×2
- アクションカメラ×2, 場合によっては魚眼レンズに交換?
魚眼レンズ
- VR180写真を撮るには、レンズは周囲180度の光を映す必要がある。このような魚眼レンズを特に円周魚眼レンズ/全周魚眼レンズと呼ぶらしい。
- 魚眼レンズには複数の種類があるが13、一部の例外を除き、APS-Cサイズであれば焦点距離が4.2-5.9mm(以下), フルサイズであれば焦点距離が6.0-8.5mm(以下)であることが円周魚眼レンズであるための必要条件である。14
- 円周魚眼レンズはかなりマイナーである。
- APS-C用対角魚眼レンズをフルサイズセンサーカメラに取り付ける方法もある。
- 境界付近に「ケラレ」が発生する可能性がある。15
- 但し、上手く行った例もある。
MFT用Samyang 7.5mm f3.5 + Eマウント変換キット + α7R III
Samyang 8mm f3.5 fisheye + α99では上下が少し途切れるらしい。[^fisheye-3]
要件
順に絞り込んでいこう。
レンズマウント
- 2つのカメラを傾けて撮影することも可能だが、不格好である。実用的には、2つのカメラ間のマウント厚を3mmとして、レンズの中心点とカメラの上面/底面との距離が(64 - 3)/2=30.5mm程度以下であることが必要。(無理やりテープでくっつけるならば、32mm以下であることが必要。)
- レンズマウントの直径は少なくとも60mm程度以下でなければならない。しかし、普通は内径のほうが興味の対象であり、外径に関する情報があまりないが、部分的にまとめた方がいらっしゃった。
カメラのキタムラで数が多い順18 | 外径19 | 内径[^mount] | 可否 |
---|---|---|---|
マイクロフォーサーズ(MFT/M4/3) | 52 | 40 | o |
キャノン RF | 69?20 | 54 | x |
ソニー FE=ソニー E | 58 | 46 | o |
キャノン EF-M | 58 | 47 | o |
フジフィルム X | 55 | 43.5 | o |
ニコン Z | 65.421 (但し黒い樹脂?部分を含めると75程度ありそう?) | 55 | x |
ニコン 1 | - | 36 | ちっさ |
フジフィルム G | - | 65 | x |
ペンタックス Q | - | 29 | ちっさ |
- SONY FEレンズのFはフルサイズのFであるため、当然フルサイズのものがある。α7cなどは非常にコンパクトに見える。(高い!!!)
- キャノン EF-Mマウントのものは基本的にAPS-Cであると思われる。(フルサイズがあるかは不明。)
- フジフィルム Xのものも基本的にAPS-Cであると思われる。(こちらも不明。)
- マイクロフォーサーズは名前通りマイクロフォーサーズのみであると思われる。
- ニコン 1は名前通り1型センサーを使っている。
ということで、SONY α7シリーズを使わない場合、APS-Cかマイクロフォーサーズを使うことになると思われる。
α7 (60k)はぎりぎり使えるか?
α7は三脚用の穴が光軸のちょうど下にあるため、うまくいけばカメラ間の距離を0mmにできそうな気がする。 しかし、長さを測ってみたところ、上記の「外径」は金色の縁を含んでおらず、中心部から底面への距離は23+12.5mm程度あり、どうしてもレンズ間距離は71mm以上となってしまう。$\frac{71}{64}\approx 1.11$。これをどう見るかである。
https://eleif.net/photomeasure
α7c (とても高い)は使えるか?
金色の縁を含むと61mm程度となると思われる。 上面と金色の縁の間は2mm程度に見えるため、レンズ間距離65mmを達成できるが、アクセサリーシューが使用不能となってしまう。
カメラを傾ける?
魚眼レンズの主点(nodal point)は角度によって異なるため、角度によってICDや見かけの大きさが異なる画像が得られる。 α7 + SAMYUNG 8mmを用いる場合、0°~見かけ約150°で主点は8mm程度異なり、レンズ高さ70mmを使い幅を合計7mmを縮めるとすれば、主点は$\frac{7}{70 \cdot 2} \cdot 8 = 0.4$mmずれる。この程度なら全然アリかも?
レンズをずらす?
内側方向の視野はあまり要らないとみて、レンズを3.5mm内側にずらす。 高そう?マウントだけで売ってない?3Dプリンターは?ピントが合わなくなる?
- Working with Tilt/Shift lenses - phillipreeve.net
- lens shift –AliExpress version で lens shiftを送料無料でお買い物
レリーズ
- 2つのボタンを同時に押すのは難しいようなので、レリーズに対応していなければならない。
この互換性がとてもあるリモートスイッチの「互換性」の項が有用だと思う。
- Canon: リモートスイッチ RS-60E3に対応していなければいけない。EOS M5 / M6MkII / M6。
- SONY: リモートコマンダー RM-VPR1に対応していなければならない。α1/7/9/5000/6000シリーズ、NEX-3N。(NEX-5Nは非対応。)
- LUMIX: 多い。よくわかってない。
- OLYMPUS: 多い。よくわかってない。
アクセサリーシュー/ホットシュー/マルチインターフェースシュー(SONYによる呼び方)
- Canon: EOS M5 / M6MkII / M6。M5: 43.7k~, M6: 39.5k~
- SONY: α1/7/9/6000シリーズ。α6000: 40k~, α6100: 58.8k~
- LUMIX: 全部ついてそう?
- OLYMPUS: 全部ついてそう?
↓
SONYで組もうかと考えていたが、もしやマイクロフォーサーズのほうが良いのだろうか????
レンズ候補
- Meike MK-6.5mm F2.0 APS-C Ultra Wide Circular Fisheyes Lens for E/X/EF
- Meike 3.5mm f/2.8 Ultra Wide Angle Manual Fixed Circular Fisheye Lens
- LAOWA 4mm F2.8 Fisheye | 製品情報 | LAOWA
- 4mm f/2.8 lens for E/FX/M43/EOS-M – Official 7Artisans Store
ストロボの同期
- ストロボは通常キセノンランプに充電したコンデンサを用いて瞬間的に高電圧を掛けることで発光するという仕組みを取る。22
- ストロボの発光時間は有名なTT600では1/300~1/20000秒であり、光量によって異なるらしい。非常に詳しい表によれば、1/4以下で使うと大体1/2000秒未満の発光時間となる23ため、大まかに言えばシャッター速度よりは速い。
- 電子シャッターでは、普通1/200秒程度未満のシャッタースピードを用いる場合、先幕と後幕が同時に走る、つまり全てのセンサーが光を感知しているタイミングが存在しなくなる。そのため全体にわたって明るさが一定である写真を撮るためには、ストロボは一定周期で複数回発光する必要がある。これをハイスピードシンクロ(HSS)と呼ぶ。HSSを使うとストロボの寿命が低下する。24
- 人物撮影では手ブレ防止の為1/100秒以下のシャッタースピードを用いる25ため、HSSを避けるとシャッタースピードは1/100~1/125秒程度に固定されてしまう。[^cosplay]
(ついでにメモするが、背景をぼかしたいことが多々ある。被写界深度を下げるために絞りを下げ、ISOを調節する。屋外などで、ISOが最低値であっても背景が白飛びする場合はNDフィルターを用いる。[^cosplay])
分岐させたケーブルレリーズを用いても、完全に同時に撮影することは難しいらしい。26この方はLEDライトを用いている。
- フラッシュを複数のカメラと同期する 6 つの方法 — Xangle Camera Serverにいくつか対策が書いてある。とにかく普通ストロボは先幕か後幕が走るタイミングで光るが、これをその中間で光るようにしたい。
- GODOX X1には0-100×0.1ms, X2には0-99×0.1msの遅延機能があるが、X Proにはない模様。
絞り込む
先駆者の方々
- Lumix DC-GH5+DC-GH6, Sony α6400+α6100, Meike MK-6.5mm F2.0 / Meike MK-3.5mm F2.8 2023年9月時点で運用中の 3D VR180 カメラ機材 | 水中カメラマンのデスクワークな日々
- α6000 + Meike MK-6.5mm F2.0 VR180カメラを作る その1 | Simulator Laboratory "SEALS-海空陸宇宙-"
- Lumix ?, Meike MK-3.5mm F2.8 → LAOWA 4mm f/2.8? Xユーザーのしんちろさん: 「@ZEPHYR_SLS @VR58434568 ちなみに自分の組み方を公開します L型ブラケットとカメラはねじ止めされておらず ガイドと抑えとして機能しています IPDはちょうど7mmです #VR180 #自作 https://t.co/BS1k6mvY6l」 / X, Xユーザーのしんちろさん: 「私のVRカメラはブラケットの殻を剥ぎ取り、むき身の第三形態へ、 軽くなりシャッターボタンが露出したものの、 持ち辛い上めっさ押し辛い、 要練習でテスト次第の採用です。 #VR180 https://t.co/2ykN2hoPjQ」 / X
- 5chテンプレ
- https://www.webmd.com/eye-health/pupillary-distance↩
- https://www.airc.aist.go.jp/dhrt/head/index.html#stats↩
- (PDF) A study on the normal values of inner canthal, outer canthal, interpupillary distance and head circumference of 3-21 years ijaws↩
- Mean interpupillary distance (mm) values in various age groups | Download Table↩
- 雑記帳 その18↩
- イメージセンサーの大きさの違いと特徴 | 姫野ばら園 八ヶ岳農場↩
- 2.4: Images Formed by Refraction - Physics LibreTexts/University_Physics_III-Optics_and_Modern_Physics_(OpenStax)/02%3A_Geometric_Optics_and_Image_Formation/2.04%3A_Images_Formed_by_Refraction#Equation+20:+Refraction+at+a+convex+surface)↩
- インナーフォーカスのレンズについて|カメラ買取・販売専門店のナニワグループ↩
- 【幾何光学】前方/後方 被写界深度の導出など - 溶けかけてるうさぎ - BLOG↩
- 被写界深度 - ウィキペディア↩
- Film speed - Wikipedia↩
- エレクトロニクス | 無料の全文 | 民生用カメラのRAWファイル解析に基づく写真ノイズ性能測定↩
- Fisheye lens - Wikipedia↩
- Fisheye lens - Wikipedia↩
- https://www.dpreview.com/forums/thread/4593599↩
- (1) Fisheye Apsc / Full Frame Sony : AskPhotography↩
- (1) Experiments with the Samyang 7.5mm ƒ3.5 : SonyAlpha↩
- カメラのキタムラ|【中古】ミラーレス一眼 在庫一覧↩
- レンズマウント外径・内径とフランジバックの一覧 | Amazing Graph|アメイジンググラフ↩
- キヤノン、APS-C高倍率ズーム「RF-S18-150mm F3.5-6.3 IS STM」。6.8万円 - デジカメ Watch↩
- A quick update on the rumored Nikon full-frame mirrorless camera Z-mount - Nikon Rumors, Talk:Nikon Z-mount - Wikipedia↩
- エレクトロニックフラッシュ - Wikipedia↩
- (16) #103 ストロボの閃光時間、11機種を比べる! - YouTube↩
- (16) その1/屋外のコスプレイベントは逆光+絞り開放+ストロボで盛れる! - YouTube↩
- 【3分で読める!】被写体ブレしないカメラのシャッタースピード | コスP!↩
- VR180カメラを作る その1 | Simulator Laboratory "SEALS-海空陸宇宙-"↩
(小ネタ) easylist (LaTeX)で `問1` , `(1)` など接頭辞をつける方法
xparse
でコマンドを作成し、CtrCom
オプションを利用する。1
\documentclass[autodetect-engine,ja=standard]{bxjsarticle} \usepackage[at]{easylist} \usepackage{xparse} \NewDocumentCommand{\CtrComProblem}{m}{Problem#1} \begin{document} \begin{easylist}[enumerate] \ListProperties(Numbers=a,CtrCom1=\CtrComProblem) @ ... \end{easylist} \end{document}
-
Mark
,FinalMark
オプションはシンボルの後の文字のためのものであり、利用できない。Style
オプションを利用する方法もあると思われる。↩
LuaTeX(LuaLaTeX)/XeTeX(XeLaTeX) + BXjscls/LuaLaTeX-ja + Latexmk/ClutTeX + BibLaTeX + LaTeX Workshop + Git + pre-commit + GitHub
LuaTeX/LuaLaTeX
/XeTeX/XeLaTeX
+ BXjscls
/LuaTeX-ja
+ Latexmk
/ClutTeX
+ BibLaTeX
+ LaTeX Workshop
+ Git
+ pre-commit
+ GitHub
LuaTeX/LuaLaTeX
/XeTeX/XeLaTeX
はぴーでぃーえふのコンパイルに使うエンジンだにょ。BXjscls
/LuaTeX-ja
は日本語を表示するための文章クラスだにょ。Latexmk
/ClutTeX
はコンパイルのためのコマンドを必要なだけ呼び出すためのツールだにょ。BibLaTeX
は参考文献を管理するためのパッケージだにょ。LaTeX Workshop
はVS CodeでLaTeX
をべんりに使えるVS Code拡張機能だにょ。Git
は編集履歴をよさげに管理してくれるソフトウェアだにょ。pre-commit
はGitで履歴を付ける前にフォーマットしてくれるソフトだにょ。GitHub
はいろいろべんりなGit
のリモートだにょ!
エンジンはどれを使うにょ?
LuaTeX
vs XeTeX
vs upLaTeX
vs pLaTeX
vs pdfTeX
?
- ”XeTeX か LuaTeX の二択”1という説があるにょ。
詳細
upLaTeX
とpLaTeX
以外では、日本語文章用のパッケージを別途使うようです。LuaTeX-ja
はLuaTeX
使用時によく用いられ、ltjs~
等の文章クラスも提供している。BXjscls
はこのような日本語文章用のパッケージを自動的に読み込む文章クラスのパッケージであり、上で挙げた5つに全て対応している。2upLaTeX
とpLaTeX
はGitHubで管理されているようだが、最終コミット日時はそれぞれ2022/7/14, 2023/2/15であった。一方で、LuaTeX-ja
パッケージの最終更新時は2023/10/10であったが、GitHubで管理されていない。BXjscls
はGitHubで管理されており、最終コミット日時は2023/8/6であった。- TeX処理系御伽話 #LaTeX - Qiita
- XeLaTeXで日本語文章を書く例
- 日本語 LaTeX の新常識 2021 #LaTeX - Qiita
- システム情報科学コース 実験と演習
すでに優れたテンプレートはあるのかにょ?
LaTeX
に"テンプレート"という概念があるので、検索するのがとても難しいにょ。
詳細
但し、"latex+latexmk+pre-commit"などで検索するとほとんど結果が出ないため、上記の要求を満たし、かつ絶対的に優れているテンプレートがあるとは言えないと思われます。
ノートを全てLaTeXで取った LaTeX and Vimは英語圏で有名だと思います。shenapse/template-texlive-docker-vscode、eed6d80434107db92f2276b9c4e5a799ce064cdeも見つけました。
ビルドツールはどれを使うにょ?
Latexmk
vs llmk
vs ClutTeX
vs arara
vs ptex2pdf
中間ファイルを別の場所に置いてくれるClutTeX
を使うにょ!特に設定はいらないにょ。これでファイルがすっきりするにょ。
ClutTeX
に乗り換えるにあたって中間ファイルを消すにはどうするにょ?
git clean
を使うにょ。
まず
git clean -x -n
でなくなったらこまるファイルが消されないか確かめるにょ。大丈夫なら
git clean -x -f
で消すにょ。
詳細
ptex2pdfは3年ほど更新がないようです。
LaTeX Workshop
を使ってしまうと、エディターに対する依存性が高まってしまうと思います。
Latexmkをどうしても使いたいにょ……?
.latexmkrc
の設定
./.latexmkrc
#!/usr/bin/env perl $lualatex = 'lualatex -shell-escape -synctex=1 -interaction=nonstopmode'; $pdflualatex = $lualatex; $biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B'; $bibtex = 'bibtex %O %B'; $makeindex = 'mendex %O -o %D %S'; $pdf_mode = 4; $max_repeat = 5; $pvc_view_file_via_temporary = 0; # use default previewer if ( $^O eq 'MSWin32' ) { $pdf_previewer = 'start'; } elsif ( $^O eq 'darwin' ) { $pdf_previewer = 'open'; } else { $pdf_previewer = 'evince'; }
使うTeXの種類によって$pdf_mode
等を変更する必要があります。ここではLuaTeX
+Biber
+makeindex
における例を挙げます。BibLaTeX
のバックエンドにはBiber
, BibTeX
, bibtex8
があるようですが、普通はBiber
を使うようです。
参考
- 続くといいな日記 – upLaTeX から LuaTeX に移行する
- latexmkrcメモ #LaTeX - Qiita
サブディレクトリにある.tex
ファイルをコンパイルする場合、LaTeX Workshop
はそのディレクトリからコマンドを呼び出すため、.latexmkrc
もそのディレクトリに置くか、または引数に.latexmkrc
のファイルパスを指定する必要があります。
{ "latex-workshop.latex.recipes": [ { "name": "latexmk", "tools": ["latexmk"] } ], "latex-workshop.latex.tools": [ { "name": "latexmk", "command": "latexmk", "args": [ "-r", "%WORKSPACE_FOLDER%/.latexmkrc", "-outdir=%OUTDIR%", "%DOC%" ], "env": {} } ], "editor.wordWrap": "on", "latex-workshop.latex.autoBuild.cleanAndRetry.enabled": false }
.latexmkrc
が適切に読み込まれていない場合、LaTex Compiler
の出力を見ると、-interaction=nonstopmode
が指定されていないために途中で止まっているかもしれません。その場合は、LaTeX Workshop
のウィンドウからTerminate current compilation
を押します。
ClutTeX
やLatexmk
をLaTeX Workshop
と一緒に使うために.vscode/settings.json
を作るにょ!
{ "latex-workshop.latex.recipes": [ { "name": "cluttex", "tools": ["cluttex"] }, { "name": "latexmk", "tools": ["latexmk"] } ], "$comment": "LaTeX Workshop calls commands from the directory of the main tex file, not the root of the project. See https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#placeholders for more info.", "latex-workshop.latex.tools": [ { "name": "cluttex", "command": "cluttex", "args": ["--engine=xelatex", "--biber", "%DOC%"], "env": {} }, { "name": "latexmk", "command": "latexmk", "args": [ "-r", "%WORKSPACE_FOLDER%/.latexmkrc", "-outdir=%OUTDIR%", "%DOC%" ], "env": {} } ], "editor.wordWrap": "on", "latex-workshop.latex.autoBuild.cleanAndRetry.enabled": false, "latex-workshop.latex.autoBuild.run": "onSave" }
pre-commit
はどのフックを使うにょ?
.tex
のフォーマットには、まずlatexindent
をつかうにょ!LaTeX Workshop
のデフォにょ。.tex
のフォーマットにpre-commit-latex-hooks
も使うにょ。.tex
のリントにはchktex
とlacheck
をつかうらしいにょ。3.bib
のフォーマットにはbibtex-tidy
をつかうにょ!
latexindent
と.latexindent.yaml
の設定
素直にコピペするにょ!(view raw
からまず開くにょ!)
詳細
これは本当に難しいようなので、素直に専門家に頼る。
但し、ファイルはprettier
にyaml
として認識されないため、コメントを除去する必要がある。そこまでして使う価値があるかは、筆者には判断しかねる。
オプションは以下を参照した。
.bib
のフォーマットはLaTeX Workshop
に直接実装されているため、pre-commit
と同時に使いにくいし、こちらもあまり特定のエディターに依存したくない。
あまりメンテナンスされているフォーマッタは無いが、bibtex-tidyが一番まともだと思われる。但し、v1.9.0
より後ではpre-commit
のargs
が正常に動作しないという不具合が現時点で解決されていない。
.latexmkrc
はPerl
ファイルであるため、やり過ぎ感はあるが、一応フォーマットする。Perl
のインストールが必要。Strawberry PerlとActivePerlがあるが、段々と前者が主流になっている模様。4
winget install -e --id StrawberryPerl.StrawberryPerl
- repo: https://github.com/henryykt/pre-commit-perl rev: v0.0.5 hooks: - id: perltidy files: ".latexmkrc"
pre-commit-latex-hooks
は"pre-commit latex"等で検索すると最も上に出てくる。Rust
のインストールが必要。
Rustをインストールしておくにょ。
winget install -e --id Rustlang.Rustup
pre-commit-config.yaml
# See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks exclude: "CHANGELOG.md|.copier-answers.yml" default_stages: [commit] ci: autofix_commit_msg: "chore(pre-commit.ci): auto fixes" autoupdate_commit_msg: "chore(pre-commit.ci): pre-commit autoupdate" repos: - repo: https://github.com/commitizen-tools/commitizen rev: v3.2.2 hooks: - id: commitizen stages: [commit-msg] - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.4.0 hooks: - id: check-added-large-files - id: check-builtin-literals - id: check-case-conflict - id: check-docstring-first - id: check-merge-conflict - id: check-json - id: check-toml - id: check-xml - id: check-yaml - id: detect-private-key # - id: end-of-file-fixer # - id: trailing-whitespace - repo: https://github.com/pre-commit/mirrors-prettier rev: v2.7.1 hooks: - id: prettier args: ["--tab-width", "2"] - repo: https://github.com/jonasbb/pre-commit-latex-hooks rev: v1.4.0 hooks: - id: american-eg-ie - id: cleveref-capitalization - id: csquotes - id: ensure-labels-for-sections - id: no-space-in-cite - id: tilde-cite # args: # [ # # If present only check that there is a \label{} but not the value # "--ignore-label-content", # ] - id: cleveref-instead-of-autoref - repo: https://github.com/cmhughes/latexindent.pl.git rev: V3.23.4 hooks: # - id: latexindent # - id: latexindent-conda - id: latexindent-docker args: - --overwriteIfDifferent - --replacement - --local - --modifylinebreaks - --silent - repo: https://github.com/FlamingTempura/bibtex-tidy rev: v1.9.0 hooks: - id: bibtex-tidy args: [--no-align]
GitHub Actionsでコンパイルするにょ!
コンパイルにもcluttex
を使うにょ!Dockerの起動に2分ぐらいかかるからprivateリポジトリの場合残り時間に気をつけるにょ。1日60分ぐらい使えるから、10回/日ぐらいが無難にょ。
.github\workflows\build.yaml
name: Build LaTeX document on: - push - pull_request - workflow_dispatch jobs: build_latex: runs-on: ubuntu-latest steps: - name: Set up Git repository uses: actions/checkout@v4 # - name: Compile LaTeX document # uses: xu-cheng/latex-action@v3 # with: # root_file: "**/*.tex" # latexmk_use_xelatex: true - name: Compile LaTeX document uses: xu-cheng/texlive-action@v2 with: scheme: full # runs on docker image # clutex: https://github.com/minoki/cluttex # non-paralleled version: # find . -name "*.tex" -exec sh -c 'cd $(dirname {}) && cluttex --no-halt-on-error --no-file-line-error -e xelatex $(basename {})' \;Q run: | apk add parallel find . -name "*.tex" | parallel "cd $(dirname {}) && cluttex --no-halt-on-error --no-file-line-error -e xelatex $(basename {})" - name: Upload PDF file uses: actions/upload-artifact@v4 if: always() with: name: PDF path: "**/*.pdf"
ちなみにcluttexはデフォルトで--halt-on-error --file-line-error
となっているから気をつけるにょ。GNU Parallel
で高速化してるにょ。actions/cache
でもっと速くなると思うにょ。Latexmk
を使うときはlatex-action
をそのまま使うといいにょ。
マルチカーソルを使いこなすにょ!
Ctrl+D
で次の同じワードにも同時にカーソルをおけるにょ。\begin{...}...\end{...}
の...
の中身を変えるのに使えるにょ。ドキュメントを読むにょ!
サジェストとスニペットを使いこなすにょ!
特にこだわりがなければとりあえずLaTeX Workshop
のWikiにあるスニペット(例:BEQ
→\begin{equation}...\end{equation}
)とサジェスト(例:@a
→α
, @/
→\frac{}{}
)の説明を読むにょ!
さらなる高みを目指すなら下のファイルも使うなり改造するなりするにょ。
.vscode/latex.code-snippets
人によってdfn
,Def
,defi
,definition
など定理環境の派閥の違いがあることを考えると(GitHubで調べると面白いにょ!)、自動生成するのもありにょ。
from pathlib import Path import json theorems = "axiom,defi,thm,prop,lemma,cor,ex,exer".split(",") envs = "figure,proof,equation,align,alignat,gather,multiline,split,aligned,alignedat,gathered,lgathered,rgathered,multilined,cases".split(",") def make_item(prefix: str, env: str) -> tuple[str, dict[str, list[str]]]: return f"begin/end {env}", { "prefix": [ prefix, ], "body": [ "\\begin{" + env + "}", "\t$TM_SELECTED_TEXT$0", "\\end{" + env + "}", ] } d = dict(make_item(env, env) for env in envs + theorems) d.update(dict([make_item("begin", "${1:env}")])) Path("latex.code-snippets").write_text(json.dumps(d, indent=4))
複雑なスニペットで長いコマンドをすぐに書けるようにするよりも\NewDocumentCommand
や\DeclareDocumentCommand
でコマンドを定義したほうが良いかもしれないにょ。そーゆう意味で下のHyperSnips
用のファイルはいらないかもしれないにょ。
.vscode/latex.hsnips
本棚の設計?
本棚に必要な木材
本のサイズ
種類 | サイズ |
---|---|
菊判 | 234x159 |
A5 | 210x148 |
B6 | 182x128 |
幅,厚さ,長さ,仕上げ
- 幅は、目的とする本のサイズにも依るが、128~180程度が目安となる。面倒かもしれないが、2枚を何らかの方法で横につなげるという手もあるかもしれない。
- 厚さは、簡易的に平行部の曲げ応力と垂直部の座屈を考慮すると、S-P-F-甲種-3級の値では、15mm程度あればギリギリ大丈夫そうである。12mmだと、ちょっと地震が起きたら平行部・垂直部ともに折れ曲がりそうである。18mmあれば安心である。杉材に変えると許容応力度は上がるがヤング率が下がり、曲げ応力への耐性は上がるが、座屈への耐性が下がり、よりシビアになる。材料力学に自信がないため、間違っていたらすみません。
- 長さは、突っ張りの本棚を作る場合でも本体は2つに分けるため、配送の観点から1.8m(6F)-2m程度のものが望ましいであろう。
- 仕上げは、少なくとも上下面、できれば4面ともプレーナー仕上げしてある必要がある。荒材は加工が困難であるらしいので、避けたい。内装用に接合用の加工を施されたもの(特に本実(ほんざね)加工、相じゃくり加工)がほとんどだが、こちらも避けたい。
厚さ(材料力学)
物性値
ヤング率$E$、最大圧縮/引張/曲げ/剪断応力$σ_c, σ_t, σ_b, σ_s$、安全率を指定する必要がある。 木材にはJAS規格で定められた等級区分製材と定められていない無等級区分製材があるが、我々が一般に入手可能であるのは無等級材である。 特に政令に従う必要はないのだが、
- 許容応力度(安全率の逆数)は建築基準法施行令(昭和二十五年政令第三百三十八号)第89条に定められており、長期に生ずる力に対しては$\frac{1.1}{3}$となっている。
- 最大応力は「木材の基準強度Fc、Ft、Fb及びFsを定める件」(平成24年8月4日国土交通省告示第910号)に定められている。
- ヤング率は政令・告示で定められておらず、一般的には日本建築学会の「木質構造設計規準・同解説-許容応力度・許容耐力設計法-」(定価5280円)に記載されている基準弾性係数の数値が用いられる。1
上の表は見づらかったり有償であったりするので、木造の設計メモやICBAの第9章 許容応力度及び材料強度を見れば良いと思われる。(前者は値が正しいかは確認できていない。)
材質 | $σ_c$ | $σ_t$ | $σ_b$ | $σ_s$ | $E$ | $ρ$ |
---|---|---|---|---|---|---|
S-P-F-甲種-2級 | 17.4 | 11.4 | 21.6 | 1.8 | 9.6 | 0.50? |
すぎ(無等級) | 17.7 | 13.5 | 22.2 | 1.8 | 7.0 | 0.38? |
本の重さ
漫画の密度を求めるのは難しいが、$0.8$g/cm3とする。厚さの平均は$11$mmとするが、ジャンルに大きく依るだろう。(少年漫画等はもっと分厚くなり、A5版の四コマ漫画等はもっと薄くなるだろう。) 追記:漫画の密度は出版社等により大きく変わるようである。いくつか計測したところ、B6/178pの夢喰いメリー1巻が169g、A5/168pのゆるゆり2巻が293g、A5/118pのドージンワーク1巻は260gと、A5の芳文社の漫画は特に重めであるようである。下の計算はA5の芳文社の漫画の重量を過小評価していると思われる。
計算
よく分からないが、両脚絞端矩形ラーメンに当たると思われる。 つまり、地震等を考えない場合、普通の単純支持梁と両端ピン支持の長柱と同じとしてよいはず。(自信無し)
平行部
$$ I=\frac{bh^{3}}{12} $$ $$ R_{\mathrm{max}}=\frac{wl}{2} $$ $$ M_{\mathrm{max}}=\frac{wl^{2}}{8} $$ $$ σ_s=\frac{R}{bh} $$ $$ Z=\frac{2I}{h} $$ $$ σ_m=\frac{M_{\mathrm{max}}}{Z} $$
垂直部
$$ P_{\mathrm{cr}}=η\frac{EI}{L^{2}} $$ $$ \frac{W_{\mathrm{all}}}{2} \leq P_{\mathrm{cr}} $$ $η$は両端ピン支持の長柱では$\pi^{2}\approxeq9.8696$となるが、両端ピン支持?の自重を受ける長柱では$18.5687$となる。2 これらを使って計算すると、上述の結果になると思われる。
棚板・側板の価格一覧
材料は価格が安ければ良いため、SPF(松)か杉か合板が良さそうである。
- SPFの場合、B6では1x6、それ以外では1x8となる。(1x7材は見たことがない。)
- 杉の場合、長さは6尺(1820mm)が良いだろう。厚さは分(3mm)単位、幅は寸(30mm)単位となっているようで、体感的に3,4,(5,6,)12分(9,12,(15,18,)35)x3,4,6寸(90,120,180)が多い気がする。厚さがあまり本棚に適していないものが多い模様。中古品やプレーナー仕上げされていない材(荒材)が多いため、注意。
合板の場合、大きさは3尺x6尺(910x1820mm)となる。厚さは15,18mmが良いだろう。
楽天市場 レビュー件数順に検索した。https://search.rakuten.co.jp/search/mall/%E6%9D%89/100896/?s=5
- 満点木材では、欅は柱やテーブル用の高級材しか無く、楢、栗は12cmまで、桧は12cmは安いが15cmになると急に高くなる。樺(かば)は塗装品が安い。桧の75mm品は10mm厚。樺の75mm品は在庫が殆どない。
- 本実(ほんざね)加工は下図のように凸部と凹部があり、下に切欠があるが、切欠に目を瞑り、凸部(雄実,おざね)は鑿(のみ)で落とせるらしいので落として凹部(雌実,めざね)を背板で隠せば使えるかも知れない。
- 本実加工があることを逆手に取り、幅90mmの材を2つつなぎ合わせて幅180mmの本棚が作れるかもしれない。
出典:「激安 樺桜 幅広 カバザクラ オイル塗装 フローリング材床材」https://lumber.ocnk.net/product/983, 2023/08/08閲覧.
- 相じゃくり加工ならあまり気にならないかも知れない。ただし相じゃくり加工はマイナーで杉以外ではあまりない。
- コーナンでは無料トラック貸出があり、また配送を頼むと大きさに関わらず800円程度になるらしい。
- ロイヤルホームセンター:不明https://www3.roymall.jp/shop/g/grhc2-038210/
- 1台当たり8枚必要であるから、1枚1000円なら8000円かかる。
全体として18mmの杉材が入手しにくく、迷い中である。
背板
背板は合板、天井材の選択肢があると考えられる。
ショップ名 | サイズ | 価格 | 価格/1820x910mm | URL |
---|---|---|---|---|
コメリ | ラワン合板 4x1820x910 | 1350+NaN | 1350 | https://www.komeri.com/shop/g/g1270996 |
コメリ | ラワン合板 5.5x1820x910 | 1550+NaN | 1550 | https://www.komeri.com/shop/g/g1271005/ |
満点木材 | 杉 330x1820x7 6 | 5489 | 2744.5 | https://lumber.ocnk.net/product/540 |
三祐木材 | 桧合板 5.5x1820x910 | 1920+2000 | 1920 | https://www.sanyumokuzai.co.jp/product/%E3%80%90%E3%81%B2%E3%81%AE%E3%81%8D%E3%80%91-%E6%A7%8B%E9%80%A0%E7%94%A8%E5%90%88%E6%9D%BF%E3%80%80-%E7%AF%80%E3%81%AA%E3%81%97%E3%80%803x6%E3%82%B5%E3%82%A4%E3%82%BA-%E3%80%90%EF%BC%94%E3%82%AB/ |
ニス
1台あたり8枚使うため、裏表合わせて$0.15\cdot1.82\cdot8\cdot2=4.4\mathrm{m^{2}}$必要で、ニスは2回塗りで約0.1L/m2必要であるから、440mL程度必要である。和信のニスが最もメジャーであるようだが、3000円/0.7L、9600円/4kgもする。 さらなる仕上がりを目指す場合サンディングシーラーを使うようである。こちらも1回塗りで約0.1L/m2必要で2700円/0.7L、8000円/4kgする。 したがって塗料だけで2000~5700円程度かかる。
既製品
※Amazonのリンクを踏んでも当方にお金は入りません。
本棚を販売している企業が出している動画であることに留意する必要があるが、やはり突っ張りであると安心な気がする。
ラック
ラックは事実上製造しているのが一社(OEM,台湾製?)しかないようである。OEM先を特定しようとしてAliexpressや画像検索等で大分調べたが、うまく行かなかった。 棚板をバラで売っているところも見つけられなかった。山善、菊屋等の商社が販売しているようである。 側板の網目が3マスのものは幅63cm, 78cm, 92.5cmを確認しており、4マス 最下段の板の下にも本を置けば9段になる。本棚を買うよりコストパフォーマンスが相当良いが、ラックを採用するとB6だと段あたり12kg、A5だと16kg程度かかるため、場合によっては耐荷重オーバーになる。 天井高が2.2m程度の場合A5ならこれでピッタリだが、B6の場合は1段分スペースが余ると思われる。天井高が2.4m程度の場合は、更に1段分余ることになる。 奥行き24cmがあれば、ちょっと壁面から離せばB6を二段重ねに出来、1350~1500冊程度入りそうだが、より耐荷重オーバーになる。
10840円,幅78,奥行24,8段
13400円,幅78,奥行25,8段
21,980円,幅92.5,奥行き25,10段
11,990円,幅68,奥行き34,8段
12,990円,幅88,奥行き34,8段
16000円,幅63,奥行き25,8段,部分的に背板?がある変種
17999円,幅78,奥行き25,8段,部分的に背板?がある変種
本棚
突っ張りまでいくほど高いものはほぼ山善の独壇場になっている模様……。
19911円,幅81,奥行15.5,9段
24800円,幅101,奥行15.5,9段
17392円,幅70,奥行18,10段
突っ張りを諦めると途端に安くなる。
9980円,幅89,奥行28.8,高さ180.0,8段
シューズラック
流石にシューズラックは駄目かな……
2380円
感想
ということで厚さ18mmの板で頑丈な本棚を作ろうものなら12000円かかるので、自分の人件費と比べると大して得にならず、時間がかかりすぎるので(調べるだけで何日も無駄にした……)ちょっと保留。
追記
結局YahooショッピングでTP-5405を実質7620円~で4個購入した。既存の本棚に新たに突っ張り棒を設置するのはコストが掛かり面倒でもあるため、耐震性の観点から古い本棚はこれらで順次取り替えることにした。
Audacityで音声ファイルを分割する
ラベルの追加
X
でカーソルを更新しながら再生Ctrl+B
でラベルを追加
書き出し
Ctrl+Shift+L
またはファイル(F)>書き出し(E)>複数ファイルの書き出し(M)...- 書き出し