原稿が書いてある.texファイルとtypesetしたpdfファイルの往復

原稿が書いてある.texファイルとtypesetしたpdfファイルの往復

- 前田 やえの の投稿
返信数: 10
原稿が書いてある.texファイルとtypesetしたpdfファイルの往復

platex -src Test.tex
とやるとdviファイルの注目している部分の文字列と
原稿のtexファイルの部分が指し示してくれます。
TEXworksでやると簡単な場合はできるのです。
問題は
バッチファイルに書くような長い場合のtypesetの場合は
どうすれば良いのですか?
要するに.texファイルと.pdfファイルとの文字列の対応
を見たいのです。これって原稿修正するにはとても便利です。
話を単純化したものを以下:
platex -src -jobname=1段索引2021_3_28 1段索引2021_3_28.tex
mendex 1段索引2021_3_28
platex -src -jobname=1段索引2021_3_28 1段索引2021_3_28.tex

tex書類は添付ファイル。

前田 やえの への返信

Re: 原稿が書いてある.texファイルとtypesetしたpdfファイルの往復

- 和田 勇 の投稿
誰も答えないので ...

別の質問の際に Windows 用のバッチスクリプトをりようされると、ドキュメントごとに実行用スクリプトを書く必要がなかったと思います。

◆スクリプトについて
1) 「-src」オプション
   このオプションを指定してもエラーにはならないのですが、いろいろみてみましたが、 -help でも表示されないので実質無視されているようです。

2) 「-src」オプションについて その2
   一般的には -src オプションを使うときは -src=hoge とか -src hoge のようにするのが通例です。なので「 -src -jobname=1段索引2021_3_28 」というのは、違和感を感じます。

3) [-jobname]オプション
 通常ソースファイルの拡張子を除いた部分が jobname になるので「-jobname=1段索引2021_3_28 」などと冗長的にしていしなくてもよいとおもいます。 texdoc platex には jobnmae を使った例はありますが、同じ現行ファイルでコンフィグレーションファイルで日本語版・英語版を作るような場合につかうようです。

◆当初上記内容を含めた改修したスクリプトをタイプセットに指定できるようにしようと考えていたのですが、今後のことを考え latexmkrc という perl で書かれた ラッパーを使う方法を提案します。

メリットは、索引のように一定の手順が必要なものを自動で行ってくれる点です。バッチスクリプトの場合は、その点を常に考慮しなくてはならないのですが、特段考慮する必要はなくなるようです。

今回提示する texworks のタイプセット用の追加エントリーでは毎回中間生成ファイルを削除するので、5分・10分もかかるようなタイプセットの場合は、中間ファイルの削除処理を検討する必要があります。

◆latexmk 用の設定ファイル

以下の内容をホームディレクトリに 「.latexmkrc」として書き込んでください

なお、ドキュメントによってタイプセットが異なるのであれば、そのドキュメントのあるディレクトリにカスタマイズした内容の .latexmkrc をおいてください。

ホームディレクトリにおいたら、コマンドプロンプトでテストしたいドキュメントのディレクトリに移動し 「latexmkrc ファイル名 .tex」で pdf ファイルができることを確認してください。

### ここから
$biber = 'biber --bblencoding=sjis -u -U --output_safechars %B';
$bibtex = 'bibtex %B';
$makeindex = 'mendex -o %D %S';

# # PDF の作成方法を指定するオプション
# # $pdf_mode = 0; PDF を作成しません
$pdflatex = 'pdflatex %S' ; # $pdf_mode = 1; $pdflatex を利用して
$dvips = 'dvips -z -f %S | convbkmk -u > %D';
$ps2pdf = 'ps2pdf %S %D' ; # $pdf_mode = 2; $ps2pdf を利用して .ps ファイルから

$pdf_mode = 3 ;
$dvipdf = 'dvipdfmx -o %D %S' ; # $pdf_mode = 3; $dvipdf を利用して .dvi ファイルから
$latex = 'platex -kanji=sjis %S' ;

$lualatex = 'lualatex %S' ; # $pdf_mode = 4; $lualatex を利用して .dvi ファイルから
$xelatex = 'xelatex -shell-escape -no-pdf %S'; # $pdf_mode = 5; xdvipdfmx を利用して .xdv ファイルから
## ここまで

◆TeXworks のタイプセットエントリに追加

