トップページunix
983コメント344KB

\chapter{\TeX} % 第八章

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2011/12/12(月) 00:06:19.52
過去スレッド
第一章 http://pc.2ch.net/test/read.cgi/unix/977144071/
    http://pc.2ch.net/unix/kako/977/977144071.html
第二章 http://pc.2ch.net/test/read.cgi/unix/1033564798/ (984レス)
第三章 http://pc8.2ch.net/test/read.cgi/unix/1059616013/ (996レス)
第四章 http://pc8.2ch.net/test/read.cgi/unix/1116389650/
第五章 http://pc11.2ch.net/test/read.cgi/unix/1153569474/
第六章 http://pc12.2ch.net/test/read.cgi/unix/1193135030/
第七章 http://hibari.2ch.net/test/read.cgi/unix/1268927301/
0796名無しさん@お腹いっぱい。2013/02/26(火) 21:55:45.58
>>795
好きに定義するんなら \@oddfoot と \@evenfoot でしょ。

プリアンブル(\begin{document}より前)に
\makeatletter
\def\@oddfoot{********}
\def\@evenfoot{********}
\mekeatother
てな感じ。
ページ番号は \thepage
section名は \rightmark か \leftmark で。
他に位置あわせは \hfil とか \llap とか \rlap とか \hbox to \textwidth とか適宜使えばおk
0797名無しさん@お腹いっぱい。2013/02/27(水) 19:49:02.29
識者の方々に助言を請う。
\newcommandが、引数は9個まで!って怒ってくる。
引数を10個使いたいのだけど、打開策があれば助言を願いします。
0798名無しさん@お腹いっぱい。2013/02/27(水) 21:52:45.01
>>797
texwiki に行って、TeXのエラーメッセージというページで、
“You already have nine parameters”というところを見よ。
0799名無しさん@お腹いっぱい。2013/02/28(木) 10:09:08.63
>>798
おぉ、ありがとうございます。
自分では、入れ子か、keyval/xkeyvalを考えていたのですが、
定義の最後に、さらに引数を受け付ける別のマクロをくっつけるアイデアは秀逸です。
恐れ入りました。
0800名無しさん@お腹いっぱい。2013/02/28(木) 11:03:10.43
というか何をどうすると引数が10個もいるようなコマンドが必要になるのか…
0801名無しさん@お腹いっぱい。2013/02/28(木) 12:42:48.57
>>800
差し込み印刷なんです。
例えば、学校の通知表をイメージしてもらえれば、だいたい合っています。

1頁分(1人分)のテンプレマクロ\templateを作成して、
csvから、「A,B,C,D,E」を「\template{A}{B}{C}{D}{E}」に変換してtexファイルに流し込む感じで作成していました。
これまで、差込箇所が9箇所(9項目)以内だったので問題なく機能していたのですが、
今回、項目が増えてしまってちょっと面倒になった感じです。
通知票で言えば、英数国理社から、
英数国理社技術音楽美術保健情報その他に増えた感じをイメージしてもらえればよいかと。
0802名無しさん@お腹いっぱい。2013/03/01(金) 19:48:48.41
>801
なるほど、納得しました。
自分だと
>csvから、「A,B,C,D,E」を「\template{A}{B}{C}{D}{E}」に変換
するほうをごちゃごちゃと作り込んでしまいそう。
引数を増やすのを考えた方が、見通しは良さそうですね。
0803名無しさん@お腹いっぱい。2013/03/01(金) 20:28:46.82
俺もマクロで展開せず、コンバータで直接csv→latex変換するかな。
まあlatexで遊ぶのも楽しいけど。
0804名無しさん@お腹いっぱい。2013/03/05(火) 19:38:00.10
texlive に lisp-on-tex が入ったね!
面白い!
08058042013/03/06(水) 04:01:22.39
orz

tlmgr: saving backups to /usr/local/texlive/2012/tlpkg/backups
[1/1] auto-remove: lisp-on-tex ... done
tlmgr: no updates available
0806名無しさん@お腹いっぱい。2013/03/06(水) 21:24:44.51
section subsectionで目次をつくると
1 AAA
   1.1 aaaaa
   1.2 bbbbb
   1.3 ccccc

