add to-geom package
This commit is contained in:
		
							parent
							
								
									8ec7d1efd2
								
							
						
					
					
						commit
						0e6f675648
					
				
					 2 changed files with 604 additions and 0 deletions
				
			
		|  | @ -2,3 +2,10 @@ FROM docker.io/ldericher/autodoc:diagram | |||
| 
 | ||||
| # source: https://stackoverflow.com/a/39420880 | ||||
| COPY pdfa /opt/pdfa | ||||
| 
 | ||||
| # install TeXoffice | ||||
| COPY --chown=root:root \ | ||||
|     texoffice \ | ||||
|     /opt/texlive/texdir/texmf-dist/tex/latex/texoffice | ||||
| 
 | ||||
| RUN /opt/texlive/texdir/bin/default/texconfig rehash | ||||
|  |  | |||
							
								
								
									
										597
									
								
								.devcontainer/texoffice/to-geom.sty
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										597
									
								
								.devcontainer/texoffice/to-geom.sty
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,597 @@ | |||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % CONTAINS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % | ||||
| % to-geom.sty | ||||
| % Extended geometry utilities | ||||
| % | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % DESCRIPTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % | ||||
| % Allows mid-text, consistent changing of | ||||
| % page geometry. | ||||
| % | ||||
| % This file is part of the TeXoffice-suite | ||||
| % by LDericher | ||||
| % | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % PREREQUISITES %%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % | ||||
| % package geometry | ||||
| % package scrpage2 | ||||
| % | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % PACKAGE OPTIONS %%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % | ||||
| % twoside: | ||||
| %   Activate two-sided typesetting. | ||||
| % | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % INTERFACE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % | ||||
| % Border Margins | ||||
| % | ||||
| % \TeXofficeMargin        - Default | ||||
| % | ||||
| % \TeXofficeLeftmargin    - Left | ||||
| % \TeXofficeRightmargin   - Right | ||||
| % \TeXofficeTopmargin     - Top | ||||
| % \TeXofficeBottommargin  - Bottom | ||||
| % \TeXofficeOddsideMargin - Additional inner | ||||
| % | ||||
| % Set all margins | ||||
| % | ||||
| % \TeXofficeMargin20mm | ||||
| % \TeXofficeResetmargins{} | ||||
| % | ||||
| % ------------------------------------------ | ||||
| % | ||||
| % Marginal notes | ||||
| % | ||||
| % \TeXofficeMarginparsep   - Spacing | ||||
| % \TeXofficeMarginparwidth - Width | ||||
| % | ||||
| % Disable marginal notes | ||||
| % | ||||
| % \TeXofficeNomarginpar{} | ||||
| % | ||||
| % ------------------------------------------ | ||||
| % | ||||
| % Header and Footer | ||||
| % | ||||
| % \TeXofficeHeadsep       - Header Spacing | ||||
| % \TeXofficeHeadheight    - Header Height | ||||
| % \TeXofficeHeadrulegauge - Headrule width | ||||
| % \TeXofficeHeadrulewidth - Headrule span | ||||
| % \TeXofficeHeadrulesep   - Headrule Spacing | ||||
| % | ||||
| % \TeXofficeFootsep       - Footer Spacing | ||||
| % \TeXofficeFootheight    - Footer Height | ||||
| % \TeXofficeFootrulegauge - Footrule width | ||||
| % \TeXofficeFootrulewidth - Footrule span | ||||
| % \TeXofficeFootrulesep   - Footrule Spacing | ||||
| % | ||||
| % Disable rules | ||||
| % | ||||
| % \TeXofficeNoheadrule{} | ||||
| % \TeXofficeNofootrule{} | ||||
| % | ||||
| % Disable everything | ||||
| % | ||||
| % \TeXofficeNoheader{} | ||||
| % \TeXofficeNofooter{} | ||||
| % | ||||
| % Setting Header and Footer | ||||
| % | ||||
| % \TeXofficeHeader | ||||
| %   {content} | ||||
| % \TeXofficeFooter | ||||
| %   {content} | ||||
| % \TeXofficeAdjustheader | ||||
| %   {content} | ||||
| % \TeXofficeAdjustfooter | ||||
| %   {content} | ||||
| % Arguments: | ||||
| %   content - Content to be placed | ||||
| % | ||||
| % ------------------------------------------ | ||||
| % | ||||
| % Inverse printer scaling | ||||
| % | ||||
| % Find this by e.g. printing out a box of | ||||
| % fixed size: | ||||
| % | ||||
| %   \begin{tabular}{@{}|@{}p{100mm}@{}|@{}}% | ||||
| %     \hline% | ||||
| %     \begin{minipage}[c][100mm][c]{100mm}% | ||||
| %     \end{minipage} \tabularnewline% | ||||
| %     \hline% | ||||
| %   \end{tabular}% | ||||
| % | ||||
| % Then measure the resulting distance. If | ||||
| % that example results in 98mm on a printed | ||||
| % page, TeXofficePrintScale should be set to | ||||
| % | ||||
| %   98/100 = .98 | ||||
| % | ||||
| % Default value works fine most of the time. | ||||
| % | ||||
| % \TeXofficePrintscale | ||||
| % | ||||
| % ------------------------------------------ | ||||
| % | ||||
| % Measurements | ||||
| % | ||||
| % \@TOGeomGetheight | ||||
| %   {variable} | ||||
| %   {content} | ||||
| % \@TOGeomGetwidth | ||||
| %   {variable} | ||||
| %   {content} | ||||
| % Arguments: | ||||
| %   variable - length type variable to set | ||||
| %   content - any content to be measured | ||||
| % Measure height or width of any content | ||||
| % | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % AUTHOR %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % | ||||
| % Joern-Michael 'LDericher' Miehe | ||||
| %  jmm@jmmworks.de | ||||
| % | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % EXAMPLES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % | ||||
| % Typesetting default-margined page(s) with | ||||
| % default LaTeX-size header and footer: | ||||
| % | ||||
| %   \documentclass[a4paper]{scrreprt} | ||||
| %   \usepackage{to-geom} | ||||
| %   \usepackage{lipsum} | ||||
| % | ||||
| %   \begin{document} | ||||
| %     \section{Section} | ||||
| %     \lipsum | ||||
| %   \end{document} | ||||
| % | ||||
| %------------------------------------------- | ||||
| % | ||||
| % Changing layout in mid-text | ||||
| % | ||||
| %   \usepackage{to-geom} | ||||
| %   \usepackage{lipsum} | ||||
| % | ||||
| %   \section{Section} | ||||
| %   % Default header, no marginal notes, | ||||
| %   % default footer | ||||
| %   \lipsum | ||||
| % | ||||
| %   \TeXofficeHeadheight12pt | ||||
| %   \TeXofficeGeometry | ||||
| %   % Smaller header, no marginal notes, | ||||
| %   % default footer | ||||
| %   \lipsum | ||||
| % | ||||
| %   \TeXofficeMarginparwidth1in | ||||
| %   \TeXofficeNofooter | ||||
| %   \pagestyle{empty} | ||||
| %   \TeXofficeGeometry | ||||
| %   % Smaller header, 1in of marginal notes, | ||||
| %   % no footer | ||||
| %   \lipsum | ||||
| % | ||||
| %------------------------------------------- | ||||
| % | ||||
| % Saving and loading layouts works | ||||
| % as defined by package 'geometry' | ||||
| % | ||||
| %   \usepackage{to-geom} | ||||
| %   \usepackage{lipsum} | ||||
| % | ||||
| %   \section{Section} | ||||
| %   % Default header, no marginal notes, | ||||
| %   % default footer | ||||
| %   \savegeometry{default} | ||||
| %   \lipsum | ||||
| % | ||||
| %   \TeXofficeMarginparwidth1in | ||||
| %   \TeXofficeNofooter | ||||
| %   \TeXofficeGeometry | ||||
| %   % Default header, 1in of marginal notes, | ||||
| %   % no footer | ||||
| %   \savegeometry{fancy} | ||||
| %   \pagestyle{empty} | ||||
| %   \lipsum | ||||
| % | ||||
| %   \loadgeometry{default} | ||||
| %   % Default header, no marginal notes, | ||||
| %   % default footer | ||||
| %   \pagestyle{plain} | ||||
| %   \lipsum | ||||
| % | ||||
| %   \loadgeometry{fancy} | ||||
| %   % Default header, 1in of marginal notes, | ||||
| %   % no footer | ||||
| %   \pagestyle{empty} | ||||
| %   \lipsum | ||||
| % | ||||
| %------------------------------------------- | ||||
| % | ||||
| % For head- and/or footrules, try adding | ||||
| % | ||||
| %   \TeXofficeHeadrulegauge.4pt | ||||
| %   \TeXofficeFootrulegauge.4pt | ||||
| %   \TeXofficeGeometry % Apply! | ||||
| % | ||||
| % somewhere. | ||||
| % | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| 
 | ||||
