名前: Th\'or 日時: 2006-02-07 05:54:21 IPアドレス: 210.225.229.*
>>41212 色々とやり方はあると思いますが、理解しやすいのは次のような方法でしょうか。 \documentclass{jarticle} \makeatletter % redefined `\usepackage' command \let \orig@usepackage = \usepackage \def \usepackage {\@ifnextchar[{\new@usepackage}{\new@usepackage[]}} \def \new@usepackage[#1]#2{% \expandafter \edef \csname opt@#2\endcsname{#1}% \orig@usepackage[#1]{#2}% } \makeatother \usepackage[usenames,dvipsnames]{color} \usepackage[dvipdfm]{graphicx} \usepackage[pagebackref,pdfpagemode=none,colorlinks,pdfmenubar=false,% pdftoolbar=false,pdffitwindow=true,pdfcenterwindow=true,% pdfwindowui=false,menucolor=menucolor,pdfview=Fit,% pdfstartview=Fit]{hyperref} \begin{document} \makeatletter % show package options \def \showPackageOptions#1{% \edef \tempcs {\@nameuse{opt@#1}}% #1:~\tempcs. } % show packages options as a list \def \showPackageOptionlist#1{% \edef \tempcs {\@nameuse{opt@#1}}% \@tempcnta = \z@ \relax \@for \member:=\tempcs\do{% \advance \@tempcnta \@ne \relax \number \@tempcnta:~\member.\space }% } % #1 := option, #2 := package name \def \isExistsOptionInPackage#1#2{% \edef \temp@cs {\@nameuse{opt@#2}}% \edef \temp@opt {#1}% \@for \member:=\temp@cs\do{% \ifx \member \temp@opt (#2 に \temp@opt あったよ) # この辺を適当に変更する。 \fi }% } % global flag \newif\ifexistsAnyOption \makeatother \begin{ttfamily} \showPackageOptions{color}\par \showPackageOptions{graphicx}\par \showPackageOptionlist{color}\par \showPackageOptionlist{hyperref}\par \isExistsOptionInPackage{dvipsnames}{color} \end{ttfamily} \end{document} Th\'or
この書き込みへの返事: