X



\chapter{\TeX} % 第十章 [転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0796790垢版2018/01/25(木) 22:25:57.95
>>791
>>792
>>793
ありがとうございます!
いろいろ試行錯誤した結果,
readlink -f "$(which tlmgr)" | awk -v FS="/" '{ print $(NF-4) }' -
にしました。
tlmgrを利用する理由は,(もうないと思いますが) TeX Live以外のTeXディストリビューションのtexコマンドを使っている場合も
きちんとTeX Liveとして判定できると思ったからです。
>>793さまの案が一番よかったのですが,tlmgrの起動に0.15秒ほど時間を要しちょっと遅すぎるので,
>>792さまの「パス名に年数が含まれている」というTeXLiveの特徴を利用しました。
awkを利用して不定な長さのパス名を処理するという発想は>>791さまから得ました。
お三方ともありがとうございました。
0797名無しさん@お腹いっぱい。垢版2018/01/26(金) 21:13:51.51
LuaTeXで,
\input amstex.tex
\input luatexja.tex
を組み合わせるとコアダンプするようになった。
もういい加減LaTeX覚えよう……
0798名無しさん@お腹いっぱい。垢版2018/01/31(水) 01:47:55.08
TeX Liveが巨大すぎるんで取捨選択したんだが、
正直どこを捨てればいいのか分からん。
そういうこと取り扱ってるブログとかない?
0799名無しさん@お腹いっぱい。垢版2018/01/31(水) 04:04:04.95
>>798
とりあえず、docとsrcを全部捨てれば?(一緒にインストールしないように設定する)
それから、collection-langjapaneseを入れるところから始めて、他に必要なパッケージだけ、その都度入れればええんとちゃう?
0800名無しさん@お腹いっぱい。垢版2018/01/31(水) 21:32:55.53
>>798
OSは何?
OSのリポジトリを使うタイプなら、TeXLiveが細かく別れていて、最小のTeXからインストールできると思うけど。
MacPortならTeXLiveが51個のPortに別れているし、Debianなら81個。
でも、日本語を処理できるようにしようとすると、一気に入れるものが増える。
さらに、使っているうちに、あれもこれもと追加で必要になって、最終的に全部入れたのと変わらなくなる。
0802名無しさん@お腹いっぱい。垢版2018/02/01(木) 21:40:18.67
TeXLiveのinstall-tl,--helpオプションでヘルプが見れると書いてあるのに
--helpオプションを付けて実行するとソースコードが出力されるんだけど。
しかも ./install-tl -hとやっても Unknown option: hっていう警告が出る。
まあ結局ヘルプ見れたからいいけど。Windows版と違ってあんまりメンテされてないのかなぁ
$ ./install-tl --version
install-tl (TeX Live Cross Platform Installer) revision 44918
TeX Live (http://tug.org/texlive) version 2017
0803名無しさん@お腹いっぱい。垢版2018/02/02(金) 02:13:07.74
この間最小のTeX Live構成を聞いた人なんですけどdvipdfmxが$TEXMFROOT/bin/platform/dvipdfmxとしては存在していて且つPATHも通っているのに実行できずに困り果てました。
dvipdfm, dvipdfmxって、XeTeXが吐くXDV用のxdvipdfmxにシンボリックリンクが張られてるんですね。
やっと真面に組版できます
0807名無しさん@お腹いっぱい。垢版2018/02/03(土) 10:28:59.25
paragraphに関連して2つ質問です。

paragraphとかが頁の末尾に来て、本文が次頁にくることがあるのですが、
見出しを次の頁に送るようなことはできませんか?

paragraphとその直後の\begin{framed}\end{framed}が前後するのですが、
これを抑制することはできませんか?

宜しくお願いいたします。
0808名無しさん@お腹いっぱい。垢版2018/02/03(土) 11:42:56.67
>>807
> paragraphとかが頁の末尾に来て、本文が次頁にくることがある

質問が謎なので、mweを提示してください。
特にどのクラスファイルかが分かるように提示してください。
ほとんどのクラスファイルでは、paragraphの見出しと本文は同じ行なのに、
どういうクラスファイルまたは場合に本文だけ次頁に行くのでしょうか。

> paragraphとその直後の\begin{framed}\end{framed}が前後する
これも謎
0809名無しさん@お腹いっぱい。垢版2018/02/04(日) 13:20:25.23
ある環境が動くと解釈すると float 環境とかに入れてんのかな?
それなら動いて当たり前だしググればなにか出てくんじゃないかな?
0813名無しさん@お腹いっぱい。垢版2018/02/05(月) 10:44:51.31
TeXの技術的な話じゃないんだけど
数式の上や下に波括弧を用いて説明を入れる時あるじゃない?
\overbrace{...}^{}
みたいに。
Knuth の The TeXbook では個数とかは上・合計とかは下っていう風に分けられてたけど,
規格というか標準というか勧告ってあるかしらん
$$
\overbrace{a_1+a_2+\cdots+a_k}^{k\rm\;times}
\underbrace{x+y+z}_{>\,0}
$$
0815名無しさん@お腹いっぱい。垢版2018/02/06(火) 22:00:55.69
LyXつかおう
0817名無しさん@お腹いっぱい。垢版2018/02/11(日) 12:16:41.77
physics.sty と luatexja-preset.sty とを一緒にコンパイルすると,
*************************************************
* LaTeX warning: "xparse/not-single-char"
*
* Argument delimiter '\big ' for the command '\@quantity' should be a single
* character.
*************************************************
っていう警告がでるんですけど,なんか解決策ありませんかね。
どうも日本語圏特有 (?; 少くとも欧文ではでなさそう) なので,
検索しても殆どヒットしませんでした。
ヒットしたページ (https://github.com/latex3/latex3/blob/c1fc99fa2e7cbd18c570d8f932fd7aa22f464acb/l3packages/xparse/testfiles/xparse001.tlg#L576)
も,ただのエラー処理の語句が引掛っただけのようでした。
というか私は Lua(La)TeX を使ってるのであって LaTeX 3 なんて使ってないんですけどね……。

再現した十分小さい原稿:
% ここから
\documentclass[%
lualatex, % 駆動系
a4paper, % 用紙
book, % 種類
fontsize=10pt, % 歯数
jlreq_warnings, % 警告を出力
]{jlreq}
\usepackage[sourcehan,deluxe]{luatexja-preset}
\usepackage{physics}
\begin{document}
あ,\TeX{}だ。
\end{document}
% ここまで。
0818名無しさん@お腹いっぱい。垢版2018/02/13(火) 20:45:29.53
そういうの TeX フォーラムに言えば?
FreeBSD のこれこれのバグならいざ知らず、折角日本語で会話できる環境なのに、利用しないのはもったいない。
0820名無しさん@お腹いっぱい。垢版2018/02/16(金) 17:14:42.12
LaTeX って最初の行に絶対 \documentclass がないと駄目とかそういう制約ないよね。
head した時にその原稿の要約が見れるように
% 第2回 hogehogeの組成 うんたら
% 著者: ジョン・スミス
% ……
みたいにしたいんだけど、問題ない? こういうことやってる人があんまり周囲にいないし、
(La)TeXって古いプログラムだからそういう変な制約あるかなと思って。
とりあえず簡単な原稿をpLaTeXとluaLaTeXで試してみたけど、問題なく動作した。
パッケージによっておかしなことになるとか経験あればおしえてほしい。
0822名無しさん@お腹いっぱい。垢版2018/02/16(金) 20:07:44.48
「euplatex」って TeX Live には収録されてねーの?
Full スキームの TeX Live 2017 で which euplatex してもみつからんのだが。
0823名無しさん@お腹いっぱい。垢版2018/02/17(土) 00:13:56.13
>>820
>こういうことやってる人があんまり周囲にいない
まじか。ファイルの1行目を\documentclass にする人の方が圧倒的少数派じゃないの?
0826822垢版2018/02/17(土) 10:14:51.17
>>825
なるほど。euptex ってコマンドはあったから、euplatex もあるもんだと思ってた。
0827名無しさん@お腹いっぱい。垢版2018/02/18(日) 00:59:43.43
>>820
「周囲」ってのは研究室のお仲間のことかな?
嫌味な言い方になるけどあまり質の良い論文を輩出してない研究室っぽいね。
譬えコンピューターに精通してなくてもファイルの先頭やらにその説明を書き加えるのは常識だから。
余程の機械音痴を寄せ集めた文系の研究室でもなければ、とっとと中退したほうが有意義だよ。
0830sage垢版2018/02/19(月) 07:23:56.39
>>790

たまたまここを覗いて見つけただけだから亀レスで恐縮だが,
basename $(kpsewhich --var-value TEXMFROOT)
が一番シンプルかつ素直な方法だと思う.
0831sage垢版2018/02/19(月) 07:26:05.97
>>830

もちろん標準のディレクトリ構成でインストールした場合に限る.
0832名無しさん@お腹いっぱい。垢版2018/02/19(月) 11:00:40.34
>>830
あーそれ,いいんだけれど,少しばかり遅い。
>>796
$ readlink -f "$(which tlmgr)" | awk -v FS="/" '{ print $(NF-4) }' -
と比べてみると,
$ time for i in $(seq 1 100); do basename $(kpsewhich --var-value TEXMFROOT) > /dev/null; done

real 0m8.803s
user 0m7.996s
sys 0m0.404s
$ time for i in $(seq 1 100); do readlink -f "$(which tlmgr)" | awk -v FS="/" '{ print $(NF-4) }' - > /dev/null; done

real 0m0.441s
user 0m0.032s
sys 0m0.056s
という感じ。
0836名無しさん@お腹いっぱい。垢版2018/02/19(月) 19:15:59.82
「kpsewhich を使って TeX Live の年度を確認する方法は,
他の判別法と同様に,OS の種類や TeX Live の導入手段の如何によって不確実になる
(だから他の環境で使えると思わないほうがいい)」
ってことだろ。こんだけ噛み砕かんと分からん人間がいるのか……
世の中は広いなw
0839名無しさん@お腹いっぱい。垢版2018/02/26(月) 17:24:17.58
LaTeXの\newenvironmentで、その中に限って使える命令などは作れますか?
例えばfooという環境の中で\fooenvcommandを使うと正常に出力されるけれども
\begin{foo}
\fooenvcommand
\end{foo}
---
[...]
\end{foo}
\fooenvcommand
foo環境の外で\fooenvcommandを使うとエラーになるというような処理をしたいんですが…
0840名無しさん@お腹いっぱい。垢版2018/02/26(月) 21:42:18.62
fooの環境内で任意の論理変数をtureにして、
それに基づいて判定すれば?

\usepackage{etoolbox}
\newbool{hogehoge}
\AtBeginEnvironment{foo}{\booltrue{hogehoge}}
\newcommand\fooenvcommand{\ifbool{hogehoge}{aaa}{bbb}}
0841名無しさん@お腹いっぱい。垢版2018/02/27(火) 01:00:46.84
emacsで書いて、保存して、latexmk -pvc ファイル名として、pdfを作っているの
ですが、sinctexが働かず、pdfをクリックしてもその部分のemacsの文書の部分に
移行しません。.latexmkrcは
$latex = 'platex -synctex=1 -halt-on-error';
$latex_silent = 'platex -synctex=1 -halt-on-error -interaction=batchmode';
としています(これについては問題ないはず)

pdfビューアーは、Skimを使っています。同期の設定では
emacsとしたり、カスタムとして、/usr/local/bin/emacsとしても
sinctexが動きません(動くと、pdfの文字の部分をクリックすると、
emacsの文書の該当部分にジャンプします。)

何が悪いのでしょうか?おしえていただけると幸いです
0842名無しさん@お腹いっぱい。垢版2018/02/27(火) 07:21:33.74
\somemacro{2018-02-27} → 2018年2月27日
みたいな挙動をするマクロない?
\newcommandで作ろうかとも思ったんだけど、俺の知識では引数を置換するような処理は書けん。
0844名無しさん@お腹いっぱい。垢版2018/02/27(火) 10:25:38.60
>>841
全部書けと言ったけど、書かれても困るな
synctexをsinctexって書くようなお前が間違ってないかの確認

で、多分Emacsの設定ができてない
そうなったらスレ違い
0845名無しさん@お腹いっぱい。垢版2018/02/27(火) 20:31:27.99
>>843
次のものです
File Edit Options Buffers Tools Help
#!/usr/bin/env perl
$latex = 'platex -synctex=1 -halt-on-error';
$latex_silent = 'platex -synctex=1 -halt-on-error -interaction=batchmode';
$bibtex = 'pbibtex';
$biber = 'biber --bblencoding=utf8 -u -U --output_safechars';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex %O -o %D %S';
$max_repeat = 5;
$pdf_mode = 3;
$pvc_view_file_via_temporary = 0;
$pdf_previewer = "open -ga /Applications/Skim.app";
0846名無しさん@お腹いっぱい。垢版2018/02/27(火) 20:34:18.18
Skimの同期の設定はemacsclientにしています。
それで、emacsでうつしている文章を変えて保存すると、Skimで表示
されているpdfも変わります。

ただ、pdfをクリックすると、クリックした箇所の文章のemacs上の文章の対応物
へのジャンプというsinctexはできていません
0848名無しさん@お腹いっぱい。垢版2018/02/27(火) 21:47:19.98
>>842
\makeatletter
\def\smcmd#1{\@smcmd#1\@nil}%
\def\@smcmd#1-#2-#3\@nil{%
\@tempcnta=#1
\the\@tempcnta 年\@tempcnta=#2
\the\@tempcnta 月\@tempcnta=#3
\the\@tempcnta 日\relax
}%
\makeatother
\smcmd{2018-02-28}
0849名無しさん@お腹いっぱい。垢版2018/02/27(火) 21:49:25.34
>>842
\makeatletter
\def\smcmd#1{\@smcmd#1\@nil}%
\def\@smcmd#1-#2-#3\@nil{%
\@tempcnta=#1
\the\@tempcnta 年\@tempcnta=#2
\the\@tempcnta 月\@tempcnta=#3
\the\@tempcnta 日\relax
}%
\makeatother
\smcmd{2018-02-28}
0850848,849垢版2018/02/27(火) 21:51:05.51
申し訳ない…2重で投稿してしまいましたorz
0851名無しさん@お腹いっぱい。垢版2018/02/28(水) 01:01:00.14
>>843
解決しました。
http://chirokhan.blogspot.jp/2013/01/emacs-and-latex-on-mac.html?view=magazine
のemacs and latex on macというタイトルの記事
に書いていました。
emacsのほうでM-x server-startとしたあとに、Command+Shift+Clickとすることで
emacsの箇所に移ることができました。

だけど、これってクリックした単語が含まれている行のemacsの箇所に移動すると
いう大雑把なものでしかないんですね。

ありがとうございました。
0852名無しさん@お腹いっぱい。垢版2018/02/28(水) 01:11:39.91
>>851に書き忘れていたことですが
Skimの設定は
同期するのところが
初期値 カスタム
コマンド /usr/local/bin/emacsclient
引数 --no-wait +%line "%file"
です。
コマンドのところはfindでemacsclientを調べました。
0853名無しさん@お腹いっぱい。垢版2018/02/28(水) 10:56:39.71
>>852
だから多分Emacsの設定だと
スレチだから詳しくは言わんけど、init.elに起動時emacsclientが立ち上がるようにしておけば、どこかで役に立つ
0854名無しさん@お腹いっぱい。垢版2018/02/28(水) 21:12:39.14
>>853
ありがとうございます。
markdownのことを尋ねるのはスレチですか?
markdownで書いて、pandocでtexファイルにできるのはわかるのですが、
markdownで書きながら結果をみれるviewerと、tikzで図を描いたりや数式を書くには
どうしたらいいかとおもっています。エディタはemacsを使いたいのですが、
なにかお考えをおもちならどなたか教えてください
0856854垢版2018/03/01(木) 00:51:51.84
>>854は無視してください
0858名無しさん@お腹いっぱい。垢版2018/03/01(木) 10:28:40.52
上で書いたことの繰り返しだけど
1. sudo find / -name emacsclient
でemacsclientの場所を検索(僕の設定では/usr/local/bin/emacsclientと出た)
2. Skimの環境設定->同期する->PDF-TeX同期サポートのところで
初期値 カスタム
コマンド 1の結果
引数 --no-wait +%line "%file"
とする

.latexmkrcは>>845のものを使う

実際使うときはcd で元のファイルがあるディレクトリに移った後に
latexmk -pvc 元のファイル名.tex
として、pdfを作る。そのディレクトリに作ろうとしたpdfの他に
pdfをクリックするとemacsで作ったテキストファイルの該当行へと
移るために必要な情報を書いたファイルができている。(拡張子を忘れた
のでかけないけど、gz.なんちゃらだったような)
pdfからemacsで作ったテキストファイルの該当行へと
移るためには、
emacsのほうでM-x server-startとしたあとに、Command+Shift+Clickとする
0860名無しさん@お腹いっぱい。垢版2018/03/01(木) 21:15:09.39
>>858
Skimでemacsclientの場所を /Applications/Emacs-253.app/Contents/MacOS/bin/emacsclient
として,設定に
(require 'server) (unless (server-running-p) (server-start))
加えたらinverse searchできました ^^;
0861名無しさん@お腹いっぱい。垢版2018/03/04(日) 16:54:29.36
文字の装飾ができない (5chみたいな) 文章中で、TeXはこう書くけど、
pLaTeX2eやe-TeXは←こう書くべきなの?
それともpLaTeX2εやε-TeXって書くべきなの?
0863861垢版2018/03/06(火) 01:00:15.55
>>861
すいません。これ分かるかたいらっしゃらないでしょうか。
できれば文書として根拠が欲しいのですが……。
0864名無しさん@お腹いっぱい。垢版2018/03/06(火) 01:28:54.62
>>862
さっそく 2018 pretest をインストールしたんだが tlmgr が

TeX Live 2018 is frozen forever and will no
longer be updated. This happens in preparation for a new release.

というヒドイmessage を出して困るw

にもかかわらず、その後2回くらいパッケージを update できているw
0866858垢版2018/03/06(火) 01:50:45.82
>>860
emacsのinit.elに加えるコードを教えてくれてありがとう
0869858垢版2018/03/06(火) 22:25:46.18
>>868
おなじことやってるね。
0870名無しさん@お腹いっぱい。垢版2018/03/07(水) 04:01:06.86
>>861 に便乗して質問なんだけど
jBibTeXかJBibTeXかどっち?
ドキュメによって\jBibTeXでの定義と\JBibTeXでの定義がバラバラ。
どっちも出力は大文字のJだけど。
WebページはjBibTeX表記が多いみたい。jLaTeXはJじゃなくjなのでそれに引き摺られてるのかもしれん。
0871名無しさん@お腹いっぱい。垢版2018/03/07(水) 22:03:00.21
TeX Live 2017が凍結されたからTeX Live 2018を導入しようと思ったら公式リリースは3月末だった。
今は (安定して使いたかったら) 凍結されたTeX Live 2017を使えってことかな?
0872名無しさん@お腹いっぱい。垢版2018/03/07(水) 22:09:19.75
jsarticle使ってるんですが、数式中で全角カンマ使うとその後ろに負のスペース入りません?
この長さって何で決まってるんですかね
0873名無しさん@お腹いっぱい。垢版2018/03/07(水) 23:53:39.98
>>871
うん。前年度のが凍結されたら、新しいのが出るまで1ヶ月くらいはテスト期間だよ。
今は 2018 pretest ってヤツだ。俺は2017を残したまま 2018 pretest をインストールし
/usr/local/texlive/current --> /usr/local/texlive/2018
/usr/local/texlive/bin --> /usr/local/texlive/current/bin/x86_64-linux
というようにリンクを張っている。何か異常が出てスグに解決できないときは
/usr/local/texlive/current --> /usr/local/texlive/2017
とすれば元に戻せる。

まあ pretest だと pxdvi のようなものが使えなくなるが(ほとんど使わないが)
それが使えるようにするのは難しくないだろう。
0874名無しさん@お腹いっぱい。垢版2018/03/07(水) 23:55:27.62
> それが使えるようにするのは難しくないだろう。

う、これは分かりにくいな。
2017 の pxdvi を使えるようにするのは難しくない、って事です。
0875名無しさん@お腹いっぱい。垢版2018/03/08(木) 07:26:34.98
>>872
負のスペースが入るんじゃなくて、元々全角カンマの幅は0.5zwしかない。和文文字が隣接した場合、その種類に応じて適切なスペースが入るようJFMに設定されている。全角カンマ+通常の和文文字の場合は0.5zwのスペースが余分に入る。
0877871垢版2018/03/08(木) 11:55:07.44
>>873
ありがとう。察してると思うが今年始めてTeX Liveに手を出したので、リリース仕組みがいまいちだったんだ。
currentディレクトリにリンクを張る方法もやってみる。
0878名無しさん@お腹いっぱい。垢版2018/03/08(木) 13:06:57.61
>>877
まあ俺みたいな最新バカでなければ、普通に 2017 を使っていればよいと
思うけどね。ただ 2018の正式版が release されても、やはり不具合は警戒
しなくてはいけない。だから current を用意するのは普通の人にもお奨めだ。
俺なんかまだ 2016 を残してある。(NASには2012まで残っているw)

もし pretest を使うなら、正式版が release されたときの移行方法は
単に main リポジトリを変更するだけ。ただし tlmgr には「変更」の
オプションは無くて、普通に main リポジトリを「設定」するだけ。
sudo tlmgr option repository [mainリポジトリの新しいURL]
0879名無しさん@お腹いっぱい。垢版2018/03/08(木) 13:19:39.89
あと >>873-874 で「pxdvi がどう」とか騒いでいたのは、
main リポジトリに入っていないパッケージの話です。

pretest 期には、追加リポジトリはまだ古いのしか無いことが普通だし、
新しいのが release されても追加リポジトリはしばらく古い、ということもある。

なので環境変数PATH に古いtexlive の bin へのパスも優先順位を下げて入れています。
0880名無しさん@お腹いっぱい。垢版2018/03/08(木) 14:33:08.05
>>878
なるほど、いや色々教えてもらってありがたいです。pxdviは使わないと思う (LuaTeX 中心に組版してるし DVIファイルが生成されてもdvipdfmxでPDF形式にしてるので) けど、安全策を取るわ。
迷惑ついでに質問なんだが、TeX LiveはISOイメージとinstall-tl (perlスクリプト)とtlmgr updateとでリリースがずれてるように思うんだが、そういう方針なんだろうか。
というのも、「安定最新版」のinstall-tlを起動して迅速にTeX Liveを構築したつもりだったんだが、その直後に、公式ドキュメントに従ってtlmgr update --self --allとやると2, 3個パッケージが更新されたんだわ。
0881名無しさん@お腹いっぱい。垢版2018/03/08(木) 17:18:20.70
>>880
ISOイメージは使った事が無いのでよくわからないけど
リポジトリはほぼ毎日更新されているから、そういうこともあると思う。

追加リポジトリは pxdvi の入ってる https://texlive.texjp.org/年度/tltexjp/
以外にも色々あるらしい。自分が追加してるのはこの tltexjp だけだけど、最近知った
http://contrib.texlive.info/ (このURLはリポジトリではなく、その情報サイト)は
そのうちお世話になるかも知れない。このリポジトリについては次の情報も参考に。
https://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=2366
0882名無しさん@お腹いっぱい。垢版2018/03/09(金) 08:55:31.43
今のところさ、特に数式に関して出版に匹敵する品質の (PDF形式での) 出力ができるシステムって実質 (La)TeX くらい?
roff とかは普通の文章ならまぁ満足できるけど、数式や日本語含む表組みは滅茶苦茶になるし。
HTML+CSSでレンダリングされたWebページはそれ単独では綺麗なんだけど印刷は各ブラウザの足並みもそろってないし何より汚ない。
それこそtext2pdfのようなアプリケーションが競争してくれればいいんだけど、俺の観測範囲では TeX 一強なんだよなぁ。
そして TeX は古い時代の因習をずるずる引き摺ってるせいでバッドノウハウ満載だし、後から出てきたUnicodeやPDFといった統一規格に対応しきれていない。
0884名無しさん@お腹いっぱい。垢版2018/03/09(金) 09:30:31.11
Wordの数式も、それ単体は最近はそんなに悪くないと思うよ。それ単体は。

Word自体がクソだけど。
ディスプレイ数式に式番号つけられないとか、左寄せにできないとか含めて。
やり方あったらおせーて。
08851回目垢版2018/03/09(金) 13:23:52.63
ltjsarticle.clsの書き直しについての質問です。
もともとの物(Aとします)が、
\renewcommand{\normalsize}{%
\ltj@@ifnarrowbaselines
{\jsc@setfontsize\normalsize\@xpt\@xiipt}%
{\jsc@setfontsize\normalsize\@xpt{\n@baseline}}%
\abovedisplayskip 11\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
\abovedisplayshortskip \z@ \@plus3\jsc@mpt
\belowdisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
\belowdisplayshortskip \belowdisplayskip
\let\@listi\@listI}
\mcfamily\selectfont\normalsize
\setbox0\hbox{漢}
\setlength\Cht{\ht0}
\setlength\Cdp{\dp0}
\setlength\Cwd{\wd0}
\setlength\Cvs{\baselineskip}
\setlength\Chs{\wd0}
\setbox0=\box\voidb@x
となっています。
ですが、上のコードだと都合が悪いのです。
08862回目垢版2018/03/09(金) 13:24:56.42
正しくは(か、どうかはわかりません。というのは以下に書くのは、数年前の
ページのコードだからです)
\renewcommand{\normalsize}{%
\ltj@@ifnarrowbaselines
{\@setfontsize\normalsize\@xpt\@xiipt}%
{\@setfontsize\normalsize\@xpt{\n@baseline}}%
\abovedisplayskip 11\p@ \@plus3\p@ \@minus4\p@
...
だそうです。(これをBとします)
AからBに変えた趣旨は、\normalsize の中で if 文を使っていたのを、
使わない形に変えたということのようです。
08873回目垢版2018/03/09(金) 13:27:32.42
Bの書き換えは
https://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=1005
に書いていたものです。この書き換えがぜんぜん理解できません。

同様に\small \footnotesize (等?)も書き換えなくてはならないそうです。
\scriptsizeや\tiny, \large, \Largeも書き換えなくてはいけないのではないか
とも思います。
元のコード(Cとします)を下に書きます
08884回目垢版2018/03/09(金) 13:28:36.58
コードCは次のものです
\newcommand{\small}{%
\ltj@@ifnarrowbaselines
{\jsc@setfontsize\small\@ixpt{11}}%
{\jsc@setfontsize\small\@ixpt{13}}%
\abovedisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
\abovedisplayshortskip \z@ \@plus3\jsc@mpt
\belowdisplayskip \abovedisplayskip
\belowdisplayshortskip \belowdisplayskip
\def\@listi{\leftmargin\leftmargini
\topsep \z@
\parsep \z@
\itemsep \parsep}}
\newcommand{\footnotesize}{%
\ltj@@ifnarrowbaselines
{\jsc@setfontsize\footnotesize\@viiipt{9.5}}%
{\jsc@setfontsize\footnotesize\@viiipt{11}}%
\abovedisplayskip 6\jsc@mpt \@plus2\jsc@mpt \@minus3\jsc@mpt
\abovedisplayshortskip \z@ \@plus2\jsc@mpt
\belowdisplayskip \abovedisplayskip
\belowdisplayshortskip \belowdisplayskip
\def\@listi{\leftmargin\leftmargini
\topsep \z@
\parsep \z@
\itemsep \parsep}}
08895回目垢版2018/03/09(金) 13:29:46.65
以下はコードCの続きです。
\newcommand{\scriptsize}{\jsc@setfontsize\scriptsize\@viipt\@viiipt}
\newcommand{\tiny}{\jsc@setfontsize\tiny\@vpt\@vipt}
\if@twocolumn
\newcommand{\large}{\jsc@setfontsize\large\@xiipt{\n@baseline}}
\else
\newcommand{\large}{\jsc@setfontsize\large\@xiipt{17}}
\fi
\newcommand{\Large}{\jsc@setfontsize\Large\@xivpt{21}}
\newcommand{\LARGE}{\jsc@setfontsize\LARGE\@xviipt{25}}
\newcommand{\huge}{\jsc@setfontsize\huge\@xxpt{28}}
\newcommand{\Huge}{\jsc@setfontsize\Huge\@xxvpt{33}}
\newcommand{\HUGE}{\jsc@setfontsize\HUGE{30}{40}}
\everydisplay=\expandafter{\the\everydisplay \narrowbaselines}

どのようにこのコードC, またコードAを書き換えればいいのでしょうか?
08906回目垢版2018/03/09(金) 13:39:02.92
続きです。
また、patchファイルを作って、もとのltjsarticle.clsをmyltjsarticle.clsなどに
名前を変えてパッチをおこなうことで、新しいパッチ後のmyltjsarticle.clsを作り、
その新しいパッチ後のmyltjsarticle.clsを用いることで、
lulatexでltjsarticle.clsの内容(つまりmyltjsarticle.cls)を
使いながら、<<microtypeパッケージを使うときに>>、エラーが発生しないように
することができるということを示しているページがあります。
https://qiita.com/takeh1k0/items/ff84cb85bfffedc75066
ですが、patchの際にエラーが出ます。それで先に進めない。

ltjsartcle.clsはmyltjsarticle.clsと名前を変えて、デスクトップにコピーペースト
しています。そこで1--5回目の書き込みをし、教えていただけたらという希望を
持って、質問の書き込みをさせていただきました。
なにとぞ、ご教示ください。
0892885垢版2018/03/09(金) 18:38:43.21
>>890の続きです。
https://qiita.com/takeh1k0/items/ff84cb85bfffedc75066
に従って、ltjsarticle.clsを書き換えました。
そうしてもエラーが出ました。

また、元々のltjsarticle.clsをみたところ、
\jsc@setfontsizeというふうにjscが入っているという違いが上のリンクとの間に
あっただけなので、jscを削除しました。
そういう程度で, jscを取り除いただけです。
取り除くことが正しかったのかは疑問です。というのは
\abovedisplayskip 11\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
という行がltjsarticle.clsのnormalsizeの定義のすぐ下にあります。そういうところ
にもjscというのが入っているからです。
 そもそも、microtypeパッケージをltjsarticle.clsで使うことのエラーの修正
については、すでにされているということではないのか、(jscを削ると
いう程度になっているので)とおもいます。
https://texwiki.texjp.org/?Pandoc#h2f8de68
には
pandoc で documentclass に LuaTeX-ja の ltjsarticle を指定して lualatex を実行するとエラーが発生す現象は 2015-01-07 に修正されました.
と書いています。修正されたのに、なぜだか、エラーがでるという状況かもと
おもいます
0894名無しさん@お腹いっぱい。垢版2018/03/09(金) 20:01:24.70
>>883
初耳だったけど,調べるとほんとに出来たてほやほやだなw
開発者は日本人?それとも日本語が堪能なだけかな。

まったくの難癖だけど OCaml じゃなくてCで作ってほしかった。
0896名無しさん@お腹いっぱい。垢版2018/03/10(土) 00:18:49.66
いやそんなこと言ったら例えばベトナム人が作ったアプリケーションだって俺たちが知らんだけで
品質いいのに世界的には無名ってのが沢山あるでしょうに。
単純に俺たちが日本人だから日本人が作ったアプリケーションを目にする機会が多いだけ。認知偏向の一種


……という熱いマジレス
0897名無しさん@お腹いっぱい。垢版2018/03/10(土) 01:45:17.87
SATySFi って別に利用者目線で見ればマークアップの仕方とか LaTeX と変わらないんじゃない?
メンテナさんがやりやすくなるかもしれないけど単なる利用者にとってはそれほど目を引くものではないような気がするんだけど…
0898名無しさん@お腹いっぱい。垢版2018/03/10(土) 02:12:06.81
TeXを素で使ってるならまだしも,LaTeXのエラーってほぼ何の手助けにもならなくね?
「マクロの内部でエラーが発生しています」っていう抽象も極まったメッセージと
エラープロンプトに h と打って返ってくる「すいません。これは複雑な問題だと思われ何ら助けになれません」という無慈悲な宣告。

とは言うものの正直今から過去の膨大な資産を抛ってLaTeXからSATySFiに移行する人は少ないだろうけど。
俺は一応導入はしてみた。フォント変えたりパッケージ追加したりといった複雑なことしてないからまだどうとも言えんが。
とりあえず卒論はLaTeXにするけどw
0901名無しさん@お腹いっぱい。垢版2018/03/10(土) 04:34:12.44
>>898を見て思ったのが、
・LaTeXやTeXを使いこんでいる人ほどその欠点に気付き、改良したいと考えるようになる。
・SATySFiはLaTeXを(多分)改良したものである。
・SATySFiに魅力を感じ、使ってみたいと思うのは(La)TeXの熟練者である。
(というのも現状、SATySFiをどうにか使えるようにするのにさえそれなりの手間が掛かる上に
 MarkdownやAsciiDocのような平易な形式のソースコードでもない)
・一般に(La)TeXに習熟するにはそれなりの時間とコンパイル数が必要である。
・(La)TeXの熟練者の背景には膨大な資料が蓄積されている。
・一般に人は自らの苦労を溝に捨てることはしない/したがらないものである。
→SATySFiに魅かれる人ほど(La)TeXを使い続けたがるというジレンマが発生する

Plan 9やWaylandが普及しない理由に似ているかも知れんな。
0902名無しさん@お腹いっぱい。垢版2018/03/10(土) 06:56:49.47
みんななんだかんだ言ってSATySFiに興味あるんだなw
verison 0.0.1だしまだ全く実際を捕みかねんが、日本製というのもあって伸びてほしい

しかし公式じゃなくてもいいからチュートリアルみたいなのはないのだろうか
この間初めて触ったんだが、その時はdemo.satyしかなくてそこから先に進めなかったんだが。
0904885垢版2018/03/10(土) 08:41:50.58
奥村本、フォントの説明はわかりにくいよね
0905名無しさん@お腹いっぱい。垢版2018/03/10(土) 08:55:19.71
UnicodeどころかTTY以前からあるしねえ。>フォント
METAFONTという今じゃ誰もさわってない仕組みが基本になってるし。。。
0907名無しさん@お腹いっぱい。垢版2018/03/10(土) 14:02:36.82
ニコニコでやってた SATySFi の説明では「LaTeXを改良したもの」みたいな部分はなかった「このようなマークアップでこういう出力です」だけだったよね
コメントで「すげー」とか流れてたけど何が凄いのかわからんかったw
0908名無しさん@お腹いっぱい。垢版2018/03/10(土) 14:07:22.28
>>907
それ生放送だよね?
後から視聴できない形での説明ってちょっとなぁ…
そういうコンセプトじゃないのかな? あくまで余興?
0910名無しさん@お腹いっぱい。垢版2018/03/10(土) 18:16:54.92
NFSS2(New Font Selection Scheme)というのでフォントを管理しているんだよね。
基本を押さえないとね。でもよくもまあ、そういうふうにフォントを管理しようとか
思いつくものだよね。数学者なのに。

ちなみにmarkdownでtikzを入れる文章を書いて、pandocでpdfを作るということに
おいて、うまくいったよ。外部ファイルを作ってそれを読みに行くようにするんだね。
どんなオプションをつければ、どんな結果になるのかは、出てくるアウトプット
-o kekka.pdfのpdfをtexとかtxtとかに変えて、エディターで開いて見ればわかるよ。
-sをつければどんなふうになるのかを見れて、勉強になった。
外部ファイルに何をかけばいいかもわかるよ。その外部ファイルはフィルター
とは言わないよね。だってフィルターの場合はAの結果をBにわたし、Bの結果を
Cに渡すときに、Bをフィルターというんだけど、今の外部ファイルの場合は
pandocがどんな結果を出すかを決めるに当たって、素材としてその外部ファイルに
書いていることを取り込んで、そして人間が指定したオプション通りの配置の
しかたをして、そして全体としてのアウトプットを出すというものだからね。

(でもできたといっても、実はまだ--variableに行長さとかそういうものについて
はうまくいかなくて削除したままだから、そこについても考えなければいけないの
でまだ完璧ではないが、基本できた)

いろんなウェブページをみて、それらを参考にしながら考えるし、ヘルプを読まない
といけないので、時間がかかるけど、たぶんこういうのに慣れれば、こういうこと
だろうと勘が働くものなんだろうね。
0911名無しさん@お腹いっぱい。垢版2018/03/10(土) 18:22:49.37
奥村本って不思議な本だよね。だって、kpathsearchとかめちゃくちゃ重要なんだけど、
付録に書いてる。しかもあっさり。本文の方には初心者向けのことと、フォントの
難しいことも書いている。(わかりやすくないけど)
あの本読んでも(1度は読んでる)プログラミングに対する意欲は湧かなかった。
(texはマークアップ言語であると同時に、関数型プログラミング言語なのに)
わかりにくいところがあって(たぶんとても難しい箇所なんだろう)、読みにくいのに、
それでもこの本には何かあるかもと思わさせられる(僕みたいな対してtexに
ついて知っていない人にとってはとりわけ)
0912名無しさん@お腹いっぱい。垢版2018/03/10(土) 18:24:03.30
奥村本は恨みを抱くと同時に、この本をちゃんと理解してやろうと思わせる
本ですよね。いい本だと思います。
0913名無しさん@お腹いっぱい。垢版2018/03/10(土) 18:28:55.55
companionは2020年に新しいのがでるということになってるみたいですね。
amazonでみた。(米アマゾンだったか、日アマゾンかはわすれた)
texってlispやmathematicaみたいなもので、覚えるものがめちゃくちゃ多い
ですよね。僕は初心者で、ぼちぼち勉強しますけど
0914885垢版2018/03/10(土) 18:39:41.46
余計なことだけど、オプションでたとえばpandocで-Vと -vが違う意味を持っていたとしても(持ってるんだけど)、macは大文字と小文字を区別できないから、ちゃんと-V
を入れているのに、versionを出す小文字のvだと解釈して、エラーを返してよこします。そのときにはもうちょっと長い文字のオプションが別にあって、(--includeなんちゃらという)それを使えばいいということになるわけだけど、macってこんなふうに
なってるというのはさっきまで知らなかった。elcapitanというバージョンかららしい。
0916名無しさん@お腹いっぱい。垢版2018/03/10(土) 23:04:27.36
奥村本はTeXがインストールできるメディアが本体で本の中身が付録でしょ
TeXを自力でインストールできない人がバージョンアップの度に購入しているというイメージ
0918名無しさん@お腹いっぱい。垢版2018/03/10(土) 23:48:38.25
ダランベール演算子ってUnicodeに収録されてるんだね。⧠←これ。(U+29E0)
(La)TeXでは\Boxで代用されてることが多いけど、正確を期すならこれを出力すべきだよね。
0919名無しさん@お腹いっぱい。垢版2018/03/11(日) 01:39:20.25
奥村本はTeX初心者に統合環境を押し付ける戦犯だと思っている
そういう人たちはコンパイルのログすらまともに提示してくれないんだよね…
ちゃんと拡張子が log のファイルからコピペして欲しいんだけど
0920名無しさん@お腹いっぱい。垢版2018/03/11(日) 04:46:46.23
いや、奥村さんもコンソールでもできるってことは書いてなかった?
もしかして新しいのだとそういう記載はないのだろうか。
俺が持ってる美文書作成入門はハードカバーだったころのやつだから色々違うのかも。

まずは $ platex ./draft.ltx && dvipdfmx ./draft.dvi が統合環境でのコンパイルがやってることの中核だってことを知ってほしいね。
0921名無しさん@お腹いっぱい。垢版2018/03/11(日) 05:41:39.16
「コンソールでもできる」くらいの記述じゃ意味ないってことでしょ

まぁ、TeXフォーラムでそういう「ログすらまともに提示してくれない人」をケアしてるんだから、見逃そう

個人的にTeX使う上で奥村サンに頼ったことは一度もないけど
0922名無しさん@お腹いっぱい。垢版2018/03/11(日) 06:38:23.26
基本はコンソールで行う作業でありソースファイルをコンパイルするとどのようなファイルが作成され各々どのようなことに使われるか
という基本的なことを理解した上で統合環境を使うのであれば全く問題ないんだけどね

実際はそういう基本的なことは無視して統合環境に飛びついてブラックボックス化してしまいエラーが出ても何が原因か自分で想像することすら出来ないことになっているよね
そういう人達はオライリーの入門書みたいなのは毛嫌いして「サルでもわかる○○」みたいな手に取った瞬間から使える(ただし何をしているのかわからない)のを好みそうだよね
0923名無しさん@お腹いっぱい。垢版2018/03/11(日) 17:12:37.90
ここでもその表記が見られますが,TeXとLaTeXを合わせて“(La)TeX”のような表記をする時がありますよね。
LaTeX2eによる組版でも同じことがしたいと思い,\TeXorLaTeXという命令を作りました。
ほとんどlatex.ltxの\LaTeX命令をパクっただけです。そしてとりあえず期待した見た目を得られました。
しかし(La)TeXは括弧類に関して特別な禁則処理をしますし,その他にも改行処理などに漠然とした不安があります。
「ここはこうした方が安全」とかアドバイスおねがいします。

\DeclareRobustCommand{\TeXorLaTeX}{%
(L%
\kern-.36em%
{\sbox\z@ T%
\vbox to\ht\z@{\hbox%
{\check@mathfonts
\fontsize\sf@size\z@
\math@fontsfalse\selectfont
A}%
\vss}%
}%
\kern-.15em%
)%
\TeX%
}
0924名無しさん@お腹いっぱい。垢版2018/03/11(日) 17:12:53.43
奥村本の最初のところで platexやって出てきたdviをpdfに直してというのは
やってますよ。
統合環境あって、texは使いやすいにも関わらず、ワードのほうが使いやすいと
いう人も多いから、tex使用人数を増やすには仕方ないのかも。
せめて理工系はtexを大学で教えて使うべきだよね
0925名無しさん@お腹いっぱい。垢版2018/03/11(日) 21:58:00.02
文書書きたいだけのひとが端末開いてコンパイルできる必要ないと思うけどなあ。こういう先輩風吹かせたがるひと多いから広まらないんじゃ
0926名無しさん@お腹いっぱい。垢版2018/03/11(日) 22:43:10.53
なにも端末使って作業をしろと言っているんじゃない
基本が分かればなにも統合環境に縛られる必要はなくもっと良い環境があるし
統合環境を使っていてもオプションの指定とかちゃんと理解していればアホな質問もしないだろということじゃよ…
0928名無しさん@お腹いっぱい。垢版2018/03/12(月) 02:21:38.14
>>927
まあ初心者には統合環境を使わせようという人たちは親切で勧めているんだろうけど
結局ブラックボックスになっていて自分のしたいことも自分で設定できない状況になってるよね
そして質問をして解決するけれど言われたまま設定しているだけで結局ブラックボックスはブラックボックスのまま
そうすると似たような問題に対処できないまままた質問を繰り返すんだよねぇ

まあ質問に答えたい人は基本的なことは教えずに形だけ解決できればいいという姿勢はマッチポンプでいいのかもしれないけど
そののほうが不親切に思えるんだがのぉ
0932名無しさん@お腹いっぱい。垢版2018/03/12(月) 18:19:36.15
こう言う口うるさい奴に限って、特に何にも教えられないんだよな
だいたい、お前はお前が使うものすべてを明らかにしてるのかと
0933名無しさん@お腹いっぱい。垢版2018/03/13(火) 00:05:00.52
「そうでもない」と言っただけでここまで拡大解釈されるとは壊れるなぁ…
「すべて理解しろ」なんて微塵も考えてないんですがそれは
0934名無しさん@お腹いっぱい。垢版2018/03/13(火) 02:07:30.22
LuaTeX-ja で \texttt 命令の日本語フォントを変えたい。
luatexja-preset パッケージを match を付けて読み込んで,
\setmonojfont[
BoldFont = * SemiBold
]{Source Han Sans}
とするとエラー無くコンパイルできたものの反映されず。
\texttt{Aあ\textbf{Aあ}} で,太字に指定した部分のフォントは恐らく Source Han Sans (JP) Bold。
これだと Inconsolata と相性が悪いからもっと細くしたいんだけども……。
うーんやりかたが分からん
0935名無しさん@お腹いっぱい。垢版2018/03/13(火) 14:50:19.50
mktexlsr って $TEXMFHOME を反映しないの?
わざわざ
$ mktexlsr $(kpsewhich --var-value TEXMFHOME)
としないといけない。
どういうこと……?
0937名無しさん@お腹いっぱい。垢版2018/03/13(火) 21:21:45.19
Windows は知らないけど TEXMFHOME にスタイルファイルとかおくとき mktexlsr は不要だったと思う

多分 TEXMFHOME/tex/hoge/hoge.sty っての作ってすぐに
$ kpsewhich hoge.sty
したらちゃんと
~/texmf/tex/hoge/hoge.sty
って反応するんじゃないかな?
0939名無しさん@お腹いっぱい。垢版2018/03/13(火) 21:58:03.97
>>938
奥村さんがIDE推奨とあなたは書いてるけど、付録ではいろんなプログラムについても
書いてるからそういう批判はあたらないのかもね。
0940名無しさん@お腹いっぱい。垢版2018/03/13(火) 23:05:35.59
>>939
すなわちブラックボックスの犠牲者になるかならないかは奥村本の読者の判断が原因だから悪いのはいま TeXQ&A に質問しているような読者だということかな?
0941名無しさん@お腹いっぱい。垢版2018/03/13(火) 23:32:29.14
latex forumのことは
\author
以下の部分を%を頭につけて、
自分はluatexを使っているから
\usepackage{luatexja}
をつけて
\usepackage{minijs}
の頭にも%をつけて、dvipdfmxを削って
\begin{document}
こんばんわ
\end{document}
とでもすれば、タイプセットが通った。普通にコードの書き間違え
じゃないのかな?
0942名無しさん@お腹いっぱい。垢版2018/03/13(火) 23:34:15.12
>>940
ブラックボックス関係ないよ
texは難しいという思い込みが
あるので、その思い込みを
無くそうとおもうと勉強するしかない。
それをしようとするかどうか
は個人の資質
0944934垢版2018/03/14(水) 01:09:51.22
>>934
TeXQ&Aに持っていくので取り下げます。
0946名無しさん@お腹いっぱい。垢版2018/03/14(水) 06:17:31.62
>>942
究極的にはその通りだよね
ただ特定のソフトを推すような内容の本だと基本的なところを学習する機会を奪う可能性が高いよね
0947名無しさん@お腹いっぱい。垢版2018/03/14(水) 07:31:25.58
(La)TeXでその処理系のバージョンを挿入する方法ない?
```
この文書は\pLaTeXe\space\getplatexeversion で作成しました。
```
という入力から
>>>
この文書は pLaTeX 2ε 3.14159265-p3.7.1-161114-2.6 で作成しました。
>>>
が得られる。
0948934垢版2018/03/14(水) 08:45:53.44
>>934
すいません。TeX Q&A に持って行く前に自己解決しました。
単に,Source Han Sans SemiBold がないだけでした。
Source Han Sans Mediumを指定したところ成功しました。すいません。
0950名無しさん@お腹いっぱい。垢版2018/03/15(木) 06:23:24.77
(La)TeX に \case 文みたいなのってない?
あるマクロを自作してて、引数によって条件を分岐させたいんだが、
ifthen パッケージの ifthenelese だけでは場合分けが階層的になりすぎて可読性・保守性が悪い。
\newcommand{\somecs}[1]{%
\case#1
\in{A}{somecommand}
\in{B}{othercommand}
………以後五つくらい続く
\esac
}
みたいな定義から \somecs{A} -> somecommand が実行、\somecs{B} -> othercommand が実行っていうふうにしたんだけども。
0951名無しさん@お腹いっぱい。垢版2018/03/15(木) 08:49:30.26
TeXの特に言語面に詳しい人に質問なんだけど、
例えばC99はPOSIXが標準を規定・勧告しててそれに複数の実装が準拠してるって感じだよね。
代表的にはgcc, clang, 8ccなどなど。
翻ってTeXの言語処理系って、実質参照実装が一つだけって思っていいの?
俺は今主にTeX LiveをDebianで使ってるんだけど、この中心にあるweb2c(?だっけ)はWindowsで動くW32TeXとかと同じなの?
それともKnuth氏やらTUGやらが管理してる「TeXの処理系はかくあるべし」っていう取り決めがあって、各々の実装がそれに従ってるの?
0954名無しさん@お腹いっぱい。垢版2018/03/17(土) 01:06:11.29
>>951
素人なのでよくわからないけどW32TeXのwikiには
>日本語を扱う pTeX, pLaTeX は(tetexに)入っておらず、これらを Windows 32bit
> に移植したのが W32TeX
と書いてあった。Web2Cは本家本元でしょ。
0955名無しさん@お腹いっぱい。垢版2018/03/18(日) 12:39:56.15
kpsewhich --expand-path='$TEXMF'

/Users/なまえ/Library/texlive/2017/texmf-var:
/usr/local/texlive/texmf-local:
/usr/local/texlive/2017/texmf-config:
/usr/local/texlive/2017/texmf-var:
/usr/local/texlive/2017/texmf-dist

と出てきます。他方で、texの手元にある古い本には
setenv TEXMF /usr/local/lib/texmf
と書いています。/usr/local/lib/texmfというディレクトリはもうなくて、
いまでは/usr/local/texlive
ならあるので、

setenv TEXMF /usr/local/texlive
とした時に、一番上のkpsewhichで出てきた4つのディレクトリというパラメーター
は/usr/local/texliveに上書きされてしまって消えてしまうのでしょうか?
(怖くてsetenvできない)

それとsetenvが書き換えるのはTEXMF.CNFの該当箇所なのでしょうか?
0956名無しさん@お腹いっぱい。垢版2018/03/18(日) 13:16:31.57
>>955
たぶん、自己解決しました。
setenvだけでは書き換えることが
なくて、これを.bashrcとか.bash_profile
に書くとか、
$ setenv TEXMF /user/local/lib
$ ls -R $TEXMF > $TEXMF/ls-R
とするとか(このコードは実行してはだめ)
して、物理的なファイルにしておかないといけない
ということだと思います。
0957名無しさん@お腹いっぱい。垢版2018/03/18(日) 15:01:38.83
>>956
--expand-path というオプションは逆に初耳だわ
$ kpsewhich --var-value TEXMF
のほうが良く聞くけど,どうなんだろう。
0959名無しさん@お腹いっぱい。垢版2018/03/18(日) 16:25:05.36
>>957
kpsewhich --expand-path='$TEXMF'

kpsewhich --var-value TEXMF
の結果を比べると、前者にはない
/Users/namae/Library/texlive/2017/texmf-config

/Users/namae/Library/texmf
が後者にはあった。それに僕のパソコンの中には、/Users/namae/Library/texmf
というディレクトリ自体がなかった。
だからkpsewhich --var-value TEXMFはパソコンのなかを探しているわけでは
ないことがわかった。どこに書いているかと考えて、texmf.cnfという初期設定
のファイルだろうなとおもって、
find /usr/ -name "texmf.cnf"
とすると
/usr//local/texlive/2017/texmf.cnf
/usr//local/texlive/2017/texmf-dist/web2c/texmf.cnf
と2つ出てきた。個人設定変更は前者のほうに変更を書き込むということだから、
前者のファイルをemacsで開いてみた。
すると
TEXMFCONFIG = ~/Library/texlive/2017/texmf-config
TEXMFHOME = ~/Library/texmf
と書いていた。
だから、たぶんkpsewhich --var-valueとするとみるところが、
texmf.cnfなんだろうなと思う。実際使われようがどうであろうが、
登録されているものはすべてリストアップするんじゃないかな。
kpsewhich --expand-path='$TEXMF'のほうはtexmfの中身をみて、実際に
使われるディレクトリじゃないのかな。
0960名無しさん@お腹いっぱい。垢版2018/03/18(日) 16:31:35.45
けっきょく、ls-Rというファイルを探して全部消したんです。
理由は、別のものをインストールしたときに、ls-Rを更新しなければ
古いものを読み込み続けるからという理由でした。
ところがそれをすると、
$ texdoc
/usr/local/texlive/2017/bin/x86_64-darwin/texdoc:7: module 'texdoc.main' not found:
no field package.preload['texdoc.main']
[kpse lua searcher] file not found: 'texdoc.main'
[kpse C searcher] file not found: 'texdoc.main'
no file '/usr/local/lib/lua/5.2/texdoc.so'
no file '/usr/local/lib/lua/5.2/loadall.so'
no file './texdoc.so'
と出てしまって、ファイルを見つけられなくなった。pathを通せばいいけど
めんどうなので、結局ホームディレクトリでmktexlsrをしました。
その結果
find /usr/ -name "ls-R"

/usr//local/texlive/texmf-local/ls-R
/usr//local/texlive/2017/texmf-var/ls-R
/usr//local/texlive/2017/texmf-dist/ls-R
/usr//local/texlive/2017/texmf-config/ls-R
となりました。 結局消す前と同じものが作られたというわけです。
0962名無しさん@お腹いっぱい。垢版2018/03/18(日) 22:48:25.55
mktexlsrをホームディレクトリでせずに、setenvで
setenv TEXMF /usr/local/lib/texmf
ls -R $TEXMF > $TEXMF/ls-R
のようにやるとして(このままやってもエラーがでる)
どのようにすればよろしいのでしょう?
>>960の4箇所にls-Rがあり、しかもそれをエディターで開いてみたら
ことなった記述が中にされていました。
もうsetenvを使った設定というのはできないのでしょうか?
0963名無しさん@お腹いっぱい。垢版2018/03/18(日) 22:58:57.01
>>961
kpsewhich --var-value="TEXMF"
で出てくる値を基本、すべていれれば
いいだろうということですね。
それだとそのとおりです。
/use/local/texliveをTEXMFにする理由は
ないです。
それでは
setenv TEXMF /usr/local/lib/texmf
についても同様に考えよということに
なるのでしょうね。
0964名無しさん@お腹いっぱい。垢版2018/03/19(月) 01:42:27.34
演算能力の高いいまの PC ではどうかわからないけど ls-R ファイルは
昔の PC では TeX のシステムが必要なファイルを直接探すのは非常に時間がかかってそれをどうにか短縮させようということで
TEXMF ディレクトリを決めてその直下に ls-R ファイルを記述することにより検索効率を高めようという狙いの元作成されるファイルです

それを TEXMF の上位ディレクトリである /usr/local/texlive に ls-R ファイルを作成するということは検索効率の低下を意味するんだけど
そういうことわかって setenv TEXMF /usr/local/texlive にしたいわけなのかな?
0965名無しさん@お腹いっぱい。垢版2018/03/19(月) 08:51:14.92
>>964
考えていたことはtexliveに作れば漏れがなくなるからいいだろう、ということだと思います。
さらに、ls-Rでつくられるものはディレクトリとその子、孫etcのディレクトリ、に
入っているファイル名なので、そのファイル名が大きくなろうと、
ls-Rを作らずに直接ファイルを探しに行く場合よりは早いだろう
と思っています。

他方でsetenv TEXMF /usr/local/texliveだとファイルの読み込みに失敗
しました。

TEXMFが入ってくるところで/usr/local/texliveに置き換わると不都合な設定が
あるのだと思います。
0967名無しさん@お腹いっぱい。垢版2018/03/19(月) 19:19:26.00
>>957
面白そうだから、やってみた
$ diff <(kpsewhich --expand-path='$TEXMF'| sed 's/:/\n/g') <(kpsewhich --var-value TEXMF| sed -e 's/[!{}]//g' -e 's/,/\n/g')
$
両者、全く同じようだな。
0969名無しさん@お腹いっぱい。垢版2018/03/19(月) 19:59:07.56
>>965
そうですね texmf.cnf の TEXINPUTS などをみれば TEXMF に依存しているので TEXMF をいじれば TEXIPUTS もいじる必要があると思います。

例えば
TEXMF を /usr/loca/texlive とすると
TEXINPUTS.latex = .;$TEXMF/tex/{latex,generic,}//

TEXINPUTS.latex = .;$TEXMF/2017/texmf-dist/tex/{latex,generic,}//
のように変更する必要があるでしょうし、これでは $TEXMF/2017/texmf-local 以下のディレクトリは参照されません。

もし、TEXMF を /usr/local/texlive にすることが可能だとしてもちゃんと TeX が使えるようにする作業は面倒に思えます。
0970クレクレ垢版2018/03/19(月) 23:05:41.73
zsh 下で texdoc を使うときの zsh の completion 関数ポチ
0971名無しさん@お腹いっぱい。垢版2018/03/20(火) 01:43:26.64
>>969
そうすると結局mktexlsr以外のものはつかわないでね。
せいぜいそれを実行して出てくるものの部分修正にとどめてね
できるls-Rも普通にls -rをしたときにできるディレクトリのリストとは
ちがうよ。だからls -rをしても無駄だよ。やめてね、
という風にlatexはなっているということですよね。
0973名無しさん@お腹いっぱい。垢版2018/03/20(火) 02:29:33.93
>>971
ls-R ファイルの内容は普通に TEXMF ディレクトリで行った ls -R した内容でしょ?

まあ「想定外の使い方は止めてよ」っていうのは TeX に限らず大抵のソフトウェアで当然のことだよね
0974名無しさん@お腹いっぱい。垢版2018/03/20(火) 06:55:28.49
>>971
ls -r って本当に -r オプション? -R オプションのタイポなのかな?
-r なら -R と異なるのは当たり前かな?

実際 /usr/local/texlive/2017/texmf-dist で ls -R を行った結果を diff してみたけど ls-R ファイルと細かい部分を除き(ls-R ファイルの先頭に「% ls-R -- filename database for kpathsea; do not change this line.」があるとか)同じだったよ

もし本当に ls-R ファイルと ls -R の実行結果が大きく異なるのであれば >>971 さんの TeX のシステムに異常があるんじゃないのかな?
0975名無しさん@お腹いっぱい。垢版2018/03/20(火) 13:57:26.73
>>974
ありがとう
/usr/local//texlive/texmf-local/ls-R
/usr/local//texlive/2017/texmf-var/ls-R
/usr/local//texlive/2017/texmf-dist/ls-R
/usr/local//texlive/2017/texmf-config/ls-R

の4つのうちの最初の2つについて、
たとえば2つ目については
$cd /usr/local//texlive/2017/texmf-var/
$ls -R >/Users/名前/Desktop/ls-Rの結果

mltexlsrをホームディレクトリでした結果の
/usr/local//texlive/2017/texmf-var/ls-R
をエディタで開いて、それをデスクトップにls-R4
の名前で保存して、比較しました。
同じものですね。その結果 ./:が mktexlsrで作ったものには入っているだけでした。
ホームディレクトリでmktexlsrをするということは、
/usr/local//texlive/texmf-local/
/usr/local//texlive/2017/texmf-var/
/usr/local//texlive/2017/texmf-dist/
/usr/local//texlive/2017/texmf-config/
のそれぞれに移ってls -Rをするのと同じことだと
いうことですね。

ちなみに、diffはこういう比較の場合どうちがうんですか?教えていただければ
助かります。上の例のところでkpsewhichの入ったところを変更しても
エラーが出た。たとえば
diff <"ls-R"| sed 's/:/\n/g' <"/Users/名前/Desktop/ls-R2"| sed -e 's/[!{}]//g' -e 's/,/\n/g'
0977名無しさん@お腹いっぱい。垢版2018/03/20(火) 15:39:32.62
>>975
まず
$ diff <(command line A) <(command line B)
というのはプロセス置換というBash代表に一部のシェルにしか備わってない機能だ。
貴兄がどんなOSを使ってるか知らんが、ATXとかなら使えない。

ていうかディレクトリ構造を見るに OS X High Sierra っぽいな。なら bash が規定で使える筈なので、エラーになるのはおかしいな。
0979名無しさん@お腹いっぱい。垢版2018/03/20(火) 18:17:50.14
ん?
/usr/local/texlive/2017/texmf-dist/ls-R と /Users/name/Desktop/ls-R2 を比較したいなら素直に
$ diff /usr/local/texlive/2017/texmf-dist/ls-R /Users/name/Desktop/ls-R2
じゃダメなん?
0980名無しさん@お腹いっぱい。垢版2018/03/20(火) 19:08:34.82
>>979
diff "/usr/local/texlive/2017/texmf-dist/ls-R" "/Users/なまえ/Desktop/ls-R2" > /Users/なまえ/Desktop/hikaku2で出てきた/hikaku2には
1,2d0
< % ls-R -- filename database for kpathsea; do not change this line.
< ./:
43423a43422
> man
47495d47493
< .dict.pws
143681d143678
<
183156d183152
< .tex
と書かれてありました。これは比較に思えないけど、比較なんですか?
0981名無しさん@お腹いっぱい。垢版2018/03/20(火) 19:48:20.33
>>980
>これは比較に思えないけど、比較なんですか?
そうです。しかし、
unified形式がいいなら、diffの代わりに diff -u にする。
context形式がいいなら、diffの代わりに diff -cにする。
0984名無しさん@お腹いっぱい。垢版2018/03/21(水) 10:56:05.46
TeXのコンパイルにMakefileを活用し始めたけどかなり良いね。
latexmkとかよりも柔軟だし、なによりmakeが一般のプログラム言語にも使われているから情報が多い。
0985名無しさん@お腹いっぱい。垢版2018/03/21(水) 12:49:53.00
latexmkならlatexmk -pvc directorynamae.tex
でタイプセットすればあとはそのdirectoryname.texをエディターで開いて、
かってに修正して保存するたびに、pdf(Skim使ってる)の画面が新しく
なってどう修正されたかわかるんですか、そういう便利なことを
Makefileを使ってもできますか?
それから
なにとぞ、なにかのページのURLかやりかたを、書いていただけないでしょうか?
0986名無しさん@お腹いっぱい。垢版2018/03/21(水) 16:53:08.35
>>985
>>984 じゃないけど、
latexmk は便利で、make は自由だから、自由さが欲しければ、make を選んでも不思議ではない。
たとえば、発表用スライド、著作権を加味したインターネット公開用スライド、
配布用articleと3種類のコンパイルを使い分けたい場合、
make pres
make publ
make hand
と自由に分けて、同じソースから異なるものがコンパイルできたら便利じゃないか。
makefileには、sedやawkはもちろん、latexmkすら書くことができるから、
自由に何でもできる。

なお、Makefileの中に、
latexmk -pvc directorynamae.tex
と書けば、ご要望のことはできるよ。
0987984垢版2018/03/21(水) 20:02:21.58
>>986
984だが、
同じソースから異なるものをコンパイルするってどうやるんだ?
異なるコンパイルをしようと思ったらファイルに直接その旨を指定しないと
いけないと思うんだが。
それとも何かトリックがあるのかな。
0991986垢版2018/03/21(水) 20:53:09.60
>>987
> 異なるコンパイルをしようと思ったらファイルに直接その旨を指定しないと
Makefileの中で、platexの前に、sedでソースを書き換えてる行を1行入れれば良いだけ。
例えば、
\documentsclass{beamer}

\documentclass[handout]{beamer}
に書き換えるとかなら、
hoge: $(src)
sed -e ’s/\documentsclass{beamer}/\documentclass[handout]{beamer}/‘ $(src) > $(hoge_src)
platex $(hoge_src)
dvipdfmx -V 4 $(basename $(hoge_src))
-rm $(hoge_src)
で、
make hoge
とする。
0992名無しさん@お腹いっぱい。垢版2018/03/21(水) 20:53:53.54
$ cat ./file.ltx | lualatex --jobname=file
↑こんなことして意味あんのか知らんが。
結局「file」という名前を指定する必要があるし、出力はファイル。
0993名無しさん@お腹いっぱい。垢版2018/03/21(水) 21:11:10.55
991でsed通す所中間ファイル作らずにすむとか

cat head. list1.tex foot.tex | latex > list1.dvi
cat head. list2.tex foot.tex | latex > list2.dvi

とか
0994名無しさん@お腹いっぱい。垢版2018/03/21(水) 21:13:53.34
>>992
それだとそうだけど、
fileをテンポラリファイルにして、
全体として標準入出力するラッパーを書けば良いのでは。
T=$(mktemp)
cat > $T
lualatex --jobname=$T
cat $T.pdf
rm $T $T.aux $T.toc $T.log $T.pdf
こんな感じに
0998987垢版2018/03/21(水) 21:30:59.11
>>991
>>992
これ見て思い付いたが
FNAME=hoge
SRC=$(FNAME).tex
とでもしておいて
other: $(SRC)
  cat $(SRC) | sed -e 's/AAA/BBB/g' | platex --jobname=$(FNAME)
とやると一次ファイルを作らずにすむな
$ make other

↑これ、TeX系列だとなんかありもしないファイルを読みこもうとして失敗する。
LaTeX系列だと行ける。TeXとLaTeXでjobnameオプションの処理が違うのかな?
ちょっとその辺分からんが、とりあえずLaTeXしか使わんし、満足だ。
0999名無しさん@お腹いっぱい。垢版2018/03/21(水) 22:06:58.23
>>997
派生的なファイルをいくつも作るし、\inputとかもあるし、パイプラインとは親和性低い。
そもそもUNIXとは関係ないOSで開発されたし。
1000名無しさん@お腹いっぱい。垢版2018/03/21(水) 22:19:00.16
>>999
\inputこそcatにつないでもらうって言う設計ポリシーもありえたんじゃ
auxとかは、標準入力のときはベースネームをstdに決め打ちにするとか手はある
10011001垢版Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1190日 20時間 28分 47秒
10021002垢版Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況