https://texwiki.texjp.org/?TeXworks%2F%E8%A8%AD%E5%AE%9A 
を参考にしてください。
「タイプセットの方法を設定する」という画像のところからです。
1) 「+」ボタンを押す

1-1) 名前「新規ツール」を自分でわかる名前を登録(添付画像では XXXX)
1-2) プログラム「latexmk」
1-3) オプションその1「-gg」 中間ファイルを削除してからタイプセットするため
1-4) オプションその2「$fullname」
1-5)実行後 PDFを表示するにチェック(任意)

設定内容は、添付の画像を参考にしてください。

◆TeXworks で試す
2-1) タイプセット方法を、上記 1-1) で指定したものを選択
2-2) タイプセット
添付 スクリーンショット_2021-04-09_0.54.41.png
和田 勇 への返信

Re: 原稿が書いてある.texファイルとtypesetしたpdfファイルの往復

- 和田 勇 の投稿
折角整形して見やすくしたつもりの .latexmkrc がガタガタになってしまのでねんのてめ html pre で。
$biber      = 'biber --bblencoding=sjis -u -U --output_safechars %B';
$bibtex     = 'bibtex %B';
$makeindex  = 'mendex -o %D %S';

#                                                  # PDF の作成方法を指定するオプション
#                                                  # $pdf_mode  = 0; PDF を作成しません
$pdflatex   = 'pdflatex %S'                      ; # $pdf_mode = 1; $pdflatex を利用して
$dvips      = 'dvips -z -f %S | convbkmk -u > %D';
$ps2pdf     = 'ps2pdf   %S %D'                   ; # $pdf_mode = 2; $ps2pdf   を利用して .ps  ファイルから

$pdf_mode   = 3                                  ;
$dvipdf     = 'dvipdfmx -o %D %S'                ; # $pdf_mode = 3; $dvipdf   を利用して .dvi ファイルから
$latex      = 'platex   -kanji=sjis %S'          ;

$lualatex   = 'lualatex %S'                      ; # $pdf_mode = 4; $lualatex を利用して .dvi ファイルから
$xelatex    = 'xelatex  -shell-escape -no-pdf %S'; # $pdf_mode = 5; xdvipdfmx を利用して .xdv ファイルから
和田 勇 への返信

Re: 原稿が書いてある.texファイルとtypesetしたpdfファイルの往復

- 和田 勇 の投稿
書き忘れたこと
1)私のところでは -kanji=sjis オプションがないとエラーでした
2) latexmkrc でのタイプセット中の経過を表示で文字化けが発生してます。
 おそらくファイル名の取り扱いに関する文字コードの扱いだと思うので、文字化けが嫌だったら日本語のファイル名を止める。あるいは、作者に状況を伝え、改修してもらうよう依頼する。
3) 時間が書か入りすぎる場合は -gg を取り除いたエントリにし、中間ファイル削除オプション「-C」のエントリーをさらに追加するなどで、運用で対処してください。
和田 勇 への返信

Re: 原稿が書いてある.texファイルとtypesetしたpdfファイルの往復

- azerty qwertz の投稿
latexmk についてはまったく不案内なので恐縮ですが,和田さんのご提案通り
latexmkrc の設定をすると,前田さんがご質問なさっている

> 原稿が書いてある.texファイルとtypesetしたpdfファイルの往復

が出来るようになるのですか?


==========
・ dviout のインストール/8. エディターとの連係/8.2. source special
https://www.ms.u-tokyo.ac.jp/~oshima/dviout/tex_dvioutw.html#EDIT

・ TeX Wiki: -src specials
https://texwiki.texjp.org/?special%20%E5%91%BD%E4%BB%A4#src-specials

・ TeX Wiki: SyncTeX
https://texwiki.texjp.org/?SyncTeX

・ texdoc → texworks.pdf → 5.1 SyncTeX-ing between source and preview
・ TeXworks-manual-en.pdf → 5.1 SyncTeX'ing between source and preview
azerty qwertz への返信

Re: 原稿が書いてある.texファイルとtypesetしたpdfファイルの往復