| \NeedsTeXFormat{LaTeX2e} | ||||
| \ProvidesPackage{to-geom}[2014/03/01 TeXoffice geometry utilities] | ||||
| 
 | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % Package options | ||||
| 
 | ||||
| % Book layout | ||||
| \DeclareOption{twoside}{% | ||||
|   \typeout{TOGeom enters twosided typesetting mode.}% | ||||
|   \def\@TOGeomTwosideSwitch{}% | ||||
| } | ||||
| 
 | ||||
| % Eat unknown options | ||||
| \DeclareOption*{% | ||||
|   \typeout{TOGeom eats \CurrentOption.}% | ||||
|   \PackageWarningNoLine{to-geom}{Script devoured the unknown: \CurrentOption}% | ||||
| } | ||||
| 
 | ||||
| % Finalize TeXoffice options | ||||
| \ProcessOptions\relax | ||||
| 
 | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % Packages | ||||
| 
 | ||||
| \RequirePackage{geometry} | ||||
| \RequirePackage{scrlayer-scrpage} | ||||
| 
 | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % Customizing header and footer | ||||
| 
 | ||||
| % Use normal font in header and footer | ||||
| \setkomafont{pageheadfoot}{\normalfont} | ||||
| % Reset fields | ||||
| \clearscrheadings | ||||
| % Use header and footer everywhere | ||||
| \pagestyle{scrheadings} | ||||
| 
 | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % Use header and footer on title page | ||||
