Changes

Jump to navigation Jump to search
some considerations about link border colors
 * use {{cmd|setupinteraction}}* [[Presentation effects]] and [[Presentations]]* see in [[Using Graphics| using graphics]] how to use movies.* [[Widgets]] (interactive elements, form fields etc.) and [[Interaction and button]]* [[PDF Bookmarks and Headers]]** and also [[References]]: Automatically referring to pages and labels.__TOC__
The {{cmd|setupinteraction}} command configures all interaction in the resulting PDF document. Basic interaction (meaning clickable links for references) is enabled using
</texcode>
This makes all links generated with the {{cmd|goto}} command (and indirectly the {{cmd|in}} and {{cmd|at}} commands) clickable.A page is dedicated to this system of '''[[References]]'''. = Link coloring = By default, the link text gets a green or red [[Color|color]], depending on whether the link is to another page or to the same page. You can change the link colors with the <tt>color</tt> (links to other pages) and <tt>contrastcolor</tt> (links to the same page) properties. Link style is by default set to bold. For example, to disable link highlighting altogether: <context source="yes">\startTEXpage[offset=1dk]\setupinteraction[state=start]\goto{https://contextgarden.net/}[url(https://contextgarden.net/)] is a great source of information. \setupinteraction[state=start,color=,contrastcolor=, style=,]\goto{https://contextgarden.net/}[url(https://contextgarden.net/)] is a great source of information.\stopTEXpage</context> = Alternative link highlighting = There is an alternative way of highlighting interactive links, by adding a colored border to the link text, such as in:  <context source="yes">\startTEXpage[offset=1dk]\setupinteraction[state=start,color=,contrastcolor=, style=,]\enabledirectives[references.border=darkgreen]\goto{https://contextgarden.net/}[url(https://contextgarden.net/)] is a great source of information.\stopTEXpage</context> This is a special PDF feature (a link annotation border), not just a frame added to the link text. Depending on your PDF viewer, these link annotation borders may be displayed and/or printed. According to the specification, the links generated by ConTeXt are only to be displayed, not to be printed. Just in case you wonder, this feature comes handy in order to have exactly the same PDF document in print and on screen.<ref>If you have a ConTeXt version from 2024 (as the wiki doesn’t have at the time of writing), there is also a way to distinguish border colors according to link types, such as in: <context source="yes">\starttext\definecolor[internal][x=00cc00]\definecolor[external][x=0000cc]\definecolor[urls][x=cc0000]\definecolor[programs][x=000000]\enabledirectives[references.border=internal]\enabledirectives[references.border=inner:internal]\enabledirectives[references.border=special operation+internal:internal]\enabledirectives[references.border=special operation+page:internal]\enabledirectives[references.border=outer:external]\enabledirectives[references.border=outer with inner:external]\enabledirectives[references.border=special outer with operation+page:external]\enabledirectives[references.border=special operation+file:programs]\enabledirectives[references.border=special operation+program:programs]\enabledirectives[references.border=special operation+url:urls] \startTEXpage[offset=1dk]\goto{this page}[page(1)]\blank\goto{page 25 from “Dealing with XML”}[xml-mkiv.pdf::25]\blank\goto{https://contextgarden.net/}[url(https://contextgarden.net/)]\blank\goto{the source of this file}[program(\jobname.tex)]\stopTEXpage\stoptext</context> The previous sample makes three categories: URLs, internal (parts of the same document), external (parts of other PDF documents), and programs or file (better avoid using these ones, since they might be considered security issues). Please, consider the following questions before using this feature:
== Hints ===== Link coloring ===# Since it is not related to typesetting, it is not an official feature in ConTeXt.By default, the link text gets a green or red [[Color|color]], depending # It depends completely on whether the link which viewer is being used to another page or to the same pagedisplay PDF documents. You can change the link # In any case, this feature is useless when not used sparingly (too many border colors with the <tt>color</tt> (links to other pagesmay confuse users) and <tt>contrastcolor.</ttref> (links to the same page) properties. For example, to disable link coloring alltogether:
<texcode>\setupinteraction[state=start,colorClickable table of contents =,contrastcolor=]</texcode>
=== Clickable table of contents ===
To make table of contents items clickable, use the {{cmd|setupcombinedlist}} command.
Alternatively, you can use the <tt>textcolor</tt> property to change just the text colour, and leave the section and page numbers colored.
=== Default focus mode ===
By default, clicking an inter-document hyperlink will switch to "fit page" mode, to override this:
</texcode>
== Named destinations (and links to them) ==Having other {{code|focus}} value than {{code|tight}} or the default ({{code|fit}}), gives PDF named destinations (which allow direct links to those destinations). With the following code, the links to named destinations would read: <texcode>\setupinteraction[state=start, focus=standard, prefix=_]\starttext\completecontent\dorecurse{25} {\section{Section} a\footnote{}}\stoptext</texcode> # Link to a section: https://wiki.contextgarden.net/images/1/14/nameddest.pdf#nameddest=_62.# Link to the last footnote in the document: https://wiki.contextgarden.net/images/1/14/nameddest.pdf#nameddest=_75. = PDF Bookmarks = == Quick start == For the impatient (like me), here is a complete example showing typical and useful commands, which are explained below: <texcode>\setupinteraction[state=start] % don't forget this line!% make chapter, section bookmarks visible when opening document\placebookmarks[chapter,section,subsection][chapter,section]\setupinteractionscreen[option=bookmark]% expand macros in bookmarks\enabledirectives[references.bookmarks.preroll]\starttext\startchapter[title=The beginning]Hi!\stopchapter\startchapter[title={A very, very\\long title}]Greetings!\startsection[title=Why so long]I don't know\startsubsection[title=Why not?]Good point.\stopsubsection\stopsection\stopchapter\startchapter[title=The never-ending story]Oh no.\stopchapter\startchapter[title=The never-ending story, bookmark=Forever!]Oh no.\stopchapter\stoptext</texcode> It’s important to note that ConTeXt LMTX expands macros in bookmarks and document metadata fields. == Explanation == You need to activate the interaction handling in order to see the bookmarks using {{cmd|setupinteraction|[state=start]}}. <texcode>\setupinteraction [state=start]</texcode> The bookmarks window is usually not visible by default. To have the bookmark window open automatically when the document is opened: <texcode>\setupinteractionscreen [option=bookmark] </texcode> ''Disclaimer:'' {{cmd|setupinteraction}} works with Adobe Reader/Acrobat, but other PDF viewers behave differently. E.g. xpdf v3.01 always opens the bookmark window. To get bookmarks for chapters, sections, and subsections, use: <texcode>\placebookmarks[chapter,section,subsection]</texcode> In the bookmark window, only chapter bookmarks are visible by default.If chapter and section bookmarks should be visible: <texcode>\placebookmarks [chapter,section,subsection] [chapter]</texcode> This will open the document with the bookmarks for chapters and sections visible (read as: and open up the chapter bookmarks) If your titles contain TeX commands or braces, you can choose to expand macros in bookmarks (not required in LMTX): <texcode>\enabledirectives[references.bookmarks.preroll]</texcode> If you want the same document metadata (again, not required in LMTX), you can expand macros here, too: <texcode>\def\title{Some \emph{title}!}\setupinteraction[title=\title, subtitle=..., author=...]\enabledirectives[interaction.identity.preroll]</texcode> The [[Titles|unnumbered headings]] ({{cmd|title}}, {{cmd|subject}} etc.) do '''not''' create bookmarks, even when listed in {{cmd|placebookmarks}}. In order to create the bookmarks, you need to add <code>force=yes</code>, for example like this: <texcode>\placebookmarks [title, subject] [force=yes]</texcode> If you do not like seeing the structure numbering in the bookmarks, you can add <code>number=no</code>, like this: <texcode>\placebookmarks [chapter,section] [chapter] [number=no]</texcode> == Unwanted output == With a long heading in a huge font, you might want to add linebreaks by hand. No problem, just use <tt>\\</tt>. The bookmark code ignores <tt>\\</tt>, so the bookmark itself won't have a linebreak.For example: <texcode>\setupinteraction[state=start]\placebookmarks[chapter]\setupinteractionscreen[option=bookmark]\starttext\startchapter[title=Long\\ title]hello\stopchapter\stoptext</texcode> ConTeXt attempts to replace commands inside bookmarks with an acceptable string. However, the result is not always optimal. To tweak ConTeXts behaviour, add specific commands to {{cmd|simplifiedcommands}}.  For example, to replace the <code>\CONTEXT</code> logo (which would normally become ''CONTEXT'') with a camel-cased version, use the following: <texcode> \appendtoks \def\CONTEXT{ConTeXt} \to \simplifiedcommands</texcode> A more general method, also usable for the above problem, is to use the <code>bookmark</code> option to specify the bookmark text explicitly. For example: <texcode>\setupinteraction[state=start]\placebookmarks[chapter]\setupinteractionscreen[Categoryoption=bookmark]\starttext\startchapter[title=A very long chapter\\ about splines, bookmark=Splines]hello\stopchapter\stoptext</texcode> {{mkii|In mkii, such manual bookmarks used the {{cmd|bookmark}} command on a separate line following a {{cmd|chapter}} command. With the new {{cmd|startchapter}} command, this is no longer needed, nor recommended.}} == Private bookmarks == We can also place our own list of bookmarks: <texcode>\setupinteraction [state=start]\setupinteractionscreen [option=bookmark]\definelist [mylist]\placebookmarks [chapter,mylist] [chapter,mylist]\starttext \startchapter[title={My title}] \input knuth\page \bookmark[mylist]{Before input zapf}\input zapf \stopchapter\stoptext</texcode> == XML source == When processing XML input file information in TUC file is stored as the XML command with the reference to XML node <texcode>["titledata"]={ ["label"]="section", ["title"]="\\xmlatt{xml:name::4}{title}", ["userdata"]={ ["usertitle"]=\\xmlatt{xml:name::4}{title}, }</texcode> You have to expand the information to get the text in TUC file and subsequently in bookmarks by modifying sections: <texcode>\setuphead [section] [expansion=yes]</texcode> To expand userdata also, you can use <tt>\normalexpanded{\startsection[..,..=..,..][..,..=..,..]}</tt> instead of <tt>expansion=yes</tt>. They are not in conflict. <texcode>\normalexpanded{\startsection[title=\\xmlatt{xml:name::4}{title}, bookmark=\\xmlatt{xml:name::4}{title}] [usertitle=\\xmlatt{xml:name::4}{title}]}...\stopsection</texcode>  = PDF Headers and Custom Properties = In order to add '''Author''', '''Title''', '''Keywords''', ... to PDF headers, use: <texcode>\setupinteraction [state=start, title={...}, author={...}, subtitle={...}, keyword={...}]</texcode> In order to add custom key-value properties in the PDF Document, use: <texcode>\pdfbackendsetinfo{foo}{bar}</texcode> == Prevent certain characters from appearing in pdf headers == To ignore certain TeX commands in {{cmd|setupinteraction}} add them to {{cmd|simplifiedcommands}}. For example, to ignore {{cmd|quad}} in <code>pdfauthor</code>, use the following (again, this is default in LMTX):Presentation <texcode> \appendtoks \let\quad\space \to \simplifiedcommands \setupinteraction [author={Author1\quad Author2}]</texcode> {{mkii|Accented characters like ''ä'', ''č'', ... will turn into their unaccented counterparts ''a'', ''c'', ... by default. If you want to prevent that, use <texcode>\input spec-tst</texcode> For example <texcode>\enableregime[utf] \setupinteraction [state=start]\setupinteractionscreen [option=bookmark% before \placebookmarks\input spec-tst.tex  \placebookmarks [chapter,section,subsection] [Categorychapter] ... and here is your document with accented characters in titles & bookmarks ... </texcode>}} == Import PDF metadata fields from other PDF documents== Inspired by a mailing list reply from Hans, here is a minimal sample:Command <texcode>\starttext\startluacodefunction document.transfer_metadata(name) local main_doc = lpdf.epdf.load(name) lpdf.addtocatalog("Lang", lpdf.unicode(main_doc.Catalog.Lang), lpdf.string(main_doc.Catalog.Lang)) context.setupinteraction{ title = main_doc.Info.Title } context.setupinteraction{ subtitle = main_doc.Info.Subject } context.setupinteraction{ author = main_doc.Info.Author } lpdf.epdf.unload(name)end\stopluacode\unexpanded\def\TransferMetadata#1% {\ctxlua{document.transfer_metadata("#1")}}\null\TransferMetadata{name.pdf}\stoptext</texcode> It also imports language to the PDF document (not to the document language). = Further reading = * [[URL]]: typesetting of URLs references.* [[Presentations]], [[Presentation Styles]], [[SlideWithSteps]], [[Presentation effects]]* [[Widgets]] (interactive elements, form fields etc.) and [[Interactionand button]]* See in [[Using Graphics|using graphics]] how to use movies.* [[Multimedia Inclusion]] describes how to add audio and video files. = Footnotes = [[Category:Interaction]]
139

edits

Navigation menu