- 和田 勇 の投稿
提示されていた手順方法に気をとられて -synctex=1 を失念していました。.latexmkrc を再掲します。
$biber      = 'biber --bblencoding=sjis -u -U --output_safechars %B';
$bibtex     = 'bibtex %B';
$makeindex  = 'mendex -o %D %S';
#                                                   # PDF の作成方法を指定するオプション
#                                                   # $pdf_mode  = 0; PDF を作成しません
$pdflatex   = 'pdflatex -synctex=1 %S'            ; # $pdf_mode = 1; $pdflatex を利用して
$dvips      = 'dvips -z -f %S | convbkmk -u > %D' ;
$ps2pdf     = 'ps2pdf   -synctex=1 %S %D'         ; # $pdf_mode = 2; $ps2pdf   を利用して .ps  ファイルから

$pdf_mode   = 3                                   ;
$dvipdf     = 'dvipdfmx -o %D %S'                 ; # $pdf_mode = 3; $dvipdf   を利用して .dvi ファイルから
$latex      = 'platex   -synctex=1 -kanji=sjis %S';

$lualatex   = 'lualatex -synctex=1 %S'            ; # $pdf_mode = 4; $lualatex を利用して .dvi ファイルから
# $xelatex    = 'xelatex  -synctex=1 -shell-escape -no-pdf %S';
$xelatex    = 'xelatex  -synctex=1 %S'            ; # $pdf_mode = 5; xdvipdfmx を利用して .xdv ファイルから
PS テストは platex 対応の $latex のみテストしています。lualatex や xelatex および uplatex は問題があれば適宜修正してください。
和田 勇 への返信

Re: 原稿が書いてある.texファイルとtypesetしたpdfファイルの往復

- 前田 やえの の投稿
発問者の前田やえのです。
皆様の返信ありがとうございます。
内容が難しくてちょっと考えて
時間を下さい。
和田 勇 への返信

Re: 原稿が書いてある.texファイルとtypesetしたpdfファイルの往復

- 前田 やえの の投稿
latexmkについて

latexmkについてだいぶ教えていただいてありがとう。
だけど未だうまくいかないところが立ちはだかっているのです。
関係資料は添付ファイルにしました。
そこのlogファイルにあるように
! Undefined control sequence.
l.374 \epTeXinputencoding
utf8
? x
で止まります。
.texファイルは簡単なほうが良いと思ってそこの数行の分
のファイル。
\documentclass{jlreq} です。
言われた通りにファイル.latexmkrcをつくりました。
言語コードはどれもutf8にした。ファイル名も半角英数字にした。
texworksの設定は
タイプセットの方法を設定する
の所で
名前 は Mytypeset
プログラム は latexmkrc
引数 は
-gg
$fullname
を書き込みました。
どこが悪いんでしょう?

前田 やえの への返信

Re: 原稿が書いてある.texファイルとtypesetしたpdfファイルの往復

- 和田 勇 の投稿

Example01.log から

 This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/W32TeX) (preloaded format=latex 2021.3.23) 13 APR 2021 21:15

pdflatex が動いていますね。

タイプセットした時、下に経過を示すログが表示されると思います。

そこのところに .latexmkrc の読み込みがないかと思います。

原因を調べるとおそらく「 .latexmkrc.lnk」で対応されようとしているようですが、リンクファイルでなく実ファイル .latexmkrc をおいてください。

もしかしたら OneDrive との絡みかもしれませんが、環境をセットアップしていないので実験できません。

ちなみに latexmk はデフォルト値にホームディレクトリとカレントディレクトリの .latexmkrc をこの順で設定を読み込もうとします。

どちらも存在しない・読み込めないとなるとデフォルトが動き、日本語があまり得意でない  pdflatex が起動され、 警告メッセージが表示されます。

私のところではカレントにだけ置いて実験していますが、タイプセット時のログは以下のよ表示されます。

Rc files read:
  ./.latexmkrc
Latexmk: This is Latexmk, John Collins, 29 September 2020, version: 4.70b.
和田 勇 への返信

Re: 原稿が書いてある.texファイルとtypesetしたpdfファイルの往復

- 前田 やえの の投稿
和田勇さま
返信ありがとうございます。
とにかく頑張ってみます。
前田 やえの への返信

Re: 原稿が書いてある.texファイルとtypesetしたpdfファイルの往復

- 前田 やえの の投稿
和田勇さま
うまくできました。本当にありがとうございました。
原因らしきことは
今まで試行錯誤で残してきた別名のファイル.latexmkrcを除去したことにあるように思われます。
未だtex live解らないことも多いのですがその時はよろしくお願いします。