| 
 | ||||
| \let\@TOGeomOldmaketitle\maketitle    % Rename \maketitle to \@TOGeomOldmaketitle | ||||
| \let\@TOGeomOldtoc\tableofcontents    % Rename \maketitle to \@TOGeomOldmaketitle | ||||
| 
 | ||||
| \renewcommand{\maketitle}{%     % Redefine \maketitle by ... | ||||
|   \@TOGeomOldmaketitle%         % ... using old \maketitle | ||||
|   \thispagestyle{scrheadings}%  % ... and setting the usual pagestyle | ||||
| } | ||||
| 
 | ||||
| \renewcommand{\tableofcontents}{% Redefine \tableofcontents by ... | ||||
|   \@TOGeomOldtoc%               % ... using old \maketitle | ||||
|   \thispagestyle{scrheadings}%  % ... and setting the usual pagestyle | ||||
| } | ||||
| 
 | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % Variables | ||||
| 
 | ||||
| \newlength\TeXofficeMargin                % Default border margin | ||||
| 
 | ||||
| \newlength\TeXofficeOddsideMargin         % Inner/Left binding offset | ||||
| \newlength\TeXofficeLeftmargin            % Left   margin | ||||
| \newlength\TeXofficeRightmargin           % Right  margin | ||||
| \newlength\TeXofficeTopmargin             % Top    margin | ||||
| \newlength\TeXofficeBottommargin          % Bottom margin | ||||
| 
 | ||||
| \newlength\TeXofficeMarginparsep          % Maximum marginal notes spacing | ||||
| \newlength\TeXofficeMarginparwidth        % Marginal notes width | ||||
| 
 | ||||
| \newlength\TeXofficeHeadsep               % Maximum header spacing | ||||
| \newlength\TeXofficeHeadheight            % Header height | ||||
| 
 | ||||
