下面是一个 MWE,展示了我的一个问题。
代码
\DocumentMetadata{}
\documentclass{article}
\usepackage{multido}
\usepackage{pstricks}
\usepackage{hyperref}
\psset{dimen = m}
\def\skala{0.7}
\def\vandret(#1,#2)#3{%
\multido
{\i = #1+1}
{#3}
{\psframe
(\fpeval{\skala*(\i-1)},\fpeval{\skala*(#2-1)})%
(\fpeval{\skala*\i},\fpeval{\skala*#2})}}
%\def\lodret(#1,#2)#3{%
% \multido
% {\i = #2+-1}
% {#3}
% {\psframe
% (\fpeval{\skala*(#1-1)},\fpeval{\skala*(\i-1)})%
% (\fpeval{\skala*#1},\fpeval{\skala*\i})}}
\def\DefaultHeightofText{\skala cm}
\def\DefaultWidthofText{\skala cm}
\begin{document}
\begin{Form}
\begin{figure}
\centering
\begin{pspicture}(\fpeval{\skala*17},\fpeval{\skala*15})
\vandret(1,9){8}
\rput(1,9){\TextField{}}
\end{pspicture}
\end{figure}
\end{Form}
\end{document}
问题
我想\TextField
使用hyperref
以便能够以交互方式填写填字游戏。我该如何实现呢?
上述代码只是将文本字段放在了 的左下角pspicture
。
我使用 进行编译lualatex
,以防万一。
PS 请随意改进我混乱的代码。
更新
从屏幕截图中可以看出,左侧的框(没有交互式文本字段)完全重叠,而右侧的框(有交互式文本字段)则没有完全重叠。
这是我的文档的完整代码:
\DocumentMetadata{}
\documentclass[
a4paper,
12pt,
danish
]{article}
%%%%%%%%%%%%%%%%
%% %%
%% Pakker %%
%% %%
%%%%%%%%%%%%%%%%
% Skrifttype for tekst.
\usepackage{fontspec}
\setmainfont[
NFSSFamily = tgp,
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
Ligatures = {
TeX,
CommonOff
}
]{texgyrepagella}
% Skrifttype for matematik.
\usepackage[
math-style = TeX
]{unicode-math}
\setmathfont{texgyrepagella-math.otf}
\setmathfont[
version = bold,
FakeBold = 4
]{texgyrepagella-math.otf}
% Fiks for størrelsen af cifre i matematik.
\DeclareSymbolFont{textdigits}{TU}{tgp}{m}{n}
\SetSymbolFont{textdigits}{bold}{TU}{tgp}{b}{n}
\Umathcode`0="7 \symtextdigits `0
\Umathcode`1="7 \symtextdigits `1
\Umathcode`2="7 \symtextdigits `2
\Umathcode`3="7 \symtextdigits `3
\Umathcode`4="7 \symtextdigits `4
\Umathcode`5="7 \symtextdigits `5
\Umathcode`6="7 \symtextdigits `6
\Umathcode`7="7 \symtextdigits `7
\Umathcode`8="7 \symtextdigits `8
\Umathcode`9="7 \symtextdigits `9
% Sprog.
\usepackage{polyglossia}
\setdefaultlanguage{danish}
% Flere kolonner i dokumentet.
\usepackage{multicol}
% Specificerer marginer og lignende for dokumentet.
\usepackage[
hmargin = 2.4cm,
vmargin = 3cm
]{geometry}
% Muliggører eget design af sidehoved og -fod.
\usepackage{fancyhdr}
% Antal sider.
\usepackage[
lastpage
]{zref}
% Baggrundsmateriale.
\usepackage[
firstpage = true
]{background}
% Placering af floats.
\usepackage{float}
% Forløkker.
\usepackage{multido}
% Intern vektorgrafik.
\usepackage{pstricks}
% Interaktive krydsreferencer med mere.
\usepackage{hyperref}
%%%%%%%%%%%%%%%%%
%% %%
%% Makroer %%
%% %%
%%%%%%%%%%%%%%%%%
% Afgør, om dokumentet skal udskrives eller læses på en computerskærm.
\newif\ifprint
%\printfalse % Skærmlæsning.
\printtrue % Papirlæsning.
% Opsætning af pakker.
% ``pstricks''
\psset{
dimen = m
}
% ``hyperref''
\makeatletter
\@ifpackageloaded{hyperref}{
\ifprint
% Papirlæsning.
\hypersetup{
pdftitle = {Kryds og tværs om vands tilstandsformer},
pdfauthor = {Mads Sørensen},
pdfsubject = {Fysik/kemi},
pdfstartview = FitH,
bookmarksopen = true,
bookmarksopenlevel = 1,
hidelinks
}
\else
% Skærmlæsning.
\hypersetup{
pdftitle = {Kryds og tværs om vands tilstandsformer},
pdfauthor = {Mads Sørensen},
pdfsubject = {Fysik/kemi},
pdfstartview = FitH,
bookmarksopen = true,
bookmarksopenlevel = 1,
colorlinks = true,
citecolor = blue,
linkcolor = red,
urlcolor = teal
}
\fi
}{}
\makeatother
% Baggrundsmateriale.
\backgroundsetup{
contents = Navn: \underline{\hspace{10em}},
scale = 1,
color = black,
angle = 0,
opacity = 1,
position = current page.north west,
vshift = -2cm,
hshift = 5.13cm
}
% Automatisk placering af floats.
\makeatletter
\providecommand*\floatlocation[2]{\@namedef{fps@#1}{#2}}
\makeatother
\floatlocation{figure}{H}
% Letter notationen.
\def\skala{0.93}
\def\DefaultHeightofText{\skala cm}
\def\DefaultWidthofText{\skala cm}
\def\vandret(#1,#2)#3{%
\multido
{\i = #1+1}
{#3}
{\psframe
(\fpeval{\skala*(\i-1)},\fpeval{\skala*(#2-1)})%
(\fpeval{\skala*\i},\fpeval{\skala*#2})}}
\def\lodret(#1,#2)#3{%
\multido
{\i = #2+-1}
{#3}
{\psframe
(\fpeval{\skala*(#1-1)},\fpeval{\skala*(\i-1)})%
(\fpeval{\skala*#1},\fpeval{\skala*\i})}}
\def\bogstav(#1,#2)#3{%
\rput(\fpeval{\skala*(#1-0.5)},\fpeval{\skala*(#2-0.5)})
{\MakeUppercase{#3}}}
\newcommand*\ord[1]{%
\raisebox{0.4ex}{$\scriptscriptstyle\bullet$}\enskip\text{\MakeUppercase{#1}}}
\def\skrivefelt(#1,#2)#3{%
\put(\fpeval{\skala*(#1-1)},\fpeval{\skala*(#2-1)})
{\TextField[
borderwidth = \pslinewidth,
bordercolor = 0 0 0,
align = 1,
name = #3
]{}}}
% Opsætning af sidehoved og -fod.
\pagestyle{fancy}
\renewcommand*\headrulewidth{0pt}
\setlength\headheight{14.5pt}
\makeatletter
\zref@newprop*{numpage}{\the\value{page}}
\zref@addprop{main}{numpage}
\fancyhf{}
\fancyfoot[C]{%
\ifnum \zref@extractdefault{LastPage}{numpage}{0} > 1
\thepage
\fi
%
}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %%
%% Selve dokumentet %%
%% %%
%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\begin{center}
\bfseries
\huge
Vands tilstandsformer
\end{center}
\vspace{8ex}
\noindent
Indsæt ordene i skemaet nedenfor.
\begin{alignat*}{2}
&\ord{is} &\qquad\quad &\ord{kogepunkt} \\
&\ord{gas} & &\ord{smeltning} \\
&\ord{fast} & &\ord{størkning} \\
&\ord{vand} & &\ord{fortætning} \\
&\ord{afkøling} & &\ord{opvarmning} \\
&\ord{flydende} & &\ord{smeltepunkt}\\
&\ord{vanddamp} & &
\end{alignat*}
\begin{figure}
\centering
\begin{pspicture}(\fpeval{\skala*17},\fpeval{\skala*15})
% \vandret(7,15){11}
\multido
{\iA = 7+1,
\iB = 1+1}
{11}
{\skrivefelt(\iA,15){vA\iB}}
% \vandret(9,13){8}
\multido
{\iA = 9+1,
\iB = 1+1}
{8}
{\skrivefelt(\iA,13){vB\iB}}
% \vandret(1,9){8}
\multido
{\iA = 1+1,
\iB = 1+1}
{8}
{\skrivefelt(\iA,9){vC\iB}}
\vandret(5,6){9}
\vandret(2,3){9}
\vandret(8,1){3}
\lodret(1,9){4}
\lodret(2,5){4}
\lodret(3,15){10}
\lodret(5,7){2}
\lodret(8,10){10}
\lodret(10,13){11}
\lodret(12,11){8}
\lodret(16,15){9}
% \bogstav(10,13){f}
% \bogstav(10,12){o}
% \bogstav(10,11){r}
% \bogstav(10,10){d}
% \bogstav(10,9){a}
% \bogstav(10,8){m}
% \bogstav(10,7){p}
% \bogstav(10,6){n}
% \bogstav(10,5){i}
% \bogstav(10,4){n}
% \bogstav(10,3){g}
\end{pspicture}
\end{figure}
\end{document}