📄 warmread.sty
字号:
\def\xyAllImportBBError@#1{% \xyerror@{There is no Marked-Point information for image #1.}}%\def\xyAllLabelsImport@{\ifx\undefined\wrm@urx \expandafter\xyAllImportBBError@ \else\expandafter\xyAllLabelsImport@i\fi}\def\xyAllLabelsImport@i#1{\bgroup \L@c=\wrm@llx\p@ \L@c=-\L@c \D@c=\wrm@lly\p@ \D@c=-\D@c \R@c=\wrm@urx\p@ \advance\R@c\L@c \U@c=\wrm@ury\p@ \advance\U@c\D@c \ifdim\wrm@aspect\p@=\p@\else \ifdim\wrm@aspect\p@<\p@ \quotient@\tmp@\U@c{\wrm@aspect\p@}% \dimen@=\tmp@\p@\advance\dimen@-\U@c \divide\dimen@\tw@ \U@c=\tmp@\p@ \advance\D@c\dimen@ % \dimen@=\wrm@offset\p@ \divide\dimen@\tw@ % \advance\U@c-\wrm@offset\p@ \dimen@=\wrm@offset\p@ \divide\dimen@\tw@ \advance\D@c\dimen@ \else \dimen@=\R@c \R@c=\wrm@aspect\R@c \advance\dimen@-\R@c \divide\dimen@\tw@ \advance\L@c-\dimen@ \dimen@=\wrm@offset\p@ \divide\dimen@\tw@ \advance\L@c\dimen@ \fi \fi \edef\next@{\egroup \def\noexpand\xyimportparams@ % {(\expandafter\removePT@\the\R@c,\expandafter\removePT@\the\U@c)% (\expandafter\removePT@\the\L@c,\expandafter\removePT@\the\D@c)}% }\next@ \expandafter\xyimport\xyimportparams@{\xyWARMinclude{#1}}%}\def\wrm@aspect{1}\def\wrm@offset{0}\def\xyAllMarkedPoints@#1#2{% \wrmcounter=\z@% \ifx\wrm@prefix\wrm@defprefix\def\wrm@prefix{}\fi \loop \ifnum\wrmcounter<\wrmdatacounter\relax \advance\wrmcounter\@ne \expandafter\expandafter\expandafter\ifx\expandafter \csname\the\wrmcounter @WRM\endcsname\relax \expandafter\DN@\expandafter{\expandafter \RecoverData\expandafter{%\expandafter\wrm@prefix \the\wrmcounter}#1#2{@}\relax}% \else \expandafter\expandafter\expandafter\let \expandafter\csname\the\wrmcounter @WRM\endcsname\relax \DN@{\relax}% \fi \next@ \repeat \POS }\def\reverse@WRMflags{% \wrmcounter=\z@ \loop \ifnum\wrmcounter<\wrmdatacounter \advance\wrmcounter\@ne \expandafter\expandafter\expandafter\ifx\expandafter \csname\the\wrmcounter @WRM\endcsname\relax \expandafter\expandafter\expandafter\let\expandafter \csname\the\wrmcounter @WRM\endcsname\markedempty@@ \else \expandafter\expandafter\expandafter\let\expandafter \csname\the\wrmcounter @WRM\endcsname\relax \fi \repeat }% allows a constant offset to be added to each marked-point's% coordinate position --- in case the BoundingBox is wrong%\def\xyWARMoffset[#1,#2]{%usage: \xyWARMoffset[<num>,<num>] \def\wrm@xoffset{#1}% \def\wrm@yoffset{#2}%}\def\wrm@checkoffset{% \ifx\wrm@xoffset\wrm@empty\else \bgroup \errhelp={WARM error: invalid offset in X-direction}% \dimen@\wrm@x\p@ \advance\dimen@\wrm@xoffset\p@ \edef\next{\egroup \def\noexpand\wrm@x{\expandafter\removePT@\the\dimen@}}% \next \fi \ifx\wrm@yoffset\wrm@empty\else \bgroup \errhelp={WARM error: invalid offset in Y-direction}% \dimen@\wrm@y\p@ \advance\dimen@\wrm@yoffset\p@ \edef\next{\egroup \def\noexpand\wrm@y{\expandafter\removePT@\the\dimen@}}% \next \fi }\def\wrm@xoffset{}%\def\wrm@yoffset{}%%%%% default file-type method is \WARMprocessEPS%% assuming the graphics file has an associated .bb file%%\def\xyWARMprocessEPS#1#2{\WARMprocessEPS{#1}{#2}{bb}}\def\xyWARMprocessMoEPS#1#2{\WARMprocessMoEPS{#1}{#2}{bb}}\let\xyWARMprocess=\xyWARMprocessEPS\let\xyWARMprocessMo=\xyWARMprocessMoEPS%%%% default graphics file inclusion \includegraphics%% (assumes LaTeX-2e with \usepackage{graphics})%%\def\xyWARMinclude#1{\includegraphics{#1}}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% implementations for specific image-types%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\newtoks\WARM@ExpansionToks%%%% Implementation for Adobe Illustrator files, v8.x and earlier%%{\catcode`\%=12\gdef\ParenPointPattern{####1 (####2,####3) ####4 %####5 %####6%####7}\gdef\ParenPointStripped{ % (,) , % %%}\gdef\ParenEmpty{%}\gdef\AdobeBoundingBoxString{%%BoundingBox:}\gdef\AdobeStartDataString{%%StartMarkedPoints}\gdef\AdobePreDataString{%%MarkedPoint:}\gdef\AdobeEndDataString{%%EndMarkedPoints}\gdef\AdobeEndFileString{%%EndComments}}\def\FindAdobeMarkedPoints{% \let\WARM@EndFileString=\AdobeEndFileString \let\WARM@PreDataString=\AdobePreDataString \let\WARM@EndDataString=\AdobeEndDataString \let\DataPattern=\BBpattern \let\StrippedDataPattern=\BBstripped \let\WARM@ExpansionToks=\BBexpansiontoks \let\CleanupAfterFile=\saveBBafterFile \let\CleanupAfterDir=\saveBBafterFile \let\wrm@llx=\undefined \def\wrm@aspect{1}% \def\wrm@offset{0}% \ReadToLine\AdobeBoundingBoxString\BBpattern\relax %\PrintInfoLine \ReadToLine\AdobeStartDataString{}\relax %\PrintInfoLine \SetExpansionToks \ReadDataLines\WRM@DataPattern\WRM@DataStripped\WriteToBBfile \ReadToLine\AdobeEndDataString{}\relax %\PrintInfoLine \ReadToLine\WARM@EndFileString{}\relax %\PrintInfoLine}\newtoks\ParenPointToks\ParenPointToks={\def\wrm@x{#2}\def\wrm@y{#3}% \def\afterdata{#7}% \ifx\afterdata\ParenEmpty% \edef\wrm@label{datapoint\the\wrmdatacounter}% \edef\wrm@label{\wrm@prefix\the\wrmdatacounter}% \def\wrm@texstring{#4}% \else \def\wrm@label{#4}\def\wrm@texstring{#5}% \fi \def\testdata{#1}\wrm@savedata }\def\ParenPointData{% \let\WRM@DataPattern\ParenPointPattern \let\WRM@DataStripped\ParenPointStripped \def\SetExpansionToks{\let\WARM@ExpansionToks\ParenPointToks}%}\def\FindAdobeParenPoints{\ParenPointData\FindAdobeMarkedPoints}\def\WARMprocessEPS#1#2#3{\WARMprocess{#1}{#2}{#3}\FindAdobeParenPoints}%%%% Implementation for Adobe Illustrator files, v9.x with Mo-tool%%{\catcode`\%=12\gdef\AdobeMoPointPattern{####1(####2,####3) :####4 :####5 %####6 %####7%####8}\gdef\AdobeMoPointStripped{ %(,) : : % %%}\gdef\AdobeMoEmpty{%}\gdef\AdobeMoBoundingBoxString{%%BoundingBox:}\gdef\AdobeMoStartDataString{%%StartMarkedPoints}\gdef\AdobeMoPreDataString{%%MarkedPoint:}\gdef\AdobeMoEndDataString{%%EndMarkedPoints}\gdef\AdobeMoEndFileString{%%EndComments}}\def\FindAdobeMoMarkedPoints{% \let\WARM@EndFileString=\AdobeMoEndFileString \let\WARM@PreDataString=\AdobeMoPreDataString \let\WARM@EndDataString=\AdobeMoEndDataString \let\DataPattern=\BBpattern \let\StrippedDataPattern=\BBstripped \let\WARM@ExpansionToks=\BBexpansiontoks \let\CleanupAfterFile=\saveBBafterFile \let\CleanupAfterDir=\saveBBafterFile \let\wrm@llx=\undefined \def\wrm@aspect{1}% \def\wrm@offset{0}% \ReadToLine\AdobeMoBoundingBoxString\BBpattern\relax %\PrintInfoLine \ReadToLine\AdobeMoStartDataString{}\relax %\PrintInfoLine \SetExpansionToks \ReadDataLines\WRM@DataPattern\WRM@DataStripped\WriteToBBfile \ReadToLine\AdobeMoEndDataString{}\relax %\PrintInfoLine \ReadToLine\WARM@EndFileString{}\relax %\PrintInfoLine}\def\WRM@stripspace#1#2\endstrip{\expandafter\ifx\space#1\else#1\fi#2}\newtoks\AdobeMoPointToks\AdobeMoPointToks={\def\wrm@x{#2}\def\wrm@y{#3}% \wrm@checkoffset \def\afterdata{#8}% \ifx\afterdata\ParenEmpty \edef\wrm@label{\wrm@prefix\the\wrmdatacounter}% \def\wrm@texstring{#5}% \else \def\wrm@label{#5}% \ifx\wrm@label\wrm@empty\else \edef\wrm@label{\WRM@stripspace#5\endstrip}\fi \def\wrm@texstring{#6}% \fi \def\testdata{#1}\wrm@savedata }\def\AdobeMoPointData{% \let\WRM@DataPattern\AdobeMoPointPattern \let\WRM@DataStripped\AdobeMoPointStripped \def\SetExpansionToks{\let\WARM@ExpansionToks\AdobeMoPointToks}%}\def\FindAdobeMoPoints{\AdobeMoPointData\FindAdobeMoMarkedPoints}\def\WARMprocessMoEPS#1#2#3{\WARMprocess{#1}{#2}{#3}\FindAdobeMoPoints}%%%% Implementation for Mathematica Digitised files (.mbb suffix)%%{\catcode`[=1 \catcode`]=2 \catcode`\{=12 \catcode`\}=12 \catcode`\%=12\gdef\MmaPointPattern[####1{####2, ####3, ####4}####5]\gdef\MmaPointStripped[{, , }]\gdef\MmaBBpattern[####1{####2, ####3, ####4, ####5}####6]\gdef\MmaBBstripped[{, , , }]\gdef\MmaPointEmpty[]\gdef\MmaBoundingBoxString[LDRU:]\gdef\MmaAspectRatioString[%%AspectRatio]\gdef\MmaARpattern[####1: ####2:####3:####4]\gdef\MmaARstripped[: ::]\gdef\MmaStartDataString[StartData]\gdef\MmaPreDataString[,]\gdef\MmaEndDataString[EndData]\gdef\MmaEndFileString[]]\newtoks\MmaBBexpansiontoks\MmaBBexpansiontoks={\def\testcomment{#1}% \ifx\testcomment\MmaBoundingBoxString \def\wrm@llx{#2}\def\wrm@lly{#3}% \def\wrm@urx{#4}\def\wrm@ury{#5}% % there can be only one \aftergroup\morelinesfalse\wrm@message{file: \wrm@filename}%\wrm@message{Bounding Box is (\wrm@llx,\wrm@lly)->(\wrm@urx,\wrm@ury)}% \fi}\newtoks\MmaARexpansiontoks\MmaARexpansiontoks={\def\testcomment{#1}% \ifx\testcomment\MmaAspectRatioString \aftergroup\morelinesfalse \def\wrm@aspect{#2}% \dimen@=#3\p@\ifdim\dimen@=\z@\else\def\wrm@offset{#3}\fi \ifx\wrm@offset\wrm@empty\def\wrm@offset{0}\else \def\tmp@{ }\ifx\wrm@offset\tmp@\def\wrm@offset{0}\fi\fi\wrm@message{AspectRatio is: \wrm@aspect , Offset: \wrm@offset}% \fi}\def\FindMmaMarkedPoints{% \FindMmaMarkedPoints@i \FindMmaMarkedPoints@ii \FindMmaMarkedPoints@x}%\def\FindMmaARMarkedPoints{% \FindMmaMarkedPoints@i \FindMmaMarkedPoints@r \FindMmaMarkedPoints@ii \FindMmaMarkedPoints@x}%\def\FindMmaMarkedPoints@i{% \let\WARM@EndFileString=\MmaEndFileString \let\WARM@PreDataString=\MmaPreDataString \let\WARM@EndDataString=\MmaEndDataString \let\DataPattern=\MmaPointPattern \let\wrm@llx=\undefined \def\wrm@aspect{1}%}\def\FindMmaMarkedPoints@r{% \let\StrippedDataPattern=\MmaARstripped \let\WARM@ExpansionToks=\MmaARexpansiontoks \let\CleanupAfterFile=\saveARafterFile \let\CleanupAfterDir=\saveARafterFile \ReadToLine\MmaAspectRatioString\MmaARpattern\relax }\def\FindMmaMarkedPoints@ii{% \let\StrippedDataPattern=\MmaBBstripped \let\WARM@ExpansionToks=\MmaBBexpansiontoks \let\CleanupAfterFile=\saveBBafterFile \let\CleanupAfterDir=\saveBBafterFile \ReadToLine\MmaBoundingBoxString\MmaBBpattern\relax }\def\FindMmaMarkedPoints@x{% \ReadToLine\MmaStartDataString{}\relax \SetExpansionToks \ReadDataLines\WRM@DataPattern\WRM@DataStripped\relax \ReadToLine\MmaEndDataString{}\relax \ReadToLine\MmaEndFileString{}\relax}\newtoks\MmaPointToks\MmaPointToks={\def\wrm@x{#2}\def\wrm@y{#3}% \def\afterdata{#5}%% \advance\wrmdatacounter\@ne\relax \ifx\afterdata\MmaPointStripped% \edef\wrm@label{\wrm@prefix\the\wrmdatacounter}% \def\wrm@label{#4}% \def\wrm@texstring{#4}% \else \def\wrm@label{#4}\def\wrm@texstring{#5}% \fi \def\testdata{#1}\wrm@savedata }\def\MmaPointData{% \let\WRM@DataPattern\MmaPointPattern \let\WRM@DataStripped\MmaPointStripped \def\SetExpansionToks{\let\WARM@ExpansionToks\MmaPointToks}%}\def\FindBracedPoints{\MmaPointData\FindMmaMarkedPoints}\def\WARMprocessMMA#1#2#3{\WARMprocess{#1}{#2}{#3}\FindBracedPoints}% incorporate the Aspect-Ratio correction\def\FindBracedARPoints{\MmaPointData\FindMmaARMarkedPoints}\def\WARMprocessMMAR#1#2#3{\WARMprocess{#1}{#2}{#3}\FindBracedARPoints}%%%% Implementation for Mathematica CityData file (CityData.m)%%{\catcode`<=1 \catcode`>=2 \catcode`"=12 \catcode`\{=12 \catcode`\}=12 \catcode`\%=12\gdef\MmaCityPattern<####1["####2"] = {{####3, ####4}, {####5, ####6}}####7>\gdef\MmaCityStripped<[""] = {{, }, {, }}>\gdef\MmaMinPattern<####1, ####2}####3>\gdef\MmaMinStripped<, 0}>\gdef\MmaPointEmpty<>\gdef\MmaStartCityString<(* City Information *)>\gdef\MmaPreCityString<CityPosition>\gdef\MmaEndDataString<End[]>\gdef\MmaEndFileString<EndPackage[]>\gdef\ContentsBoxString<%%ContentsBox:>\gdef\MapTypeString<%%MapProjection>\gdef\MTpattern<####1: ####2 (####3,####4)####5>\gdef\MTstripped<: , (,)>\gdef\getMmaMinSecs@#1, #2}#3!!@!<\dimen@=#2\p@ \dimen@=.016667\dimen@ \advance\dimen@ #1\p@ \dimen@=.016667\dimen@ >>% end of \catcode changes\newtoks\MmaCityToks\MmaCityToks={\def\wrm@y{#3}\def\wrm@x{#5}\def\afterdata{#7}% \edef\tmp@{#6\MmaMinStripped}\expandafter\getMmaMinSecs@\tmp@!!@!% \advance\dimen@\wrm@x\p@ \edef\wrm@x{\expandafter\removePT@\the\dimen@}% \edef\tmp@{#4\MmaMinStripped}\expandafter\getMmaMinSecs@\tmp@!!@!% \advance\dimen@\wrm@y\p@ \edef\wrm@y{\expandafter\removePT@\the\dimen@}%% \advance\wrmdatacounter\@ne\relax \ifx\MapFilter\relax\else\MapFilter\fi \ifx\afterdata\MmaCityStripped \def\wrm@label{#2}\def\wrm@texstring{#2}% \else \def\wrm@label{#7}\def\wrm@texstring{#2}% \fi \def\testdata{#1}\wrm@savedata }\def\FindMmaCityData{% \FindMmaCityData@i \FindMmaCityData@ii \FindMmaCityData@x}%\def\FindMmaCityData@i{% \CloseTheFile\relax \edef\wrm@filename{\CityDataFile}\TryToOpenTheFile \relax}\def\FindMmaCityData@ii{% \let\WARM@EndFileString=\MmaEndFileString \let\WARM@PreDataString=\MmaPreCityString \let\WARM@EndDataString=\MmaEndDataString \let\DataPattern=\MmaCityPattern}%%%% Implementation for LatitudeLongitude files %% (catcode changes needed, for 伆 and ' and % )%%{\catcode`
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -