From 305bf45bf758ea76ec5be2a737bd8eb491f68921 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 16 Jun 2020 03:02:40 +0000 Subject: CTAN sync 202006160302 --- macros/latex/contrib/wtref/LICENSE | 2 +- macros/latex/contrib/wtref/README.md | 10 +- macros/latex/contrib/wtref/doc/wtref-ja.pdf | Bin 120211 -> 0 bytes macros/latex/contrib/wtref/doc/wtref-ja.tex | 173 --------------------------- macros/latex/contrib/wtref/doc/wtref.pdf | Bin 220864 -> 0 bytes macros/latex/contrib/wtref/doc/wtref.tex | 169 -------------------------- macros/latex/contrib/wtref/wtref-ja.pdf | Bin 0 -> 117348 bytes macros/latex/contrib/wtref/wtref-ja.tex | 177 ++++++++++++++++++++++++++++ macros/latex/contrib/wtref/wtref.pdf | Bin 0 -> 226945 bytes macros/latex/contrib/wtref/wtref.sty | 155 ++++++++++++------------ macros/latex/contrib/wtref/wtref.tex | 173 +++++++++++++++++++++++++++ 11 files changed, 435 insertions(+), 424 deletions(-) delete mode 100644 macros/latex/contrib/wtref/doc/wtref-ja.pdf delete mode 100644 macros/latex/contrib/wtref/doc/wtref-ja.tex delete mode 100644 macros/latex/contrib/wtref/doc/wtref.pdf delete mode 100644 macros/latex/contrib/wtref/doc/wtref.tex create mode 100644 macros/latex/contrib/wtref/wtref-ja.pdf create mode 100644 macros/latex/contrib/wtref/wtref-ja.tex create mode 100644 macros/latex/contrib/wtref/wtref.pdf create mode 100644 macros/latex/contrib/wtref/wtref.tex (limited to 'macros/latex/contrib/wtref') diff --git a/macros/latex/contrib/wtref/LICENSE b/macros/latex/contrib/wtref/LICENSE index 0dddce08b7..a089635538 100644 --- a/macros/latex/contrib/wtref/LICENSE +++ b/macros/latex/contrib/wtref/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2016-2017 Takuto ASAKURA (wtsnjp) +Copyright 2016-2020 Takuto ASAKURA (wtsnjp) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/macros/latex/contrib/wtref/README.md b/macros/latex/contrib/wtref/README.md index b965038d6b..d2af713e5f 100644 --- a/macros/latex/contrib/wtref/README.md +++ b/macros/latex/contrib/wtref/README.md @@ -1,17 +1,17 @@ -# WTRef Package (v0.3.2) +# WTRef Package (v0.4.0) -WTRef package extend cross-reference system of LaTeX2e and introduce concepts of namespace and scope. This package is a part of the WT Series. +WTRef package is a small extension for LaTeX2e's cross-reference system. It introduces concepts of namespace and scope. This package is a part of the WT Series. ## System Requirements * TeX format: LaTeX2e * TeX engine: any engine * Document class: any class -* Prerequisite package: xkeyval +* Prerequisite package: xparse and xkeyval ## Installation -Move wtref.sty file to $TEXMF/tex/la­tex/wtref. +Move wtref.sty file to $TEXMF/tex/latex/wtref. ## Documents @@ -23,4 +23,4 @@ This package released under [the MIT license](./LICENSE). --- -Takuto ASAKURA ([wtsnjp](https://twitter.com/wtsnjp)) \ No newline at end of file +Takuto ASAKURA ([wtsnjp](https://twitter.com/wtsnjp)) diff --git a/macros/latex/contrib/wtref/doc/wtref-ja.pdf b/macros/latex/contrib/wtref/doc/wtref-ja.pdf deleted file mode 100644 index 8d216eab71..0000000000 Binary files a/macros/latex/contrib/wtref/doc/wtref-ja.pdf and /dev/null differ diff --git a/macros/latex/contrib/wtref/doc/wtref-ja.tex b/macros/latex/contrib/wtref/doc/wtref-ja.tex deleted file mode 100644 index e8e8eaa0cc..0000000000 --- a/macros/latex/contrib/wtref/doc/wtref-ja.tex +++ /dev/null @@ -1,173 +0,0 @@ -\documentclass[a4paper,uplatex]{jsarticle} - -\usepackage{otf} -\usepackage{enumitem} -\usepackage{shortvrb} -\MakeShortVerb{\|} -\newcommand{\PkgName}{\textsf{WTRef}} -\newcommand{\Meta}[1]{$\langle$\mbox{}\textit{#1}\mbox{}$\rangle$} -\newenvironment{syntax}{\begin{quote}\small}{\end{quote}} - -\title{\PkgName パッケージ (v0.3.2)} -\author{朝倉卓人 (wtsnjp)} - -\begin{document} - -\maketitle - -\begin{abstract} -WTシリーズは著者が\LaTeX 文書作成にあたってよく利用するマクロを集めたものである. -\PkgName パッケージはこのWTシリーズを構成するパッケージの1つであり,\LaTeX オリジナルの -相互参照機能を拡張してスコープの指定と名前空間の分離,参照形式の柔軟な指定を可能にする. -サポート対象は任意の\TeX エンジンと\LaTeXe の組み合わせで,動作には\textsf{xkeyval} -パッケージが必要である. -\end{abstract} - -\section{動作要件} - -\PkgName パッケージの動作要件は以下の通りである. -% -\begin{itemize} -\item \TeX エンジン:任意 -\item \TeX フォーマット:\LaTeXe -\item ドキュメントクラス:任意 -\item 依存パッケージ:\textsf{xkeyval} -\end{itemize} - -\section{パッケージ読み込み} - -読み込みには |\usepackage| 命令を用いる.オプションは存在しない. -% -\begin{syntax} -|\usepackage{wtref}| -\end{syntax} - -\section{相互参照命令} - -\subsection{相互参照命令の新設} - -|\newref| 命令を用いて相互参照に用いる2つの命令を新設することができる.この命令は -プリアンブルでのみ使用可能である. -% -\begin{syntax} -|\newref[|\Meta{options}|]{|\Meta{ref types}|}| -\end{syntax} - -上記書式中の\Meta{ref types}は\Meta{ref type}のカンマ区切りリストである.\Meta{ref type}は -制御綴に使用できる文字のみで構成された文字列で(半角英字のみにしておくことを推奨),空で -あってはならない.なお\Meta{ref types}の先頭・末尾およびカンマ前後の連続する空白は -すべて無視される. - -|\newref| 命令は指定した\Meta{ref type}に応じて |\|\Meta{ref type}|label|, -|\|\Meta{ref type}|ref| という形をもつ,新しい2つの命令を定義する.ここで前者の命令を -\textbf{ラベル命令},後者の命令を\textbf{参照命令}と呼ぶことにする.|\newref| 命令は同名の -命令が既に存在していても,その定義を上書きするので\Meta{ref type}は注意して選ぶ必要がある. - -また,\Meta{options}には以下の内容をkey-valueリストで指定可能である: -% -\begin{description}[font=\normalfont] -% -\item[|namespace=|\Meta{string}] -与えられた値を用いて\Meta{namespace}を``\Meta{string}|:|''に設定する.|namespace|キーも -|nonamespace|キーも指定しない場合,および|namespace|に与えた\Meta{string}が空文字列であった -場合\Meta{namespace}は``\Meta{ref type}|:|''に設定される. -% -\item[|nonamespace|] -このキーを指定すると,\Meta{namespace}は空となる.すなわち,名前空間機能を無効化できる. -なお,|nonamespace|キーに値を指定してもエラーにはならないが,単に無視される. -% -\item[|scope=|\Meta{counter}] -スコープとして利用するカウンタを指定する.\Meta{counter}には任意の\LaTeX カウンタを指定する -ことが可能だが,文書内で一意性のあるカウンタを指定することが望ましい.これにより\Meta{scope}は -``|\the|\Meta{counter}|:|''の形に設定される. -\end{description} -% -これらの設定は,\Meta{ref types}で指定したすべての\Meta{ref type}に対応する相互参照命令に -ついて適用される. - -ここで\Meta{options}に何も指定しない場合\Meta{namespace}は\Meta{ref type}が転用されて -``\Meta{ref type}|:|''の形となり\Meta{scope}は空に設定される.言い換えると,デフォルトでは -名前空間機能が有効,スコープ機能は無効に設定されている. - -\subsection{ラベル命令} - -\subsubsection{機能と使い方} - -ラベル命令はラベルを付けるときに用いる.使い方は\LaTeX の |\label| 命令とまったく同様である. -以下にラベル命令の例 |\exlabel| を用いるときの書式を示しておく. -% -\begin{syntax} -|\exlabel{|\Meta{label}|}| -\end{syntax} - -\subsubsection{内部処理} - -ラベル命令は最終的に次のような形に展開される. -% -\begin{syntax} -|\label{|\Meta{namespace}\Meta{scope}\Meta{label}|}| -\end{syntax} - -\subsection{参照命令} - -参照命令は対応するラベル命令によってラベル付けされた番号を,指定した書式で印字するための -命令である.例として |\exref| の使い方を以下に示す. -% -\begin{syntax} -|\exref[|\Meta{the scope}|]{|\Meta{label list}|}| -\end{syntax} - -参照するラベルが同じスコープ内に存在する場合は\Meta{the scope}は省略可能である. -\Meta{the scope}に参照先のスコープに対応する``|\the|\Meta{counter}''の出力を直接記入することで -スコープの範囲外からラベルを参照することが可能である.なお,スコープ機能が無効 -(|\newref| によって相互参照命令を定義する際に\Meta{options}で |scope| キーを指定しなかった -場合)のときは,\Meta{the scope}は常に無視される. - -また,引数にはカンマ区切りで複数の参照先ラベルを指定することが可能である. -\Meta{label list}の先頭・末尾およびカンマ前後の連続する空白はすべて無視される. -複数のラベルを指定した場合,デフォルトでは該当する番号がカンマ区切りで出力される.この出力書式 -は後述する参照書式変更命令 |\setrefstyle| を用いて柔軟にカスタマイズすることができる. - -\section{参照書式変更命令} - -|\setrefstyle| 命令を用いると,参照命令による出力を柔軟にカスタマイズすることができる. -最初に |\setrefstyle| 命令の書式を示しておく. -% -\begin{syntax} -|\setrefstyle{|\Meta{ref types}|}{|\Meta{options}|}| -\end{syntax} - -これにより\Meta{ref types}中に含まれる\Meta{ref type}に対応する参照命令が出力する内容の -書式を変更できる.この |\setrefstyle| 命令はプリアンブルに限らず\LaTeX 文書ソース中全域で -使用可能であり,設定の有効範囲は |{| や |}| によるブロックの制御を受ける. - -\Meta{options}には以下の内容をkey-valueリストで指定可能である: -% -\begin{description}[font=\normalfont] -\item[|refcmd=|\Meta{command}] -\Meta{label list}に与えたラベルの数だけ,指定した\Meta{command}が繰り返し実行・印字される. -\Meta{command}中に記入された |#1| は適切に整形されたラベル名に置換される. -規定値は |\ref{#1}|. -% -\item[|sep=|\Meta{command}] -\Meta{label list}に3つ以上のラベルが記入されているときに,|refcmd| の各出力の間に印字 -する区切りの内容を指定する.ただし,最後の区切りは |last sep| に指定した値となる. -規定値は |{,\space}|. -% -\item[|last sep|(|=|\Meta{command})] -\Meta{label list}に複数のラベルが記入されている際に出力される,最後の区切りを指定する. -|=| 以降を記入せず,単に |last sep| と指定した場合,最後の区切りには |sep| の値が適用される. -規定値は値指定なし(つまり |sep| の値に従属). -% -\item[|prefix=|\Meta{command}] -参照命令を使用したとき,最初に実行・印字される内容を指定する. -規定値は |{}|. -% -\item[|suffix=|\Meta{command}] -参照命令を使用したとき,最後に実行・印字される内容を指定する. -規定値は |{}|. -\end{description} -% -これらの設定は,明示的に指定したもの以外はそれ以前の設定がそのまま引き継がれる. - -\end{document} diff --git a/macros/latex/contrib/wtref/doc/wtref.pdf b/macros/latex/contrib/wtref/doc/wtref.pdf deleted file mode 100644 index 4787b42025..0000000000 Binary files a/macros/latex/contrib/wtref/doc/wtref.pdf and /dev/null differ diff --git a/macros/latex/contrib/wtref/doc/wtref.tex b/macros/latex/contrib/wtref/doc/wtref.tex deleted file mode 100644 index 02e482ac7f..0000000000 --- a/macros/latex/contrib/wtref/doc/wtref.tex +++ /dev/null @@ -1,169 +0,0 @@ -\documentclass[a4paper]{article} - -\usepackage{enumitem} -\usepackage{shortvrb} -\MakeShortVerb{\|} -\newcommand{\PkgName}{\textsf{WTRef}} -\newcommand{\Meta}[1]{$\langle$\mbox{}\textit{#1}\mbox{}$\rangle$} -\newenvironment{syntax}{\begin{quote}\small}{\end{quote}} - -\title{{\PkgName} Package (v0.3.2)} -\author{Takuto ASAKURA (wtsnjp)} - -\begin{document} - -\maketitle - -\begin{abstract} -WT Series collects macros which author frequently use to create {\LaTeX} documents. -{\PkgName} package is a part of this WT Series that extend {\LaTeX} original -cross-reference system. It makes enable to divide namespace and scope, further arrows users -to customise reference formats. {\LaTeXe} on any kind of {\TeX} engine is supported, and -\textsf{xkeyval} package is required. -\end{abstract} - -\section{System Requirements} - -System requirements of {\PkgName} are shown bellow: -% -\begin{itemize} -\item {\TeX} engine: any engine -\item {\TeX} format: \LaTeXe -\item Document class: any class -\item Required package: \textsf{xkeyval} -\end{itemize} - -\section{Loading the {\PkgName} Package} - -To use {\PkgName} package, load \texttt{wtref.sty} file with |\usepackage| command in preamble. -No package option is available. -% -\begin{syntax} -|\usepackage{wtref}| -\end{syntax} - -\section{Cross-Reference Commands} - -\subsection{Definition of New Cross-Reference Commands} - -|\newref| command creates a set of cross-reference commands. This command can only be used -in preamble. -% -\begin{syntax} -|\newref[|\Meta{options}|]{|\Meta{ref types}|}| -\end{syntax} -% -\Meta{ref types} are comma-separated list of \Meta{ref type}. All characters of \Meta{ref type} -must be able to use in control sequence (only ordinary alphabet is recommended) and can not be -empty. Notice that leading and trailing spaces and successive spaces arround commas are ignored. - -|\newref| command defines two commands: |\|\Meta{ref type}|label|, |\|\Meta{ref type}|ref|. -In this document, the formar are called \textbf{label commands} and the latter are called -\textbf{reference commands}. |\newref| command overwrites existing commands, so \Meta{ref name} -should be decided carefully. - -In \Meta{options}, you can set following parameters by key-value list: -% -\begin{description}[font=\normalfont] -\item[|namespace=|\Meta{string}] -Set \Meta{namespace} to ``\Meta{string}:''. If neither |namespace| nor |nonamespace| are -specified, or in case \Meta{string} of |namespace| is empty, \Meta{namespace} is set to -``\Meta{ref type}:''. -% -\item[|nonamespace|] -Set \Meta{namespace} to empty. That is to say, invalidation of function that dividing -namespace. It should be noted that you can specify value for |nonamespace| and that -will not make any errors, but the value will simply be ignored. -% -\item[|scope=|\Meta{counter}] -Specify counter which used as scope. You can specify any {\LaTeX} counter to \Meta{counter} -but one which has uniqueness in a document is desirable. This key sets \Meta{scope} to -``|\the|\Meta{counter}:''. -\end{description} -% -These optional settings apply to all cross-referece commands relate to \Meta{ref type} -in specified \Meta{ref types}. - -Identically, if any keys do not specified in \Meta{options}, \Meta{namespace} is set to -``\Meta{ref type}'' and \Meta{scope} is set to empty. In other words, the function of -namespace is active and function of scope is inactive as default. - -\subsection{Label Commands} - -\subsubsection{Function and Usage} - -Label commands are used to create new labels. Usage of those are same to |\label| command -of standard {\LaTeX}. Usage of |\exlabel| is shown bellow as an example: -% -\begin{syntax} -|\exlabel{|\Meta{label}|}| -\end{syntax} - -\subsubsection{Internal Processing} - -Label commands finaly are expanded to following format: -% -\begin{syntax} -|\label{|\Meta{namespace}\Meta{scope}\Meta{label}|}| -\end{syntax} - -\subsection{Reference Commands} - -Reference commands print contents of counters which labeled by label commands in specified -formats. Usage of |\exref| is shown bellow as an example: -% -\begin{syntax} -|\exref[|\Meta{the scope}|]{|\Meta{label list}|}| -\end{syntax} - -The option argument \Meta{the scope} can be ommited when refering label exists in the -same scope. You can refer outside of scope by writing down the output of proper -|\the|\Meta{counter}. Notice that if the function of scope is inactive -(i.e. in case |scope| key does not specified in \Meta{options} of |\newref|), this argument -is always unnecessary, and in other words it will be ignored all the time. - -In argument \Meta{label list}, plural labels can be written in comma-separated. Note that -leading and trailing spaces and successive spaces arround commas are ignored. If actually -plural labels are filled in, pertinent counters should be printed out in comma-separate -form in default. You can change this format flexibly with |\setrefstyle| command. - -\section{Setting Referece Style} - -The output format of reference commands can be customised with |\setrefstyle| command. -The syntax of |\setrefstyle| is shown bellow: -% -\begin{syntax} -|\setrefstyle{|\Meta{ref types}|}{|\Meta{options}|}| -\end{syntax} - -The |\setrefstyle| command can be used any place of {\LaTeX} document (not only preamble), -and change reference format locally. - -In \Meta{options}, you can set following parameters by key-value list: -% -\begin{description}[font=\normalfont] -\item[|refcmd=|\Meta{command}] -Specified \Meta{command} repeated for the number of labels which filled in \Meta{label list} -time. String |#1| in \Meta{command} may be replaced into appropriate label name. The default -value is |\ref{#1}|. -% -\item[|sep=|\Meta{command}] -Specified \Meta{command} is output as a separater of each |refcmd| when more than three -labels filled in \Meta{label list}. Notice that last one separater is given by |last sep|. -The default value is |{,\space}|. -% -\item[|last sep|(|=|\Meta{command})] -Specified \Meta{command} is output as a last separater when plura labels filled in -\Meta{label list}. Behind the |=| can be ommited, and in that case |last sep| is set -to identical value of |sep| (and this is the default). -% -\item[|prefix=|\Meta{command}] -Specified \Meta{command} put out first when referece command used. The default value is |{}|. -% -\item[|suffix=|\Meta{command}] -Specified \Meta{command} put out last when referece command used. The default value is |{}|. -\end{description} -% -Parameters which do not set explicitly will not be changed. - -\end{document} diff --git a/macros/latex/contrib/wtref/wtref-ja.pdf b/macros/latex/contrib/wtref/wtref-ja.pdf new file mode 100644 index 0000000000..587f6a731f Binary files /dev/null and b/macros/latex/contrib/wtref/wtref-ja.pdf differ diff --git a/macros/latex/contrib/wtref/wtref-ja.tex b/macros/latex/contrib/wtref/wtref-ja.tex new file mode 100644 index 0000000000..87e1189380 --- /dev/null +++ b/macros/latex/contrib/wtref/wtref-ja.tex @@ -0,0 +1,177 @@ +%#!uplatex +\documentclass[a4paper,uplatex]{jsarticle} + +\usepackage{otf} +\usepackage{enumitem} +\usepackage{shortvrb} +\usepackage[verb]{bxghost} + +\MakeShortVerb{\|} +\newcommand{\PkgName}[1]{\textsf{#1}} +\newcommand{\ThisPkg}{\PkgName{WTRef}} +\newcommand{\Meta}[1]{$\langle$\mbox{}\textit{#1}\mbox{}$\rangle$} +\newenvironment{syntax}{\begin{quote}\small}{\end{quote}} + +\title{\ThisPkg パッケージ (v0.4.0)} +\author{朝倉卓人 (wtsnjp)} + +\begin{document} + +\maketitle + +\begin{abstract} +WTシリーズは著者が\LaTeX 文書作成にあたってよく利用するマクロを集めたものである. +\ThisPkg パッケージはこのWTシリーズを構成するパッケージの1つであり,\LaTeX オリジナルの +相互参照機能を拡張してスコープの指定と名前空間の分離,参照形式の柔軟な指定を可能にする. +サポート対象は任意の\TeX エンジンと\LaTeXe の組み合わせで,動作には\PkgName{xparse}, +\PkgName{xkeyval}パッケージが必要である. +\end{abstract} + +\section{動作要件} + +\ThisPkg パッケージの動作要件は以下の通りである. +% +\begin{itemize} +\item \TeX エンジン:任意 +\item \TeX フォーマット:\LaTeXe +\item ドキュメントクラス:任意 +\item 依存パッケージ:\PkgName{xparse}, \PkgName{xkeyval} +\end{itemize} + +\section{パッケージ読み込み} + +読み込みには|\usepackage|命令を用いる.オプションは存在しない. +% +\begin{syntax} +|\usepackage{wtref}| +\end{syntax} + +\section{相互参照命令} + +\subsection{相互参照命令の新設} + +|\newref|命令を用いて相互参照に用いる2つの命令を新設することができる.この命令は +プリアンブルでのみ使用可能である. +% +\begin{syntax} +|\newref[|\Meta{options}|]{|\Meta{ref types}|}| +\end{syntax} + +上記書式中の\Meta{ref types}は\Meta{ref type}のカンマ区切りリストである.\Meta{ref type}は +制御綴に使用できる文字のみで構成された文字列で(半角英字のみにしておくことを推奨),空で +あってはならない.なお\Meta{ref types}の先頭・末尾およびカンマ前後の連続する空白は +すべて無視される. + +|\newref|命令は指定した\Meta{ref type}に応じて|\|\Meta{ref type}|label|, +|\|\Meta{ref type}|ref|という形をもつ,新しい2つの命令を定義する.ここで前者の命令を +\textbf{ラベル命令},後者の命令を\textbf{参照命令}と呼ぶことにする.|\newref|命令は同名の +命令が既に存在していても,その定義を上書きするので\Meta{ref type}は注意して選ぶ必要がある. + +また,\Meta{options}には以下の内容をkey-valueリストで指定可能である: +% +\begin{description}[font=\normalfont] +% +\item[|namespace=|\Meta{string}] +与えられた値を用いて\Meta{namespace}を``\Meta{string}|:|''に設定する.|namespace|キーも +|nonamespace|キーも指定しない場合,および|namespace|に与えた\Meta{string}が空文字列であった +場合\Meta{namespace}は``\Meta{ref type}|:|''に設定される. +% +\item[|nonamespace|] +このキーを指定すると,\Meta{namespace}は空となる.すなわち,名前空間機能を無効化できる. +なお,|nonamespace|キーに値を指定してもエラーにはならないが,単に無視される. +% +\item[|scope=|\Meta{counter}] +スコープとして利用するカウンタを指定する.\Meta{counter}には任意の\LaTeX カウンタを指定する +ことが可能だが,文書内で一意性のあるカウンタを指定することが望ましい.これにより\Meta{scope}は +``|\the|\Meta{counter}|:|''の形に設定される. +\end{description} +% +これらの設定は,\Meta{ref types}で指定したすべての\Meta{ref type}に対応する相互参照命令に +ついて適用される. + +ここで\Meta{options}に何も指定しない場合\Meta{namespace}は\Meta{ref type}が転用されて +``\Meta{ref type}|:|''の形となり\Meta{scope}は空に設定される.言い換えると,デフォルトでは +名前空間機能が有効,スコープ機能は無効に設定されている. + +\subsection{ラベル命令} + +\subsubsection{機能と使い方} + +ラベル命令はラベルを付けるときに用いる.使い方は\LaTeX の|\label|命令とまったく同様である. +以下にラベル命令の例|\exlabel|を用いるときの書式を示しておく. +% +\begin{syntax} +|\exlabel{|\Meta{label}|}| +\end{syntax} + +\subsubsection{内部処理} + +ラベル命令は最終的に次のような形に展開される. +% +\begin{syntax} +|\label{|\Meta{namespace}\Meta{scope}\Meta{label}|}| +\end{syntax} + +\subsection{参照命令} + +参照命令は対応するラベル命令によってラベル付けされた番号を,指定した書式で印字するための +命令である.例として|\exref|の使い方を以下に示す. +% +\begin{syntax} +|\exref[|\Meta{the scope}|]{|\Meta{label list}|}| +\end{syntax} + +参照するラベルが同じスコープ内に存在する場合は\Meta{the scope}は省略可能である. +\Meta{the scope}に参照先のスコープに対応する``|\the|\Meta{counter}''の出力を直接記入する +ことでスコープの範囲外からラベルを参照することが可能である.なお,スコープ機能が無効 +(|\newref|によって相互参照命令を定義する際に\Meta{options}で|scope|キーを指定しなかった +場合)のときは,\Meta{the scope}は常に無視される. + +また,引数にはカンマ区切りで複数の参照先ラベルを指定することが可能である. +\Meta{label list}の先頭・末尾およびカンマ前後の連続する空白はすべて無視される. +複数のラベルを指定した場合,デフォルトでは該当する番号がカンマ区切りで出力される. +この出力書式は後述する参照書式変更命令|\setrefstyle|を用いて柔軟にカスタマイズすることが +できる. + +\section{参照書式変更命令} + +|\setrefstyle|命令を用いると,参照命令による出力を柔軟にカスタマイズすることができる. +最初に|\setrefstyle|命令の書式を示しておく. +% +\begin{syntax} +|\setrefstyle{|\Meta{ref types}|}{|\Meta{options}|}| +\end{syntax} + +これにより\Meta{ref types}中に含まれる\Meta{ref type}に対応する参照命令が出力する内容の +書式を変更できる.この|\setrefstyle|命令はプリアンブルに限らず\LaTeX 文書ソース中全域で +使用可能であり,設定の有効範囲は|{|や|}|によるブロックの制御を受ける. + +\Meta{options}には以下の内容をkey-valueリストで指定可能である: +% +\begin{description}[font=\normalfont] +\item[|refcmd=|\Meta{command}] +\Meta{label list}に与えたラベルの数だけ,指定した\Meta{command}が繰り返し実行・印字される. +\Meta{command}中に記入された|#1|は適切に整形されたラベル名に置換される.規定値は|\ref{#1}|. +% +\item[|sep=|\Meta{command}] +\Meta{label list}に3つ以上のラベルが記入されているときに,|refcmd|の各出力の間に印字 +する区切りの内容を指定する.ただし,最後の区切りは|last sep|に指定した値となる. +規定値は|{,\space}|. +% +\item[|last sep|(|=|\Meta{command})] +\Meta{label list}に複数のラベルが記入されている際に出力される,最後の区切りを指定する. +|=|以降を記入せず,単に|last sep|と指定した場合,最後の区切りには|sep|の値が適用される. +規定値は値指定なし(つまり|sep|の値に従属). +% +\item[|prefix=|\Meta{command}] +参照命令を使用したとき,最初に実行・印字される内容を指定する. +規定値は|{}|. +% +\item[|suffix=|\Meta{command}] +参照命令を使用したとき,最後に実行・印字される内容を指定する. +規定値は|{}|. +\end{description} +% +これらの設定は,明示的に指定したもの以外はそれ以前の設定がそのまま引き継がれる. + +\end{document} diff --git a/macros/latex/contrib/wtref/wtref.pdf b/macros/latex/contrib/wtref/wtref.pdf new file mode 100644 index 0000000000..0022ff251b Binary files /dev/null and b/macros/latex/contrib/wtref/wtref.pdf differ diff --git a/macros/latex/contrib/wtref/wtref.sty b/macros/latex/contrib/wtref/wtref.sty index a196692ae3..856852d69d 100644 --- a/macros/latex/contrib/wtref/wtref.sty +++ b/macros/latex/contrib/wtref/wtref.sty @@ -1,12 +1,19 @@ -% -% wtref.sty -% +%% +%% This is file `wtref.sty'. +%% +%% Copyright 2016-2020 Takuto ASAKURA (wtsnjp) +%% GitHub: https://github.com/wtsnjp +%% Twitter: @wtsnjp +%% +%% This package is distributed under the MIT License. +%% % Package declaration \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{wtref}[2017/01/17 v0.3.2 Extend cross-reference system] +\ProvidesPackage{wtref} + [2020/06/15 v0.4.0 A small extension for LaTeX2e's cross-referencing] \def\wtrf@pkgname{WTRef} -\RequirePackage{xkeyval} +\RequirePackage{xparse,xkeyval} % Messages \def\wtrf@info{\PackageInfo\wtrf@pkgname} @@ -17,33 +24,37 @@ \newif\if@wtrf@use@scope@ \newif\if@wtrf@use@namespace@ \newif\if@wtrf@set@namespace@ -\newcount\wtrf@tempcnta -\newcount\wtrf@tempcntb % Utilities \def\wtrf@name@def#1{\expandafter\def\csname #1\endcsname} \def\wtrf@name@edef#1{\expandafter\edef\csname #1\endcsname} \def\wtrf@name@use#1{\csname #1\endcsname} -\def\wtrf@if@option@exists{\@ifnextchar[} \def\wtrf@if@reftype@not@exists#1{\@ifundefined{wtrf@#1@namespace}} % Check commands \def\wtrf@check@counter#1{% \@ifundefined{c@#1}{% \wtrf@error - {Undefined LaTeX counter '#1'} + {Undefined LaTeX counter `#1'} {Check the spelling or declare new LaTeX counter}% }{}} \def\wtrf@check@command#1{% \@ifundefined{#1}{}{% else - \wtrf@warn{Redefining \expandafter\string\csname#1\endcsname}}} + \wtrf@warn{Redefining \expandafter\string\csname #1\endcsname}}} % Trimming spaces -\def\wtrf@inner@setkeys#1{\setkeys[wtrf]{inner}{key=#1}} -\def\wtrf@trimming@spaces#1{% - \define@key[wtrf]{inner}{key}{\def#1{##1}}% - \expandafter\wtrf@inner@setkeys\expandafter{#1}% - \disable@keys[wtrf]{inner}{key}} +\@tempcnta=\catcode`\Q +\catcode`\Q=3 +\def\wtrf@trim@spaces#1{% + \romannumeral-`\q\wtrf@trim@trim@\noexpand#1Q Q} +\long\def\wtrf@trim@trim@#1 Q{\wtrf@trim@trim@@#1Q} +\long\def\wtrf@trim@trim@@#1Q#2{#1} +\catcode`\Q=\@tempcnta +\def\wtrf@trim@spaces@noexp#1{% + \unexpanded\expandafter\expandafter\expandafter + {\wtrf@trim@spaces{#1}}} +\def\wtrf@trim@spaces@in#1{% + \edef#1{\expandafter\wtrf@trim@spaces@noexp\expandafter{#1}}} % Define keys for \newref command \define@key[wtrf]{ns}{namespace}{% @@ -56,33 +67,29 @@ \@wtrf@use@scope@true \def\wtrf@scope@temp{#1}} -% Define \newref command -\newcommand{\newref}{% +% Defining the \newref command +\NewDocumentCommand{\newref}{om}{% \let\wtrf@namespace@temp\@empty \@wtrf@use@namespace@true \@wtrf@set@namespace@false \@wtrf@use@scope@false - \wtrf@if@option@exists - {\wtrf@set@namespace} - {\wtrf@@newref}} + \IfNoValueF{#1}{\setkeys[wtrf]{ns}{#1}}% + \wtrf@@newref{#2}} \@onlypreamble\newref -\def\wtrf@set@namespace[#1]{% - \setkeys[wtrf]{ns}{#1}% - \wtrf@@newref} \def\wtrf@@newref#1{% \@for\wtrf@temp@ref@type:=#1\do{% - \wtrf@trimming@spaces\wtrf@temp@ref@type + \wtrf@trim@spaces@in\wtrf@temp@ref@type \expandafter\wtrf@newref@pre\expandafter{\wtrf@temp@ref@type}}} \def\wtrf@newref@pre#1{% \wtrf@if@reftype@not@exists{#1}{% \wtrf@newref{#1}% }{% else \wtrf@error - {ref type '#1' already exists} + {ref type `#1' already exists} {You can declare ref type only once}% }} \def\wtrf@newref#1{% - % define namespace + % namespace \if@wtrf@use@namespace@ \ifx\wtrf@namespace@temp\@empty \@wtrf@set@namespace@false @@ -92,7 +99,7 @@ \else \wtrf@name@def{wtrf@#1@namespace}{}% \fi - % define scope + % scope \if@wtrf@use@scope@ \wtrf@name@edef{wtrf@#1@scope@cmd}{the\wtrf@scope@temp}% \wtrf@name@def{wtrf@#1@scope}{\csname\wtrf@name@use{wtrf@#1@scope@cmd}\endcsname:}% @@ -109,71 +116,67 @@ refcmd=\ref{##1}, sep={,\space}, last sep, prefix={}, suffix={}}% - % define label command + % the \label-like command \wtrf@check@command{#1label}% - \wtrf@name@def{#1label}{\protect\wtrf@name@use{wtrf@#1label}} - \wtrf@name@def{wtrf@#1label}##1{% + \expandafter\DeclareExpandableDocumentCommand\csname #1label\endcsname{m}{% \label{\wtrf@name@use{wtrf@#1@namespace}\wtrf@name@use{wtrf@#1@scope}##1}}% - % define ref command + % the \ref-like command \wtrf@check@command{#1ref}% - \wtrf@name@def{#1ref}{\protect\wtrf@name@use{wtrf@#1ref}} - \wtrf@name@def{wtrf@#1ref}{% - \wtrf@if@option@exists - {\wtrf@name@use{wtrf@#1ref@with@option}} - {\def\wtrf@scope{\wtrf@name@use{wtrf@#1@scope}}\wtrf@name@use{wtrf@#1@print}}}% - % when option exists - \if@wtrf@use@scope@ - \wtrf@name@def{wtrf@#1ref@with@option}[##1]##2{% - \def\wtrf@scope{##1:}% - \wtrf@name@use{wtrf@#1@print}{##2}}% - \else - \wtrf@name@def{wtrf@#1ref@with@option}[##1]##2{% - \let\wtrf@scope\@empty - \wtrf@name@use{wtrf@#1@print}{##2}}% - \fi - % print refs - \wtrf@name@def{wtrf@#1@print}##1{% - \wtrf@tempcnta\z@ - \@for\wtrf@member:=##1\do{\advance\wtrf@tempcnta\@ne}% - \ifnum\wtrf@tempcnta<\tw@ - \wtrf@name@use{wtrf@#1@prefix}% - \wtrf@name@use{wtrf@#1@refcmd}{% - \wtrf@name@use{wtrf@#1@namespace}\wtrf@scope##1}% - \wtrf@name@use{wtrf@#1@suffix}% + \expandafter\DeclareExpandableDocumentCommand\csname #1ref\endcsname{om}{% + \if@wtrf@use@scope@ + \IfNoValueTF{##1} + {\wtrf@name@use{wtrf@#1ref}{\wtrf@name@use{wtrf@#1@scope}}{##2}} + {\wtrf@name@use{wtrf@#1ref}{##1:}{##2}}% \else - \wtrf@tempcntb\@ne - \advance\wtrf@tempcnta\m@ne - \wtrf@name@use{wtrf@#1@prefix}% - \@for\wtrf@temp@label:=##1\do{% - \wtrf@trimming@spaces\wtrf@temp@label - \wtrf@name@use{wtrf@#1@refcmd}{% - \wtrf@name@use{wtrf@#1@namespace}\wtrf@scope\wtrf@temp@label}% - \ifnum\wtrf@tempcnta>\wtrf@tempcntb - \wtrf@name@use{wtrf@#1@sep}% - \else\ifnum\wtrf@tempcnta=\wtrf@tempcntb - \wtrf@name@use{wtrf@#1@last@sep}% - \fi\fi - \advance\wtrf@tempcntb\@ne}% - \wtrf@name@use{wtrf@#1@suffix}% - \fi}% + \wtrf@name@use{wtrf@#1ref}{}{##2}% + \fi} + % construction + \wtrf@name@def{wtrf@#1ref}##1##2{% + \wtrf@name@use{wtrf@#1@prefix}% + \wtrf@construct##2,\wtrf@qmark\wtrf@nil{##1}{#1}% + \wtrf@name@use{wtrf@#1@suffix}} % reset \wtrf@namespace@temp \if@wtrf@set@namespace@\else \let\wtrf@namespace@temp\@empty \fi} -% Define \setrefstyle command -\newcommand{\setrefstyle}[2]{% +% The constructer for \ref-like commands +\def\wtrf@qmark{\wtrf@qmark} +\def\wtrf@head#1#2\wtrf@nil{#1} +%% \wtrf@construct,\wtrf@nil{}{} +\def\wtrf@construct#1,#2\wtrf@nil#3#4{% + \wtrf@name@use{wtrf@#4@refcmd}{% + \wtrf@name@use{wtrf@#4@namespace}#3\wtrf@trim@spaces@noexp{#1}}% + \expandafter\ifx\wtrf@head#2\wtrf@nil\wtrf@qmark\else + \wtrf@construct@#2,\wtrf@qmark\wtrf@nil{#3}{#4}% + \fi} +\def\wtrf@construct@#1,#2\wtrf@nil#3#4{% + \expandafter\ifx\wtrf@head#2\wtrf@nil\wtrf@qmark + \wtrf@name@use{wtrf@#4@last@sep}% + \wtrf@name@use{wtrf@#4@refcmd}{% + \wtrf@name@use{wtrf@#4@namespace}#3\wtrf@trim@spaces@noexp{#1}}% + \else + \wtrf@name@use{wtrf@#4@sep}% + \wtrf@name@use{wtrf@#4@refcmd}{% + \wtrf@name@use{wtrf@#4@namespace}#3\wtrf@trim@spaces@noexp{#1}}% + \wtrf@construct@#2,\wtrf@qmark\wtrf@nil{#3}{#4}% + \fi} + +% Defining \setrefstyle command +\NewDocumentCommand{\setrefstyle}{mm}{% \@for\wtrf@temp@ref@type:=#1\do{% - \wtrf@trimming@spaces\wtrf@temp@ref@type + \wtrf@trim@spaces@in\wtrf@temp@ref@type \expandafter\wtrf@setrefstyle\expandafter{\wtrf@temp@ref@type}{#2}}} \def\wtrf@setrefstyle#1#2{% \wtrf@if@reftype@not@exists{#1}{% \wtrf@error - {ref type '#1' does not exist} - {You can declare ref type only once}% + {ref type `#1' does not exist} + {Declare ref type before using it}% }{% else \setkeys[wtrf]{#1-style}{#2}% }} -% EOF +% All done \endinput + +%% EOF diff --git a/macros/latex/contrib/wtref/wtref.tex b/macros/latex/contrib/wtref/wtref.tex new file mode 100644 index 0000000000..bfd9bfa913 --- /dev/null +++ b/macros/latex/contrib/wtref/wtref.tex @@ -0,0 +1,173 @@ +%#!pdflatex +\documentclass[a4paper]{article} + +\usepackage{enumitem} +\usepackage{shortvrb} + +\MakeShortVerb{\|} +\newcommand{\PkgName}[1]{\textsf{#1}} +\newcommand{\ThisPkg}{\PkgName{WTRef}} +\newcommand{\Meta}[1]{$\langle$\mbox{}\textit{#1}\mbox{}$\rangle$} +\newenvironment{syntax}{\begin{quote}\small}{\end{quote}} + +\title{The {\ThisPkg} Package (v0.4.0)} +\author{Takuto ASAKURA (wtsnjp)} + +\begin{document} + +\maketitle + +\begin{abstract} +WT Series collects macros which are useful to create {\LaTeX} documents. +{\ThisPkg} package is a part of this WT Series that extends cross-reference +system of {\LaTeX}. It makes enable to divide namespace and scope, further +arrows users to customise reference formats. {\LaTeXe} on any kind of {\TeX} +engine is supported. The package requires Package \PkgName{xparse} and +\PkgName{xkeyval}. +\end{abstract} + +\section{System Requirements} + +System requirements of {\ThisPkg} are shown bellow: +% +\begin{itemize} +\item {\TeX} engine: any engine +\item {\TeX} format: \LaTeXe +\item Document class: any class +\item Required packages: \PkgName{xparse} and \PkgName{xkeyval} +\end{itemize} + +\section{Loading the {\ThisPkg} Package} + +To use {\ThisPkg} package, load \texttt{wtref.sty} file with |\usepackage| command in preamble. +No package option is available. +% +\begin{syntax} +|\usepackage{wtref}| +\end{syntax} + +\section{Cross-Reference Commands} + +\subsection{Definition of New Cross-Reference Commands} + +|\newref| command creates a set of cross-reference commands. This command can only be used +in preamble. +% +\begin{syntax} +|\newref[|\Meta{options}|]{|\Meta{ref types}|}| +\end{syntax} +% +\Meta{ref types} are comma-separated list of \Meta{ref type}. All characters of \Meta{ref type} +must be able to use in control sequence (only ordinary alphabet is recommended) and can not be +empty. Notice that leading and trailing spaces and successive spaces arround commas are ignored. + +|\newref| command defines two commands: |\|\Meta{ref type}|label|, |\|\Meta{ref type}|ref|. +In this document, the formar are called \textbf{label commands} and the latter are called +\textbf{reference commands}. |\newref| command overwrites existing commands, so \Meta{ref name} +should be decided carefully. + +In \Meta{options}, you can set following parameters by key-value list: +% +\begin{description}[font=\normalfont] +\item[|namespace=|\Meta{string}] +Set \Meta{namespace} to ``\Meta{string}:''. If neither |namespace| nor |nonamespace| are +specified, or in case \Meta{string} of |namespace| is empty, \Meta{namespace} is set to +``\Meta{ref type}:''. +% +\item[|nonamespace|] +Set \Meta{namespace} to empty. That is to say, invalidation of function that dividing +namespace. It should be noted that you can specify value for |nonamespace| and that +will not make any errors, but the value will simply be ignored. +% +\item[|scope=|\Meta{counter}] +Specify counter which used as scope. You can specify any {\LaTeX} counter to \Meta{counter} +but one which has uniqueness in a document is desirable. This key sets \Meta{scope} to +``|\the|\Meta{counter}:''. +\end{description} +% +These optional settings apply to all cross-referece commands relate to \Meta{ref type} +in specified \Meta{ref types}. + +Identically, if any keys do not specified in \Meta{options}, \Meta{namespace} is set to +``\Meta{ref type}'' and \Meta{scope} is set to empty. In other words, the function of +namespace is active and function of scope is inactive as default. + +\subsection{Label Commands} + +\subsubsection{Function and Usage} + +Label commands are used to create new labels. Usage of those are same to |\label| command +of standard {\LaTeX}. Usage of |\exlabel| is shown bellow as an example: +% +\begin{syntax} +|\exlabel{|\Meta{label}|}| +\end{syntax} + +\subsubsection{Internal Processing} + +Label commands finaly are expanded to following format: +% +\begin{syntax} +|\label{|\Meta{namespace}\Meta{scope}\Meta{label}|}| +\end{syntax} + +\subsection{Reference Commands} + +Reference commands print contents of counters which labeled by label commands in specified +formats. Usage of |\exref| is shown bellow as an example: +% +\begin{syntax} +|\exref[|\Meta{the scope}|]{|\Meta{label list}|}| +\end{syntax} + +The option argument \Meta{the scope} can be ommited when refering label exists in the +same scope. You can refer outside of scope by writing down the output of proper +|\the|\Meta{counter}. Notice that if the function of scope is inactive +(i.e. in case |scope| key does not specified in \Meta{options} of |\newref|), this argument +is always unnecessary, and in other words it will be ignored all the time. + +In argument \Meta{label list}, plural labels can be written in comma-separated. Note that +leading and trailing spaces and successive spaces arround commas are ignored. If actually +plural labels are filled in, pertinent counters should be printed out in comma-separate +form in default. You can change this format flexibly with |\setrefstyle| command. + +\section{Setting Referece Style} + +The output format of reference commands can be customised with |\setrefstyle| command. +The syntax of |\setrefstyle| is shown bellow: +% +\begin{syntax} +|\setrefstyle{|\Meta{ref types}|}{|\Meta{options}|}| +\end{syntax} + +The |\setrefstyle| command can be used any place of {\LaTeX} document (not only preamble), +and change reference format locally. + +In \Meta{options}, you can set following parameters by key-value list: +% +\begin{description}[font=\normalfont] +\item[|refcmd=|\Meta{command}] +Specified \Meta{command} repeated for the number of labels which filled in \Meta{label list} +time. String |#1| in \Meta{command} may be replaced into appropriate label name. The default +value is |\ref{#1}|. +% +\item[|sep=|\Meta{command}] +Specified \Meta{command} is output as a separater of each |refcmd| when more than three +labels filled in \Meta{label list}. Notice that last one separater is given by |last sep|. +The default value is |{,\space}|. +% +\item[|last sep|(|=|\Meta{command})] +Specified \Meta{command} is output as a last separater when plura labels filled in +\Meta{label list}. Behind the |=| can be ommited, and in that case |last sep| is set +to identical value of |sep| (and this is the default). +% +\item[|prefix=|\Meta{command}] +Specified \Meta{command} put out first when referece command used. The default value is |{}|. +% +\item[|suffix=|\Meta{command}] +Specified \Meta{command} put out last when referece command used. The default value is |{}|. +\end{description} +% +Parameters which do not set explicitly will not be changed. + +\end{document} -- cgit v1.2.3