スキップしてメイン コンテンツに移動

投稿

ラベル(LaTeX)が付いた投稿を表示しています

TeX Live 2025 で upLaTeX + glossaries.sty を動かす

TeX Live 2024 の最終版で glossaries.sty に大きな変更があったようで、TeX Live 2025 版の uplatex コマンドでタイプセットを行うと (c:/texlive/2025/texmf-dist/tex/latex/datatool/datatool-utf8.ldf) ! Use of \??? doesn't match its definition. <argument> \??? ! LaTeX Error: Character code ##1 too large in \x{##2} regex. l.2220 } というエラーが表示されるようになりました。同様の問題が下記のサイトでも確認されているようです。 TeX Live 2024 で pLaTeX + glossaries.sty が動かない 原因は glossaries.sty が内部で読み込む datatool-base.sty の中の LaTeX3 の正規表現処理が upLaTeX で上手く扱えないことにあるようでした。エラーメッセージは LaTeX3(expl3) の l3regex が出しているようです。 こちらのサイトにあるコードをコピペしてみると、今度は (c:/texlive/2025/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli brarypositioning.code.tex)) ! Argument of \__char_generate_aux:w has an extra }. <inserted text> \par l.32 \makeindex というエラーが表示されました。今度は修正した部分が expl3 を利用している Tikz のほうで問題を起こしてしまうようです。 解決の糸口が見えないため TeX Live 2024 の最終版よりも前の環境を使って誤魔化していましたが、最近 ChatGPT に尋ねると問題の回避策を提案してくれたので記録しておきます。 datatool-base.sty の先頭付近で、いま使っているエ...

YaTeXでインライン数式の括弧を挿入する関数