| \newlength\TeXofficeHeadrulegauge         % Header separation rule thickness | ||||
| \newcommand{\TeXofficeHeadrulewidth}      % Header separation rule span | ||||
|   {\textwidth}                            % % Defaults to full text width | ||||
| \newcommand{\TeXofficeHeadrulesep}        % Header separation rule spacing | ||||
|   {.5\TeXofficeHeadsep}                   % % Defaults to half the headsep | ||||
| 
 | ||||
| \newlength\TeXofficeFootsep               % Maximum footer spacing | ||||
| \newlength\TeXofficeFootheight            % Footer height | ||||
| 
 | ||||
| \newlength\TeXofficeFootrulegauge         % Footer separation rule thickness | ||||
| \newcommand{\TeXofficeFootrulewidth}      % Footer separation rule span | ||||
|   {\textwidth}                            % % Defaults to full text width | ||||
| \newcommand{\TeXofficeFootrulesep}        % Footer separation rule spacing | ||||
|   {.5\TeXofficeFootsep}                   % % Defaults to half the footsep | ||||
| 
 | ||||
| \newcommand{\TeXofficePrintscale}         % Printer specific scaling (default conditions) | ||||
|   {0.964912281} | ||||
| \renewcommand{\TeXofficePrintscale}{1}    % Printer specific scaling (perfect conditions) | ||||
| 
 | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % Commands for geometry | ||||
| 
 | ||||
| % Internal, hidden variables | ||||
| \newlength\@TOGeomHeadHeight      % Header height | ||||
| \newlength\@TOGeomFootHeight      % Footer height | ||||
| \newlength\@TOGeomHeadSep         % Header spacing | ||||
| \newlength\@TOGeomFootSep         % Footer spacing | ||||
| \newlength\@TOGeomFootSkip        % Footer skipping | ||||
| \newlength\@TOGeomOddsideMargin   % Inner/Left binding offset | ||||
| \newlength\@TOGeomLeftMargin      % Left border margin | ||||
| \newlength\@TOGeomTopMargin       % Top border margin | ||||
| \newlength\@TOGeomRightMargin     % Right border margin | ||||
| \newlength\@TOGeomBottomMargin    % Bottom border margin | ||||
| \newlength\@TOGeomMarginparSep    % Marginal notes spacing | ||||
| \newlength\@TOGeomMarginparWidth  % Marginal notes width | ||||
| 
 | ||||