2 BBB
   2.1 ddddd
   2.2 eeeee
   2.3 fffff

のようになりますが、これを

1 AAA
   1 aaaaa
   2 bbbbb
   3 ccccc

2 BBB
   1 ddddd
   2 eeeee
   3 fffff

のようにする方法を教えてください。
0807名無しさん@お腹いっぱい。2013/03/06(水) 22:46:19.68
\renewcommand{\thesubsection}{\arabic{subsection}}

参考までに。
ttp://tex.stackexchange.com/questions/37189/number-subsections-and-subsubsections-but-not-sections
0808名無しさん@お腹いっぱい。2013/03/07(木) 12:26:30.99
数式中にSDAという3文字を入れようと思っています。
standardized daily averageの略です。普通に書くと,SとDとAの掛け算と
認識されてしまうのですが,これを避けるために皆さんどうやってますか?

色々方法はありそうなんですが。
0809名無しさん@お腹いっぱい。2013/03/07(木) 14:27:43.94
¥textbf{SDA}
¥mathbf{SDA}
¥mathrm{SDA}
0810名無しさん@お腹いっぱい。2013/03/07(木) 19:02:00.08
>>808
"SDA" "standardized daily average"でググってもヒットせず。
こんな略語使われてるの?

まあ、でも略語なんだから"S.D.A."でいいのでは?
数式中なら
$...\hbox{S.D.A.}...$
0811名無しさん@お腹いっぱい。2013/03/07(木) 19:08:58.51
>>809
なんで¥なんか使うの
0812名無しさん@お腹いっぱい。2013/03/07(木) 19:25:30.69
ブラウザが¥に書き換えちゃうみたいorz
0813名無しさん@お腹いっぱい。2013/03/07(木) 23:56:55.27
>>807
感謝 m(_ _)m うまく行きました。
0814名無しさん@お腹いっぱい。2013/03/08(金) 13:09:48.89
>>805
tlmgr update --reinstall-forcibly-removed --all
したら、再びインストールされた。

これってどういう動作なのかな??
0815名無しさん@お腹いっぱい。2013/03/08(金) 18:01:23.24
>>809--812
ありがとうございました。
0816名無しさん@お腹いっぱい。2013/03/09(土) 09:40:52.07
\documentclass{book}
にて
\section[short title]{long title}
とする場合、目次に表示されるのはディフォルトではshort titleになってしまいますが、
目次にlong titleの方を表示するにはどうすればいいのでしょうか?
\pagestyle{myheadings}だとノンブルが上に来てしまって不適当で、fancyも
試したのですが、同様の問題が生じます。(特に、chapterとsectionの両方をこの方法で
処理した場合)
もっとシンプルに、\chapter[shorttitle]{long title}および\section[shorttitle]{long title}
でlong titleの方を目次に出す方法があれば、と思い質問する次第です。
よろしくお願いします。
0817名無しさん@お腹いっぱい。2013/03/11(月) 05:56:29.15
>>801
中途半端にCSVから変換するくらいならいっそループ使うとか。

\makeatletter
\def\templete#1,#2;{%
\def\@tempa{#1}%
\@for\iter:=#2\do{%
\edef\@tempa{\@tempa&\iter}%
}%
\@tempa\\\hline
}
\makeatother

\begin{document}

\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|}
\hline
名前 & 英 & 数 & 国 & 理 & 社 & 技術 & 音楽 & 美術 & 保体 & 情報 & その他 \\
\hline
\templete name1,A,B,C,D,E,F,G,H,I,J,K ;
\templete name2,B,C,D,E,F,G,H,I,J,K,A ;
\templete name3,C,D,E,F,G,H,I,J,K,A,B ;
\end{tabular}

