「LaTeX」の版間の差分

提供:Turgenev's Wiki
(Notion-MW)
 
(Notion-MW)
タグ: 手動差し戻し
 
(同じ利用者による、間の4版が非表示)
11行目: 11行目:
standaloneパッケージを用いて数式のsvgだけ生成したいときがあった。このときはpdftocairoを用いる(inkscapeでも良さそう)。VS Codeのtoolsには
standaloneパッケージを用いて数式のsvgだけ生成したいときがあった。このときはpdftocairoを用いる(inkscapeでも良さそう)。VS Codeのtoolsには


<pre class="dummy_str_latex">{
<syntaxhighlight lang="latex">{
             &quot;name&quot;: &quot;pdf2svg&quot;,
             "name": "pdf2svg",
             &quot;command&quot;: &quot;pdftocairo&quot;,
             "command": "pdftocairo",
             &quot;args&quot;: [
             "args": [
                 &quot;-svg&quot;,
                 "-svg",
                 &quot;%DOC%.pdf&quot;
                 "%DOC%.pdf"
             ],
             ],
             &quot;env&quot;: {}
             "env": {}
},</pre>
},</syntaxhighlight>
と書き(<code>pdf2svg</code>の部分は任意、次でその名前を使う)、recipesには
と書き(<code>pdf2svg</code>の部分は任意、次でその名前を使う)、recipesには


<pre class="dummy_str_latex">{
<syntaxhighlight lang="latex">{
             &quot;name&quot;: &quot;platex2svg&quot;,
             "name": "platex2svg",
             &quot;tools&quot;: [
             "tools": [
                 &quot;platex&quot;,
                 "platex",
                 &quot;pdf2svg&quot;
                 "pdf2svg"
             ]
             ]
},</pre>
},</syntaxhighlight>
と書く(<code>platex2svg</code>の部分は任意)。
と書く(<code>platex2svg</code>の部分は任意)。


83行目: 83行目:
以下はこれらをふまえてtexcountを実行し、綺麗に出力できる例である。このコードでは全てのソースファイルのファイル名に<code>_</code>以外の特殊文字がないことを仮定している。&#35;はtexcountの出力に含まれるのでエスケープしている。またセクションごとの出力が「250+」のように数字で始まることを利用してその直前に\newlineを挿入している。
以下はこれらをふまえてtexcountを実行し、綺麗に出力できる例である。このコードでは全てのソースファイルのファイル名に<code>_</code>以外の特殊文字がないことを仮定している。&#35;はtexcountの出力に含まれるのでエスケープしている。またセクションごとの出力が「250+」のように数字で始まることを利用してその直前に\newlineを挿入している。


<pre class="dummy_str_visual_basic">$latex = 'texcount -merge -subcount=section %S | sed \'s/#/\\\\#/g\' | sed \'s/_/\\\\_/g\' | sed -r \'s/([0-9]+\+)/\\\\newline\1/\' &gt; out.tex; platex -options %O %S';</pre>
<syntaxhighlight lang="vb.net">$latex = 'texcount -merge -subcount=section %S | sed \'s/#/\\\\#/g\' | sed \'s/_/\\\\_/g\' | sed -r \'s/([0-9]+\+)/\\\\newline\1/\' > out.tex; platex -options %O %S';</syntaxhighlight>
<ul>
<ul>
<li><p>関連しそうなやつ</p>
<li><p>関連しそうなやつ</p>

2023年11月24日 (金) 21:33時点における最新版

VSCode

LaTeX Workshopをsettings.jsonから設定しようとしても存在するはずのデフォルト設定が表示されなくて困っていたが、vscode - Recipes in Settings.JSON for Latex Workshop extension not showing - TeX - LaTeX Stack Exchangeによれば"latex-workshop.latex.recipes":まで自分で入れると補完されるらしい。

一番上に書いたレシピがデフォルトとして実行される模様。レシピの中で使うコマンドはlatex-workshop.latex.toolsで定義する。