| % Flush settings | ||||
| \newcommand{\TeXofficeGeometry}{% | ||||
|   % Normally, just use the set headheight value | ||||
|   \@TOGeomHeadHeight\TeXofficeHeadheight% | ||||
|   % If headheight is defined (>0) | ||||
|   \ifdim\@TOGeomHeadHeight>\z@% | ||||
|     % Then use set spacing value | ||||
|     \@TOGeomHeadSep\TeXofficeHeadsep% | ||||
|     % If a headrule should be drawn | ||||
|     \ifdim\TeXofficeHeadrulegauge>\z@% | ||||
|       % Add space for the headrule | ||||
|       \addtolength{\@TOGeomHeadHeight}{\TeXofficeHeadrulegauge}% | ||||
|       \addtolength{\@TOGeomHeadHeight}{\TeXofficeHeadrulesep}% | ||||
|       % Take space from the head spacing | ||||
|       \addtolength{\@TOGeomHeadSep}{-\TeXofficeHeadrulegauge}% | ||||
|       \addtolength{\@TOGeomHeadSep}{-\TeXofficeHeadrulesep}% | ||||
|     \fi% | ||||
|   \else% | ||||
|     % Else use no spacing | ||||
|     \@TOGeomHeadSep\z@% | ||||
|   \fi% | ||||
|   % Adapt values to printer | ||||
|   \@TOGeomOddsideMargin\TeXofficePrintscale\TeXofficeOddsideMargin% | ||||
|   \@TOGeomLeftMargin\TeXofficePrintscale\TeXofficeLeftmargin% | ||||
|   \@TOGeomTopMargin\TeXofficePrintscale\TeXofficeTopmargin% | ||||
|   \@TOGeomRightMargin\TeXofficePrintscale\TeXofficeRightmargin% | ||||
|   \@TOGeomBottomMargin\TeXofficePrintscale\TeXofficeBottommargin% | ||||
|   \@TOGeomMarginparWidth\TeXofficePrintscale\TeXofficeMarginparwidth% | ||||
|   % Normally, just use the set footheight value | ||||
|   \@TOGeomFootHeight\TeXofficeFootheight% | ||||
|   % If footheight is defined (>0) | ||||
|   \ifdim\@TOGeomFootHeight>\z@% | ||||
|     % Then use set spacing value | ||||
|     \@TOGeomFootSep\TeXofficeFootsep% | ||||
|     % If a footrule should be drawn | ||||
|     \ifdim\TeXofficeFootrulegauge>\z@% | ||||
|       % Add space for the footrule | ||||
|       \addtolength{\@TOGeomFootHeight}{\TeXofficeFootrulegauge}% | ||||
|       \addtolength{\@TOGeomFootHeight}{\TeXofficeFootrulesep}% | ||||
|       % Take space from the foot spacing | ||||
|       \addtolength{\@TOGeomFootSep}{-\TeXofficeFootrulegauge}% | ||||
|       \addtolength{\@TOGeomFootSep}{-\TeXofficeFootrulesep}% | ||||
|     \fi% | ||||
|     % Then use separation and height for skip value | ||||
|     \@TOGeomFootSkip\@TOGeomFootSep% | ||||
|     \addtolength{\@TOGeomFootSkip}{\@TOGeomFootHeight}% | ||||
|     % Because footer centers around footskip line | ||||
|     % placement must be adjusted relative to textheight | ||||
|     \addtolength{\@TOGeomFootSkip}{-.5\@TOGeomFootHeight}% | ||||
|     % ... and relative to paper bottom | ||||
|     \addtolength{\@TOGeomBottomMargin}{.5\@TOGeomFootHeight}% | ||||
|   \else% | ||||
|     % Else use no spacing | ||||
|     \@TOGeomFootSkip\z@% | ||||
|   \fi% | ||||
| % | ||||
|   % If TeXofficemarginparwidth is defined (>0) | ||||
|   \ifdim\TeXofficeMarginparwidth>\z@% | ||||
|     % Then use set spacing value | ||||
|     \@TOGeomMarginparSep\TeXofficeMarginparsep% | ||||
|   \else% | ||||
|     % Else use no spacing | ||||
|     \@TOGeomMarginparSep\z@% | ||||
|   \fi% | ||||
| % | ||||
|   \def\@TOGeomTwoside{twoside=false}% | ||||
|   \ifdefined\@TOGeomTwosideSwitch% | ||||
|     \def\@TOGeomTwoside{twoside=true}% | ||||
|   \fi% | ||||
| % | ||||
|   % Create and use new geometry | ||||
|   \expandafter\newgeometry\expandafter{% | ||||
|     % with orientation, | ||||
|     \@TOGeomTwoside, bindingoffset=\@TOGeomOddsideMargin, | ||||
|     % margins, | ||||
|     left=\@TOGeomLeftMargin, right=\@TOGeomRightMargin, top=\@TOGeomTopMargin, bottom=\@TOGeomBottomMargin,% | ||||
|     % header definitions, | ||||
|     headheight=\@TOGeomHeadHeight, headsep=\@TOGeomHeadSep,% | ||||
|     % footer definitions, | ||||
|     footskip=\@TOGeomFootSkip,% | ||||
|     % margin notes definitions and | ||||
|     marginparsep=\@TOGeomMarginparSep, marginparwidth=\@TOGeomMarginparWidth,% | ||||
|     % include every content into that | ||||
|     includeall,% | ||||
|     % showframe,% | ||||
|   }% | ||||
| } | ||||
| 
 | ||||