\end{document}
0818名無しさん@お腹いっぱい。2013/03/11(月) 13:46:21.45
全体のページ数が1ページの時はページ番号なしで、
2ページ以上の場合は1ページ目からベージ番号をふるようにしたいのですが、
なにか方法はあるのでしょうか?
0819名無しさん@お腹いっぱい。2013/03/11(月) 15:08:29.55
>>818
「もし最終ページ番号が2以上だったら、
次のtypeset時\pagestyle{empty}を仕込む」
ようにするだけじゃないでしょうか?
0820名無しさん@お腹いっぱい。2013/03/11(月) 19:09:07.97
>>816
印刷直前の段階であれば、プリアンブルに\nofilesコマンドを入れた上で
tocファイルに直接手を加えるとか...?
0821名無しさん@お腹いっぱい。2013/03/11(月) 20:48:18.27
下記のURLで自己解決しました。お騒がせしました。
ttp://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/7231.html
0822名無しさん@お腹いっぱい。2013/03/12(火) 00:11:01.40
社会の「一問一答」みたく、問題と答えを(横に)並列したいんだが、
いい案あるだろうか

こんな感じ。
http://uproda.2ch-library.com/644143tmP/lib644143.pdf

対訳系のパッケージでうまくいくんだろうか。enumerateだと
場所あわせが..
0823名無しさん@お腹いっぱい。2013/03/12(火) 03:19:18.97
対訳 latexでググると出てくるパッケージはだめ?
0824名無しさん@お腹いっぱい。2013/03/12(火) 20:17:45.18
>>819
>>「もし最終ページ番号が2以上だったら、
正しくは、「もし最終ページ番号が1だったら、」ということだろうけど、
これを文字通りやるのはやっかいなんじゃないかな。
## ページが\shipoutされる時点では、
## それが最後のページなのか、
## 残りがまだあるのかはわからないから

本文の最後に\label{hoge}を仕込んで、
本文の最初で\ifnum \pageref=1 \pagestyle{empty}\fi
てな感じが普通かな。

で、昔自分で作ったやつを発掘したらこんなだった。
\AtEndDocument{\ifnum\value{page}=1 \def\thepage{}\fi}

強引だね。
0825名無しさん@お腹いっぱい。2013/04/01(月) 05:52:09.93
>>818
ifthenパッケージの出番ですね。
0826名無しさん@お腹いっぱい。2013/04/01(月) 16:08:57.09
CTAN: lastpage (since 1994-06-17, current update 2013-01-28)
を誰も書いてないよ。実装自体は>>824を拡張した感じのものだけど。
0827名無しさん@お腹いっぱい。2013/04/02(火) 07:02:27.74
http://texblog.net/latex-archive/general/news-articles/

Here are some news of the last months I posted there, in case you missed one:

TeX Live 2013 Release Plan, April 1
First Beta of XeTeX 0.9999? released, March 12
Texmaker 4.0 released, March 10
Topic Tags for the LaTeX Community Forum, March 1
Transplanting TeX Live from one Windows system to another one, February 27
A MikTeX update may remove amslatex / amsmath as obsolete - how to fix it, February 6
0828名無しさん@お腹いっぱい。2013/04/06(土) 22:12:01.35
http://www.micropress-inc.com/fonts/ifmath/ifmain.htm
みたいな、手書き風の数式フォントでフリーなのって無いかなあ。
0829名無しさん@お腹いっぱい。2013/04/08(月) 11:01:06.71
>>828
CTANのfree-math-font-survey
ttp://www.ctan.org/pkg/free-math-font-survey
をざっとみると、ないね。
一番近いのがComic Sansかな。
0830名無しさん@お腹いっぱい。2013/04/08(月) 11:36:34.98
>>829
Math Alphabet は手書き風になるけど記号類は手書き風に
ならないね。 > Comic Sans
>>828 のが安けりゃ買うんだけど、100ドルは高いw
0831名無しさん@お腹いっぱい。2013/04/08(月) 11:56:48.32
っていうか、手書き風なら、デザインのセンスもノウハウも何もいらないし、
みかちゃんフォントみたいに、手書き→スキャンを繰り返して、自作するのもアリでは?
0832名無しさん@お腹いっぱい。2013/04/08(月) 13:47:46.38
字が汚いんじゃない?
0833名無しさん@お腹いっぱい。2013/04/08(月) 13:54:43.17
俺の手書きは悲惨な事になるのでヤダ