SVG変換

standaloneパッケージを用いて数式のsvgだけ生成したいときがあった。このときはpdftocairoを用いる(inkscapeでも良さそう)。VS Codeのtoolsには

{
            "name": "pdf2svg",
            "command": "pdftocairo",
            "args": [
                "-svg",
                "%DOC%.pdf"
            ],
            "env": {}
},

と書き(pdf2svgの部分は任意、次でその名前を使う)、recipesには

{
            "name": "platex2svg",
            "tools": [
                "platex",
                "pdf2svg"
            ]
},

と書く(platex2svgの部分は任意)。

latexmkrc

https://znuko.github.io/nukodocs/tex/latexmk/#vscode によると、vscodeを使う場合は、latexmkrcに書くようなことをsettings.jsonに書いてしまったほうが楽らしい

TeXcount

%TC:group 環境名 0 0
%TC:macro \マクロ名 [ignore]

などと書くと該当の環境やmacroをカウントから除外できる

%TC:ignoreと%TC:endignoreで挟むという方法もある

texcount -merge -subcount=section %Sなどとすると、includeされているファイルをマージしてカウントした上で、セクション単位の字数を表示してくれる

Overleaf

フォント

デフォルトのLucida / Source Code ProよりもMonaco / Menlo / Consolasのほうが見やすい気がする(特に日本語でコメントを書いているときに文字バランスが良くなる)。サイズや行間も変えられる。

Overleaf上でのコマンド実行

このセクションに含まれる情報は比較的貴重なものである可能性があります。

Overleafだと例えば全体に対するTeXCountの結果しか見れず、セクション・チャプターごとのWord数も見たかったので、任意コマンドを実行して結果を得る方法を見つけた。

まず以下のようにlatexmkrcを使ったコンパイル設定ができているものとする。

$latex = 'platex -options %O %S';

このとき、まずこのplatexの前で任意コマンドを実行し、結果をファイルに書き込む。

$latex = 'command > out.tex ; platex -options %O %S';

  • このout.texはOverleaf上にはまったく表示されない(おそらくpdf生成後に他の一時ファイルと共にまとめて削除される)

そして、(Overleaf上で編集している)LaTeXファイルの方では、

\include{out.tex}

と、先ほどの出力ファイルをincludeする。こうすることで、コマンド出力を記録したページが該当位置に挿入されるはず。

texファイル内でコマンドを実行する機能もあるが(bashfulパッケージなど)、このタイミングだと作業ディレクトリの外が一切見えなくなっているようで、texcountも実行できない。

texファイルとして挿入する関係上、コマンドの出力結果からTeX上の特殊文字(# $ % & _ { } \ ^ ~ < > |)を除外あるいはエスケープしておく必要がある。またそのままでは改行も挿入されないので適宜\newlineなどを使って挿入する。これらはsedコマンドで可能である。

以下はこれらをふまえてtexcountを実行し、綺麗に出力できる例である。このコードでは全てのソースファイルのファイル名に_以外の特殊文字がないことを仮定している。#はtexcountの出力に含まれるのでエスケープしている。またセクションごとの出力が「250+」のように数字で始まることを利用してその直前に\newlineを挿入している。

$latex = 'texcount -merge -subcount=section %S | sed \'s/#/\\\\#/g\' | sed \'s/_/\\\\_/g\' | sed -r \'s/([0-9]+\+)/\\\\newline\1/\' > out.tex; platex -options %O %S';

数式OCR

Mathpix SnipをEducation Planで使おう

pLaTeXのクラスファイルをupLaTeXやLuaLaTeXに対応させる

http://abenori.blogspot.com/2021/06/uplatex-lualatex.html

WindowsのTeX Liveでのフォント

すべてのユーザーにインストールするのが大事 http://alg-d.com/ これはWebブラウザ(Chrome) などと似た話である。