問題
LaTexの環境構築を
VSCode で LaTeX を書く (2018)
などを参考にしているが、latexmkをコマンドプロンプトで実行したとき、エラーが出力される。
追記(21-01-28)
platex + dvipdfmx を手動で行ったときにはpdfビルドできるが、VScodeのコマンドからlatexmkでビルドしようと文字化けしうまくいかない。
###環境
- Windows 10 Home
- Latexmk, John Collins, 26 Dec. 2019. Version 4.67
発生している問題・エラーメッセージ (更新:21-01-28)
VScodeのコマンドでpdfをビルドしようとすると文字化けがおこり、.dviファイルの生成に失敗する。
Rc files read: C:/Users/Username/.latexmkrc Latexmk: This is Latexmk, John Collins, 29 September 2020, version: 4.70b. Latexmk: Removing all generated files Rule 'latex': The following rules & subrules became out-of-date: 'latex' ------------ Run number 1 of rule 'latex' ------------ ------------ Running ''platex' '-kanji=utf8 -no-guess-input-env' -synctex=1 -interaction=nonstopmode -file-line-error -recorder "c:\Users\Username\Documents\code\example.tex"' ------------ Latexmk: applying rule 'latex'... ''platex'' �́A�����R�}���h�܂��͊O���R�}���h�A ����\�ȃv���O�����܂��̓o�b�` �t�@�C���Ƃ��ĔF������Ă��܂���B Latexmk: fls file doesn't appear to have been made. Failure to make 'example.dvi' Needed source file 'example.pdf' does not exist. Latexmk: Errors, in force_mode: so I tried finishing targets For rule 'view', running '&if_source( )' ... Collected error summary (may duplicate other messages): latex: Command for 'latex' gave return code 1 Refer to 'example.log' for details view: Command for 'view' gave return code -1 ---------------------- This message may duplicate earlier message. Latexmk: Failure in processing file 'c:/Users/Username/Documents/code/example': *LaTeX didn't generate the expected log file 'example.log' ---------------------- C:\texlive\2020\bin\win32\runscript.tlu:915: command failed with exit code 12: perl.exe c:\texlive\2020\texmf-dist\scripts\latexmk\latexmk.pl -f -gg -pv -latex='platex' "-latexoption='-kanji=utf8 -no-guess-input-env'" -synctex=1 -interaction=nonstopmode -file-line-error c:/Users/Username/Documents/code/example
試したこと
- TexLiveの再インストール
- TexLiveのtlmgrによるアップデート
setting.jsonと.latexmkrcの中身はVSCode で LaTeX を書く (2018)
のとおりですが、一応掲載します。
###.latexmkrc
ホームディレクトリに以下の中身のファイルを置いています。
通常の LaTeX ドキュメントのビルドコマンド
$latex = 'uplatex %O -kanji=utf8 -no-guess-input-enc -synctex=1 -interaction=nonstopmode %S';
pdfLaTeX のビルドコマンド
$pdflatex = 'pdflatex %O -synctex=1 -interaction=nonstopmode %S';
LuaLaTeX のビルドコマンド
追記(2019/06/02): @skytomo221 さんの指摘に基づき修正
$lualatex = 'lualatex %O -synctex=1 -interaction=nonstopmode %S';
XeLaTeX のビルドコマンド
$xelatex = 'xelatex %O -no-pdf -synctex=1 -shell-escape -interaction=nonstopmode %S';
Biber, BibTeX のビルドコマンド
$biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B';
$bibtex = 'upbibtex %O %B';
makeindex のビルドコマンド
$makeindex = 'upmendex %O -o %D %S';
dvipdf のビルドコマンド
$dvipdf = 'dvipdfmx %O -o %D %S';
dvipd のビルドコマンド
$dvips = 'dvips %O -z -f %S | convbkmk -u > %D';
$ps2pdf = 'ps2pdf.exe %O %S %D';
PDF の作成方法を指定するオプション
$pdf_mode = 0; PDF を作成しません。
$pdf_mode = 1; $pdflatex を利用して PDF を作成します。
$pdf_mode = 2; $ps2pdf を利用して .ps ファイルから PDF を作成します。
$pdf_mode = 3; $dvipdf を利用して .dvi ファイルから PDF を作成します。
$pdf_mode = 4; $lualatex を利用して .dvi ファイルから PDF を作成します。
$pdf_mode = 5; xdvipdfmx を利用して .xdv ファイルから PDF を作成します。
$pdf_mode = 3;
PDF ビュアーの設定 for Windows
Windows では SyncTeX が利用できる SumatraPDF が推奨されている。
SumatraPDF: https://www.sumatrapdfreader.org/free-pdf-reader.html
if (-f 'C:/Program Files/SumatraPDF/SumatraPDF.exe') {
$pdf_previewer = '"C:/Program Files/SumatraPDF/SumatraPDF.exe" -reuse-instance';
} elsif (-f 'C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe') {
$pdf_previewer = '"C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe" -reuse-instance';
} else {
# SumatraPDF が存在しない場合は、TeXworks で開くように設定されている。
# 別のアプリケーション(Adobe Reader 等)で開きたい場合はここに実行ファイルのパスを設定する
$pdf_previewer = 'texworks';
}
#setting.json (VScode)
{
// editor.wordSeparators: 単語単位での移動を行う場合の区切り文字を指定
// 日本語文書で単語移動を使うため、助詞や読点、括弧を区切り文字として指定する
"editor.wordSeparators": "./()"'-:,.;<>!@#$%^&*|+=[]{}`? 、。「」【】『』()!?てにをはがのともへでや",
// 設定: LaTeX Workshop
// LaTeX Workshop ではビルド設定を「Tool」と「Recipe」という2つで考える
// Tool: 実行される1つのコマンド。コマンド (command) と引数 (args) で構成される
// Recipe: Tool の組み合わわせを定義する。Tool の組み合わせ (tools) で構成される。
// tools の中で利用される Tool は "latex-workshop.latex.tools" で定義されている必要がある。
latex-workshop.latex.tools: Tool の定義
"latex-workshop.latex.tools": [
// latexmk を利用した xelatex によるビルドコマンド
{
"name": "Latexmk (XeLaTeX)",
"command": "latexmk",
"args": [
"-f",
"-gg",
"-pv",
"-xelatex",
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
// latexmk を利用した uplatex によるビルドコマンド
{
"name": "Latexmk (upLaTeX)",
"command": "latexmk",
"args": [
"-f",
"-gg",
"-pv",
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
// latexmk を利用した platex によるビルドコマンド
// 古い LaTeX のテンプレートを使いまわしている (ドキュメントクラスが jreport や jsreport ) 場合のため
{
"name": "Latexmk (pLaTeX)",
"command": "latexmk",
"args": [
"-f",
"-gg",
"-pv",
"-latex='platex'",
"-latexoption='-kanji=utf8 -no-guess-input-env'",
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
// latexmk を利用した lualatex によるビルドコマンド
{
"name": "Latexmk (LuaLaTeX)",
"command": "latexmk",
"args": [
"-f",
"-gg",
"-pv",
"-lualatex",
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
}
],
// latex-workshop.latex.recipes: Recipe の定義
"latex-workshop.latex.recipes": [
// XeLaTeX で書かれた文書のビルドレシピ
{
"name": "XeLaTeX",
"tools": [
"Latexmk (XeLaTeX)"
]
},
// LaTeX(upLaTeX) で書かれた文書のビルドレシピ
{
"name": "upLaTeX",
"tools": [
"Latexmk (upLaTeX)"
]
},
// LaTeX(pLaTeX) で書かれた文書のビルドレシピ
{
"name": "pLaTeX",
"tools": [
"Latexmk (pLaTeX)"
]
},
// LuaLaTeX で書かれた文書のビルドレシピ
{
"name": "LuaLaTeX",
"tools": [
"Latexmk (LuaLaTeX)"
]
}
],
// latex-workshop.latex.magic.args: マジックコメント付きの LaTeX ドキュメントをビルドする設定
// '%!TEX' で始まる行はマジックコメントと呼ばれ、LaTeX のビルド時にビルドプログラムに解釈され、
// プログラムの挙動を制御する事ができる。
// 参考リンク: https://blog.miz-ar.info/2016/11/magic-comments-in-tex/
"latex-workshop.latex.magic.args": [
"-f",
"-gg",
"-pv",
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
],
// latex-workshop.latex.clean.fileTypes: クリーンアップ時に削除されるファイルの拡張子
// LaTeX 文書はビルド時に一時ファイルとしていくつかのファイルを生成するが、最終的に必要となるのは
// PDF ファイルのみである場合などが多い。また、LaTeX のビルド時に失敗した場合、失敗時に生成された
// 一時ファイルの影響で、修正後のビルドに失敗してしまう事がよくある。そのため、一時的なファイルを
// 削除する機能 (クリーンアップ) が LaTeX Workshop には備わっている。
"latex-workshop.latex.clean.fileTypes": [
".aux",
".bbl",
".blg",
".idx",
".ind",
".lof",
".lot",
".out",
".toc",
".acn",
".acr",
".alg",
".glg",
".glo",
".gls",
".ist",
".fls",
".log",
".fdb_latexmk",
".synctex.gz",
// for Beamer files
"_minted*",
".nav",
".snm",
"*.vrb",
],
// latex-workshop.view.pdf.viewer: PDF ビューアの開き方
// VSCode 自体には PDF ファイルを閲覧する機能が備わっていないが、
// LaTeX Workshop にはその機能が備わっている。
// "tab" オプションを指定すると、今開いているエディタを左右に分割し、右側に生成されたPDFを表示するようにしてくれる
// この PDF ビュアーは LaTeX のビルドによって更新されると同期して内容を更新してくれる。
"latex-workshop.view.pdf.viewer": "tab",
// latex-workshop.latex.autoClean.run: ビルド失敗時に一時ファイルのクリーンアップを行うかどうか
// 上記説明にもあったように、ビルド失敗時に生成された一時ファイルが悪影響を及ぼす事があるため、自動で
// クリーンアップがかかるようにしておく。
"latex-workshop.latex.autoClean.run": "onFailed",
// latex-workshop.latex.autoBuild.run: .tex ファイルの保存時に自動的にビルドを行うかどうか
// LaTeX ファイルは .tex ファイルを変更後にビルドしないと、PDF ファイル上に変更結果が反映されないため、
// .tex ファイルの保存と同時に自動的にビルドを実行する設定があるが、文書が大きくなるに連れてビルドにも
// 時間がかかってしまい、ビルドプログラムの負荷がエディタに影響するため、無効化しておく。
"latex-workshop.latex.autoBuild.run": "never",
"editor.fontLigatures": null,
}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/28 09:49