EmacsのLaTeXの入力支援モードであるYaTeXでは、YaTeX-insert-dollarという関数が定義されていて、ドル記号"\$"を入力すると"\$\$"が入力され、カーソルは2つのドル記号の間に移動し、入力モードは直接入力に切り替わります。 日本語入力をオフにしなくとも直接数式入力に移行できることや、インライン数式環境の閉じ忘れが防げるので重宝しています。 LaTeXのインライン数式モードとして、他にも"\\("と"\\)"で括る方法があり、ドル記号を入力するのと同じような挙動をする関数が欲しいなと思っていたので作成してみました。 とはいってもYaTeX-insert-dollarとYaTeX-insert-dollars-regionの挿入文字列を変えてみただけです。 今のところの問題点は、数式モードの開始にドル記号が使われていても、"\\)"で閉じてしまうところです。ドル記号と括弧のどちらで開始された数式モードであるか判定する機能が欲しいところです。 (defun YaTeX-insert-math-paren () (interactive) (if (or (not (YaTeX-closable-p)) ; (= (preceding-char) 92) ;; (and (YaTeX-in-math-mode-p) ;; (or (/= (preceding-char) ?$) (/= (following-char) ?$))) (YaTeX-in-math-mode-p)) (insert "\\)") (insert "\\(\\)") (forward-char -2) (and YaTeX-use-jmode-hook (fboundp 'add-text-properties) (add-text-properties (- 2 (point)) (+ 2 (point)) (list 'point-left 'YaTeX-jmode-hook 'point...

LaTeXで宛名ラベルシールの差し込み印刷をする

この記事は TeX & LaTeX Advent Calendar 2021 の20日目の記事です。 19日目は hid_alma1026 さん、21日目は 7danmoroboshi さんです。   はじめに 業務でラベルシール用宛名ラベルの作成に ラベル屋さん というソフトを利用しています。しかし公式サイトの使い方を見る限り、連名の有り無しなどの条件分岐に対応したラベル作りに対応できなさそうです。そこでLaTeXのtikzとtcolorbox, datatool, intcalcパッケージなどを利用して宛名ラベルの差し込み印刷に挑戦してみました。 TeXエンジンは、フォントの変更がしやすいという噂のLuaTeX-jaを利用することにしました。 datatool はデータセットからdata plotや表作成などが行えるLaTeXパッケージです。日本語では ブログ天地有情  [LaTeX] datatool --- CSVデータからグラフやテーブルを作成 で使い方を見ることができます。csvなどの外部データを利用することもできて、今回は作成したcsvファイルを読み込み、定型フォーマットに文字列を流し込むのに利用しました。 準備 まずは宛名ラベルの差し込み印刷に利用するcsvファイルを用意します。今回は 疑似個人情報データ生成サービス を利用して、次の画像ようなcsvファイル(personal_information.csv)を作成しました。 csvファイルのヘッダ部分は取り除いています。ヘッダ部分がある場合もdatatoolの記述を変えれば利用できるようです。各列の意味は次の通りです。括弧内はdatatoolで扱う際のkeyを表しています。 名前(Name) 郵便番号(PostalCode) 住所1(Address) 住所2(address) ご家族様表記の有無(ToFamily) 連名1(Family) 連名2(family) 出力結果 上のcsvファイルを元に作成した宛名ラベルのpdfファイルの画像を載せておきます。あくまでも画像の住所・氏名はダミーで実在しません。 1枚目の画像は印刷後に余ったラベルシールの再利用を想定して、ラベル開始位置を指定できるようにし、開始位置をずらしたものです。画像では4番目のラベル位置から宛名を配置していま...

OpenCv-PythonとpdfLaTeXで自炊pdfファイルの位置調整

この記事は TeX & LaTeX Advent Calendar 2021 の11日目の記事です. 10日目は t_kemmochi さん,12日目は yukishita さんです.   動機  書籍の自炊にブックエッジスキャナーの AvisionのFB2280E を利用しています。書籍を裁断せずに1ページずつスキャンを行うため、本の開き具合などの要因で本の序盤、中盤、終盤で得られるスキャン画像の位置ずれが大きくなります。以前からpdfLaTeXを利用して位置調整をしていたのですが、OpenCvを利用して自動化できそうだったので試してみました。 やること 本記事では、pdf化した文書画像の版面(文字の印刷された部分の意味で使います)を半自動的に計算してpdfの画像の位置調整をするために、OpenCvとpdfLaTeXを利用する方法を解説します。手順としては Pythonの画像認識用ライブラリであるOpenCvを利用して版面を計算する。 テンプレートエンジンライブラリのJinja2を使って画像のバウンディングボックスなどを記述したLaTeXファイルを作成する。 pdfLaTeXでpdfを読み込み、位置の調整されたpdfを作成する。 という流れになっています。作業環境としては、 Visual Studio CodeをRemove - WSL拡張機能と併用 しています。PythonやそのライブラリはWSL上のUbuntuにインストールし、他にもpdfファイルを他のファイル形式にするためにpoppler-utilsなんかもインストールしました。 参考記事 OpenCvを利用した文書画像のレイアウト解析については ブログSomething Like Programming内の記事 Document Layout Analysis githubリポジトリ rbaguila/document-layout-analysis OpenCv-Pythonチュートリアル を参考にしました。 pdfLaTeXがpdf加工に使えるという話と、pdfpagesパッケージの存在は doraTeXさんのブログTeX Alchemist Onlineの記事 pdfTeX による見開きPDFの結合・分割 で知ったように思います。 画像pdfをpdfpagesで取り込む ま...

LaTeXの出力pdfにグリッドラインを引く(自炊pdfの画像位置調整)

普段購入した専門書をスキャンしてpdfファイルにし、ipadやPC画面で読むようにしています。書籍のスキャンには AvisionのFB2280E を利用しています(国内の代理店での価格は私が購入した海外の通販サイトの値段の3倍くらいになっているようです)。国内では同じくらいのスペックのブックスキャナーとしてPlustekのOpticBook 4800が手に入りやすく、私もこちらを所持していましたが故障のため買い替えました。FB2280は後発のためスキャン速度はOpticBook 4800より速いです。しかし付属のソフトがよろしくないことと、スキャン位置とボタン位置が離れていてスキャンし辛いなどの短所もあります。 本体付属ソフトは使いづらいため、スキャンソフトは NAPS2 を利用しています。 また非破壊のスキャナーであるために、解体・裁断してスキャンするよりもページごとの位置ずれがかなり大きくなります。また、スキャンしたときに本の背に近い部分は光が届かず黒い帯がでます。 黒い帯部分の削除には Briss というJava製のソフトを利用しています。GUI操作で偶数ページと奇数ページを分けて一度にcrop操作を行えるので便利です。 pdfをcropしてもreaderで表示される部分が変わるだけで、元の画像情報は残っています。表示されない部分を完全に消してしまうには、今の所AdobeのAcrobat PRO DCの「非表示情報を検索して削除」を利用する方法しか寡聞にして知りません。非表示情報の削除と傾き補正、OCR処理にはAcrobat DC Proを利用しています。 自炊したpdfの余白についてwebで検索すると、ipadなどで読むために余白を削りたい人が多いようです。私は適切に余白があるほうが圧迫感が無く読みやすいと感じるので,cropしたpdfをpdfTeXで処理して余白の追加をしていました。 最近はページごとの上下左右の振れが気になってきたので、余白の調整に試行錯誤しています。以下からが本題です。 TeX-LaTeX Stack Exchangeの この記事 を元に、 eso-pic , pdfpages , tikzパッケージを利用してpdfファイルの全面にグリッドを表示させるようにしてみました。画像では画像位置の調整のためのガイドラインの表示も行っています。 ...

定理を再掲したときに定理番号も揃える(amsmathのtagと似た挙動の定理環境を作る).

LaTeXで定理を再掲する方法についての話題です。 追記:2026/01/07:keytheoremsやthm-restateなどで検索すると幸せになれます。 amsmath.styで定義されているtagコマンドは,数式環境の式番号部分を自由な文字列で置き換えることができるようになっています.下に例を挙げます. この画像を生成するLaTeXのコードは次のようになります. \documentclass[a4paper,dvipdfmx,uplatex]{jsarticle} \usepackage[dvipdfmx,bookmarks=true,bookmarksnumbered=true,% ,colorlinks=true,linkcolor=blue]{hyperref}% \usepackage{showkeys} \usepackage{amsmath} \numberwithin{equation}{section} \begin{document} \section{amsmath.styに含まれるtagコマンドの挙動} \begin{equation} \label{eq:euler} e^{i\theta}=\cos\theta +i\sin\theta \end{equation} \eqref{eq:euler} \section{amsmath.styに含まれるtagコマンドの挙動の検証} \begin{equation} \label{eq:euler2} \tag{\ref{eq:euler}} e^{i\theta}=\cos\theta +i\sin\theta \end{equation} \eqref{eq:euler2} \end{document} 最初のequation環境にeq:eulerというlabelをつけ,第2のequation環境ではtagコマンドを使って数式番号部分に¥ref{eq:euler}と書くことで,実際に表示される式番号が第1のequation環境のものと同じになっています.この第2のequation環境にはeq:euler2というlabelを付けており,これを¥eqref{eq:euler2}と参照すると表示される番号は第1のequation環境のものであるにも...

bxjsclsの不具合?

bxjsbook.clsで数学の勉強ノートを取っているのですが,目次に表示されるページ番号が左揃いで3桁までを想定しているらしく,ページ数が1000を超えると一桁はみ出て見た目が残念なことになります. どうにかならないものか. 追記:2019/03/01:TeX QAの 「 ページ数が1000ページを越えた目次について」 で解決策が提示されています.

tikzで行列の積を表現してみる

行列の積の成分計算を表す図をtikzで作成してみました。元ネタは佐武線形代数です。 画像は次の通り。 LaTeXのコードは次のようになりました。 行列の外の括弧を表現するのにdecorations.pathreplacingライブラリを, 行列を上部で揃えるのにpositioningライブラリを使っています. 色付けはbackgroundsライブラリを使い,scope環境にon background layerオプションを付けて文字の背後に色を付けるようにしました. \documentclass[a4paper,dvipdfmx,uplatex]{jsarticle} \usepackage{amsmath} \usepackage{tikz} \usetikzlibrary{calc} \usetikzlibrary{decorations.pathreplacing} \usetikzlibrary{matrix,backgrounds,fit,positioning} \begin{document} \begin{equation*} \begin{tikzpicture}[every left delimiter/.style={xshift=1ex},every right delimiter/.style={xshift=-1ex}] % \matrix(A)[matrix of math nodes,nodes in empty cells, ampersand replacement=\&, left delimiter={[},right delimiter={]}, inner sep=0.8ex, ] { \phantom{b_{11}}\&\hphantom{\dotsb}\&\phantom{\dotsb}\&a_{1j}\&\phantom{b_{1n}}\\ \phantom{a_{11}}\&\&\&a_{2j}\&\phantom{a_{1n}}\\ \phantom{\mathstrut}\&\&\&\phantom{\mathstrut}\&\\ \phantom{\mathstru...

latexの箇条書きに全角文字を使う2

enumitem.styのenumerate環境については, こちら で箇条書きの番号に全角文字を使うことが可能になりました. 今度は箇条書きを横に並べる場合に同様のことができないか模索してみます. 今回はtasks.styとこのパッケージが依存しているcntformats.styを利用してみました. この2つのパッケージは同じ作者によるものです. ソースは次の通りです. \documentclass[lualatex,a4paper,10pt,ja=standard]{bxjsarticle} \makeatletter \def\@kkana#1{% \ifcase#1\or ア\or イ\or ウ\or エ\or オ\or カ\or キ\or ク\or ケ\or コ\or サ\or シ\or ス\or セ\or ソ\or タ\or チ\or ツ\or テ\or ト\or ナ\or ニ\or ヌ\or ネ\or ノ\or ハ\or ヒ\or フ\or ヘ\or ホ\else\@ctrerr\fi} \makeatother \usepackage{tasks} %箇条書きを横に並べる \makeatletter \NewPatternFormat{kk}{\@kkana} \makeatother \NewTasks[counter-format=tsk[kk]]{mytasks}[\item](1) \begin{document} \begin{mytasks}(3) \item first \item second \item third \item forth \item fifth \end{mytasks} \end{document} こちらをタイプセットしたのが次の画像です. \NewTasks[option]{コマンド名}{separator}(標準の列数)はtasks.styで定義されているコマンドで,新しいtask環境を作ります.conter-format={counter specs}の部分で箇条書きのラベルを変更します.tskの文字列でtask-counterを置換するのですが,tskのオプション引数に入る文字としては,1, a, A, r, Rが用意されています.ここで1は\ar...

latexの箇条書き番号に全角文字を使う

latexのenumerate環境などの番号は通常数字やアルファベットしか使えないので,次のページ LaTeX の箇条書の番号を全角文字で を参考に,番号に全角文字(ア,イ,ウ,…など)が使えるようにしてみました. enumerate環境については,最近ではenumitemパッケージの仕様が推奨されているようなので,このパッケージを利用してみます. \documentclass[lualatex,a4paper,10pt,ja=standard]{bxjsarticle} \makeatletter \def\@iroha#1{% \ifcase#1\or い\or ろ\or は\or に\or ほ\or へ\or と\or ち\or り\or ぬ\or る\or を\or わ\or か\or よ\or た\or れ\or そ\or つ\or ね\or な\or ら\or む\or う\or ゐ\or の\or お\or く\or や\or ま\or け\or ふ\or こ\or え\or て\or あ\or さ\or き\or ゆ\or め\or み\or し\or ゑ\or ひ\or も\or せ\or す\else\@ctrerr\fi} \def\@kkana#1{% \ifcase#1\or ア\or イ\or ウ\or エ\or オ\or カ\or キ\or ク\or ケ\or コ\or サ\or シ\or ス\or セ\or ソ\or タ\or チ\or ツ\or テ\or ト\or ナ\or ニ\or ヌ\or ネ\or ノ\or ハ\or ヒ\or フ\or ヘ\or ホ\else\@ctrerr\fi} \def\@hkana#1{% \ifcase#1\or あ\or い\or う\or え\or お\or か\or き\or く\or け\or こ\or さ\or し\or す\or せ\or そ\or た\or ち\or つ\or て\or と\or な\or に\or ぬ\or ね\or の\or は\or ひ\or ふ\or へ\or ほ\else\@ctrerr\fi} \makeatother \usepackage[shortlabels]{enumit...

Bxjsclsでの数式中のテキスト行間

普段数学のノートを書くためのLaTeXのクラスファイルとしてbxjsbookを利用しています.別行立ての数式中にテキストを記述するコマンドとして\intertextがありますが,この命令で囲った部分が複数行にわたる場合,本文中とは異なることが気になっていました. 上の画像の四角く囲った部分だけ他のテキストよりも行間が狭まっています. Bxjsclsのマニュアルを見ると,数式に入るところで\narrowbaselines というコマンドが実行され,欧文用に行間を狭くしているようなので,これが原因のようです.そこで \intertext{hogehoge} と記述していた部分に,行間を広げる命令っぽい\widebaselines を入れて \intertext{\widebaselines% hogehoge} のように記述を変えてみました.すると次のように行間が本文のものと同じになりました. これはこういう仕様なのでしょうか.

amsthm.styのproof環境を日本語で使うときの調整

amsthm.styのproof環境を日本語で使おうとすると、proof. のように定理環境の初めの部分にドットが打たれてしまいます。\proofnameを日本語で書き換えてもこのドットが消えないのと、イタリック体が残ってしまうので、amsthm.styのproof環境を定義してある部分をコピーして次のように改変しました。 \makeatletter \renewenvironment{proof}[1][\proofname]{\par \pushQED{\qed}% \normalfont \topsep6\p@\@plus6\p@\relax \trivlist \item[\hskip\labelsep % \itshape \bfseries % #1\@addpunct{.}]\ignorespaces {#1}]\ignorespaces }{% \popQED\endtrivlist\@endpefalse } \makeatother \renewcommand{\proofname}{{[証明]}} 上記ではドットを消すことと、書体をbfseriesにすること、そしてオプションの引数部分を{#1}のように括弧でくくることで、proof環境のオプション部分に{[定理hogeの証明]}のようにオプション引数の括弧である[ ]を使っても、括弧{ }で囲んでおけば正しく出力されるようになりました。

yatexで数式イメージ補完を使って数式書体を変更したい

普段はLaTeX文書を作成するのにemacs+YaTeXを使用しています。 YaTeXでは数式環境中でセミコロン; を押下すると数式イメージ補完入力可能になり、その後aを押せば\alphaが、6を押せば\partialが補完されます。 セミコロンの後にmrを押せば、\mathrm{}が補完され、括弧の間にカーソルが移ります。同様にmsで\mathsf{}, miで\mathit{}なども補完されるのですが、自分が普段良く使う\mathbbや\mathscrはデフォルトで定義されていないようです。 これら数式の書体変更の命令はセクション型(\section{})のコマンドなので、ユーザー定義のセクション型補完の変数として用意されているuser-section-tableに登録すると、セクション型補完のコマンド[prefix]-sで入力した際には括弧まで補完してくれます。 \mathbbや\mathscrも数式イメージ補完を行いたいと思ったので、ユーザ定義の数式記号の変数YaTeX-math-sign-alist-privateにも登録してみたのですが、数式イメージ補完入力からこれらのコマンドを入力すると、括弧が補完されません。 yatex.elで定義されている変数section-tableにこれらのコマンドを登録しておけば、数式イメージ補完入力でも括弧が入力されることを確認したのですが、これらの挙動の違いがイマイチ把握出来ていません。yatex.elを直接変更するとなるとYaTeXのアップデート毎にyatex.elを修正する必要があるので、根本的な解決方法が知りたいのですが、どうすればよいのでしょう? 追記:2016/12/18 yatexの更新の度にyatex.elを書き換えるのは面倒なので,とりあえずinit.elに次のように記述しました. (setq yatex-mode-load-hook '(lambda() (setq section-table (append section-table '(("mathscr") ("mathbb") ("mathfrak")))) )) user-section-tableに追加...

tikz+gnuplotでグラフを描画

tikz内でgnuplotを呼び出してグラフを描画することを試してみました. 今回勉強になったのは,どちらかと言えばループを使ってグラフの目盛りを書くときの記述方法です. 今回作成したのは,次の$\tan x$のグラフです. ソースコードは次の通りです.mathライブラリが必要です. \begin{tikzpicture}[xscale=0.5,yscale=0.35] \begin{scope} \clip (-2.5*pi-0.5,-12) rectangle (2.5*pi+0.5,12); \foreach \n/\ntext in {-4/-2,-2/-,2/,4/2,-5/-\frac{5}{2},-3/-\frac{3}{2},-1/-\frac{1}{2},1/\frac{1}{2},3/\frac{3}{2},5/\frac{5}{2}}{ \tikzmath{ real \x1,\x2; \x1=0.5*\n*pi; \x2=(0.5*\n+1)*pi; }; \draw[gray!40] (\x1,12)--(\x1,-12); \pgfmathparse{mod(\n,2)==0?1:0} \ifnum\pgfmathresult > 0 \node[fill=white,above left] at (\x1,0){$\ntext\pi$}; \else \node[fill=white,below] at (\x1,0){$\ntext\pi$}; \ifnum\n < 5 \draw[thick] plot[id=tangent\n,prefix=figures/tikz/plots/,raw gnuplot] function{set samples 50;plot [\x1+0.08:\x2-0.08] tan(x)} ; \fi \fi } \draw[gray!40] (2.5*pi,12)--(2.5*pi,-12); \node[below right] at (0,0){$0$}; \foreach \n in {-10, -5, 5, 10}{ \draw (-0.1,\n)--(0.1,\n); \node[lef...

tcolorboxを使った定理環境

定理環境をmdframedからtcolorboxへ乗り換えでは,ソースを変更せずに済むように、タイトルが省略可能である定理環境をtcolorboxを使って作りました。しかしあちらの記述では臨時的にtcolorboxのオプションを追加したい場合などに対応できないので、今回はtcolorboxのxparseライブラリを使って,臨時のオプションも省略可能な引数として記述できるように定理環境を書き改めました。 今回の拡張で、例えばtcolorboxのsidebysideオプションを使い、次のように文章の横に図を配置することなどが可能になりました。タイトルは[]で囲み、追加のオプションは、ダブルクォート""で囲むように設定しています。 ソースは以下のとおりです。 \documentclass[dvipdfmx]{jsarticle} \usepackage{lipsum}%ダミーの文章を入れる \usepackage{capt-of} \usepackage{tcolorbox} \usepackage{varwidth} \usepackage{amsmath} \tcbuselibrary{breakable} \tcbuselibrary{skins} \tcbuselibrary{xparse}%内部でxparse.styを読み込むのでNewDocumentCommandなどが使える \definecolor{frameinnercolor}{RGB}{49,44,44} \newcounter{theorem} \numberwithin{theorem}{section}% numberwithinはamsmathで定義 \NewTColorBox{theobox}{o m +o}{%oは省略可能な引数、mは必須の引数、+は複数行に亘っても良いことを表す。 %#1=タイトル(省略可), #2=定理環境名, #3=tcolorboxの追加オプション enhanced,frame empty,interior empty, coltitle=white,fonttitle=\bfseries,colbacktitle=frameinnercolor, extras broken={frame empty,interior emp...

tikzを使った章タイトルの変更

TeX StackExchangeで見つけた、tikzを使った章タイトルの変更の仕方について、いくつか気になったものへのリンクをつけておきます。 Customizing Chapter style in scrbook Customizing chapter style with tikz Header and Section Fancy Styles Different background for section page in Beamer Mini table of contents inside TikZ node on chapter start page Section like heading with Tikz Customize a section title with Tikz Modify Fancy Table of Contents いつかは試してみたいな。

定理環境をmdframedからtcolorboxへ乗り換え

追記:2016/05/02 以前に掲載していた定理環境のマクロでは、カウンターが変化しないような記述をしてしまっていたので、全面的に書き換えました。 追記:2016/06/06 tcolorboxのオプションを追加できるように書き直しをしました( tcolorboxを使った定理環境 )。 LaTeXの話です。 これまで定理環境の修飾にmdframed.styを利用してきました。 mdframedを用いた定理環境の修飾(platex+dvipdfmx, tikz) しかし上の投稿で用いた記述をしていると、定理環境がページの下部にきたとき、まれに以下のように環境が新しいページに送られてしまい変なところで改ページが起こります。 TeX-LaTeX Stack Exchangeでも同様の不具合が報告されていて、mdframed.styの作者が回答して解決しているようなのですが、私の場合は上手く行きませんでした。タイトル部分の位置の計算に問題があるようです。 そういう訳で、mdframed.styよりも高い表現力を持つtcolorbox.styには興味を持っていました。今回は、mdframed.styで記述していた部分を、ソースの変更無しにtcolorboxで置き換えてみたので、その紹介をします。 tcolorbox.styで置き換えた結果は次のようになりました。 見た目はほとんど変わっていません。中のboxは別のtcolorbox環境です。 この定理環境のソースコードは次のようになります。 \usepackage{tcolorbox} \usepackage{varwidth} \tcbuselibrary{breakable} \tcbuselibrary{skins} \definecolor{frameinnercolor}{RGB}{49,44,44} \newcounter{theorem} \numberwithin{theorem}{section}% numberwithinはamsmath.styで定義されている \newenvironment{theorem}[2][]{% %#1 = タイトル, #2 = 定理環境名 \refstepcounter{theorem}% \newtcolorbox{...

tikzを使って行列の外に書き込みをする。

次のようなtweetを見つけました。 TeX/LaTeX でコレ組めますかね? (画像や picture 環境の類を使うのはナシで) pic.twitter.com/u6E1dQwEnz — ワトソン (@Watson_DNA) 2015, 11月 29 以前にmultirow.styとbigdelim.styを使って行列の外に書き込みをした次のような図を作ったことがあります。 しかし、最近覚えたtikzのmatrixライブラリを使えば上記のtweetの画像により近いものを再現できそうなので試してみました。tikzの使用は上のtweetの趣旨から外れていると思いますが、結果は次のようになりました。 以下にソースを貼り付けておきます。 \documentclass[a4paper,10pt,dvipdfmx]{jsarticle} \usepackage{amsmath} \usepackage{tikz} \usetikzlibrary{math,matrix,backgrounds} \begin{document} \begin{equation} P_n(i, j) = \hspace{-8ex} \begin{tikzpicture}[% baseline=(m.west), every left delimiter/.style={xshift=1ex}, every right delimiter/.style={xshift=-1ex}] \matrix(m)[matrix of math nodes,nodes in empty cells, ampersand replacement=\&, left delimiter={(},right delimiter={)},% inner sep=0.8ex] { 1\&\&\&\phantom{1}\&\&\&\&\phantom{1}\&\&\&\\ \&\&\&\&\&\&\&\&\&\&\\ \&\& 1\&\&\&...