なつやすみ2020(その3)
おはようございます*1. TeXやLaTeXに悩まされているしぐまです.
08/22
ブログに第2週の分を投稿した. 数が数えられず,1週間の長さが8と6になっていたことに気付いた.
私にとって重要な式である の理解が深まった. 超実数として両辺を考えると,
になるが,このとき
が成り立つ. つまり,我々が自然に(?)持つ「両者は異なるが,その差は無限に小さい」という感覚が実際に扱えているのである. この事実に気付けただけでも超準解析の本を買った意味があると思えた.
関数解析のゼミをした. Neumann問題の話が終わった後,多重Fourier級数が導入された. その後は演習問題の解答を聞いて雑談した(僕が超準解析の話を少しした).
08/23
ここ数日で気付いたけど,pixivで漫画漁るのやめた方がいいな? 探せばいくらでもいいのが出てきて,生来の特性(とりあえず文字なら何でも読んでしまう)と相まって無限に時間が溶ける.
超準解析のゼミをした. 僕が拡張定理について話した後,一般の超冪の定義と可算広大化定理の話をしてもらった. 教科書がガバで仮定が抜けていたので,それを推測することになった. お陰で理解は深まったので,まあ許してあげよう(?). ちなみに前回僕が発表した -有限和の定義でもテキトーな定義してて,そのせいで すら計算できなくて困った(適切に修正はできた). 一度,超実数に限らない一般の超冪についても移行原理とか証明した方がよさそうなので,いずれブログに記事を上げます*2.
VSCodeでLaTeX打つときに便利なhover preview用のtexファイルを更新した. これがあるといちいちPDFに飛ばなくて済むので,少し時間のかかるコンパイルを回さなくても作業が続けられる*3.
「ブログ記事3日連続投稿するぜ!」と思って作業してたけど,2時間中1時間くらいが寝ることに費やされたのでダメでした... ネタ自体は色々あるので,実りある夏にしていきたい.
08/24
某大学の本館が爆破予告された当日である. 「移転するなら転がした方が壊すより安上り」とまで言われる本館が壊れるとは思えないが,中にあるもの(人や本)は普通に壊れるので何もないことを祈るだけである.
TeX講習会のために資料やそこに載ってる参考文献を読み漁った(とりあえず3時間くらいかかった). 予定が合わず,自分自身は講習会に出たことがないことによる弊害をひしひしと感じている(当たり前のことを知らなかったっぽい).
上記のブログ記事を書き終わって投稿した*4.
上記の歪んだ動き(全て徹夜して行っていた)が原因で,用事があったタイミングに寝てしまった. 実は用事がサークルと大学でダブルブッキングしていたのだが*5,そもそもどちらにも出られない結末にびっくりした(あほ過ぎる).
久しぶりにSwitch触ったら充電切れてて悲しい気持ちになった. 切れたことが分からないくらい長い間触れなかったんだよなぁ...
結局大学は爆破されなかったので一安心.
08/25
見てなかった講義の動画を見ようとして気が散って他のことしてた.
数検1級を友人が取っていたので,自分も数検1級の問題を解いてみた. 計算のミスを減らすことと解答を上手く纏める力が足りていないので,統計を勉強したり,演習を積めば取れそうだった.
08/26
ようやく残ってた講義を見た. 証明の理解を放置している定理がまた出てきたので,早く理解したい(今学んでいることを使うと楽に証明できるらしいので,ちょっとやる気が起きないけど...).
将棋ペンクラブのブログを見ていた.
気が付いたら23時間経っていたので大変面白いことが伝わると思う(伝えている場合ではない).
バイト行った. 解けない問題あって笑ってしまった(笑っている場合ではない).
LaTeXの本とか資料とか見てるけどキツイ!!!!!!!! もっとちゃんと勉強しとけば良かった...(本買ったの去年だし)
08/27
午前:寝てた.
昼食後から夕食まで:寝てた.
TeX講習会の資料を作成するはずだったが,Mathtechの方の原稿とか見てたら全く進まなかった. 先輩から知見を得ることはできたので,それだけ書いておく:
- pTeXやLuaTeXのような日本語を扱える組版システムでは,和文と和文の間・和文と欧文(数式を含む)の間に適切な間隔(グルー)が入る.
- しかし,和文Aと欧文Bの間に半角スペースを入れてしまうと,Aと半角スペースの間・半角スペースと欧文の間にグルーは入らないため,結果として出力がおかしくなってしまう*6.
- この問題は,本来和文・欧文として処理してほしい文章が内部ではそう扱われていない際にも顕在化する. その解決方法として,bxghostパッケージ*7を紹介された.
*1:健康優良児なので,当然これは徹夜して投稿しています.
*2:こう書いておけば逃げられないでしょう.
*3:これを見てVSCodeが気になった人はこの記事を読んでVSCode生活始めましょう:VSCodeでLaTeXを書くと楽 - ブログだと140字以上打てる
*4:「れべすぐぇ」って響きが好き - ブログだと140字以上打てる
*5:どちらも任意参加ではあったので致命傷ではない...はず.
*6:正直普段は気になるような大きさの差は生まれない. 例えば,長いインライン数式を書いたせいで,文字同士の間隔を大きく空ける必要が出てきたりすると,その差は顕在化する.
「れべすぐぇ」って響きが好き
おはようございます. 本当にさっきまで寝てたしぐまです.
今日はLebesgueの優収束定理の適用例を紹介します. 前提知識は(式を証明とかせず認めれば)高校数学程度のはずなので,気軽に読んでもらえれば幸いです.
誤植等の不備や,疑問点があったらお気軽にお知らせください.
なつやすみ2020(その2)
おはようございます.しぐまです.
日記も第二週になったため,多少体裁を整えてみました.
08/16
VSCodeでLaTeX書くやつ記事仕上げた. 自分で見直しはしたので,後は友人に見てもらって問題や疑問がないか確認してもらうだけ.
この日記を1週間分公開した.
サークルの連絡をした.
08/17
ようやくtexファイルのpreambleを更新した. その際に他人のtexファイルを参考にしたが,その結果texコードの書き方も改善しようと思った. 例えば,align環境でラベルを付ける際に以下の例1のように書いていたが,2行以上書く場合は例2のようになる. そう考えると,書き方の統一を行うべきことから,1行の数式であっても例3のように書くべきだと気付いた.
% example 1 \begin{align} \label{eq:lim add} \lim_{n \to \infty} \paren{a_n + b_n} = \lim_{n \to \infty} a_n + \lim_{m \to \infty} b_m \end{align}
% example 2 \begin{align} \lim_{n \to \infty} \paren{a_n + b_n} &= \lim_{n \to \infty} a_n + \lim_{m \to \infty} b_m \label{eq:lim add} \\ \lim_{n \to \infty} \paren{a_n \cdot b_n} &= \paren{\lim_{n \to \infty} a_n}\paren{\lim_{m \to \infty} b_m} \label{eq:lim prod} \end{align}
% example 3 \begin{align} \lim_{n \to \infty} \paren{a_n + b_n} = \lim_{n \to \infty} a_n + \lim_{m \to \infty} b_m \label{eq:lim add} \end{align}
バイトの資料を書いてた.
08/18
前日友人に見せたLaTeX記事に改善点の指摘があったので従った(実際に読みやすくなったので良かった).
バイトに行った. 生徒ができることが段々増えてて嬉しい.
やりたいこと自体は色々あったが,疲れてたので寝落ちしてしまった.
08/19
祖父の墓参りに行った. 祖父は将棋を指す人だったらしい*1ので,将棋界の最近について報告してきた.
そのついでに屋外の人が密集しなくて済む場所にいくつか行った. 久しぶりに外の空気をたっぷり吸って,景色を見ることができてとても良かった.
友人にさらに貰ったLaTeX記事についての指摘「現在って書いてるけどいつか分からん」を反映した. 自分が普段文章を読んでいて不満に思うことでも,自分で書いているときは忘れてしまうものですね...
08/20
藤井木村の王位戦を観てた. 藤井猛先生の軽快なトークや,豊川中田の掛け合いがとても面白かった. 眠くなって寝てしまい,藤井王位誕生の瞬間を見ることができなくて残念だった. 実際に自分で藤井二冠の誕生を理解したとき,将棋界の新たな時代の始まりの中にいる興奮と,木村先生の悲願のタイトルが4連勝で奪取されたことの悲しみが混ざった複雑な気持ちになった.
サークルで行うTeX講習会*2の準備を進めるために,まずは先輩方の作成した資料を読んでいた. あまり時間がないが,新型コロナ禍で困っている下級生の助けになるような講習ができるように頑張りたい.
上記のLaTeX記事を公開した *3. 結構反応が貰えて嬉しかった. 特に大学の友人が実際にVSCodeの導入を試してくれた*4ので「ありがてぇ...」って言ってる.
08/21
ゼミの準備をした. 単位円上のNeumann問題の解の存在条件とか話すことになってる. 準備が杜撰すぎて3回連続で発表しているので,そろそろ終止符を打ちたい. 微分と一致するから定数項は消えてないと困るって気持ちや,微分(のr倍)にとってはDirichlet問題であることを考えれば前半は簡単.
バイトに行った. 開始時間を間違えて2時間前に行ったが,お陰でゼミ準備の進捗が生まれた(は?)
味噌カツが美味しいのは回鍋肉が美味しいのと同じくらい当たり前であることに気付いた(味噌+豚+キャベツなので).
Twitterに流れてきた院試の問題見て頭抱えてた. 来年にはコレ解くんですか...?
VSCodeでLaTeXを書くと楽
おはようございます! しぐまです.
今回は,Visual Studio Code (以下VSCode)を使ってLaTeXを書けるようにする話です.
VSCodeを使ったきっかけ
以前の私は,LaTeXを用いて文書を作成する際にCloud LaTeXを用いていました*1. その際,不便に感じることがあったため有識者に相談すると「VSCodeとか使うと便利らしいよ」と教えてくれました*2. そんな話を聞いてからしばらくたった後,私も「VSCodeへ乗り換えよう!」と決意しました. しかし,実際にVSCodeでLaTeXを打とうとすると,
といった3つの作業が必要になり,実際に主要な環境として使用し始めるまで1月半ほどかかってしまいました. そこで,今回は私の環境構築の様子をそのまま書くことで,後からVSCodeでLaTeXを書く人の助けになることを目指しています.
VSCodeと格闘した日々
参考にしたサイトのリンクと一緒に何をしたか書いていきます*4. 後から問題や便利なツールに気付くことがあったので,とりあえず一通り眺めた方が楽に環境構築できると思います. 私がWindowsを用いているため,その他のOSを用いている人は該当しないことも多いかもしれません. 私が楽なため,以下常体で書きます.
03/15
TeX Live 2019をインストールした*5.
TeX Live 2019をインストールした - algebraic dialy | 壱大整域弄ってたら良く分からなくなったので,VSCodeを初期化した.
Visual Studio Codeの設定を初期化する(Windows)LaTeX Workshopをインストールした.
VSCode で最高の LaTeX 環境を作る - Qiitalatexmkを用いるためにPerlをインストールした.
Windows への TeX インストール(W32TeX・発展編) - Acetaminophen’s diary :latexmkにPerlが必要だと教えてくれた.
Strawberry PerlをWindowsにインストールする - Perlゼミ :Strawberry Perlのインストール方法.latexmkを設定した...と思っていたが,LaTeX Workshopのビルドレシピを設定してた(2020年8月現在に至るまでlatexmkを使っていなかった). この際,BibTeXを用いていないため,載っていた設定からBibTeXについての処理を消し,platexをuplatexに変更した.
Texの環境構築(Windows,Ubuntu)【VS code】 - Qiita :最後の方に載っていた"latex-workshop.latex.recipes"
を基に設定した.
03/30
いつものtexファイルのテンプレートが使えるように,user snippetのlatexのところに「\mytemplate」を追加した.
VSCodeにコードスニペットを登録して効率的にコーディング! – HPcode(えいちぴーこーど) :snippetの作り方.
JSON入門 - とほほのWWW入門 :JSONでそのまま使えない文字を知るために見た.以前インストールしていたTeX Live 2018が読み込まれてしまうため,2018版を消した. それに伴い,自分のプリアンブルを読み込める場所に移動した.
LaTeX入門/各種パッケージの利用 - TeX Wikiその際,パッケージを使うために必要だったのでls-Rを更新した. 一度更新に失敗したので調べた結果,管理者権限が必要だった.
[tex-live] [texhax] ! LaTeX error: File 'rcs.sty' not found. :同様の質問とその回答.個人的に邪魔だったので自動ビルドや誤字チェックを切った. また,生成したPDFは横に表示するようにした(後に変更).
VSCode+LaTeXで楽に執筆する環境設定 [Windows/macOS] | mktia's note
04/13
- user snippetを拡張機能を用いて楽に増やした.
VSCode で簡単にスニペットを追加できる拡張機能 | PCの歯車
- user snippetを拡張機能を用いて楽に増やした.
04/14
- LaTeX Workshopのスニペットを使うために環境名を「definition」などにした結果,cleverefパッケージの初期設定によって「定義」ではなく「definition」が表示されるようになった.
それに対応するため,crefnameを用いて名前を指定した
*6.
cleverefで賢く参照する - Qiita
- LaTeX Workshopのスニペットを使うために環境名を「definition」などにした結果,cleverefパッケージの初期設定によって「定義」ではなく「definition」が表示されるようになった.
それに対応するため,crefnameを用いて名前を指定した
*6.
04/15
PDF viewerとしてSumatra PDFを用いることにした.
Visual Studio Code/LaTeX - TeX Wiki :PDF表示の設定.
USBメモリ活用講座【基礎編・PDFビューアのポータブル化-SumatraPDF】 :Sumatra PDFの解説.inverse search*7について設定していたら,TeX Wikiの設定の書き方ではエラーを吐かれた. 調べた結果,
"hoge":{ "huga1": "settei1", "huga2": "settei2"}
という書き方ができないので,"hoge.huga1":{ "settei1"}
と"hoge.huga2":{ "settei2"}
に分ける必要があることがLaTeX Workshopの公式ドキュメントから分かった.
Visual Studio Code/LaTeX - TeX Wiki :VSCodeにおけるSumatra PDFのinverse searchについて *8.
SumatraPDF - MyTeXpert :設定を開いても必要な項目が出ないことへの対処法.
View · James-Yu/LaTeX-Workshop Wiki · GitHub :LaTeX Workshopの公式ドキュメント.
04/16
- 単語補完が日本語に対して機能していないのに,求めていない文章を出してきて邪魔なので設定を切った *9.
04/17
ミニマップが邪魔だったので消した.
VS Codeのミニマップの表示/非表示を切り替えるには:Visual Studio Code TIPS - @IThover preview*10を自分が定義したコマンドにもしてほしかったため調べた. 解決方法は分かったが,時間がないので後回しにした.
Support for `DeclarePairedDelimiter` in equation preview · Issue #1907 · James-Yu/LaTeX-Workshop · GitHub :同様の質問とその回答.
Hover · James-Yu/LaTeX-Workshop Wiki · GitHub :弄るべき設定について.
Supported TeX/LaTeX commands — MathJax 3.1 documentation :MathJaxでサポートされているコマンド(これ以外はそもそも表示されない).
CTAN: Package mleftright :ドキュメントを読んで,表示したかった\mleft
と\mright
の定義を確認した.
暗黙的な波括弧は波括弧か波括弧でないか (1) - マクロツイーター :その定義に出てきた\bgroup
と\egroup
の解説 *11.
暗黙的な波括弧は波括弧か波括弧でないか (2) - マクロツイーター :同上.
04/18
- hover previewのために必要な作業を実行した
*12.
math mode - How to typeset $:=$ correctly? - TeX - LaTeX Stack Exchange :\coloneqq
について.
math mode - Why do I need an \hbox inside \vcenter to make it work? - TeX - LaTeX Stack Exchange :なぜ\vcenter
の中に\hbox
を入れるのか.
http://www.math.kobe-u.ac.jp/HOME/kodama/tips-latex-math-margin.html :間隔の弄り方 *13.
- hover previewのために必要な作業を実行した
*12.
結果と必要な作業のまとめ
まず,2020年8月現在では,私のワークフローは次のようになった:
- 使用しているエンジンはupTeX. それに応じて,一部の設定でptex・platexをuptex・uplatexに変更している.
- 文書の作成はLaTeX Workshopの機能であるビルドレシピを,VSCodeの設定でCtrl+Alt+Bで行えるようにした *14.
- PDFはSumatra PDFで表示している.
次に,VSCodeでLaTeXを書くために必要な作業と,それに該当する私の行った作業を記しておく. まず,最低限必要な作業は次の3つである:
- TeX・LaTeXのインストール
私が行った作業の中では,TeX Liveのインストール(03/15)が該当している. - VSCodeでLaTeXを使えるようにする
日本語化とLaTeX Workshopのインストール(03/15)さえ行えばまずは充分だろう. - 作業しながらPDFを見れるようにする
私はSumatra PDFに設定した(04/15)が,特に不満がなければVSCode内で表示されるように設定すればよい(03/30)と思われる.
また,VSCodeの機能を利用して快適に作業を行うためには,加えて次のような作業が必要になる:
- 文書作成の簡略化
私はビルドレシピを用いて,一連の作業(uplatexで3回コンパイルした後,dvipdfmxでpdfファイルを作成する)をコマンド1つで行えるようにした(03/15). - スニペットの設定
私は主にユーザースニペットの設定を行った(03/30,04/13). LaTeX Workshopに元から用意されているコマンドも沢山あるため,それを知っておくとより便利だろう.
Snippets · James-Yu/LaTeX-Workshop Wiki · GitHub :LaTeX Workshopの公式ドキュメントのスニペットについての頁. - inverse searchの設定
私はTeX WikiやMyTeXpertのSumatra PDFの頁に書いてあることを参考に設定した(04/15). - hover previewの設定
簡単なコマンドを\newcommand
などを使って定義しているだけなら問題はないが,xparseパッケージの\NewDocumentCommand
や,MathJaxでサポートされていないパッケージの命令(bmパッケージの\bm
など)を用いた際,他のコマンドも表示されなくなることを防ぐために,別個でtexファイルを用意する必要がある. 私はMathJaxのサポートしているコマンドを調べ(04/17),別個のtexファイルを用意した(04/18).
実際にVSCodeを使ってる感想
上記を見れば分かるように,明らかにPC初心者には負担が大きすぎる作業量である(たぶん)(知らんけど). しかし,実際にVSCodeでLaTeXを書いていると,頑張って設定した色々のお陰で作業はすこぶる快適になった. だからこそ,多少大変でも使って欲しいと思い,こんな記事を書いたのである.
この記事が皆さんの快適なLaTeX生活の一助となれば幸いである.
謝辞
大学の友人たちは本記事の校閲を助けてくれました. ありがとう!
また,本記事の内容や,僕のLaTeXについての様々な質問に答えていただいたえぬぬんさんに感謝の意を表します.
えぬぬんさんが「初心者が0から環境構築した流れを見たい」と言わなければ,この記事ができることはありませんでした.
ちなみに,えぬぬんさんが書いた以下の記事を読むと,どんなときに(Wordではなく)LaTeXを使うべきなのか,どのようにtexファイルを書くべきか,ということが分かるので是非読んでみてください!
web.archive.org
追記
えぬぬんさんの書いた記事が消えて見れなくなっていたため,リンクをアーカイブに差し替えました.(2021/02/16)
Cloud LaTeXが便利になったみたいなので,実際に試してみました.(2021/02/16) drive.google.com
*1:追記に2021年2月時点におけるCloud LaTeXの使用感を書きました.
*2:ご本人は別のエディタを用いているらしい.
*3:texファイルを書くことをこう呼んでいます.会話で使うと手書きと紛らわしいです(だから面白い).
*4:リンクは問題があったら消します.
*5:この記事を公開した2020年8月現在にはTeX Live 2020が出ている.
*6:後になって,自分で設定したスニペット(labelとかも同時に出る)の方が便利であることに気付いた. しかし,figure環境を参照した際に「図n」と表示させるためにcrefnameが必要であり,役には立った.
*8:私がSumatra PDFを選んだ理由は,inverse searchがCloud LaTeXと同じダブルクリックで可能なためである.
*9:調べた際に「全角句読点を区切りとして設定すればよい」と出てきたが,設定してもなぜか上手く行かなかった. 解決法を知ってる方がいたら,教えてくださると助かります.
*10:カーソルを数式のコードに合わせたら数式が表示されるやつ.
*11:MathJaxで使用できる記号で代用するために理解する必要があった.
その後も調べた結果,mleftrightパッケージを用いずに似た挙動を示すコマンドが作れることが分かった(括弧類で囲まれたものとコード上で波括弧で囲まれたものの扱いは本質的に違うが,周りとの間隔を減らすという役割は果たせる):
『数式組版』を組む技術:\leftと\right (2)|きえだゆうすけ(p_typo)|note
*12:MathJaxでサポートされたコマンド使って,普段用いているコマンドを書いたtexファイルを作成した. とても面倒だったので,良い対処方法を知ってる人は教えて下さい...
*13:基本的にLaTeXは勝手に間隔を調整してくれるので,普段書く際はその設定に沿った書き方をするべきである.
実際に設定を生かす例:
\newcommandを乱用するな、\DeclareMathOperatorを使え(LaTeXでの演算子の定義)
*14:ショートカットキーの設定は,このサイトにあるようにすればよい:
VSCodeでキーバインドを設定する。keybindings.jsonが無い時の対処法 - Qiita
なつやすみ2020(その1)
夏休みの日記書くの流行ってる*1ので僕も書きました. 1週間分まとめてなのは内容がないからです.
08/08
08/09
- 上のやつとまだ戦ってた.
- 勝てなかったので人に質問されて解けた7-3の解答を書き始めた.
08/10
08/11
- 久しぶりに布団で寝た.最高!!
- 記事を人に見てもらってミスを指摘してもらった.
- その結果,physicsパッケージを使っているときは
\sin\mleft(x\mright)
は\sin(x)
と同様の動きをするが,\sin{(x)}
や\sin{\left(x\right)}
は変な隙間が空くこと,つまり\mathopen
や\mathclose
の扱いをすることで\mathord
と何が違うのかの例を見つけた. - texコードのpreambleを更新する!!つもりだったけど夜になっちゃった...
- ロシア語と代数の宿題を提出して完全に夏休みになった.
- エアコンのフィルター洗った(これはTychonoffの定理とか証明できないfilter).
08/12
- バイト行った.資料作るとか言っちゃったので作るしかなくなった(アホ).
- 誕生日プレゼントで貰ったこのすばを5巻まで読んだ.
08/13
- 良く寝てよく食べた.
- バイトの仕事を半分くらいした.
- 羽生梶浦戦を見た.羽生先生のタイトル100期見てえ~!!
- 1, 2Qの間に読めなかった分のニンジャスレイヤーを読み進めた.
08/14
- 数学系交流会に参加した.久しぶりに見る先生や後輩の顔に懐かしさを感じた.
- 1, 2Qの間に忙しくて見れなかったアニメを見た.
- ゼミ準備を少しした(眠くなって寝ちゃった...).
内容がないとか言ったけど,良く考えたらゼミ準備でやったこととか書けばいいのでは...?
*1:これは小学生が言う「みんなやってる」レベルのみんなです.
新コロのせいで忙しくて辛い2020
おはようございます.
家では勉強しない主義だったのに,この騒動のせいで日々レポートを書くことになって疲弊しているしぐまです.
今日は高校時代の友人から「RSA暗号やってるんだけどmodの逆元が良く分からん」と質問されたので,勢い余ってEulerのトーシェント関数とか説明したPDFを書きました. 内容は無に等しいですが,一応読みたい人がいたので上げておきます.