| % Propagate default border margin to margin variables | ||||
| \newcommand{\TeXofficeResetmargins}{% | ||||
|   % reset variable to default | ||||
|   \TeXofficeLeftmargin\TeXofficeMargin% | ||||
|   \TeXofficeRightmargin\TeXofficeMargin% | ||||
|   \TeXofficeTopmargin\TeXofficeMargin% | ||||
|   \TeXofficeBottommargin\TeXofficeMargin% | ||||
| } | ||||
| 
 | ||||
| % Remove headrule from layout | ||||
| \newcommand{\TeXofficeNoheadrule}{% | ||||
|   \TeXofficeHeadrulegauge\z@% | ||||
| } | ||||
| 
 | ||||
| % Remove footrule from layout | ||||
| \newcommand{\TeXofficeNofootrule}{% | ||||
|   \TeXofficeFootrulegauge\z@% | ||||
| } | ||||
| 
 | ||||
| % Remove header from layout | ||||
| \newcommand{\TeXofficeNoheader}{% | ||||
|   % alter layout | ||||
|   \TeXofficeNoheadrule% | ||||
|   \TeXofficeHeadheight\z@% | ||||
|   % empty | ||||
|   \@TOGeomHeadOut{}% | ||||
| } | ||||
| 
 | ||||
| % Remove footer from layout | ||||
| \newcommand{\TeXofficeNofooter}{% | ||||
|   % alter layout | ||||
|   \TeXofficeNofootrule% | ||||
|   \TeXofficeFootheight\z@% | ||||
|   % empty | ||||
|   \@TOGeomFootOut{}% | ||||
| } | ||||
| 
 | ||||
| % Remove marginal notes from layout | ||||
| \newcommand{\TeXofficeNomarginpar}{% | ||||
|   \TeXofficeMarginparwidth\z@% | ||||
| } | ||||
| 
 | ||||
| % Internal, hidden variables | ||||
| \newlength\@TOGeomAdditionalDepth     % Height deviation by depth component | ||||
| 
 | ||||
| % Measure full height (including below baseline) | ||||
| \newcommand{\@TOGeomGetheight}[2]{% | ||||
|   % Measure height of input (above baseline) | ||||
|   \settoheight{#1}{\vbox{#2}}% | ||||
|   % Measure depth of input (below baseline) | ||||
|   \settodepth{\@TOGeomAdditionalDepth}{\vbox{#2}}% | ||||
|   % Return | ||||
|   \addtolength{#1}{\@TOGeomAdditionalDepth}% | ||||
| } | ||||
| 
 | ||||
| % Measure full width (including below baseline) | ||||
| \newcommand{\@TOGeomGetwidth}[2]{% | ||||
|   % Measure width of input (above baseline) | ||||
|   \settowidth{#1}{\hbox{#2}}% | ||||
| } | ||||
| 
 | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % Commands for header/footer output | ||||
| 
 | ||||
| % Use commands from scrpage2 | ||||
| \let\@TOGeomHeadOut\chead | ||||
| \let\@TOGeomFootOut\cfoot | ||||
| 
 | ||||
| % Internal command for setting header | ||||
| \newcommand{\@TOGeomHeader}[1]{% | ||||
|   \@TOGeomHeadOut{% | ||||
|     % Use total headheight and textwidth | ||||
|     \begin{minipage}[t][\@TOGeomHeadHeight][t]{\textwidth}% | ||||
|       % Output content | ||||
|       #1% | ||||
|       % If a headrule should be present | ||||
|       \ifdim\TeXofficeHeadrulegauge>\z@% | ||||
|         % draw it at the bottom of our minipage | ||||
|         \vfill% | ||||
|         \kern\z@\hfill\rule{\TeXofficeHeadrulewidth}{\TeXofficeHeadrulegauge}\hfill\kern\z@% | ||||
|       \fi% | ||||
|     \end{minipage}% | ||||
|   }% | ||||
| } | ||||
| 
 | ||||
| % Internal command for setting footer | ||||
| \newcommand{\@TOGeomFooter}[1]{% | ||||
|   \@TOGeomFootOut{% | ||||
|     % Use total footheight and textwidth | ||||
|     \begin{minipage}[t][\@TOGeomFootHeight][t]{\textwidth}% | ||||
|       % If a footrule should be present | ||||
|       \ifdim\TeXofficeFootrulegauge>\z@% | ||||
|         % draw it at the top of our minipage | ||||
|         \kern\z@\hfill\rule{\TeXofficeFootrulewidth}{\TeXofficeFootrulegauge}\hfill\kern\z@% | ||||
|         \vfill% | ||||
|       \fi% | ||||
|       % Output content | ||||
|       #1% | ||||
|     \end{minipage}% | ||||
|   }% | ||||
| } | ||||
| 
 | ||||
| % Stretch content into the present header | ||||
| \newcommand{\TeXofficeHeader}[1]{% | ||||
|   % Output to header | ||||
|   \@TOGeomHeader{% | ||||
|     % Use usable headheight and full textwidth | ||||
|     \begin{minipage}[t][\TeXofficeHeadheight][t]{\textwidth}% | ||||
|       % Output content | ||||
|       #1% | ||||
|     \end{minipage}% | ||||
|   }% | ||||
| } | ||||
| 
 | ||||
| % Stretch content into the present footer | ||||
| \newcommand{\TeXofficeFooter}[1]{% | ||||
|   % Output to footer | ||||
|   \@TOGeomFooter{% | ||||
|     % Use usable footheight and full textwidth | ||||
|     \begin{minipage}[t][\TeXofficeFootheight][t]{\textwidth}% | ||||
|       % Output content | ||||
|       #1% | ||||
|     \end{minipage}% | ||||
|   }% | ||||
| } | ||||
| 
 | ||||
| % Create header snugly holding the content | ||||
| \newcommand{\TeXofficeAdjustheader}[1]{% | ||||
|   % Measure rendered height of input | ||||
|   \@TOGeomGetheight{\TeXofficeHeadheight}{#1}% | ||||
|   % Setting a minimum improves this | ||||
|   \ifdim\TeXofficeHeadheight<14.0675pt% | ||||
|     % Value generated by bisection testing | ||||
|     \TeXofficeHeadheight14.0675pt% | ||||
|   \fi% | ||||
|   % Recalculate geometry | ||||
|   \TeXofficeGeometry% | ||||
|   % Output to header | ||||
|   \TeXofficeHeader{#1}% | ||||
| } | ||||
| 
 | ||||
| % Create footer snugly holding the content | ||||
| \newcommand{\TeXofficeAdjustfooter}[1]{% | ||||
|   % Measure rendered height of input | ||||
|   \@TOGeomGetheight{\TeXofficeFootheight}{#1}% | ||||
|   % Recalculate geometry | ||||
|   \TeXofficeGeometry% | ||||
|   % Output to footer | ||||
|   \TeXofficeFooter{#1}% | ||||
| } | ||||
| 
 | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % Default Values | ||||
| % Mostly as in default KOMAscript a4 page setup | ||||
| 
 | ||||
| \TeXofficeHeadheight18pt        % Header height 18 points | ||||
| \TeXofficeHeadsep21pt           % Header margin 21 points | ||||
| \TeXofficeHeadrulegauge0pt      % No header separation rule | ||||
| 
 | ||||
| \TeXofficeFootheight18pt        % Footer height 18 points | ||||
| \TeXofficeFootsep32pt           % Footer margin 32 points | ||||
| \TeXofficeFootrulegauge0pt      % No footer separation rule | ||||
| 
 | ||||
| \TeXofficeMarginparwidth0pt     % No marginal notes section | ||||
| \TeXofficeMarginparsep12pt      % Marginal notes margin 12 points | ||||
| 
 | ||||
| \TeXofficeOddsideMargin0pt      % Additional inner margin | ||||
| \TeXofficeMargin20mm            % Default border margin 2 centimeters | ||||
| \TeXofficeResetmargins          % Propagate border margins | ||||
| \TeXofficeLeftmargin25mm        % Left margin 2.5 centimeters | ||||
| 
 | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| % Create default geometry | ||||
| 
 | ||||
| \TeXofficeGeometry | ||||
		Loading…
	
		Reference in a new issue