summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tagpdf/ex-patch-sectioning-memoir.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/tagpdf/ex-patch-sectioning-memoir.tex')
-rw-r--r--macros/latex/contrib/tagpdf/ex-patch-sectioning-memoir.tex252
1 files changed, 252 insertions, 0 deletions
diff --git a/macros/latex/contrib/tagpdf/ex-patch-sectioning-memoir.tex b/macros/latex/contrib/tagpdf/ex-patch-sectioning-memoir.tex
new file mode 100644
index 0000000000..aefda1cbcb
--- /dev/null
+++ b/macros/latex/contrib/tagpdf/ex-patch-sectioning-memoir.tex
@@ -0,0 +1,252 @@
+% !Mode:: "TeX:DE:UTF-8:Main"
+%chapter not correct!!
+\documentclass[a4paper,oneside]{memoir}
+\settocdepth{subsubsection}
+\setsecnumdepth{subsubsection}
+
+\usepackage[english]{babel}
+
+
+\usepackage{tagpdf}
+
+\tagpdfifpdftexT
+ {
+ %set language / can also be done with hyperref
+ \pdfcatalog{/Lang (en-US)}
+ \usepackage[T1]{fontenc}
+ }
+
+\tagpdfifluatexT
+ {
+ %set language / can also be done with hyperref
+ \pdfextension catalog{/Lang (en-US)}
+ \usepackage{fontspec}
+ \usepackage{luacode}
+ }
+
+
+\tagpdfsetup{tabsorder=structure,
+ activate-all,
+ uncompress
+ }
+
+\usepackage{lipsum}%\textheight3cm
+
+\usepackage{etoolbox}
+
+\ifdef\cfttocbeforelisthook{
+ \appto\cfttocbeforelisthook{\tagstructbegin{tag=TOC}}%\noindent TOC\par}
+}{
+ \csdef\cfttocbeforelisthook{\tagstructbegin{tag=TOC}}%\noindent TOC\par}
+}
+\ifdef\cfttocafterlisthook{
+ \appto\cfttocafterlisthook{\tagstructend}%\noindent /TOC\par}
+}{
+ \csdef\cfttocafterlisthook{\tagstructend}%\noindent /TOC\par}
+}
+
+\def\M{{\fontsize{3pt}{3pt}\sffamily\selectfont NN}}
+
+%what about unnumbered entries in the toc??????
+\appto\cftchapterpresnum{%
+ \tagstructbegin{tag=TOCI}% is there a better place? what about unnumbered entries?
+ \tagstructbegin{tag=Lbl}%
+ \tagmcbegin{tag=Lbl}%
+}
+\appto\cftchapteraftersnum{%
+ \tagmcend
+ \tagstructend}
+
+\appto\cftsectionpresnum{%
+ \tagstructbegin{tag=TOCI}% is there a better place? what about unnumbered entries?
+ \tagstructbegin{tag=Lbl}%
+ \tagmcbegin{tag=Lbl}%
+}
+\appto\cftsectionaftersnum{%
+ \tagmcend
+ \tagstructend}
+
+\appto\cftsubsectionpresnum{%
+ \tagstructbegin{tag=TOCI}% is there a better place? what about unnumbered entries?
+ \tagstructbegin{tag=Lbl}%
+ \tagmcbegin{tag=Lbl}%
+ }
+\appto\cftsubsectionaftersnum{%
+ \tagmcend
+ \tagstructend}
+\appto\cftsubsubsectionpresnum{%
+ \tagstructbegin{tag=TOCI}% is there a better place? what about unnumbered entries?
+ \tagstructbegin{tag=Lbl}%
+ \tagmcbegin{tag=Lbl}%
+}
+\appto\cftsubsubsectionaftersnum{%
+ \tagmcend
+ \tagstructend}
+
+%begin of entry
+\appto\cftchapteraftersnumb{%
+ \tagstructbegin{tag=P}%
+ \tagmcbegin{tag=P}}
+\appto\cftsectionaftersnumb{%
+ \tagstructbegin{tag=P}%
+ \tagmcbegin{tag=P}}
+\appto\cftsubsectionaftersnumb{%
+ \tagstructbegin{tag=P}%
+ \tagmcbegin{tag=P}}
+\appto\cftsubsubsectionaftersnumb{%
+ \tagstructbegin{tag=P}%
+ \tagmcbegin{tag=P}}
+
+%end of entry
+\pretocmd\cftchapterfillnum{%
+ \tagmcend
+ \tagstructend
+}{}{}
+\pretocmd\cftsectionfillnum{
+ \tagmcend
+ \tagstructend}{}{}
+\pretocmd\cftsubsectionfillnum{
+ \tagmcend
+ \tagstructend}{}{}
+\pretocmd\cftsubsubsectionfillnum{%
+ \tagmcend
+ \tagstructend}{}{}
+
+
+\makeatletter
+\patchcmd\cftchapterformatpnum{\cftchapterpagefont #1}{%
+ %\llap{\M pnum}%
+ \tagstructbegin{tag=Reference}%
+ \tagmcbegin{tag=Reference}
+ \cftchapterpagefont #1%
+ %\rlap{\M pnum}%
+ \tagmcend
+ \tagstructend
+ \tagstructend %for /TOCI. is there a better place?
+}{}{}
+\patchcmd\cftsectionformatpnum{\@nameuse{cftsectionpagefont}#1}{%
+ %\llap{\M pnum}%
+ \tagstructbegin{tag=Reference}%
+ \tagmcbegin{tag=Reference}
+ \@nameuse{cftsectionpagefont}#1%
+ %\rlap{\M pnum}%
+ \tagmcend
+ \tagstructend
+ \tagstructend %for /TOCI. is there a better place?
+}{}{\typeout{patch failed}}
+\patchcmd\cftsubsectionformatpnum{\@nameuse{cftsubsectionpagefont}#1}{%
+ %\llap{\M}%
+ \tagstructbegin{tag=Reference}%
+ \tagmcbegin{tag=Reference}
+ \@nameuse{cftsubsectionpagefont}#1%
+ %\rlap{\M}%
+ \tagmcend
+ \tagstructend
+ \tagstructend %for /TOCI. is there a better place?
+}{}{\typeout{patch failed}}
+
+\patchcmd\cftsubsubsectionformatpnum{\@nameuse{cftsubsubsectionpagefont}#1}{%
+ %\llap{\M}%
+ \tagstructbegin{tag=Reference}%
+ \tagmcbegin{tag=Reference}
+ \@nameuse{cftsubsubsectionpagefont}#1%
+ %\rlap{\M}%
+ \tagmcend
+ \tagstructend
+ \tagstructend %for /TOCI. is there a better place?
+}{}{\typeout{patch failed}}
+
+
+% section is typeset using \M@sect
+\ExplSyntaxOn
+\prop_new:N \g_tag_section_level_prop
+\prop_put:Nnn \g_tag_section_level_prop {chapter}{H1}
+\prop_put:Nnn \g_tag_section_level_prop {section}{H2}
+\prop_put:Nnn \g_tag_section_level_prop {Starredsection}{H2}
+\prop_put:Nnn \g_tag_section_level_prop {subsection}{H3}
+\prop_put:Nnn \g_tag_section_level_prop {subsubsection}{H4}
+\prop_put:Nnn \g_tag_section_level_prop {paragraph}{H5}
+\ExplSyntaxOff
+\patchcmd\M@sect{#9\@@par}{%
+ %this place could be used for something between number and text
+ #9%
+ \tagmcend
+ \tagstructend
+ \@@par%
+}{}{}
+
+% section* use \@ssect, but memoir redefines it a little before
+% calling the kernel version
+
+\ExplSyntaxOn
+\patchcmd\@ssect{\@mem@old@ssect{#1}{#2}{#3}{#4}{#5}}{%
+ \@mem@old@ssect{#1}{#2}{#3}{#4}{%
+ \tagstructbegin{tag=H2}% how to get level???
+ \tagmcbegin {tag=H2}% how to get level???
+ #5
+ \tagmcend
+ \tagstructend}%
+}{}{}
+
+% section numbers are typeset using \@seccntformat
+
+
+\pretocmd\@seccntformat{%
+ \tagstructbegin{tag=\prop_item:Nn\g_tag_section_level_prop{#1}}%
+ \tagmcbegin {tag=\prop_item:Nn\g_tag_section_level_prop{#1}}
+}{}{}
+\ExplSyntaxOff
+% could be used to insert something after the number ...
+%\patchcmd\@seccntformat{\endcsname}{%
+% \endcsname\rlap{\M}%
+%}{}{}
+
+\renewcommand{\cftdot}{\tagmcbegin{artifact}.\tagmcend}
+
+\makeatother
+ % I don't want to handle header/footer now
+\pagestyle{empty}
+\makeevenfoot{plain}{}{}{}
+\makeoddfoot{plain}{}{}{}
+
+
+%% missing yet: chapter titles
+\begin{document}
+
+\tagstructbegin{tag=Document}
+
+\tableofcontents*
+
+\chapter{Test chapter}
+
+\section{Test section}
+
+ \tagstructbegin{tag=P}
+ \tagmcbegin{tag=P}
+test
+ \tagmcend
+ \tagstructend
+
+
+\subsection{Test subsection}
+
+ \tagstructbegin{tag=P}
+ \tagmcbegin{tag=P}
+test
+ \tagmcend
+ \tagstructend
+
+\subsubsection{Test subsubsection}
+
+ \tagstructbegin{tag=P}
+ \tagmcbegin{tag=P}
+test
+ \tagmcend
+ \tagstructend
+
+\section*{Starred section}
+
+\tagstructend
+\end{document}
+
+