\setuphead[part] - special look
Hello, I'm trying to \setuphead[part] to have the following features: 1. Part head to fill the whole page. 2. Part number and name to be placed (approx.) in the golden ratio of the page. 3. Page background (for the \part only!) to be colored, e.g. blue. ---- \define[2]\MyPartCmd{% {% \vbox to\vsize{% \vfill\vfill% #1 \blank[big] #2 \vfill\vfill\vfill% } }% } \define[1]\MyPartCmdText{% \hbox to\hsize{\hfill \bf DĂl #1\hfill}% } \definefontsize[e] \definebodyfontenvironment[default][e=5.] \define[1]\MyPartCmdNum{% \hbox to\hsize{\hfill \bfe\sc#1\hfill}% } \setuphead[part] [command=\MyPartCmd, numbercommand=\MyPartCmdText, textcommand=\MyPartCmdNum, placehead=yes,header=none,page=odd, before={\setupbackgrounds[page][background=color,backgroundcolor=blue,state=start]}, %after={\setupbackgrounds[page][background=]}, ] \starttext \showboxes \part{Part} \input knuth \stoptext ---- The code above doesn't satisfy the features: Ad 1: Some text (from knuth) appears in the bottom (should be solved by "after=\page", but is there a better solution, e.g. to affect height of the \vbox in \MyPartCmd?) Ad 3: I'm able to make only the part page blue (now all pages are blue; when I uncomment "after={\setupbackgrounds[page][background=]},", no page is blue). Could anyone help me to "tune" the \setuphead[part]? Thank you in advance. Best regards, Lukas -- Ing. Lukáš Procházka | mailto:LPr@pontex.cz Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz Bezová 1658 147 14 Praha 4 Tel: +420 241 096 751 Fax: +420 244 461 038
Procházka Lukáš Ing. - Pontex s. r. o. mailto:LPr@pontex.cz 22. Juni 2015 09:35 Hello,
I'm trying to \setuphead[part] to have the following features:
1. Part head to fill the whole page.
2. Part number and name to be placed (approx.) in the golden ratio of the page.
3. Page background (for the \part only!) to be colored, e.g. blue.
---- \define[2]\MyPartCmd{% {% \vbox to\vsize{% \vfill\vfill% #1 \blank[big] #2 \vfill\vfill\vfill% } }% }
\define[1]\MyPartCmdText{% \hbox to\hsize{\hfill \bf DĂl #1\hfill}% }
\definefontsize[e] \definebodyfontenvironment[default][e=5.]
\define[1]\MyPartCmdNum{% \hbox to\hsize{\hfill \bfe\sc#1\hfill}% }
\setuphead[part] [command=\MyPartCmd, numbercommand=\MyPartCmdText, textcommand=\MyPartCmdNum, placehead=yes,header=none,page=odd,
before={\setupbackgrounds[page][background=color,backgroundcolor=blue,state=start]},
%after={\setupbackgrounds[page][background=]}, ]
\starttext \showboxes \part{Part} \input knuth \stoptext ----
The code above doesn't satisfy the features:
Ad 1: Some text (from knuth) appears in the bottom (should be solved by "after=\page", but is there a better solution, e.g. to affect height of the \vbox in \MyPartCmd?) The \page command is needed here. Ad 3: I'm able to make only the part page blue (now all pages are blue; when I uncomment "after={\setupbackgrounds[page][background=]},", no page is blue). You can use the \pushbackground and \popbackground command to limit the background changes to a certain part of your document. Could anyone help me to "tune" the \setuphead[part]? \defineheadalternative [partpage] [renderingsetup=partpage]
\startsetups[partpage] \startmakeup[part] \headsetupspacing \headnumbercontent \blank[big] \headtextcontent \stopmakeup \stopsetups \definemakeup [part] [align=middle, top=\vfill\vfill, bottom=\vfill\vfill\vfill] \setuphead [part] [placehead=yes, alternative=partpage, page=right, before={\pushbackground[page]\setupbackgrounds[page][background=color,backgroundcolor=blue]}, after={\page\popbackground}, bodypartlabel=part, align=middle, numberstyle=\bfb, textstyle=\bfd\sc] \setuplabeltext[en][part=DĂl ] \starttext \part{Part} \input knuth \stoptext BTW: Where is Ad 2? Wolfgang
Hello Wolfgang,
thank you for the solution, it pretty systemic.
Ad "Ad 2": There was no question as succeeded placing page number and name into the page gold ratio, so just mentioned as one of the features required.
After some plying with your solution, I deduce:
We have to derive a new alternative for "part" (here "partpage") as we CAN assign a new "renderingsetup" to this alternative but we CANNOT assign a rendering setup in the scope of \setuphead.
IOW, there is no "\setuphead[part][renderingsetup=partpage]".
If there was the option "\setuphead[part][renderingsetup=partpage]" we could simplify to:
----
% No headalternative here
\startsetups[partpage]
\startmakeup[part]
\headsetupspacing
\headnumbercontent
\blank[big]
\headtextcontent
\stopmakeup
\stopsetups
\definemakeup
[part]
[align=middle,
top=\vfill\vfill,
bottom=\vfill\vfill\vfill]
\setuphead
[part]
[...
renderingsetup=partpage,
...
]
...
----
Am I right?
(And, I understand that the aim is not to support all extraordinary request(s) in \setuphead by its keys/options - it is enough to have A way to get them, here using a "headalternative"...)
Thanks again.
Best regards,
Lukas
On Mon, 22 Jun 2015 10:51:46 +0200, Wolfgang Schuster
You can use the \pushbackground and \popbackground command to limit the background changes to a certain part of your document.
\defineheadalternative [partpage] [renderingsetup=partpage]
\startsetups[partpage]
\startmakeup[part] \headsetupspacing \headnumbercontent \blank[big] \headtextcontent \stopmakeup
\stopsetups
\definemakeup [part] [align=middle, top=\vfill\vfill, bottom=\vfill\vfill\vfill]
\setuphead [part] [placehead=yes, alternative=partpage, page=right, before={\pushbackground[page]\setupbackgrounds[page][background=color,backgroundcolor=blue]}, after={\page\popbackground}, bodypartlabel=part, align=middle, numberstyle=\bfb, textstyle=\bfd\sc]
\setuplabeltext[en][part=DĂl ]
\starttext \part{Part} \input knuth \stoptext
BTW: Where is Ad 2?
Wolfgang
-- Ing. Lukáš Procházka | mailto:LPr@pontex.cz Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz Bezová 1658 147 14 Praha 4 Tel: +420 241 096 751 Fax: +420 244 461 038
Procházka Lukáš Ing. - Pontex s. r. o. mailto:LPr@pontex.cz 22. Juni 2015 11:42 Hello Wolfgang,
thank you for the solution, it pretty systemic.
Ad "Ad 2": There was no question as succeeded placing page number and name into the page gold ratio, so just mentioned as one of the features required.
After some plying with your solution, I deduce:
We have to derive a new alternative for "part" (here "partpage") as we CAN assign a new "renderingsetup" to this alternative but we CANNOT assign a rendering setup in the scope of \setuphead.
IOW, there is no "\setuphead[part][renderingsetup=partpage]".
If there was the option "\setuphead[part][renderingsetup=partpage]" we could simplify to: This method to set your own layout is also used by other command (e.g.
the list mechanism used for the table of contents) and the \defineheadplacement has also a alternative key which is needed when you want an inline heading (e.g. \setuphead[...][alternative=text]).
---- % No headalternative here
\startsetups[partpage] \startmakeup[part] \headsetupspacing \headnumbercontent \blank[big] \headtextcontent \stopmakeup \stopsetups
\definemakeup [part] [align=middle, top=\vfill\vfill, bottom=\vfill\vfill\vfill]
\setuphead [part] [... renderingsetup=partpage, ... ]
...
----
Am I right?
(And, I understand that the aim is not to support all extraordinary request(s) in \setuphead by its keys/options - it is enough to have A way to get them, here using a "headalternative"...) The necessary key would be endless with each new layout and with the \defineheadplacement command to create your own without adding additional keys but you can also use the command key instead of \defineheadplacement. The advantage of \defineheadplacement is that you can better structure the code in the setups environment because you don't have to worry about spaces.
Wolfgang
Hello,
I'm really satisfied with the way you coded the part page layout.
I've modified a bit your code - just to highlight the dependencies (rendering setup, makeup and so on; if anyone interested, see the attachment).
On Mon, 22 Jun 2015 18:36:03 +0200, Wolfgang Schuster
This method to set your own layout is also used by other command (e.g. the list mechanism used for the table of contents) and the \defineheadplacement has also a alternative key which is needed when you want an inline heading (e.g. \setuphead[...][alternative=text]).
...
The necessary key would be endless with each new layout and with the \defineheadplacement command to create your own without adding additional keys but you can also use the command key instead of \defineheadplacement. The advantage of \defineheadplacement is that you can better structure the code in the setups environment because you don't have to worry about spaces.
Wolfgang
As "\defineheadplacement" is concerned: You mentioned this command in your response, but "\defineheadplacement" is used nowhere in your code and there is no info about on wiki. Could you provide a MWE how \defineheadplacement is supposed to be used? Best regards, Lukas -- Ing. Lukáš Procházka | mailto:LPr@pontex.cz Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz Bezová 1658 147 14 Praha 4 Tel: +420 241 096 751 Fax: +420 244 461 038
Procházka Lukáš Ing. - Pontex s. r. o. mailto:LPr@pontex.cz 23. Juni 2015 09:45 Hello,
I'm really satisfied with the way you coded the part page layout.
I've modified a bit your code - just to highlight the dependencies (rendering setup, makeup and so on; if anyone interested, see the attachment). You can drop the \definebodyfontenvironment line when you use \definefont to set the part fonts, e.g.
\definefont[PartText][SerifBold sa 5] \setuphead[part][textstyle=PartText]
On Mon, 22 Jun 2015 18:36:03 +0200, Wolfgang Schuster
wrote: This method to set your own layout is also used by other command (e.g. the list mechanism used for the table of contents) and the \defineheadplacement has also a alternative key which is needed when you want an inline heading (e.g. \setuphead[...][alternative=text]).
...
The necessary key would be endless with each new layout and with the \defineheadplacement command to create your own without adding additional keys but you can also use the command key instead of \defineheadplacement. The advantage of \defineheadplacement is that you can better structure the code in the setups environment because you don't have to worry about spaces.
Wolfgang
As "\defineheadplacement" is concerned:
You mentioned this command in your response, but "\defineheadplacement" is used nowhere in your code and there is no info about on wiki.
Could you provide a MWE how \defineheadplacement is supposed to be used? You shouldn't use it because Hans kept it only for backwards compatibility and \defineheadplacement is the better alternative. You can also use the same rendering (the content of the setups environment) for different head alternatives where you set the differences with the \defineheadalternative command.
% HeadA \defineheadplacement[HeadA][vertical]#1#2% {\startframedtext #1\quad #2% \stopframedtext} \definehead[HeadA][section][alternative=HeadA] % HeadB \defineheadalternative[HeadB][renderingsetup=HeadB] % alternative=vertical \startsetups[HeadB] \startframedtext \headnumbercontent \qquad \headtextcontent \stopframedtext \stopsetups \definehead[HeadB][section][alternative=HeadB] \starttext \HeadA{Knuth} \input knuth \HeadB{Tufte} \input tufte \stoptext Wolfgang
Hello,
one more question.
When I place \part into \...bodymatter and \...appendices, the \part in body matter yields "Díl " + number, which is OK, but in appendices it gives "<nothing>" + Roman number ("I", "II", ...).
What is the most systemic to \setuphead[part] to give "Díl..." in body matter and "Dodatek..." in appendices, and also to get letter numbering ("A", "B"...) in appendices (so "Dodatek A", "Doadatek B", ...)?
A sample source code with body matter and appendices is attached...
Best regards,
Lukas
On Tue, 23 Jun 2015 16:28:46 +0200, Wolfgang Schuster
Procházka Lukáš Ing. - Pontex s. r. o. mailto:LPr@pontex.cz 23. Juni 2015 09:45 Hello,
I'm really satisfied with the way you coded the part page layout.
I've modified a bit your code - just to highlight the dependencies (rendering setup, makeup and so on; if anyone interested, see the attachment). You can drop the \definebodyfontenvironment line when you use \definefont to set the part fonts, e.g.
\definefont[PartText][SerifBold sa 5] \setuphead[part][textstyle=PartText]
On Mon, 22 Jun 2015 18:36:03 +0200, Wolfgang Schuster
wrote: This method to set your own layout is also used by other command (e.g. the list mechanism used for the table of contents) and the \defineheadplacement has also a alternative key which is needed when you want an inline heading (e.g. \setuphead[...][alternative=text]).
...
The necessary key would be endless with each new layout and with the \defineheadplacement command to create your own without adding additional keys but you can also use the command key instead of \defineheadplacement. The advantage of \defineheadplacement is that you can better structure the code in the setups environment because you don't have to worry about spaces.
Wolfgang
As "\defineheadplacement" is concerned:
You mentioned this command in your response, but "\defineheadplacement" is used nowhere in your code and there is no info about on wiki.
Could you provide a MWE how \defineheadplacement is supposed to be used? You shouldn't use it because Hans kept it only for backwards compatibility and \defineheadplacement is the better alternative. You can also use the same rendering (the content of the setups environment) for different head alternatives where you set the differences with the \defineheadalternative command.
% HeadA
\defineheadplacement[HeadA][vertical]#1#2% {\startframedtext #1\quad #2% \stopframedtext}
\definehead[HeadA][section][alternative=HeadA]
% HeadB
\defineheadalternative[HeadB][renderingsetup=HeadB] % alternative=vertical
\startsetups[HeadB] \startframedtext \headnumbercontent \qquad \headtextcontent \stopframedtext \stopsetups
\definehead[HeadB][section][alternative=HeadB]
\starttext
\HeadA{Knuth}
\input knuth
\HeadB{Tufte}
\input tufte
\stoptext
Wolfgang
-- Ing. Lukáš Procházka | mailto:LPr@pontex.cz Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz Bezová 1658 147 14 Praha 4 Tel: +420 241 096 751 Fax: +420 244 461 038
Procházka Lukáš Ing. - Pontex s. r. o. mailto:LPr@pontex.cz 29. Juni 2015 14:05 Hello,
one more question.
When I place \part into \...bodymatter and \...appendices, the \part in body matter yields "Díl " + number, which is OK, but in appendices it gives "<nothing>" + Roman number ("I", "II", ...). You have to change the default conversion for the appendix. What is the most systemic to \setuphead[part] to give "Díl..." in body matter and "Dodatek..." in appendices, and also to get letter numbering ("A", "B"...) in appendices (so "Dodatek A", "Doadatek B", ...)? You have to set a label for the appendix with the appendixlabel key. A sample source code with body matter and appendices is attached... % Method 1: change the values of the predefined "default" conversion set, % you can use name of the sectionblock as prefix (separated by a :) to set % the values only for a certain part (e.g. the appendix) of your document
\defineconversionset[appendix:default][A,R][n] % Method 2: Create your own conversion set and apply it to all sections % % \defineconversionset[bodypart:myconversion][n,n][n] % \defineconversionset[appendix:myconversion][A,R][n] % \setuphead[part,chapter,section][sectionconversionset=myconversion] \setuphead [part] [placehead=yes, bodypartlabel=bodypart-mypart, appendixlabel=appendix-mypart] \setuplabeltext[en][bodypart-mypart=Díl ,appendix-mypart=Dodatek ] \starttext \startbodymatter \part{My First Part} \input knuth \stopbodymatter \startappendices \part{My First Appendix} \input tufte \stopappendices \stoptext Wolfgang
Hello Wolfgang,
thanks again, it works perfectly.
Best regards,
Lukas
On Mon, 29 Jun 2015 14:33:41 +0200, Wolfgang Schuster
Procházka Lukáš Ing. - Pontex s. r. o. mailto:LPr@pontex.cz 29. Juni 2015 14:05 Hello,
one more question.
When I place \part into \...bodymatter and \...appendices, the \part in body matter yields "Díl " + number, which is OK, but in appendices it gives "<nothing>" + Roman number ("I", "II", ...). You have to change the default conversion for the appendix. What is the most systemic to \setuphead[part] to give "Díl..." in body matter and "Dodatek..." in appendices, and also to get letter numbering ("A", "B"...) in appendices (so "Dodatek A", "Doadatek B", ...)? You have to set a label for the appendix with the appendixlabel key. A sample source code with body matter and appendices is attached... % Method 1: change the values of the predefined "default" conversion set, % you can use name of the sectionblock as prefix (separated by a :) to set % the values only for a certain part (e.g. the appendix) of your document
\defineconversionset[appendix:default][A,R][n]
% Method 2: Create your own conversion set and apply it to all sections % % \defineconversionset[bodypart:myconversion][n,n][n] % \defineconversionset[appendix:myconversion][A,R][n] % \setuphead[part,chapter,section][sectionconversionset=myconversion]
\setuphead [part] [placehead=yes, bodypartlabel=bodypart-mypart, appendixlabel=appendix-mypart]
\setuplabeltext[en][bodypart-mypart=Díl ,appendix-mypart=Dodatek ]
\starttext \startbodymatter \part{My First Part} \input knuth \stopbodymatter \startappendices \part{My First Appendix} \input tufte \stopappendices \stoptext
Wolfgang
-- Ing. Lukáš Procházka | mailto:LPr@pontex.cz Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz Bezová 1658 147 14 Praha 4 Tel: +420 241 096 751 Fax: +420 244 461 038
participants (2)
-
Procházka Lukáš Ing. - Pontex s. r. o.
-
Wolfgang Schuster