diff options
author | Norbert Preining <norbert@preining.info> | 2018-06-11 12:19:19 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2018-06-11 12:19:19 +0900 |
commit | 17e285e7733468f00b6e8d096fdd7ffe818f09c8 (patch) | |
tree | bb187730b3d22ed29ef7e36594f2fb4bf867e437 /texmf-dist/source/latex/acrotex/eforms.dtx | |
parent | 147631b4e676c1f18156ef3dcdee9a5838c0d93d (diff) |
acrotex update
Diffstat (limited to 'texmf-dist/source/latex/acrotex/eforms.dtx')
-rw-r--r-- | texmf-dist/source/latex/acrotex/eforms.dtx | 501 |
1 files changed, 464 insertions, 37 deletions
diff --git a/texmf-dist/source/latex/acrotex/eforms.dtx b/texmf-dist/source/latex/acrotex/eforms.dtx index 7f949e23..0c5a49da 100644 --- a/texmf-dist/source/latex/acrotex/eforms.dtx +++ b/texmf-dist/source/latex/acrotex/eforms.dtx @@ -4,7 +4,7 @@ %<*copyright> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% eForms package, %% -%% Copyright (C) 2002-2017 D. P. Story %% +%% Copyright (C) 2002-2018 D. P. Story %% %% dpstory@uakron.edu %% %% %% %% This program can redistributed and/or modified under %% @@ -16,15 +16,25 @@ %</copyright> %<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{eforms} -%<package> [2017/02/27 v2.9l Provides general eforms support (dps)] +%<package> [2018/03/22 v2.9.19 Provides general eforms support (dps)] %<*driver> \documentclass{ltxdoc} -\usepackage[colorlinks,hyperindex=false]{hyperref}[2012/10/12] % to support calculate for pdfyrc +\usepackage[colorlinks,hyperindex=false]{hyperref}[2012/10/12] \pdfstringdefDisableCommands{\let\\\textbackslash} \OnlyDescription \EnableCrossrefs \CodelineIndex \RecordChanges +\bgroup\ttfamily +\gdef\brpr#1{\char123\relax#1\char125\relax}\egroup +\let\darg\brpr +\let\env\texttt +\let\opt\texttt +\let\app\textsf +\def\visispace{\symbol{32}} +\def\ameta#1{\ensuremath{\langle\textit{\texttt{#1}}\rangle}} +\def\meta#1{\textsl{\texttt{#1}}} +\def\SUB#1{\ensuremath{{}_{\mbox{\scriptsize\ttfamily#1}}}} \def\ltag{<}\def\rtag{>} \let\app\textsf\let\pkg\textsf \InputIfFileExists{aebdocfmt.def}{\PackageInfo{eforms}{Inputting aebdocfmt.def}} @@ -80,9 +90,11 @@ % Set the driver dependent code for the |quiz| environments. % % \changes{v2.5o}{2012/06/18}{Added required package \string\textsf{ifpdf}} +% \changes{v2.9m}{2017/09/03}{Added the ifluatex package} % \begin{macrocode} \RequirePackage{ifpdf}[2006/02/20] \RequirePackage{ifxetex}[2006/08/21] +\RequirePackage{ifluatex} % \end{macrocode} % \changes{v2.6c}{2014/02/18}{Added the \string\textsf{calc} package as required package.} % \begin{macrocode} @@ -117,6 +129,14 @@ % \PassOptionsToPackage{pdftex}{insdljs} % \PassOptionsToPackage{pdftex}{hyperref} } +% \end{macrocode} +% Added \textsf{luatex} option +% \changes{v2.9m}{2017/09/03}{Add luatex option} +% \begin{macrocode} +\DeclareOption{luatex}{% + \def\eq@drivernum{1}\def\eq@driver{luatex}% + \def\eq@drivercode{epdftex.def}\def\ef@driver{luatex}% +} % \end{macrocode}% % Set the drivers for \texttt{dvipdfm}\IndexOpt{dvipdfm}. \texttt{dvipdfmx}\IndexOpt{dvipdfmx}, % and \texttt{xetex}\IndexOpt{xetex}. @@ -205,6 +225,7 @@ \let\inputCalcOrderJS\relax % \end{macrocode} % \changes{v2.5o}{2012/06/18}{Added automatic test for \string\textsf{pdftex}.} +% \changes{v2.9m}{2017/09/03}{Added a check for \string\textsf{lualtex}} % \begin{macrocode} \@ifpackageloaded{web}{% \ExecuteOptions{\eq@driver@name}% @@ -212,10 +233,11 @@ \@ifpackageloaded{exerquiz}{% \ExecuteOptions{\eq@driver}% }{% + \ifluatex\ExecuteOptions{luatex}\else \ifpdf\ExecuteOptions{pdftex}\else \ifxetex\ExecuteOptions{xetex}\else \@ifundefined{l@tex@@@@driver}{\ExecuteOptions{dvips}} - {\ExecuteOptions{dvipsone}}\fi\fi + {\ExecuteOptions{dvipsone}}\fi\fi\fi }% } % \end{macrocode} @@ -292,6 +314,7 @@ \@ifundefined{eq@tmpdima}{\newdimen\eq@tmpdima}{} \@ifundefined{eq@tmpdimb}{\newdimen\eq@tmpdimb}{} \newlength\ef@dimena +\newtoks\ef@scratchtoks % \end{macrocode} % (2016/12/22) Added switches \cs{ifmakeXasPD} and \cs{ifmakePDasX}, if true, the form fields created % by \app{xetex} (\app{pdflatex/Distiller}) @@ -312,12 +335,16 @@ % \DescribeMacro\previewColor sets the color of the preview bounding rectangle. The % default is black. Used mostly by the \textsf{eqexam} package with the \texttt{online} % option. -% \begin{macrocode} -\providecommand\previewColor{black} -\def\ef@Bbox#1#2{% - \hbox{\ifpreview\setlength\fboxrule{0.4pt}\setlength\fboxsep{0pt}% +% \changes{v2.9o}{2017/10/10}{Removed \string\cs{previewColor} in favor of +% \string\cs{ckboxColor}} +% \begin{macrocode} +\providecommand\ckboxColor[1]{\def\@rgi{#1}\ifx\@rgi\@empty + \let\ckbox@Color\relax\else + \def\ckbox@Color{\color{#1}}\fi}\let\ckbox@Color\relax +\def\ef@Bbox#1#2{\hbox{\ifpreview + \setlength\fboxrule{0.4pt}\setlength\fboxsep{0pt}% \@tempdima=#1\advance\@tempdima by-\fboxrule - \@tempdimb=#2\advance\@tempdimb by-\fboxrule\color{\previewColor}% + \@tempdimb=#2\advance\@tempdimb by-\fboxrule \ckbox@Color \fbox{\parbox[b][\@tempdimb][c]{\@tempdima}{\hfill\vfill}}\else \parbox[b][#2][c]{#1}{\hfill\vfill}\fi}% } @@ -663,8 +690,9 @@ % \cs{mlhypertext}. % \begin{macrocode} \def\ef@searchmlLink#1\mlLink#2#3\@nil{\def\ef@argii{#2}% - \ifx\ef@argii\ef@end\let\ef@mlLink=0\else - \ifx\ef@argii\ef@true\let\ef@mlLink=1\else\let\ef@mlLink=0\fi\fi} + \ifx\ef@argii\ef@end\let\ef@mlLink\ef@Zero\else + \ifx\ef@argii\ef@true\let\ef@mlLink\ef@One\else + \let\ef@mlLink\ef@Zero\fi\fi} % \end{macrocode} % Search for \texttt{/GoToR}, if found, change the link color to |\@filecolor| % \begin{macrocode} @@ -732,7 +760,7 @@ % \cs{mlhypertext} from \texttt{aeb\_mlink}, if that package is loaded. % \begin{macrocode} \def\@eqmlLink#1{\def\eq@arg{#1}\ifx\eq@arg\ef@true - \let\ef@mlLink=1\else\let\ef@mlLink=0\fi} + \let\ef@mlLink\ef@One\else\let\ef@mlLink\ef@Zero\fi} % \end{macrocode} % \DescribeMacro{\Lock} The Lock key is used with signature fields, currently, there is % no nice user interface to this key. Typical entries are @@ -1341,7 +1369,7 @@ \fi\fi} \let\autoCenter\ef@y % \end{macrocode} -% \DescribeMacro{\inline} The if |\inline{y}|, then we attempt to +% \DescribeMacro{\inline} If |\inline{y}|, then we attempt to % get a better vertical positioning. Designed for inline form fields. % \changes{v2.5h}{2012/11/17}{Introduce the \string\cs{inline} key designed for % inline form fields.} @@ -1381,24 +1409,367 @@ \edef\symbol@choice{\csname eq@#1\endcsname}\fi } % \end{macrocode} +%\DescribeMacro{\mlfix} When set to \texttt{y}, contiguous boxes are combined. This is for +%multi-line hyperlinks. Recognizable values are \texttt{y} and \texttt{n}. contiguous boxes +%are combined by default. There are command versions of \cs{mlfix}, these are +%\DescribeMacro{\mlfixOn} and \DescribeMacro{\mlfixOff} +%\changes{v2.9.16}{2018/03/08}{Added \string\cs{mlfix} for multiline links} +%\changes{v2.9.19}{2018/03/22}{Added \string\cs{relax} following width dimension +% in \string\cs{@eqmlstrut}} +% \begin{macrocode} +\newif\iffixmlinks \fixmlinkstrue +\def\mlfixOn{\fixmlinkstrue} +\def\mlfixOff{\fixmlinksfalse} +\def\@eqmlfix#1{\def\ef@arg{#1}\ifx\ef@arg\ef@y + \mlfixOn\else\ifx\ef@arg\ef@n + \mlfixOff\else\mlfixOn + \PackageWarning{eforms}{The value of '#1' is not a + supported value\MessageBreak for \string\mlfix.\MessageBreak + Using the default of 'y'}% + \fi\fi} +\newbox\mlstrutbox +% \end{macrocode} +% \DescribeMacro{\mlstrut}\hskip-\marginparsep\texttt{\darg{\ameta{strut-amt}}} +% (2018/03/22) \cs{mlstrut} is used to adjust the height of a multi-line link, +% e.g., \verb!\mlstrut{\large\strut}! +% \changes{v2.9.19}{2018/03/22}{Added \string\cs{mlstrut} used +% to adjust the height of a multi-line link} +% \begin{macrocode} +\def\@eqmlstrut#1{\setbox\mlstrutbox\hbox{#1}% + \def\ml@strut{\vrule \@height\ht\mlstrutbox + \@depth\dp\mlstrutbox + \@width\z@\relax}} +\def\ml@strut{\relax\ifmmode\copy\mlstrutbox\else + \unhbox\mlstrutbox\fi} +\@eqmlstrut{\strut} +% \end{macrocode} +% \DescribeMacro{\mlcrackat}\hskip-\marginparsep\texttt{\darg{\ameta{num}}} +% (2018/03/22) \cs{mlcrackat} is a link used to break a multi-line link across a page boundary; +% specifying \verb~\mlcrackat{3}~ breaks the link after the 3rd syllable. The \pkg{aeb\_mlink} +% package then creates two links consisting of the text up to and including the crack-at value and +% the second link consisting of the rest of the hypertext link (or url) string. +% \changes{v2.9.19}{2018/03/22}{Added \string\cs{mlcrackat}} +% \begin{macrocode} +\def\@eqmlcrackat#1{\def\eq@mlcrackat{#1}} +\let\eq@mlcrackat\@empty +% \end{macrocode} +% \DescribeMacro{\mlhyph}\hskip-\marginparsep\texttt{\darg{}} +% (2018/03/22) \cs{mlhyph} is used to add a hyphen when a multi-line link is cracked +% using \cs{mlcrackat}. The default is that no hyphen is produced. +% \changes{v2.9.19}{2018/03/22}{Added \string\cs{mlhyph}} +% \begin{macrocode} +\def\@eqmlhyph#1{\def\ef@arg{#1}\ifx\ef@arg\ef@y + \def\eq@mlhyph{-}\else\ifx\ef@arg\ef@n + \let\eq@mlhyph\@empty\else\let\eq@mlhyph\@empty + \PackageWarning{eforms}{The value of '#1' is not a + supported value\MessageBreak for \string\mlhyph.\MessageBreak + Using the default of 'n'}\fi\fi} +\let\eq@mlhyph\@empty +% \end{macrocode} +% \DescribeMacro{\mlignore}\hskip-\marginparsep\texttt{\darg{}} +% (2018/03/22) \cs{mlignore} is an internal option used when breaking apart +% two multi-line links; not used with urls. +% \changes{v2.9.19}{2018/03/22}{Added \string\cs{mlignore}} +% \begin{macrocode} +\def\@eqmlignore#1{\let\eq@mlignore\ef@YES} +\let\eq@mlignore\ef@NO +% \end{macrocode} +% \begin{macrocode} +\def\@eqmlcrackinsat#1{\def\eq@mlcrackinsat{#1}} +\let\eq@mlcrackinsat\@empty +% \end{macrocode} % \DescribeMacro{\protect} A protect feature for protecting a key from begin changed % by the user through the optional arguments. % \begin{macrocode} \def\eq@protect#1{\let#1\@empty} % \end{macrocode} -% % \subsubsection{Support for Hex escapes in PDF names} +% \changes{v2.9p}{2017/10/10}{rework the support for Hex escapes in PDF names} % \begin{macrocode} \begingroup\catcode`\#=12 \catcode`*=6 -\gdef\HEXNAME{efHex} -\ifpdfmarkup\gdef\ef@Hx*1*2{\@nameuse{efHex*1*2}}\else -\gdef\ef@Hx*1*2{#*1*2}\fi + \ifpdfmarkup + \gdef\ef@Hx*1*2{\@nameuse{efHex*1*2}}\else + \gdef\ef@Hx*1*2{\@nameuse{efHex*1*2}}\fi \endgroup +\def\efHxError{\PackageError{eforms}{The glyph is not supported}{}} +\def\HGERROR{efHxError} \ifpdfmarkup -\def\HexGlyph#1#2{\global\@namedef{efHex#1}{#2}} + \def\HexGlyph#1#2{\def\arg@ii{#2}\ifx\arg@ii\HGERROR + \global\@namedef{efHex#1}{\csname#2\endcsname}\else + \global\@namedef{efHex#1}{\expandafter + \string\csname#2\endcsname}\fi} +\else + \begingroup\catcode`\#=12 \catcode`*=6 + \gdef\HexGlyph*1*2{\def\arg@ii{*2}\ifx\arg@ii\HGERROR + \global\@namedef{efHex*1}{\csname*2\endcsname}\else + \global\@namedef{efHex*1}{#*1}\fi} + \endgroup +\fi \def\ef@inputPDFHEX{\InputIfFileExists{pdfdochex.def} - {\typeout{Inputtingpdfdochex.def}}{}} -\expandafter\ef@inputPDFHEX\fi + {\PackageInfo{eforms}{Inputting pdfdochex.def}}{}} +\AtEndOfPackage{\ef@inputPDFHEX} +%</package> +%<*hexoctcodes> +% begin C0 Controls (U000.pdf) http://www.unicode.org/charts/PDF/ +\HexGlyph{00}{efHxError}%{000} +\HexGlyph{01}{efHxError}%{001} +\HexGlyph{02}{efHxError}%{002} +\HexGlyph{03}{efHxError}%{003} +\HexGlyph{04}{efHxError}%{004} +\HexGlyph{05}{efHxError}%{005} +\HexGlyph{06}{efHxError}%{006} +\HexGlyph{07}{efHxError}%{006} +\HexGlyph{08}{efHxError}%{008} +\HexGlyph{09}{efHxError}%{009} +\HexGlyph{0A}{efHxError}%{012} +\HexGlyph{0B}{efHxError}%{013} +\HexGlyph{0C}{efHxError}%{014} +\HexGlyph{0D}{efHxError}%{015} +\HexGlyph{0E}{efHxError}%{016} +\HexGlyph{0F}{efHxError}%{017} +\HexGlyph{10}{efHxError}%{020} +\HexGlyph{11}{efHxError}%{021} +\HexGlyph{12}{efHxError}%{022} +\HexGlyph{13}{efHxError}%{023} +\HexGlyph{14}{efHxError}%{024} +\HexGlyph{15}{efHxError}%{025} +\HexGlyph{16}{efHxError}%{026} +\HexGlyph{17}{efHxError}%{027} +% end C0 Controls (U000.pdf) +\HexGlyph{18}{030}% U+02D8 BREVE +\HexGlyph{19}{031}% U+02c7 CARON +\HexGlyph{1A}{032}% U+02c6 MODIFIER LETTER CIRCUMFLEX ACCENT +\HexGlyph{1B}{033}% U+02D9 DOT ABOVE +\HexGlyph{1C}{034}% U+02DD DOUBLE ACUTE ACCENT +\HexGlyph{1D}{035}% U+02DB OGONEK +\HexGlyph{1E}{036}% U+02DA RING ABOVEZ +\HexGlyph{1F}{037}% U+02DC SMALL TILDE +\HexGlyph{20}{040}% U+0020 SPACE +\HexGlyph{21}{041}% U+0021 EXCLAMATION MARK +\HexGlyph{22}{042}% U+0022 QUOTATION MARK +\HexGlyph{23}{043}% U+0022 NUMBER SIGN +\HexGlyph{24}{044}% U+0023 DOLLAR SIGN +\HexGlyph{25}{045}% U+002 PERCENT SIGN +\HexGlyph{26}{046}% U+0026 AMPERSAND +\HexGlyph{27}{047}% U+0027 APOSTROPHE +\HexGlyph{28}{050}% U+0028 LEFT PARENTHESIS +\HexGlyph{29}{051}% U+0029 RIGHT PAENTHESIS +\HexGlyph{2A}{052}% U+002A ASTERISK +\HexGlyph{2B}{053}% U+002B PLUS SIGN +\HexGlyph{2C}{054}% U+002C COMMA +\HexGlyph{2D}{055}% U+002D HYPHEN-MINUS +\HexGlyph{2E}{056}% U+002E FULL STOP +\HexGlyph{2F}{057}% U+002F SOLIDUS +\HexGlyph{30}{060}% U+0030 ZERO +\HexGlyph{31}{061}% U+0031 ONE +\HexGlyph{32}{062}% U+0032 TWO +\HexGlyph{33}{063}% U+0033 THREE +\HexGlyph{34}{064}% U+0034 FOUR +\HexGlyph{35}{065}% U+0035 FIVE +\HexGlyph{36}{066}% U+0036 SIX +\HexGlyph{37}{067}% U+0037 SEVEN +\HexGlyph{38}{070}% U+0038 EIGHT +\HexGlyph{39}{071}% U+0039 NINE +\HexGlyph{3A}{072}% U+003A COLON +\HexGlyph{3B}{073}% U+003B SEMICOLON +\HexGlyph{3C}{074}% U+003C LESS-THAN SIGN +\HexGlyph{3D}{075}% U+003D EQUALS SIGN +\HexGlyph{3E}{076}% U+003E GREATER-THAN SIGN +\HexGlyph{3F}{077}% U+003F QUESTION MARK +\HexGlyph{40}{100}% U+0040 COMMERCIAL AT +\HexGlyph{41}{101}% U+0041 CAPITAL LETTER A +\HexGlyph{42}{102}% U+0042 B +\HexGlyph{43}{103}% U+0043 C +\HexGlyph{44}{104}% U+0044 D +\HexGlyph{45}{105}% U+0045 E +\HexGlyph{46}{106}% U+0046 F +\HexGlyph{47}{107}% U+0047 G +\HexGlyph{48}{110}% U+0048 H +\HexGlyph{49}{111}% U+0049 I +\HexGlyph{4A}{112}% U+004A J +\HexGlyph{4B}{113}% U+004B K +\HexGlyph{4C}{114}% U+004C L +\HexGlyph{4D}{115}% U+004D M +\HexGlyph{4E}{116}% U+004E N +\HexGlyph{4F}{117}% U+004F O +\HexGlyph{50}{120}% U+0050 P +\HexGlyph{51}{121}% U+0051 Q +\HexGlyph{52}{122}% U+0052 R +\HexGlyph{53}{123}% U+0053 S +\HexGlyph{54}{124}% U+0054 T +\HexGlyph{55}{125}% U+0055 U +\HexGlyph{56}{126}% U+0056 V +\HexGlyph{57}{127}% U+0057 W +\HexGlyph{58}{130}% U+0058 X +\HexGlyph{59}{131}% U+0059 Y +\HexGlyph{5A}{132}% U+005A Z +\HexGlyph{5B}{133}% U+005B LEFT SQUARE BRACKET +\HexGlyph{5C}{134}% U+005C REVERSE SOLIDUS (BACKSLASH) +\HexGlyph{5D}{135}% U+005D RIGHT SQUARE BRACKET +\HexGlyph{5E}{136}% U+005E CIRCUMFLEX ACCENT +\HexGlyph{5F}{137}% U+005F LOW LINE +\HexGlyph{60}{140}% U+0060 GRAVE ACCENT +\HexGlyph{61}{141}% U+0061 LATIN SMALL LETTER a +\HexGlyph{62}{142}% U+0062 b +\HexGlyph{63}{143}% U+0063 c +\HexGlyph{64}{144}% U+0064 d +\HexGlyph{65}{145}% U+0065 e +\HexGlyph{66}{146}% U+0066 f +\HexGlyph{67}{147}% U+0067 g +\HexGlyph{68}{150}% U+0068 h +\HexGlyph{69}{151}% U+0069 i +\HexGlyph{6A}{152}% U+006A j +\HexGlyph{6B}{153}% U+006B k +\HexGlyph{6C}{154}% U+006C l +\HexGlyph{6D}{155}% U+006D m +\HexGlyph{6E}{156}% U+006E n +\HexGlyph{6F}{157}% U+006F o +\HexGlyph{70}{160}% U+0070 p +\HexGlyph{71}{161}% U+0071 q +\HexGlyph{72}{162}% U+0072 r +\HexGlyph{73}{163}% U+0073 s +\HexGlyph{74}{164}% U+0074 t +\HexGlyph{75}{165}% U+0075 u +\HexGlyph{76}{166}% U+0076 v +\HexGlyph{77}{167}% U+0077 w +\HexGlyph{78}{170}% U+0078 x +\HexGlyph{79}{171}% U+0079 y +\HexGlyph{7A}{172}% U+007A z +\HexGlyph{7B}{173}% U+007B LEFT CURLY BRACKET +\HexGlyph{7C}{174}% U+007C VERTICAL LINE +\HexGlyph{7D}{175}% U+007D RIGHT CURLY BRACKET +\HexGlyph{7E}{176}% U+007E TILDE +\HexGlyph{7F}{efHxError}% 177 UNDEFINED IN PDFDOCENC +\HexGlyph{80}{200}% U+2022 BULLET +\HexGlyph{81}{201}% U+2020 DAGGER +\HexGlyph{82}{202}% U+2021 DOUBLE DAGGER +\HexGlyph{83}{203}% U+2026 HORIZONTAL ELLIPSIS +\HexGlyph{84}{204}% U+2014 EM DASH +\HexGlyph{85}{205}% U+2013 EN DASH +\HexGlyph{86}{206}% U+0192 LATIN SMALL LETTER F WITH HOOK +\HexGlyph{87}{207}% U+2044 FRACTION SLASH +\HexGlyph{88}{210}% U+2039 SINGLE LEFT-POINTING ANGLE QUOTE MARK +\HexGlyph{89}{211}% U+203A SINGLE RIGHT-POINTING ANGLE QUOTE MARK +\HexGlyph{8A}{212}% U+2212 MINUS-SIGN +\HexGlyph{8B}{213}% U+2030 PER MILL SIGN +\HexGlyph{8C}{214}% U+201E DOUBLE LOW-9 QUOTE MARK +\HexGlyph{8D}{215}% U+201C LEFT DOUBLE QUOTE MARK +\HexGlyph{8E}{216}% U+201C RIGHT DOUBLE QUOTE MARK +\HexGlyph{8F}{217}% U+2018 LEFT SINGLE QUOTE MARK +\HexGlyph{90}{220}% U+2019 RIGHT SINGLE QUOTE MARK +\HexGlyph{91}{221}% U+201A SINGLE LOW-9 QUOTE MARK +\HexGlyph{92}{222}% U+2122 TRADE MARK SIGN +\HexGlyph{93}{223}% U+FB01 LATIN SMALL LIGATURE FI +\HexGlyph{94}{224}% U+FB02 LATIN SMALL LIGATURE FL +\HexGlyph{95}{225}% U+0141 LATIN CAPITAL LETTER L WITH STROKE +\HexGlyph{96}{226}% U+0152 LATIN CAPITAL LIGATURE OE +\HexGlyph{97}{227}% U+0160 LATIN CAPITAL LETTER S WITH CARON +\HexGlyph{98}{230}% U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS +\HexGlyph{99}{231}% U+017D LATIN CAPITAL LETTER Z WITH CARON +\HexGlyph{9A}{232}% U+0131 LATIN SMALL LETTER DOTLESS I +\HexGlyph{9B}{233}% U+0142 LATIN SMALL LETTER L WITH STROKE +\HexGlyph{9C}{234}% U+0153 LATIN SMALL LIGATURE OE +\HexGlyph{9D}{235}% U+0161 LATIN SMALL LETTER S WITH CARON +\HexGlyph{9E}{236}% U+017E LATIN SMALL LETTER Z WITH CARON +\HexGlyph{9F}{efHxError}% 237 UNDEF IN PDFDOCENC +\HexGlyph{A0}{240}% U+20AC EURO SIGN +\HexGlyph{A1}{241}% U+00A1 INVERTED EXCLAMATION MARK +\HexGlyph{A2}{242}% U+00A2 CENT SIGN +\HexGlyph{A3}{243}% U+00A3 POUND SIGN +\HexGlyph{A4}{244}% U+00A4 CURRENCY SIGN +\HexGlyph{A5}{245}% U+00A5 YEN SIGN +\HexGlyph{A6}{246}% U+00A6 BROKEN BAR +\HexGlyph{A7}{247}% U+00A7 SECTION SIGN +\HexGlyph{A8}{250}% U+00A8 DIAERESIS +\HexGlyph{A9}{251}% U+00A9 COPYRIGHT SIGN +\HexGlyph{AA}{252}% U+00AA FEMININE ORDINAL INDICATOR +\HexGlyph{AB}{253}% U+00AB LEFT-POINTING DOUBLE ANGLE QUOTE MARK +\HexGlyph{AC}{254}% U+00AC NOT SIGN +\HexGlyph{AD}{efHxError}% 255 UNDEFINED IN PDFDOCENC +\HexGlyph{AE}{256}% U+00AE REGISTERED SIGN +\HexGlyph{AF}{257}% U+00AF MACRON +\HexGlyph{B0}{260}% U+00B0 DEGREE SIGN +\HexGlyph{B1}{261}% U+00B1 PLUS-MINUS SIGN +\HexGlyph{B2}{262}% U+00B2 SUPERSCRIPT 2 +\HexGlyph{B3}{263}% U+00B3 SUPERSCRIPT 3 +\HexGlyph{B4}{264}% U+00B4 ACUTE ACCENT +\HexGlyph{B5}{265}% U+00B5 MICRO SIGN +\HexGlyph{B6}{266}% U+00B6 PILCROW SIGN (PARAGRAPH SIGN) +\HexGlyph{B7}{267}% U+00B7 MIDDLE DOT +\HexGlyph{B8}{270}% U+00B8 CEDILLA +\HexGlyph{B9}{271}% U+00B9 SUPERSCRIPT ONE +\HexGlyph{BA}{272}% U+00BA MASCULINE ORDINAL INDICATOR +\HexGlyph{BB}{273}% U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTE MARK +\HexGlyph{BC}{274}% U+00BC VULGAR FRACTION ONE QUARTER +\HexGlyph{BD}{275}% U+00BD VULGAR FRACTION ONE HALF +\HexGlyph{BE}{276}% U+00BE VULGAR FRACTION THREE QUARTERS +\HexGlyph{BF}{277}% U+00BF INVERTED QUESTION MARK +\HexGlyph{C0}{300}% U+00C0 LATIN CAPITAL LETTER A WITH GRAVE +\HexGlyph{C1}{301}% U+00C1 LATIN CAPITAL LETTER A WITH ACUTE +\HexGlyph{C2}{302}% U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX +\HexGlyph{C3}{303}% U+00C3 LATIN CAPITAL LETTER A WITH TILDE +\HexGlyph{C4}{304}% U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS +\HexGlyph{C5}{305}% U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE +\HexGlyph{C6}{306}% U+00C6 LATIN CAPITAL LETTER AE +\HexGlyph{C7}{307}% U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA +\HexGlyph{C8}{310}% U+00C8 LATIN CAPITAL LETTER E WITH GRAVE +\HexGlyph{C9}{311}% U+00C9 LATIN CAPITAL LETTER E WITH ACUTE +\HexGlyph{CA}{312}% U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX +\HexGlyph{CB}{313}% U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS +\HexGlyph{CC}{314}% U+00CC LATIN CAPITAL LETTER I WITH GRAVE +\HexGlyph{CD}{315}% U+00CD LATIN CAPITAL LETTER I WITH ACUTE +\HexGlyph{CE}{316}% U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX +\HexGlyph{CF}{317}% U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS +\HexGlyph{D0}{320}% U+00D0 LATIN CAPITAL LETTER ETH +\HexGlyph{D1}{321}% U+00D1 LATIN CAPITAL LETTER D WITH TILDE +\HexGlyph{D2}{322}% U+00D2 LATIN CAPITAL LETTER O WITH GRAVE +\HexGlyph{D3}{323}% U+00D3 LATIN CAPITAL LETTER O WITH ACUTE +\HexGlyph{D4}{324}% U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX +\HexGlyph{D5}{325}% U+00D5 LATIN CAPITAL LETTER O WITH TILDE +\HexGlyph{D6}{326}% U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS +\HexGlyph{D7}{327}% U+00D7 MULTIPLICATION SIGN +\HexGlyph{D8}{330}% U+00D8 LATIN CAPITAL LETTER O WITH STROKE +\HexGlyph{D9}{331}% U+00D9 LATIN CAPITAL LETTER U WITH GRAVE +\HexGlyph{DA}{332}% U+00DA LATIN CAPITAL LETTER U WITH ACUTE +\HexGlyph{DB}{333}% U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX +\HexGlyph{DC}{334}% U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS +\HexGlyph{DD}{335}% U+00DD LATIN CAPITAL LETTER Y WITH ACUTE +\HexGlyph{DE}{336}% U+00DE LATIN CAPITAL LETTER THORN +\HexGlyph{DF}{337}% U+00DF LATIN CAPITAL LETTER SHARP S (Eszett) +\HexGlyph{E0}{340}% U+00E0 LATIN SMALL LETTER A WITH GRAVE +\HexGlyph{E1}{341}% U+00E1 LATIN SMALL LETTER A WITH ACUTE +\HexGlyph{E2}{342}% U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX +\HexGlyph{E3}{343}% U+00E3 LATIN SMALL LETTER A WITH TILDE +\HexGlyph{E4}{344}% U+00E4 LATIN SMALL LETTER A WITH DIAERESIS +\HexGlyph{E5}{345}% U+00E5 LATIN SMALL LETTER A WITH RING ABOVE +\HexGlyph{E6}{346}% U+00E6 LATIN SMALL LETTER AE +\HexGlyph{E7}{347}% U+00E7 LATIN SMALL LETTER C WITH CEDILLA +\HexGlyph{E8}{350}% U+00E8 LATIN SMALL LETTER E WITH GRAVE +\HexGlyph{E9}{351}% U+00E9 LATIN SMALL LETTER E WITH ACUTE +\HexGlyph{EA}{352}% U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX +\HexGlyph{EB}{353}% U+00EB LATIN SMALL LETTER E WITH DIAERESIS +\HexGlyph{EC}{354}% U+00EC LATIN SMALL LETTER I WITH GRAVE +\HexGlyph{ED}{355}% U+00ED LATIN SMALL LETTER I WITH ACUTE +\HexGlyph{EE}{356}% U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX +\HexGlyph{EF}{357}% U+00EF LATIN SMALL LETTER I WITH DIAERESIS +\HexGlyph{F0}{360}% U+00F0 LATIN SMALL LETTER ETH +\HexGlyph{F1}{361}% U+00F1 LATIN SMALL LETTER N WITH TILDE +\HexGlyph{F2}{362}% U+00F2 LATIN SMALL LETTER O WITH GRAVE +\HexGlyph{F3}{363}% U+00F3 LATIN SMALL LETTER O WITH ACUTE +\HexGlyph{F4}{364}% U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX +\HexGlyph{F5}{365}% U+00F5 LATIN SMALL LETTER O WITH DIAERESIS +\HexGlyph{F6}{366}% U+00F6 LATIN SMALL LETTER C WITH ETH +\HexGlyph{F7}{367}% U+00F7 DIVISION SIGN +\HexGlyph{F8}{270}% U+00F8 LATIN SMALL LETTER O WITH STROKE +\HexGlyph{F9}{271}% U+00F9 LATIN SMALL LETTER U WITH GRAVE +\HexGlyph{FA}{272}% U+00FA LATIN SMALL LETTER U WITH ACUTE +\HexGlyph{FB}{273}% U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX +\HexGlyph{FC}{374}% U+00FC LATIN SMALL LETTER U WITH DIAERESIS +\HexGlyph{FD}{375}% U+00FD LATIN SMALL LETTER Y WITH ACUTE +\HexGlyph{FE}{376}% U+00FE LATIN SMALL LETTER C THORN +\HexGlyph{FF}{377}% U+00FF LATIN SMALL LETTER Y WITH DIAERESIS +%</hexoctcodes> +%<*package> % \end{macrocode} % \subsubsection{Parsing PDF Color} % @@ -1979,15 +2350,19 @@ % (ol) and \cs{vcgBdry} positions the field so the boundary lines are % contiguous (cg). % \changes{v2.9h}{2017/01/15}{Added \string\cs{volBdry} and\string\cs{vcgBdry}} +% \changes{v2.9n}{2017/09/04}{Added \string\cs{efSupprIndent}}. % \begin{macrocode} +\newcommand{\efSupprIndent}{\ef@scratchtoks=\expandafter{\the\everypar}% + \everypar{{\setbox\z@\lastbox}\clubpenalty\@M + \everypar=\expandafter{\the\ef@scratchtoks}}} \newcommand\volBdry{\bgroup\parskip0pt\relax\@@par\nointerlineskip - \olBdry\noindent\egroup} + \olBdry\egroup\efSupprIndent} \newcommand\vcgBdry{\@ifstar{\edef\ef@offset{\the\parskip}\vcgBdry@i} {\def\ef@offset{0pt}\vcgBdry@i}} \newcommand\vcgBdry@i[1][0bp]{\bgroup \setlength{\ef@dimena}{#1-\ef@offset}\parskip0pt\relax - \par\nointerlineskip\cgBdry[\ef@dimena]\noindent - \egroup\ignorespaces} + \par\nointerlineskip\cgBdry[\ef@dimena]% + \egroup\ignorespaces\efSupprIndent} % \end{macrocode} % % \subsection{Choice Fields}\label{choice} @@ -2577,7 +2952,7 @@ \eq@rawPDF % everything else } % \end{macrocode} -% The low-level link command and is the building block of all the +% \cs{set@@Link} is the low-level link command and is the building block of all the % other, more user-friendly link commands. Takes seven parameters: %\begin{enumerate} %\item[\texttt{\#1}:] Optional arguments to modify the appearance and actions of the link. @@ -2623,13 +2998,18 @@ \AtBeginDocument{\setDef@ultLinkColor} % \end{macrocode} % \begin{macro}{\setLink} -% \begin{macro}{\mlsetLink} +% \cs{setLink} is the basic high-level link command, it is used to surround text +% with a link annotation. % \begin{macro}{\setLinkText} -% This is the basic high-level link command, it is used to surround text. +% \cs{setLinkText} is a synonym for \cs{setLink}. +% \begin{macro}{\mlhypertext} +% A command defined in the \pkg{aeb\_mlink} package. +% \begin{macro}{\mlsetLink} +% \cs{mlsetLink} expands to \cs{mlhypertext} %\begin{verbatim} -% \setLinkText[\A{\JS{this.pageNum=6;}}\Color{1 0 0}]{Go There!} +% \setLink[\A{\JS{this.pageNum=6;}}\Color{1 0 0}]{Go There!} %\end{verbatim} -% \paragraph{Link Parameters.} This link takes two parameters, one of which +% \paragraph{Link Parameters.} These high-level links takes two parameters, one of which % is optional. %\begin{enumerate} %\item[\texttt{[\#1]}:] Optional key-value pairs to change the appearance or action @@ -2647,17 +3027,28 @@ \newcommand\setLink{\begingroup \ef@sanitize@toks\ef@setlinktext } -\newcommand{\mlsetLink}{\mlhypertext} -\let\setLinkText\setLink -\newcommand{\ef@setlinktext}[1][]{% % \end{macrocode} % \changes{v2.5b}{2009/12/24}{added path to \string\cs{mlhypertext}} % Added a path to \cs{mlhypertext} of the \textsf{aeb\_mlink} package. When the % user specifies \verb!\mlLink{true}! in the option list, we branch off to -% \cs{mlhypertext}. +% \cs{mlhypertext}. For example, if we say, +%\begin{verbatim} +%\setLink[\mlLink{true}\A{\JS{app.alert("Hello World!");}}]{Hello World!} +%\end{verbatim} +% then we branch off to \cs{mlhypertext}. The above, then, is equivalent to, +%\begin{verbatim} +%\mlhypertext[\A{\JS{app.alert("Hello World!");}}]{Hello World!} +%\end{verbatim} +%If you've created a link using \cs{setLink} and the text does not wrap around to the next +%link, simply insert \verb!\mlLink{true}! as an option to declare this link is a multi-line +%link. Of course, you can also change the name from \cs{setLink} to \cs{mlsetLink} (or to \cs{mlhypertext}). +% +%In the next line, we \cs{let} \cs{setLinkText} to \cs{setLink} % \begin{macrocode} +\let\setLinkText\setLink +\newcommand{\ef@setlinktext}[1][]{% \endgroup\ef@searchmlLink#1\mlLink\end\@nil - \ifx\ef@mlLink0\def\ef@next{\set@LinkText[#1]}\else + \ifx\ef@mlLink\ef@Zero\def\ef@next{\set@LinkText[#1]}\else \def\ef@next{\mlhypertext[#1]}\fi\ef@next } \newcommand\set@LinkText[2][]{% @@ -2688,6 +3079,16 @@ % \begin{macrocode} \def\ef@postProcLinkProps{} % \end{macrocode} +% \cs{mlhypertext} is not defined unless \pkg{aeb\_mlink} is loaded; however, +% we define \cs{mlsetLink} to expand to \cs{mlhypertext}. +% \begin{macrocode} +\newcommand{\mlsetLink}{\mlhypertext} +\newcommand{\mlhypertext}[2][]{\@ifundefined{mlhypertext@i} + {\PackageWarning{eforms}{The \string\mlhypertext\space command + does nothing unless\MessageBreak the aeb_mlink package is loaded}}{}% + #2} +% \end{macrocode} +% \end{macro} % \end{macro} % \end{macro} % \end{macro} @@ -3043,7 +3444,8 @@ \define@key{eforms}{default}{\@eqDV{#1}} \define@key{eforms}{defaultstyle}{\@eqDS{#1}} % \end{macrocode} -% The \texttt{value}\IndexKey{value}\IndexKey{richvalue}\IndexKey{apprD} of the field (text, list, combobox). Example: \texttt{value=AcroTeX}. +% The \texttt{value}\IndexKey{value}\IndexKey{richvalue}\IndexKey{apprD} of the field +% (text, list, combobox). Example: \texttt{value=AcroTeX}. % \begin{macrocode} \define@key{eforms}{value}{\@eqV{#1}} \define@key{eforms}{richvalue}{\@eqRV{#1}} @@ -3202,6 +3604,19 @@ \ifcase\nr\relax\@eqinline{y}\or \@eqinline{n}\fi }{} +\define@choicekey{eforms}{mlfix}[\val\nr]{yes,no} +{% + \ifcase\nr\relax\@eqmlfix{y}\or + \@eqmlfix{n}\fi +}{} +\define@key{eforms}{mlstrut}[\strut]{\@eqmlstrut{#1}} +\define@key{eforms}{mlcrackat}[]{\@eqmlcrackat{#1}} +\define@key{eforms}{mlcrackinat}[]{\@eqmlcrackinsat{#1}} +\define@choicekey{eforms}{mlhyph}[\val\nr]{yes,no} +{% + \ifcase\nr\relax\@eqmlhyph{y}\or + \@eqmlhyph{n}\fi +}{} % \end{macrocode} % Set presets\IndexKey{presets} from inside a \cs{ui} argument. For example, %\begin{verbatim} @@ -3705,17 +4120,29 @@ /ANN pdfmark}% \to@insertStrucTabOrder{Link}\endgroup } +% \end{macrocode} +% (2018/03/22) Defined \cs{pboxRect} to support +% \cs{setLinkPbox}. +% \changes{v2.9.19}{2018/03/22}{Defined \string\cs{pboxRect} to support +% \string\cs{setLinkPbox}} +% \begin{macrocode} +\def\pboxRect{/Rect [\par@@Rect]} +% \end{macrocode} +% Added \cs{mllnkcontainer} to support textsf{aeb\_mlink} package. +% \changes{v2.9.17}{2018/03/14}{Added \string\cs{mllnkcontainer}.} +% \begin{macrocode} +\def\mllnkcontainer#1{#1} \def\setLinkPbox@driver {% \ifx\eq@A\@empty\else\expandafter\convertAToAction\eq@A\@nil\fi \@eqBS{}% - \literalps@out{% - [ \eq@objdef/Rect [\par@@Rect] + \literalps@out{\mllnkcontainer{% + [ \eq@objdef\pboxRect \eq@Border \eq@QuadPoints % QuadPoints \common@LinkCode /Subtype /Link - /ANN pdfmark}% + /ANN pdfmark}}% \to@insertStrucTabOrder{Link}\endgroup } % \end{macrocode} |