% ^^A -*- japanese-latex -*- % \iffalse meta-comment % % LaTeX 関連のロゴ(pLaTeX2ε新ドキュメントクラス付録) % % Copyright 1999-2016 Haruhiko Okumura % Copyright 2016-2019 Japanese TeX Development Community % % \fi % % \iffalse % % \begin{macrocode} %\NeedsTeXFormat{LaTeX2e} %\ProvidesPackage{jslogo} %<*driver> \ProvidesFile{jslogo.dtx} % [2019/07/25 okumura, texjporg] %<*driver> \documentclass{jsarticle} \usepackage{doc} \xspcode"5C=1 %% \ \xspcode"22=1 %% " \addtolength{\textwidth}{-1in} \addtolength{\evensidemargin}{1in} \addtolength{\oddsidemargin}{1in} \addtolength{\marginparwidth}{1in} \setlength\marginparpush{0pt} % \OnlyDescription \CodelineNumbered \DisableCrossrefs \setcounter{StandardModuleDepth}{1} \GetFileInfo{jslogo.dtx} \begin{document} \DocInput{jslogo.dtx} \end{document} % % \end{macrocode} % % \fi % % \title{\pLaTeXe 新ドキュメントクラス付録 ロゴパッケージ} % \author{奥村晴彦,日本語\TeX 開発コミュニティ} % \date{\filedate} % \maketitle % % \MakeShortVerb{\|} % % \section{はじめに} % % これはもともと奥村晴彦氏による\texttt{jsclasses.dtx}で定義され % ていた\LaTeX 関連のロゴを,独立のパッケージに抽出したものです。 % \texttt{jsclasses}ではデフォルトで読み込まれます。 % 現在は日本語\TeX 開発コミュニティによりGitHubで管理されています。 % \begin{quote} % |https://github.com/texjporg/jsclasses| % \end{quote} % ライセンスはmodified BSDです。 % % \StopEventually{} % % 以下では実際のコードに即して説明します。 % % % \section{いろいろなロゴ} % % \LaTeX 関連のロゴを作り直します。 % % \begin{macro}{\jslg@small} % \begin{macro}{\jslg@uppersmall} % % 文字を小さめに出したり上寄りに小さめに出したりする命令です。 % % \begin{macrocode} \def\jslg@small#1{\hbox{$\m@th$% \csname S@\f@size\endcsname \fontsize\sf@size\z@ \math@fontsfalse\selectfont #1}} \def\jslg@uppersmall#1{{\sbox\z@ T\vbox to\ht0{\jslg@small{#1}\vss}}} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\TeX} % \begin{macro}{\LaTeX} % % これらは \texttt{ltlogos.dtx} で定義されていますが, % TimesやHelveticaでも見栄えがするように若干変更しました。 % % Computer Modern Romanです(ファミリ名\texttt{cmr})。 % 元の定義に最も近いので,特別に定義しない場合に用います。 % % \begin{macrocode} \def\cmrTeX{% \ifdim \fontdimen\@ne\font >\z@ T\kern-.25em\lower.5ex\hbox{E}\kern-.125emX\@ \else T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\@ \fi} \def\cmrLaTeX{% \ifdim \fontdimen\@ne\font >\z@ L\kern-.32em\jslg@uppersmall{A}\kern-.22em\cmrTeX \else L\kern-.36em\jslg@uppersmall{A}\kern-.15em\cmrTeX \fi} % \end{macrocode} % % Computer Modern Sans Serif(ファミリ名\texttt{cmss})や % Helvetica(ファミリ名\texttt{phv})などのサンセリフ体です。 % % \begin{macrocode} \def\sfTeX{T\kern-.1em\lower.4ex\hbox{E}\kern-.07emX\@} \def\sfLaTeX{L\kern-.25em\jslg@uppersmall{A}\kern-.08em\sfTeX} % \end{macrocode} % % Timesです(ファミリ名\texttt{ptm})。 % TXフォント(ファミリ名\texttt{txr})でも用います。 % % \begin{macrocode} \def\ptmTeX{% \ifdim \fontdimen\@ne\font >\z@ T\kern-.12em\lower.37ex\hbox{E}\kern-.02emX\@ \else T\kern-.07em\lower.37ex\hbox{E}\kern-.05emX\@ \fi} \def\ptmLaTeX{% \ifdim \fontdimen\@ne\font >\z@ L\kern-.2em\jslg@uppersmall{A}\kern-.1em\ptmTeX \else L\kern-.3em\jslg@uppersmall{A}\kern-.1em\ptmTeX \fi} % \end{macrocode} % % New Century Schoolbookです(ファミリ名\texttt{pnc})。 % % \begin{macrocode} \def\pncTeX{% \ifdim \fontdimen\@ne\font >\z@ T\kern-.2em\lower.5ex\hbox{E}\kern-.08emX\@ \else T\kern-.13em\lower.5ex\hbox{E}\kern-.13emX\@ \fi} \def\pncLaTeX{% \ifdim \fontdimen\@ne\font >\z@ L\kern-.3em\jslg@uppersmall{A}\kern-.1em\pncTeX \else L\kern-.3em\jslg@uppersmall{A}\kern-.1em\pncTeX \fi} % \end{macrocode} % % Palatinoです(ファミリ名\texttt{ppl})。 % PXフォント(ファミリ名\texttt{pxr})でも用います。 % % \begin{macrocode} \def\pplTeX{% \ifdim \fontdimen\@ne\font >\z@ T\kern-.17em\lower.32ex\hbox{E}\kern-.15emX\@ \else T\kern-.12em\lower.34ex\hbox{E}\kern-.1emX\@ \fi} \def\pplLaTeX{% \ifdim \fontdimen\@ne\font >\z@ L\kern-.27em\jslg@uppersmall{A}\kern-.12em\pplTeX \else L\kern-.3em\jslg@uppersmall{A}\kern-.15em\pplTeX \fi} % \end{macrocode} % % URW Garamondです(ファミリ名\texttt{ugm})。 % % \begin{macrocode} \def\ugmTeX{% \ifdim \fontdimen\@ne\font >\z@ T\kern-.1em\lower.32ex\hbox{E}\kern-.06emX\@ \else T\kern-.12em\lower.34ex\hbox{E}\kern-.1emX\@ \fi} \def\ugmLaTeX{% \ifdim \fontdimen\@ne\font >\z@ L\kern-.2em\jslg@uppersmall{A}\kern-.13em\ugmTeX \else L\kern-.3em\jslg@uppersmall{A}\kern-.13em\ugmTeX \fi} % \end{macrocode} % % 以上の定義を,ファミリによって使い分けます。 % % [2003-06-12] Palatinoも加えました(要調整)。 % % \begin{macrocode} \DeclareRobustCommand{\TeX}{% \def\@tempa{cmss}% \ifx\f@family\@tempa\sfTeX \else \def\@tempa{phv}% \ifx\f@family\@tempa\sfTeX \else \def\@tempa{qhv}% \ifx\f@family\@tempa\sfTeX \else \def\@tempa{ptm}% \ifx\f@family\@tempa\ptmTeX \else \def\@tempa{qtm}% \ifx\f@family\@tempa\ptmTeX \else \def\@tempa{txr}% \ifx\f@family\@tempa\ptmTeX \else \def\@tempa{ntxtlf}% \ifx\f@family\@tempa\ptmTeX \else \def\@tempa{pnc}% \ifx\f@family\@tempa\pncTeX \else \def\@tempa{ppl}% \ifx\f@family\@tempa\pplTeX \else \def\@tempa{qpl}% \ifx\f@family\@tempa\pplTeX \else \def\@tempa{pplx}% \ifx\f@family\@tempa\pplTeX \else \def\@tempa{pplj}% \ifx\f@family\@tempa\pplTeX \else \def\@tempa{pxr}% \ifx\f@family\@tempa\pplTeX \else \def\@tempa{zpltlf}% \ifx\f@family\@tempa\pplTeX \else \def\@tempa{ugm}% \ifx\f@family\@tempa\ugmTeX \else\cmrTeX \fi \fi\fi \fi\fi\fi\fi \fi \fi\fi \fi\fi \fi\fi\fi} \DeclareRobustCommand{\LaTeX}{% \def\@tempa{cmss}% \ifx\f@family\@tempa\sfLaTeX \else \def\@tempa{phv}% \ifx\f@family\@tempa\sfLaTeX \else \def\@tempa{qhv}% \ifx\f@family\@tempa\sfLaTeX \else \def\@tempa{ptm}% \ifx\f@family\@tempa\ptmLaTeX \else \def\@tempa{qtm}% \ifx\f@family\@tempa\ptmLaTeX \else \def\@tempa{txr}% \ifx\f@family\@tempa\ptmLaTeX \else \def\@tempa{ntxtlf}% \ifx\f@family\@tempa\ptmLaTeX \else \def\@tempa{pnc}% \ifx\f@family\@tempa\pncLaTeX \else \def\@tempa{ppl}% \ifx\f@family\@tempa\pplLaTeX \else \def\@tempa{qpl}% \ifx\f@family\@tempa\pplLaTeX \else \def\@tempa{pplx}% \ifx\f@family\@tempa\pplLaTeX \else \def\@tempa{pplj}% \ifx\f@family\@tempa\pplLaTeX \else \def\@tempa{pxr}% \ifx\f@family\@tempa\pplLaTeX \else \def\@tempa{zpltlf}% \ifx\f@family\@tempa\pplLaTeX \else \def\@tempa{ugm}% \ifx\f@family\@tempa\ugmLaTeX \else\cmrLaTeX \fi \fi\fi \fi\fi\fi\fi \fi \fi\fi \fi\fi \fi\fi\fi} % \end{macrocode} % % \end{macro} % \end{macro} % % \begin{macro}{\LaTeXe} % % |\LaTeXe| コマンドの |\mbox{\m@th ...| で始まる新しい定義では % 直後の和文との間に |\xkanjiskip| が入りません。また, % |mathptmx| パッケージなどと併用すると,最後の $\varepsilon$ が % 下がりすぎてしまいます。そのため,ちょっと手を加えました。 % % \begin{macrocode} \DeclareRobustCommand{\LaTeXe}{$\mbox{% \if b\expandafter\@car\f@series\@nil\boldmath\fi \LaTeX\kern.15em2\raisebox{-.37ex}{$\textstyle\varepsilon$}}$} % \end{macrocode} % \end{macro} % % \begin{macro}{\pTeX} % \begin{macro}{\pLaTeX} % \begin{macro}{\pLaTeXe} % % \pTeX ,\pLaTeXe のロゴを出す命令です。 % % \begin{macrocode} \def\pTeX{p\kern-.05em\TeX} \def\pLaTeX{p\LaTeX} \def\pLaTeXe{p\LaTeXe} % \end{macrocode} % % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\upTeX} % \begin{macro}{\upLaTeX} % \begin{macro}{\upLaTeXe} % % [2016-07-14] \upTeX ,\upLaTeXe のロゴを出す命令も定義します。 % % \begin{macrocode} \def\upTeX{u\pTeX} \def\upLaTeX{u\pLaTeX} \def\upLaTeXe{u\pLaTeXe} % \end{macrocode} % % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\AmSTeX} % % \texttt{amstex.sty} で定義されています。 % % \begin{macrocode} \def\AmSTeX{\protect\AmS-\protect\TeX{}} % \end{macrocode} % % \end{macro} % % \begin{macro}{\BibTeX} % \begin{macro}{\SliTeX} % % これらは \texttt{doc.dtx} から取ったものです。 % ただし,|\BibTeX| だけはちょっと修正しました。 % % \begin{macrocode} % \@ifundefined{BibTeX} % {\def\BibTeX{{\rmfamily B\kern-.05em% % \textsc{i\kern-.025em b}\kern-.08em% % T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}}{} \DeclareRobustCommand{\BibTeX}{% B\kern-.05em\jslg@small{I\kern-.025em B}\kern-.15em\TeX} \DeclareRobustCommand{\SliTeX}{% S\kern-.06emL\kern-.18em\jslg@uppersmall{I}\kern -.03em\TeX} % \end{macrocode} % \end{macro} % \end{macro} % % % \section{PDF文字列中でロゴが使われた場合への対策} % % 以上でロゴの定義は終わりですが,|hyperref|を読み込んだ状態で |jslogo| の命令を % PDF文字列として解釈される箇所(例 |\section| など)で使うと警告が出てしまいます。 %\begin{verbatim} % Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding): % (hyperref) \kern -0.50003pt % (hyperref) removed on input line 5. %\end{verbatim} % そこで,この警告が出ないように対策します(Issue \#51)。 % % まず,|\pdfstringdefPreHook| を(なければ)用意します。 % \begin{macrocode} \providecommand*\pdfstringdefPreHook{} % \end{macrocode} % % そして,警告が出てしまうロゴに対するPDF文字列中での定義を追加します。 % \begin{macrocode} \g@addto@macro\pdfstringdefPreHook{% \def\pTeX{p\TeX}% \def\AmS{AMS}% \def\SliTeX{Sli\TeX}% \def\BibTeX{Bib\TeX}% } % \end{macrocode} % % |hyperref| 読込時に |\pdfstringdefPreHook| が定義済ならそれはそのまま保持され, % 警告が出なくなります。 % % 以上です。 % % \Finale % \endinput