pTeXへの提案もどき

pTeXへの提案もどき

- 奥村 晴彦 の投稿
返信数: 7
その1: \ybaselineshiftの仕様変更

和文と欧文のベースラインを調節するための\ybaselineshiftを使っても数式部分のベースラインが変わらない。数式も欧文なみと見て移動したい。

例:

\ybaselineshift=0.12zw
第5章第$n=5$節

その2: 段落の頭での引用符の挙動の改善

デフォルトのpTeXでは引用符で始まる段落の頭が\parindent+0.5zw下がりになる。jsarticle,jsbookでは\everyparを使ったハックで補正しているが,pTeX本体に段落頭のJFMグルーをなくすスイッチを付けられないか。

例:以下の文章をjarticleとjsarticleでタイプセットして比較

「ではみなさんは、そういうふうに川だと言われたり、乳の流れたあとだと言われたりしていた、このぼんやりと白いものがほんとうは何かご承知ですか」先生は、黒板につるした大きな黒い星座の図の、上から下へ白くけぶった銀河帯のようなところを指しながら、みんなに問いをかけました。

カムパネルラが手をあげました。それから四、五人手をあげました。ジョバンニも手をあげようとして、急いでそのままやめました。たしかにあれがみんな星だと、いつか雑誌で読んだのでしたが、このごろはジョバンニはまるで毎日教室でもねむく、本を読むひまも読む本もないので、なんだかどんなこともよくわからないという気持ちがするのでした。

奥村 晴彦 への返信

Re: pTeXへの提案もどき

- 北川 弘典 の投稿
はじめまして,北川と申します.

>その1: \ybaselineshiftの仕様変更

pTeX-3.1.10に対するpatchを作ってみました.
\mathdisplacementstate=1で数式にも\tbaselineshift, \ybaselineshiftが適用されて,
=0ではpTeXの通常の挙動になると思います.
北川 弘典 への返信

Re: pTeXへの提案もどき

- 奥村 晴彦 の投稿
早速ありがとうございます!
実はさきほど角藤さんからもスイッチなしのパッチを送っていただいたところでした:

--- ptex-base.ch.orig Tue Jul 18 17:03:33 2006
+++ ptex-base.ch Fri Jan 04 17:45:47 2008
@@ -5757,7 +5757,8 @@
space_factor:=1000; unsave;
end
@y
-begin if direction=dir_tate then disp:=axis_height(text_size) else disp:=0;
+begin if direction=dir_tate then disp:=t_baseline_shift
+      else disp:=y_baseline_shift;
@<Append |disp_node| at begin of displace area@>;
tail_append(new_math(math_surround,before));
cur_mlist:=p; cur_style:=text_style; mlist_penalties:=(mode>0); mlist_to_hlist;

奥村 晴彦 への返信

Re: pTeXへの提案もどき

- Dosanko 道産子 の投稿
こんにちは,道産子です.

Vine Linux 4.1 上で ptetex を使用しています.上の2つのパッチを適用するには ptetex をコンパイルし直さなければならないのでしょうか.
パッチの適用の仕方を教えて頂けますでしょうか.

宜しくお願い致します.

--
道産子
Dosanko 道産子 への返信

Re: pTeXへの提案もどき

- 土 村 の投稿
ptetex3でパッチを適用するには、再コンパイルが必要です。
通常の make で行われる作業を、2つに分割して実行し、
その間でパッチ当てを行います。具体的には

make distclean check x

としてアーカイブを展開して、
/var/tmp/ptetex3/tetex-src-3.0/texk/web2c/ptex
あたりのファイルにパッチを当てます。この後、

make c macro fonty test

と進みます。
# make のターゲットについては次のページを参照下さい。
# http://tutimura.ath.cx/ptetex/?make%A4%CE%A5%BF%A1%BC%A5%B2%A5%C3%A5%C8

以上は手動での対応ですが、自動化するならば、
2extract-src.sh を書き直す手もあります。
この場合は MD5 のチェックをごまかす必要があるかもしれません。
それにはエラーの出るファイルに対応する行を
md5sum/texsrc.* あたりから抹消するのが簡単です。
# MD5 をごまかすのは自己責任でお願いします。
土 村 への返信

Re: pTeXへの提案もどき

- Dosanko 道産子 の投稿
こんにちは,道産子です.ご回答ありがとうございます.

ptetex3-20080107 に北川様が作成されたパッチを適用してみました:

$ make distclean check x
$ cd /var/tmp/ptetex3/tetex-src-3.0/texk/web2c/ptex/
$ patch -p2 < /hoge/ptex-hack-1.diff
$ make c macro fonty test

コンパイルは成功し,正常に動作していると思われますが,パッチ適用時に

$ patch -p2 < /hoge/ptex-hack-1.diff
missing header for unified diff at line 3 of patch
patching file ptex-base.ch
Hunk #1 succeeded at 1242 (offset -24 lines).
Hunk #3 succeeded at 5716 (offset -44 lines).
Hunk #4 succeeded at 7672 (offset -10 lines).

というメッセージが出ました.この1行目のメッセージは気にしなくても良いのでしょうか.

--
道産子
Dosanko 道産子 への返信

Re: pTeXへの提案もどき

- 北川 弘典 の投稿
北川です.

パッチを使っていただき,ありがとうございます.

>missing header for unified diff at line 3 of patch
結論からいうと,気にしなくていいみたいですが,
僕のpatchの作り方があまりよくなかったのが原因です.
すみませんでした.
header部だけ書き直したものを添付しますので,
これなら出ないと思います(-p0で適用してください)
北川 弘典 への返信

Re: pTeXへの提案もどき

- Dosanko 道産子 の投稿
北川 様

こんにちは,道産子です.

修正して頂いたパッチでエラーメッセージは出なくなりました.

ありがとうございました.

--
道産子