Comic Sans 入れてみたが、有向線分とかの \overrightarrow が
残念な表示になってしまった。
(非手書きの矢印の長さを、手書きの横線を用いて伸ばそうとしてる)

これくらいなら代替を作れそうだが。
0834名無しさん@お腹いっぱい。2013/04/08(月) 13:55:22.07
数式が汚いから、TeXが生まれたのに、手書きの汚い数式に回帰するとは、
これいかに。
0835名無しさん@お腹いっぱい。2013/04/08(月) 14:03:34.13
板書風数式の需要があるというのは分からなくもない
0836名無しさん@お腹いっぱい。2013/04/08(月) 14:24:46.86
>>834
TeXが生まれたのは手書きの数式が汚いからじゃない
0837名無しさん@お腹いっぱい。2013/04/08(月) 14:27:06.26
Knuth は当時の「電子組版の汚なさ」に怒ってTeXを開発したんだよ。
計算機使ってるならもっと美しく組めるだろうと。

「字の美しい人が手で書いたもの」と「活字風だが汚ない組版」なら
前者の方が良かろう。そしてその前者を再び電子的に再現しようとして
いるので、俺の手書きでは話にならんw

まあ Comic Sans は、とても「美しい手書き」ではないなあ。
0838名無しさん@お腹いっぱい。2013/04/08(月) 15:29:54.64
「美しい手書き」という概念は、日本(+書道のある国)に固有のものでは。
欧米ではレポートや書類に記入するときに、
「typeしろ(=ブロック体で書く、またはタイプライタを使う)」とよく言われることがあるが、
これは手書きは汚くて読みにくいという共通認識があるからだろうし、
「美しい手書き」という概念はなかなか理解してもらえないような気がする。

ちなみに、Knuthの汚い活字風フォント
ttp://www.ctan.org/pkg/ransom
これってオリジナルは、同じ文字でもランダムに字形を変更させるものだったのだよね。
凄い。
0839名無しさん@お腹いっぱい。2013/04/08(月) 15:44:26.24
つ beutifull hand writing で画像検索
0840名無しさん@お腹いっぱい。2013/04/19(金) 23:48:48.23
platexとdvipdfmxでユニコードの使用領域の文字(例えばU+E000)を使った文章をpdfにしたいんですが、
どうやればできますか?
0841名無しさん@お腹いっぱい。2013/04/20(土) 04:12:10.53
>>840
texlive2013のplatexを使うじゃダメかね
0842名無しさん@お腹いっぱい。2013/04/20(土) 08:30:21.20
>>838
そのせいで、レポートや感想文は、
手書きにしろとか、未だに言われすしなw
アホな企業に就職しようと思えば、
根性精神で手書き履歴書とかだしw

小学生んとき、それがあまりに腹がたったんで、
自作400字詰め原稿用紙に、
新聞広告の文字を一つ一つ切り貼りして、
読書感想文を提出してやったことがあるぞ(笑
0843名無しさん@お腹いっぱい。2013/04/20(土) 13:47:26.72
小学生は字を書きましょう。
0844名無しさん@お腹いっぱい。2013/04/20(土) 14:13:44.74
コピペでレポートを書く学生を排除するために、
レポートは手書きのみとする、と言い張る教員は存在する。
0845名無しさん@お腹いっぱい。2013/04/20(土) 15:52:09.80
コピペは疑わしきを罰してる
0846名無しさん@お腹いっぱい。2013/04/20(土) 19:55:31.87
>>841
texlive2013だとU+E000-EFFFまで使えるんですか?
使えるならインストールしてみます
0847名無しさん@お腹いっぱい。2013/04/21(日) 08:33:57.54
>>846
http://www.unicode.org/roadmaps/smp/
にユニコード番号と対応する文字の一覧あり。
XeLaTeXをりようする。
0848名無しさん@お腹いっぱい。2013/04/21(日) 09:37:02.77
>>847
使用領域での使用なので、
ユニコードフォントに準じたfontを利用する。
0849名無しさん@お腹いっぱい。2013/04/21(日) 19:24:35.10
>>846です
2つ訂正しときます
× U+E000-EFFF  ,  使用領域
○ U+EOOO-F8FF  ,  私用領域

私用領域に容れた外字を扱いたいのです
http://www.unicode.org/roadmaps/bmp/ で言うところのPrivate Use Zoneです)

その外字を入れたフォントを埋込むことは出来るので(但し内字)、
あとは私用領域が扱えればいいだけなのですが、
取敢えず、XeLaTeXとtex liveなら可能ってことでokですか?
0850名無しさん@お腹いっぱい。2013/04/22(月) 00:55:46.81
QA: TeXshopでbibTeXがうまく動かなくなりました
全く問題なく、TeXmaker が動くけどな。
※イケメン(ry
0851名無しさん@お腹いっぱい。2013/04/22(月) 16:38:48.06
>>849
最初からそう書いておけばおそらく回答は違ったものになっただろう
そして多分ここに書いても誰も答えられないだろう
0852sage2013/04/23(火) 10:45:50.20
>>849

できます。例えばその領域をカバーしている Linux Libertine
フォントを使って,以下を XeLaTeX で処理すれば Tux ペンギン
が出ます。

\documentclass[a4paper]{article}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\begin{document}
\char"E000
\end{document}

ユニコード(utf-8)が表示できて,インプットメソッド
も備えているテキストエディタ(例えば Emacs)を使えば
\char"E000 の代わりに当該文字を直接記すこともできます。
0853名無しさん@お腹いっぱい。2013/04/23(火) 21:29:21.89
>>852
ありがとうございます!!

ただひじょうにもうしわけないのですが…ここUNIX@2ch掲示板だったんですね…
実は私の環境はWindows7なんです…
windows用に説明しなおしていただけると非常にありがたいです…

あと、U+E000-U+F8FFまでだけはAというフォントを埋込む、それ以外はBというフォントを埋込む、
というようにしたいです
0854名無しさん@お腹いっぱい。2013/04/24(水) 07:32:20.98
http://oku.edu.mie-u.ac.jp/%7Eokumura/jsclasses/jsclasses-130423.zip
って、日付だけの変更じゃないの?
自宅からは
http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/index.html
に書き込めない。
0855名無しさん@お腹いっぱい。2013/04/24(水) 08:22:44.91
>>853
>>852の例はWindowsでも同じです。
utf-8でBOMなしで.tex保存。
コマンドライン(プロンプト)でxelate処理。
0856名無しさん@お腹いっぱい。2013/04/24(水) 08:26:16.13
\documentclass[a4paper]{article}
\usepackage{fontspec}
\setmainfont{B}
\begin{document}
普通のフォント(B)
\fontspec{A}
\char"E000
\end{document}
0857名無しさん@お腹いっぱい。2013/04/24(水) 12:23:40.05
↑Windows でC:\Windows\Fontsにあるものはフォント名で
..\texmf\fonts以下にあるものは(フォントの)ファイル名.ttfと
拡張子まで書かないと上手くいかないかも。
0858名無しさん@お腹いっぱい。2013/04/24(水) 14:18:48.76
>>857
ありがとうございます!

今やってみたところ、
\fontspec{msgothic.ttc}だと上手くいくのですが、
\fontspec{ipamjm_1.ttf}だとそういうフォントはないとfontspecエラーが出ます…
0859名無しさん@お腹いっぱい。2013/04/24(水) 17:35:01.97
フォントを右クリック、プロパティ選ぶ。
全般のタグでファイル名、詳細のタグでフォント名
が判ります。jpamjm.ttfではないですか。
0860名無しさん@お腹いっぱい。2013/04/24(水) 17:55:06.62
jpamjm.ttf×
ipamjm.ttf○
どこにそのフォントを置いてますか。
\font\confのfont.confを開いて
そのフォントのあるフォルダのデレィクトリを書き足す必要があるかも。
そのあとコマンドラインで
fc-cache -v -f
0861菜穂子2013/04/24(水) 19:58:17.95
>>854
この件は解決しました。どうもお騒がせしました。%26#128103;
0862名無しさん@お腹いっぱい。2013/04/24(水) 20:57:59.58
>>860
なんどもすみません

ipamjm.ttfでした
フォント名解決しましたが、
http://d.hatena.ne.jp/zrbabbler/20120625/1340630649
にあるように
** WARNING ** TrueTypes post table name index 32768 > 32767
というような警告が出てpdfが生成されませんでした

あと、\char"E000で入れても、そのままU+EOOOを打ち込んでも(UTF-8なtexファイル)、
pdfでは􀀀(U+10000)が出力されてしまいます(U+E001などでも同じ)
0863名無しさん@お腹いっぱい。2013/04/24(水) 21:15:00.63
>>846です
私のやりたいことを詳しく書きます

・texでpdfを作る、環境はtexlive2012、windws7
・縦書、振り仮名を使う
・aj1-14235など、CIDで表される字形をフォント埋込で使用する(platexならusepackage{otf}で可能)
・私用領域(PUA)の文字を本文と異なるフォントを埋込で使用する
・上のフォントはEUDC_0.TTEというxpから取ってきた外字だけのフォントを使いたいが、外字部分をコピーしたMS明朝等を使用しても好い

以上のことがやりたいのですが、さてどうしたらよいでしょうか
ここ→http://d.hatena.ne.jp/zrbabbler/20130420/1366451325のやり方をやってみましたが、
「縦書出来ない」「PUAとそれ以外の\UTF{}がどっちも同じフォントになってしまう」
の2点で要件を満たせません…
0864名無しさん@お腹いっぱい。2013/04/24(水) 23:06:39.52
Windows環境依存の問題なら
http://toro.2ch.net/test/read.cgi/win/1177814801/
こっちで聞いたらいいと思う。どれだけ相手にしてもらえるか知らんが。
0865名無しさん@お腹いっぱい。2013/04/25(木) 07:49:36.48
>>862
ipamjm.ttfにはe000に文字が割り当てられていない。
BabelMapで確認されては。
Linux Libertine Oではペンギン。
他のフォントでは別のもの。
0866名無しさん@お腹いっぱい。2013/04/25(木) 07:51:42.33
>>862
> ** WARNING ** TrueTypes post table name index 32768 > 32767
> というような警告が出てpdfが生成されませんでした

http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=917
0867名無しさん@お腹いっぱい。2013/04/25(木) 08:01:43.07
http://www2.tba.t-com.ne.jp/ing/
の”XeLaTeXと世界の文字”(pdf)の
89ページにXeCJKと\zhspacingを使っての縦書きの例があるが
文書全体に適応するのはシンドイかな。
0868名無しさん@お腹いっぱい。2013/04/25(木) 18:15:14.36
http://oku.edu.mie-u.ac.jp/tex/
TeXフォーラムの方で尋ねる?
>上のフォントはEUDC_0.TTE
Windowsに依存しすぎ。
0869名無しさん@お腹いっぱい。2013/04/26(金) 18:25:05.59
http://nox-insomniae.ddo.jp/insomnia/2012/07/ipamj-mincho-font.html
ipamjmを使った例、tarticleで縦書きできる。
0870名無しさん@お腹いっぱい。2013/05/12(日) 19:19:10.25
改行を許す箱ってありますか?
幅を指定しない \parbox が欲しいのですが。
0871名無しさん@お腹いっぱい。2013/05/12(日) 19:37:51.49
>>870
幅を指定しなければ、いつ改行させるの?
0872名無しさん@お腹いっぱい。2013/05/13(月) 01:30:37.91
>>871
明示的に改行を指定したときですね。数式中で使うことを想定していています。
(arrayは自動で空白を入れてしまうのであまり使いたくない。)

「最大の幅」を指定する、でも良いですけど。\parboxは中身が幅に達しなくてもその幅の箱を作っちゃうので。
0873名無しさん@お腹いっぱい。2013/05/13(月) 04:01:54.95
standaloneパッケージを platex から使いたい。

図のファイル (zu.texとする)を standalone.cls で作成し、zu.pdf を生成する
ことはできる。次にそうして作った図のファイル( zu.pdf )を、メインのファイル
(main.texとする) にインクルードするのに失敗する。

具体的には main.tex で \usepackage{standalone} しておき
\includestandalone[extension=.pdf]{zu}
とやるのだが、ここで pdftex のプリミティブ \pdffilemoddate を要求される。
ファイルの mtime を調べるもののようだ。

で、とりあえず
\providecommand{\pdffilemoddate}[1]{D:20130513023108+09'00'}
などと適当な time string を返すようにしてみれば、あとはエラーにならない。
なーんだ、\pdffilemoddate たった1つのせいで使えないのか。

というわけで、誰か \pdffilemoddate をエミュレートしてくれない?
08748732013/05/13(月) 06:21:00.89
とりあえず \write18 使って -shell-escape で無理矢理実装してみたが
あまりにもポータビリティに欠けるw

ptexで \write18 使わずにファイルの mtime を読んだりって出来ないの??
08758732013/05/13(月) 06:32:45.73
× -shell-escape で無理矢理実装
◎ -shell-escape で動かすよう、無理矢理実装
08768702013/05/13(月) 09:06:31.44
最大幅を指定するvarwidthというのがあるんですね。
http://www.ctan.org/tex-archive/macros/latex/contrib/varwidth
0877名無しさん@お腹いっぱい。2013/05/13(月) 10:40:32.45
>>871
今でしょ
0878名無しさん@お腹いっぱい。2013/05/13(月) 14:15:27.43
>>874
ちなみにこんなの

\providecommand{\pdffilemoddate}[1]{%
\immediate\write18{stat --format=\%y #1 | cut -d. -f1 | tr -d [:blank:]:- > #1.mod.date.x}%
D:\input{#1.mod.date.x}+09'00'%
\immediate\write18{rm #1.mod.date.x}}

ひでぇ
0879名無しさん@お腹いっぱい。2013/05/13(月) 15:37:29.76
>>877
遅いよ
0880名無しさん@お腹いっぱい。2013/05/13(月) 16:58:24.78
>>878
プリミティブとは展開に要する回数が違うので、
\usepackage[mode=…]{standalone} のオプションによってはうまく動かない。
0881名無しさん@お腹いっぱい。2013/05/14(火) 19:15:27.61
>>873 >>878 >>890
うーん、結局うまく行かなかった。

このpdftexのプリミティブを利用するのは、zu.tex と zu.pdf の新旧を
比較して zu.tex が新しければ zu.pdf を新たに生成するという機能。
(なので、どっちにせよ図の生成で -shell-escape は使うことになる)

これは main.tex で \usepackage[mode=buildnew]{standalone} とか
\includestandalone[mode=buildnew]{zu} とかのオプションで必要になる。

この機能さえ使わなければ、\pdffilemoddate は単なる fake でよく、
うざいエラーが出ないようにしておくだけでよい。
0882名無しさん@お腹いっぱい。2013/05/14(火) 19:21:06.73
\pdffilemoddate には pdf という接頭文字列があるけれど、これは
「pdftexで始めて実装しました」というだけの意味。ファイルのmtimeを
調べるだけのプリミティブで、PDFの仕様とは無関係。

こういうプリミティブは、ptex にも追加して欲しいなあ。
0883standalone.sty を ptex で使おう2013/05/15(水) 21:09:03.48
\pdffilemoddate のエミュレートには失敗したが、これを使って
ファイルの新旧を判断する \filemodCmp ( filemod-expmin.sty にある )
のエミュレートに成功した。これで mode=buildnew オプションが使えるぞ。


\renewcommand*\filemodCmp[2]
{%
\immediate\write18{ if [ #1 -ot #2 ] ;then touch ./#2_is_newer ; else touch ./#1_is_newer_or_same; fi }%
\IfFileExists{./#2_is_newer}{%
\immediate\write18{ rm -f ./#2_is_newer }\expandafter\@secondoftwo%
}{%
\immediate\write18{ rm -f ./#1_is_newer_or_same}\expandafter\@firstoftwo%
}
}
0884名無しさん@お腹いっぱい。2013/05/17(金) 02:19:00.24
ものすごく素朴な質問なんだけど
make でやるという選択肢はNGなのか…?
0885名無しさん@お腹いっぱい。2013/05/17(金) 07:46:52.87
何を
0886名無しさん@お腹いっぱい。2013/05/17(金) 08:56:05.79
>>884
standalone.sty / standalone.cls の話へのレスかい?
画像ファイル1つ1つを独立した (単独でタイプセット可能な) texファイル
で作成し、メインの文書ファイルで画像ファイル読み込むにあたり

(a) 画像の tex ソースを (preambleなどを飛して) 読み込む。
(b) 出来上がった PDF を読み込む。
(c) PDFをビルドしてから出来上がった PDF を読み込む。
(d) 画像の tex ソース と PDFの新旧を比較して、必要に応じて再ビルドして読み込む。

というのをオプションで切り替える(グローバルにも画像ファイルごとにも)と
いうような事を make で出来るかな。(d)だけならmakeに頼ることもできるけど、
他のとの切り替えをファイルごとにやろうとすると makefile が複雑になるし、
そんなの 文書ファイルでコントロールしたいじゃん。
0887名無しさん@お腹いっぱい。2013/05/17(金) 09:36:47.07
pdftex のプリミティブを使ってるおかげで ptex では使えない
パッケージに、しばしば遭遇する。ガラパゴス状態を痛感するな。
pict2e でもそういうことが起きた(現在は修正されてるみたい)。

日本語TeX環境で luatex か xetex に全面移行した人は居る?
まだまだ冒険だと思うけど。
0888名無しさん@お腹いっぱい。2013/05/17(金) 11:16:23.24
>>887
luatexに移行したよ。
といっても問題になりそうなパッケージ使ってないけど。
0889名無しさん@お腹いっぱい。2013/05/18(土) 00:01:54.01
どっちに行っても使えないパッケージがそこそこあるようだなあ。
ウチの古いマシンには luatex は重いので、もうちょっとptexで
頑張ってみるか。>>883 みたいな対処もそれなりに楽しいし。
0890名無しさん@お腹いっぱい。2013/05/18(土) 00:49:21.36
ああでも lua スクリプトでいじり放題、というのも魅力的だなあ。
0891standalone.sty を ptex で使おう2013/05/19(日) 17:17:47.80
とりあえず >>886 に掲げた (a)〜(d) は全て正常に使えるようになった。
ポイントは

[1]
graphicx などに渡すドライバオプション dvipdfmx は一番最初に
\documentclass[dvipdfmx]{article} のようにグローバルに宣言する。
そうでないと >>884 の(a) が dvi → pdf の段階で失敗する。

[2]
standalone.sty を読み込む前に
\providecommand*{\pdf@filemoddate}[1]{D:00000000000000Z} % fake!
\RequirePackage{filemod-expmin}
しておき、更に >>883 の \filemodCmp の再定義をする。>>883 にある
./#2_is_newer などの ./ は余計なので削除した方がいい。あと -shell-escape
を付けなくて失敗した時のエラー処理もした方がいい。

[3]
standalone.sty を読み込んだ後に、画像のビルド/リビルドを dvipdfmx で
実行するための設定をする。

\def\sa@graphicext{.pdf}
\def\sa@build@postcommand{dvipdfmx '\file.dvi'}
\def\sa@build@latex{platex}

これは本当なら上のような @ を含んだコマンドでやるべきではなく
\usepackage{standalone.sty} のオプションで設定可能と記述されて
いるのだけど、何だかうまく行かない。
0892名無しさん@お腹いっぱい。2013/05/26(日) 17:46:17.59
> TeXのバグとかいうまえに

バグでしたwwww
0893名無しさん@お腹いっぱい。2013/05/26(日) 18:42:44.26
向こうに書いて来いよw
0894名無しさん@お腹いっぱい。2013/05/26(日) 19:15:45.46
小切手欲しい
0895名無しさん@お腹いっぱい。2013/05/27(月) 22:18:07.01
10年近く前、TeX Q&Aでよく質問していたけど
1つ質問すると3つも4つも説教食らうから
質問という行為そのものが面倒臭くなった。
こんなに説教される掲示板は他に知らんわ。
■ このスレッドは過去ログ倉庫に格納されています