Last active
August 29, 2015 14:01
-
-
Save munepi/2c1bdc543d88cde0ebdd to your computer and use it in GitHub Desktop.
jsclasses-20140207に対して、key=value方式による特定の用紙サイズおよび任意の用紙サイズを設定可能にするパッチ。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- jsclasses.dtx.orig 2014-02-07 10:01:04.000000000 +0900 | |
+++ jsclasses.dtx 2014-05-25 18:19:23.000000000 +0900 | |
@@ -19,7 +19,7 @@ | |
% Copyright 1995-1999 ASCII Corporation. | |
% | |
% \fi | |
-% \CheckSum{5668} | |
+% \CheckSum{5833} | |
%% \CharacterTable | |
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z | |
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z | |
@@ -132,6 +132,14 @@ | |
% まず,オプションに関連するいくつかのコマンドやスイッチ(論理変数)を定 | |
% 義します。 | |
% | |
+% \begin{macrocode} | |
+\RequirePackage{keyval} | |
+\def\jsc@error{\ClassError{jsclasses}} | |
+\def\jsc@warning{\ClassWarning{jsclasses}} | |
+\def\jsc@warningnoline{\ClassWarningNoLine{jsclasses}} | |
+\def\jsc@info{\ClassInfo{jsclasses}} | |
+% \end{macrocode} | |
+% | |
% \begin{macro}{\if@restonecol} | |
% | |
% 段組のときに真になる論理変数です。 | |
@@ -203,54 +211,22 @@ | |
% \texttt{a4var}(A4変形,210mm×283mm)を追加しました。 | |
% | |
% \begin{macrocode} | |
-\DeclareOption{a3paper}{% | |
- \setlength\paperheight {420mm}% | |
- \setlength\paperwidth {297mm}} | |
-\DeclareOption{a4paper}{% | |
- \setlength\paperheight {297mm}% | |
- \setlength\paperwidth {210mm}} | |
-\DeclareOption{a5paper}{% | |
- \setlength\paperheight {210mm}% | |
- \setlength\paperwidth {148mm}} | |
-\DeclareOption{a6paper}{% | |
- \setlength\paperheight {148mm}% | |
- \setlength\paperwidth {105mm}} | |
-\DeclareOption{b4paper}{% | |
- \setlength\paperheight {364mm}% | |
- \setlength\paperwidth {257mm}} | |
-\DeclareOption{b5paper}{% | |
- \setlength\paperheight {257mm}% | |
- \setlength\paperwidth {182mm}} | |
-\DeclareOption{b6paper}{% | |
- \setlength\paperheight {182mm}% | |
- \setlength\paperwidth {128mm}} | |
-\DeclareOption{a4j}{% | |
- \setlength\paperheight {297mm}% | |
- \setlength\paperwidth {210mm}} | |
-\DeclareOption{a5j}{% | |
- \setlength\paperheight {210mm}% | |
- \setlength\paperwidth {148mm}} | |
-\DeclareOption{b4j}{% | |
- \setlength\paperheight {364mm}% | |
- \setlength\paperwidth {257mm}} | |
-\DeclareOption{b5j}{% | |
- \setlength\paperheight {257mm}% | |
- \setlength\paperwidth {182mm}} | |
-\DeclareOption{a4var}{% | |
- \setlength\paperheight {283mm}% | |
- \setlength\paperwidth {210mm}} | |
-\DeclareOption{b5var}{% | |
- \setlength\paperheight {230mm}% | |
- \setlength\paperwidth {182mm}} | |
-\DeclareOption{letterpaper}{% | |
- \setlength\paperheight {11in}% | |
- \setlength\paperwidth {8.5in}} | |
-\DeclareOption{legalpaper}{% | |
- \setlength\paperheight {14in}% | |
- \setlength\paperwidth {8.5in}} | |
-\DeclareOption{executivepaper}{% | |
- \setlength\paperheight {10.5in}% | |
- \setlength\paperwidth {7.25in}} | |
+\DeclareOption{a3paper}{\gdef\jsc@paper{a3}} | |
+\DeclareOption{a4paper}{\gdef\jsc@paper{a4}} | |
+\DeclareOption{a5paper}{\gdef\jsc@paper{a5}} | |
+\DeclareOption{a6paper}{\gdef\jsc@paper{a6}} | |
+\DeclareOption{b4paper}{\gdef\jsc@paper{b4}} | |
+\DeclareOption{b5paper}{\gdef\jsc@paper{b5}} | |
+\DeclareOption{b6paper}{\gdef\jsc@paper{b6}} | |
+\DeclareOption{a4j}{\gdef\jsc@paper{a4}} | |
+\DeclareOption{a5j}{\gdef\jsc@paper{a5}} | |
+\DeclareOption{b4j}{\gdef\jsc@paper{b4}} | |
+\DeclareOption{b5j}{\gdef\jsc@paper{b5}} | |
+\DeclareOption{a4var}{\gdef\jsc@paper{a4var}} | |
+\DeclareOption{b5var}{\gdef\jsc@paper{b5var}} | |
+\DeclareOption{letterpaper}{\gdef\jsc@paper{letter}} | |
+\DeclareOption{legalpaper}{\gdef\jsc@paper{legal}} | |
+\DeclareOption{executivepaper}{\gdef\jsc@paper{executive}} | |
% \end{macrocode} | |
% | |
% \paragraph{横置き} | |
@@ -523,11 +499,22 @@ | |
% オプション \texttt{papersize} を与えます。 | |
% | |
% \begin{macrocode} | |
-\newif\ifpapersize | |
-\papersizefalse | |
-\DeclareOption{papersize}{\papersizetrue} | |
+\newif\if@papersize\@papersizetrue | |
+\DeclareOption{papersize}{\@papersizetrue} | |
+\DeclareOption{nopapersize}{\@papersizefalse} | |
% \end{macrocode} | |
% | |
+% \begin{macrocode} | |
+\DeclareOption*{\jsc@setkey} | |
+\def\jsc@setkey{\expandafter\@jsc@setkey\expandafter{\CurrentOption}} | |
+\def\@jsc@setkey{\setkeys{jsc}} | |
+\def\jsc@paper{a4} | |
+\define@key{jsc}{paper}{\gdef\jsc@paper{#1}} | |
+\def\jsc@paperheight{} | |
+\define@key{jsc}{paperheight}{\gdef\jsc@paperheight{#1}} | |
+\def\jsc@paperwidth{} | |
+\define@key{jsc}{paperwidth}{\gdef\jsc@paperwidth{#1}} | |
+% \end{macrocode} | |
% \paragraph{英語化} | |
% | |
% オプション \texttt{english} を新設しました。 | |
@@ -557,10 +544,10 @@ | |
% |multicols| や |url| を |\RequirePackage| するのはやめました。 | |
% | |
% \begin{macrocode} | |
-%<article>\ExecuteOptions{a4paper,oneside,onecolumn,notitlepage,final} | |
-%<book>\ExecuteOptions{a4paper,twoside,onecolumn,titlepage,openright,final} | |
-%<jspf>\ExecuteOptions{a4paper,twoside,twocolumn,notitlepage,fleqn,final} | |
-%<kiyou>\ExecuteOptions{a4paper,twoside,twocolumn,notitlepage,final} | |
+%<article>\ExecuteOptions{oneside,onecolumn,notitlepage,final} | |
+%<book>\ExecuteOptions{twoside,onecolumn,titlepage,openright,final} | |
+%<jspf>\ExecuteOptions{twoside,twocolumn,notitlepage,fleqn,final} | |
+%<kiyou>\ExecuteOptions{twoside,twocolumn,notitlepage,final} | |
\ProcessOptions | |
% \end{macrocode} | |
% | |
@@ -570,6 +557,52 @@ | |
\if@slide | |
\def\maybeblue{\@ifundefined{[email protected]}{}{\color{blue}}} | |
\fi | |
+\ifx\jsc@paper\@empty\else | |
+ \def\jsc@tmp{a3}\ifx\jsc@paper\jsc@tmp | |
+ \setlength\paperheight {420mm} | |
+ \setlength\paperwidth {297mm} | |
+ \else\def\jsc@tmp{a4}\ifx\jsc@paper\jsc@tmp | |
+ \setlength\paperheight {297mm} | |
+ \setlength\paperwidth {210mm} | |
+ \else\def\jsc@tmp{a5}\ifx\jsc@paper\jsc@tmp | |
+ \setlength\paperheight {210mm} | |
+ \setlength\paperwidth {148mm} | |
+ \else\def\jsc@tmp{a6}\ifx\jsc@paper\jsc@tmp | |
+ \setlength\paperheight {148mm} | |
+ \setlength\paperwidth {105mm} | |
+ \else\def\jsc@tmp{b4}\ifx\jsc@paper\jsc@tmp | |
+ \setlength\paperheight {364mm} | |
+ \setlength\paperwidth {257mm} | |
+ \else\def\jsc@tmp{b5}\ifx\jsc@paper\jsc@tmp | |
+ \setlength\paperheight {257mm} | |
+ \setlength\paperwidth {182mm} | |
+ \else\def\jsc@tmp{b6}\ifx\jsc@paper\jsc@tmp | |
+ \setlength\paperheight {182mm} | |
+ \setlength\paperwidth {128mm} | |
+ \else\def\jsc@tmp{a4var}\ifx\jsc@paper\jsc@tmp | |
+ \setlength\paperheight {283mm} | |
+ \setlength\paperwidth {210mm} | |
+ \else\def\jsc@tmp{b5var}\ifx\jsc@paper\jsc@tmp | |
+ \setlength\paperheight {230mm} | |
+ \setlength\paperwidth {182mm} | |
+ \else\def\jsc@tmp{letter}\ifx\jsc@paper\jsc@tmp | |
+ \setlength\paperheight {11in} | |
+ \setlength\paperwidth {8.5in} | |
+ \else\def\jsc@tmp{legal}\ifx\jsc@paper\jsc@tmp | |
+ \setlength\paperheight {14in} | |
+ \setlength\paperwidth {8.5in} | |
+ \else\def\jsc@tmp{executive}\ifx\jsc@paper\jsc@tmp | |
+ \setlength\paperheight {10.5in} | |
+ \setlength\paperwidth {7.25in} | |
+ \else | |
+ \jsc@error{No such paper size: \jsc@paper}% | |
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi | |
+\fi | |
+\ifx\jsc@paperheight\@empty\else\ifx\jsc@paperwidth\@empty\else | |
+ \@landscapefalse | |
+ \setlength\paperheight{\jsc@paperheight} | |
+ \setlength\paperwidth {\jsc@paperwidth} | |
+\fi\fi | |
\if@landscape | |
\setlength\@tempdima {\paperheight} | |
\setlength\paperheight{\paperwidth} | |
@@ -594,7 +627,7 @@ | |
% [2003-05-17] トンボをプレビューに使うことを考えて1インチを2インチにしました。 | |
% | |
% \begin{macrocode} | |
-\ifpapersize | |
+\if@papersize | |
\setlength{\@tempdima}{\paperwidth} | |
\setlength{\@tempdimb}{\paperheight} | |
\iftombow | |
@@ -724,7 +757,7 @@ | |
% [2004-08-08] 今のdvipdfmxはdvips用スペシャルを理解するようなので外しました。 | |
% | |
% \begin{macrocode} | |
-% \ifpapersize | |
+% \if@papersize | |
% \setlength{\@tempdima}{\paperwidth} | |
% \setlength{\@tempdimb}{\paperheight} | |
% \iftombow |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%% -*- coding: utf-8-unix -*- | |
% #!ptex2pdf -l -u -ot '--synctex=1 --shell-escape' test-jscls | |
%#!platex jsclasses.ins; ptex2pdf -l -u -ot '--synctex=1 --shell-escape' test-jscls | |
\documentclass[uplatex, | |
% paper=a6, | |
paperheight=100mm, paperwidth=100mm, | |
]{jsarticle} | |
\makeatletter | |
\def\makelines#1{% | |
\@tempcnta\z@\relax | |
\def\@makeline@f@size{\f@size}% | |
\@whilenum\@tempcnta<#1\do{% | |
\advance\@tempcnta\@ne\relax | |
\noindent\rlap{\the\@tempcnta}\nobreak | |
\makelines@neline\par}% | |
} | |
\def\makelines@unit@#10#2\relax{% | |
\ifx!#2!\relax □\else\relax ■\fi}% | |
\newcounter{makelines@unit} | |
\def\makelines@neline{% | |
\c@makelines@unit\@ne | |
\@whilenum\c@makelines@unit<\dimexpr(\textwidth + \Cwd)/\Cwd\do{% | |
\expandafter\makelines@unit@\the\c@makelines@unit0\relax | |
\advance\c@makelines@unit\@ne}% | |
} | |
\makeatother | |
\begin{document} | |
\makelines{100} | |
\end{document} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
このパッチを適用すると、keyvalパッケージによる key=value 方式により、用紙サイズ paper、用紙サイズ横/縦 paperweight, paperheight を key として設定可能になります。