Re: ハイフネーション「記号」の出力抑制について

名前: 本田
日時: 2001-11-27 10:32:26
IPアドレス: 202.224.196.*

>>3972 今度は私的にスッキリしなかったので こんな風にしてみました. パッケージ風にはまとめていません インターフェースは \ChangeHyphenFamily{encoding}{family}{number} というマクロで encodingにはOT1のようなエンコーディング名 familyにはcmrのようなファミリー名 numberにはハイフンの記号にした文字のコード を指定します. \try@load@fontshapeをフックしているので fdファイルを読み込んだ直後に そのfdファイルで宣言されるファミリの ハイフン用の文字を書き換えます したがって,fdファイルを読み込まないものには 影響しません.例外はOT1/cmrです これだけは強制的にot1cmr.fdを読み込ませることで ハイフン用文字を変更可能にしてあります. %%%%changehyphen.sty \def\try@load@fontshape{% \expandafter \ifx\csname \f@encoding+\f@family\endcsname\relax \@font@info{Try loading font information for \f@encoding+\f@family}% \global\expandafter\let \csname\f@encoding+\f@family\endcsname\@empty \nfss@catcodes \let\nfss@catcodes\relax \edef\reserved@a{% \lowercase{% \noexpand\InputIfFileExists{\f@encoding\f@family.fd}}}% \reserved@a\relax {\@input@{\f@encoding\f@family.fd}}% \nfss@catcodes \extract@ChangeHyphenFamily@csv \fi} \let\ChangeHyphenFamily@csv\relax \def\ChangeHyphenFamily#1#2#3{% \expandafter\let\csname #1+#2\endcsname\relax \if\ChangeHyphenFamily@csv\relax \edef\ChangeHyphenFamily@csv{#1-#2=#3} \else \edef\ChangeHyphenFamily@csv{\ChangeHyphenFamily@csv,#1-#2=#3} \fi } \def\get@enc@fam@num#1-#2=#3\@end{% \edef\ChangeHyphen@enc{\expandafter\string\csname #1\endcsname}% \edef\ChangeHyphen@fam{\expandafter\string\csname #2\endcsname}% \edef\ChangeHyphen@num{#3}% } \def\extract@ChangeHyphenFamily@csv{% \ifx\ChangeHyphenFamily@csv\relax\else% \@for\@templist:=\ChangeHyphenFamily@csv\do{% \expandafter\get@enc@fam@num\@templist\@end \edef\temp@a{\f@encoding} \ifx\temp@a\ChangeHyphen@enc \edef\temp@a{\f@family}\ifx\temp@a\ChangeHyphen@fam \expandafter\xdef \csname\ChangeHyphen@enc+\ChangeHyphen@fam\endcsname{% \noexpand\hyphenchar\noexpand\font\noexpand=\ChangeHyphen@num\relax} \fi\fi% }\fi} \expandafter\let\csname OT1+cmr\endcsname\relax \expandafter\let\csname OT1/cmr/m/n/10\endcsname\relax \@onlypreamble\ChangeHyphenFamily \endinput %%%%%サンプル \documentclass{article} \usepackage{changehyphen} \ChangeHyphenFamily{OT1}{cmr}{128}%%%cmrのハイフン記号を消す \ChangeHyphenFamily{OT1}{ptm}{65}%%%Timesのハイフン記号をAに(^^; \textwidth20pt \begin{document} This is test of changing hyphenation character. This is test of changing hyphenation character. This is test of changing hyphenation character. This is test of changing hyphenation character. This is test of changing hyphenation character. \clearpage \usefont{OT1}{ptm}{m}{n} This is test of changing hyphenation character. This is test of changing hyphenation character. This is test of changing hyphenation character. This is test of changing hyphenation character. This is test of changing hyphenation character. \end{document}

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)