summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/morehype/use/blogdot.sty
blob: abcd41a3bab4d95a464fef6a6dd13f6eb52f72d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
\NeedsTeXFormat{LaTeX2e}[1994/12/01] %% \newcommand* etc. 
\ProvidesPackage{blogdot}[2013/01/22 v0.41b HTML presentations (UL)]
%% copyright (C) 2011 Uwe Lueck, 
%% http://www.contact-ednotes.sty.de.vu 
%% -- author-maintained in the sense of LPPL below.
%%
%% This file can be redistributed and/or modified under 
%% the terms of the LaTeX Project Public License; either 
%% version 1.3c of the License, or any later version.
%% The latest version of this license is in
%%     http://www.latex-project.org/lppl.txt
%% We did our best to help you, but there is NO WARRANTY. 
%%
%% Please report bugs, problems, and suggestions via 
%% 
%%   http://www.contact-ednotes.sty.de.vu 
%%
%% == 'blog' Required ==
%% 'blogdot' is an extension of 'blog' 
%% (but what about options? TODO):
\RequirePackage{blog}
%% == Size Parameters ==
%% \label{sec:dot-size}
%% I assume that it is clear what the following
%% six page dimension parameters 
%% \begin{quote}
%% |\leftpagemargin|, |\rightpagemargin|, 
%% |\upperpagemargin|,\\|\lowerpagemargin|, 
%% |\typeareawidth|, |\typeareaheight|
%% \end{quote}
%% mean. 
%% The choices are what I thought should work best 
%% on my 1024$\times$600 screen (in fullscreen mode); 
%% but I had to optimize the left and right margins experimentally
%% (with Mozilla Firefox~3.6.22 for Ubuntu canonical~-~1.0).
%% It seems to be best when the horizontal parameters 
%% together with what the brouswer adds 
%% (scroll bar, probably 32px with me) 
%% sum up to the screen width.
\newcommand*{\leftpagemargin}{176}
\newcommand*{\rightpagemargin}{\leftpagemargin}
%% So |\rightpagemargin| ultimately is the same as 
%% |\leftpagemargin| as long as you don't redefine it, 
%% and it suffices to `\renewcommand' `\leftpagemargin'
%% in order to get a horizontically centered type area 
%% with user-defined margin widths.---Something analogous
%% applies to |\upperpagemargin| and |\lowerpagemargin|:
\newcommand*{\upperpagemargin}{80}
\newcommand*{\lowerpagemargin}{\upperpagemargin}
%% A difference to the ``horizontal" parameters is 
%% (I expect) that the position of the type area on the 
%% screen is affected by |\upperpagemargin| only, 
%% and you may choose |\lowerpagemargin| just large enough 
%% that the next slide won't be visible on any computer screen 
%% you can think of.
\newcommand*{\typeareawidth}{640}
\newcommand*{\typeareaheight}{440}
%% Centering with respect to web page body may work better on 
%% different screens (2011/10/03), but it doesn't work here
%% (2011/10/04).
% \renewcommand*{\body}{%
%     </head>\CLBrk
%     <body \@bgcolor{\bodybgcolor} \@align@c>}
%% |\CommentBlogDotWholeWidth| procuces no \HTML\ code ...
\global\let\BlogDotWholeWidth\@empty
%% ... unless calculated with |\SumBlogDotWidth|: 
\newcommand*{\SumBlogDotWidth}{%
    \relax{%                        %% \relax 2011/10/22 magic ...
    \count@\typeareawidth
    \advance\count@ \leftpagemargin
    \advance\count@\rightpagemargin
    \typeout{ * blogdot slide width = \the\count@\space*}%
    \xdef\CommentBlogDotWholeWidth{%
        \comment{ slide width = \the\count@\ }}}}
%%
%% == (Backbone for) Starting a ``Slide" ==
%% \label{sec:dot-start}
%% |\startscreenpage{<style>}{<anchor-name>}|
\newcommand*{\startscreenpage}[2]{%% 0 2011/09/25!?:
    \\\CLBrk                                %% 2012/11/19
%% <- `\\' suddenly necessary, likewise in `texblog.fdf'
%%    with `\NextView' and `\nextruleview'. 
%%    Due to recent `firefox'?              %% 2012/11/21
    \startTable{%
        \@cellpadding{0} \@cellspacing{0}%
        \maybe@blogdot@borders              %% 2011/10/12
        \maybe@blogdot@frame                %% 2011/10/14
    }%
    \CLBrk                                  %% 2011/10/03
    \starttr
%% First cell determines both
%% height of upper page margin |\upperpagemargin|
%% and
%% width of left page margin |\leftpagemargin|:
      \startTd{\@width {\leftpagemargin }%
               \@height{\upperpagemargin}}%
%         \textcolor{\bodybgcolor}{XYZ}%
      \endTd
%% Using |\typeareawidth|:
%       \startTd{\@width{\typeareawidth}}\endTd
      \simplecell{%
        \CLBrk
        \hanc{#2}{\hvspace{\typeareawidth}% 
                          {\upperpagemargin}}%
        \CLBrk
      }%
%% Final cell of first row determines right margin width:
      \startTd{\@width{\leftpagemargin}}\endTd
    \endtr
    \starttr
    \emptycell\startTd{\@height{\typeareaheight}#1}%
}
%% |\titlescreenpage| \ (`\STARTscreenpage' TODO?) \ %% 2011/10/03 \ 2012/11/19
%% opens the title page (I thought). To get it to your screen, 
%% (make and) click a link like 
%% \[`\ancref{START}{start presentation}':\]
\newcommand*{\titlescreenpage}{%
    \startscreenpage{\@align@c}{START}}
%% 
%% == Finishing a ``Slide" and ``Restart" (Backbone) ==
%% \label{sec:dot-fin}
%% |\screenbottom{<next-anchor>}| finishes the current slide 
%% and links to the <next-anchor>, the anchor of a slide opened by 
%% \[`\startscreenpage{<style>}{<next-anchor>}'.\] 
%% More precisely, the margin below the type area is that link.
%% The corner at its right is a link to the anchor to whose name 
%% |\BlogDotRestart| expands. 
\newcommand*{\screenbottom}[1]{%
    \ifFillBlogDotTypeArea 
      <p>\ancref{#1}{\BlogDotFillText}%    %% not </p> 2011/10/22
    \fi
    \endTd\emptycell
    \endtr
    \CLBrk
    \tablerow{bottom margin}%                       %% 2011/10/13
      \emptycell
      \CLBrk
      \startTd{\@align@c}%
        \ancref{#1}{\HVspace{\BlogDotBottomFill}%
%% <- seems to be useless now (2011/10/15).
                            {\typeareawidth}%
                            {\lowerpagemargin}}%
      \endTd
      \CLBrk
      \simplecell{\ancref{\BlogDotRestart}% 
                         {\hvspace{\rightpagemargin}% 
                                  {\lowerpagemargin}}}%
    \endtablerow
    \CLBrk
    \endTable
}
%% The default for |\BlogDotRestart| is |START|---the title page. 
%% You can `\renew'\-`command' it so you get to a slide 
%% containing an overview of the presentation.
\newcommand*{\BlogDotRestart}{START}
%% 
%% == Moving to Next ``Slide" (User Level) == 
%% \label{sec:dot-next}
%% |\nextscreenpage{<style>}{<anchor-name>}|
%% puts closing the previous slide and opening the next 
%% one---having anchor name `<anchor-name>'---together.
%% <style> is for style settings for the next page, 
%% made here for choosing between centering the page/slide content 
%% and aligning it flush left.
\newcommand*{\nextscreenpage}[2]{%
    \screenbottom{#2}\CLBrk
    \hrule           \CLBrk 
    \startscreenpage{#1}{#2}}
%% |\nextcenterscreenpage{<anchor-name>}| chooses centering 
%% the slide content:
\newcommand*{\nextcenterscreenpage}{\nextscreenpage{\@align@c}}
%% |\nextnormalscreenpage{<anchor-name>}| chooses flush left
%% on the type area determined by |\typeareawidth|:
\newcommand*{\nextnormalscreenpage}{\nextscreenpage{}}
%% 
%% == Constructs for Type Area ==
%% \label{sec:dot-type}
%% If you want to get centered titles with \xmltagcode{h2} etc., 
%% you should declare this in `.css' files. But you may consider 
%% this way too difficult, and you may prefer to declare this 
%% right in the \HTML\ code. That's what I do! I use 
%% |\cheading{<digit>}{<text>}| for this purpose. 
\newcommand*{\cheading}[1]{\CLBrk\TagSurr{h#1}{\@align@c}}
%% |\begin{textblock}{<width>}| opens a |{textblock}| 
%% environment. The latter will contain text that will be flush left
%% in a narrower text area---of width <width>---than the one 
%% determined by |\typeareawidth|. It may be used on 
%% "centered" slides. It is made for lists whose entries are 
%% so short that the page would look unbalanced under a 
%% centered title with the list adjusted to the left 
%% of the entire type area. (Thinking of standard \LaTeX, 
%% it is almost the `{minipage}' environment, however lacking 
%% the footnote feature, in that respect it is rather 
%% similar to `\parbox' which however is not an environment.)
\newenvironment*{textblock}[1]
    {\startTable{\@width{#1}}\starttr\startTd{}}
    {\endTd\endtr\endTable}
%%
%% == Debugging and `.cfg's ==
%% \label{sec:cfgs}
%% |\ShowBlogDotBorders| shows borders of the page margins 
%% and may be undone by |\DontShowBlogDotBorders|:
\newcommand*{\ShowBlogDotBorders}{%
    \def\maybe@blogdot@borders{rules="all"}}
\newcommand*{\DontShowBlogDotBorders}{%
    \let\maybe@blogdot@borders\@empty}
\DontShowBlogDotBorders
%% %% 2011/10/14:
%% |\ShowBlogDotFrame| shows borders of the page margins 
%% and may be undone by |\DontShowBlogDotFrame|:
\newcommand*{\ShowBlogDotFrame}{%
    \def\maybe@blogdot@frame{\@frame@box}}
\newcommand*{\DontShowBlogDotFrame}{%
    \let\maybe@blogdot@frame\@empty}
\DontShowBlogDotFrame
%% However, the rules seem to affect horizontal positions ...
%%
%% |\BlogDotFillText| is a dirty trick ... seems to widen 
%% %% doc. extended 2011/10/13
%% the type area and this way centers the text on wider screens 
%% than the one used originally. Of course, this can corrupt 
%% intended line breaks. 
\newcommand*{\BlogDotFillText}{%            %% 2011/10/11
    \center
        \BlogDotFillTextColor{%             %% 2011/10/12
%                 X\\X                      %% insufficient
                 X X X X X X X X X X X X X X X X X X X X 
                 X X X X X X X X X X X X X X X X X X X X 
                 X X X X X X X X X X 
                 X X X X X X X X X X 
%                  X X X X X X X X X X X X X X X X X X X X 
        }
    \endcenter
}
%% |\FillBlogDotTypeArea| fills `\BlogDotFillText' into the 
%% type area, also as a link to the next slide. This may widen
%% the type area so that the text is centered on wider screens 
%% than the one the \HTML\ page was made for. The link may serve 
%% as an alternative to the bottom margin link 
%% (which sometimes fails). 
%% `\FillBlogDotTypeArea'                   %% 2011/10/22
%% can be undone 
%% by |\DontFillBlogDotTypeArea|:
\newcommand*{\FillBlogDotTypeArea}{%
    \let\ifFillBlogDotTypeArea\iftrue 
    \typeout{ * blogdot filling type area *}}       %% 2011/10/13
\newcommand*{\DontFillBlogDotTypeArea}{%
    \let\ifFillBlogDotTypeArea\iffalse}
\DontFillBlogDotTypeArea
%% |\FillBlogDotBottom| fills `\BlogDotFillText' into the 
%% center bottom cell. I tried it before `\FillBlogDotTypeArea'
%% and I am not sure ... 
%% It can be undone by 
%% |\DontFillBlogDotBottom|:
\newcommand*{\FillBlogDotBottom}{%
    \let\BlogDotBottomFill\BlogDotFillText}
%% ... actually, it doesn't seem to make a difference! 
%% (2011/10/13)
\newcommand*{\DontFillBlogDotBottom}{\let\BlogDotBottomFill\@empty} 
\DontFillBlogDotBottom
%% |\DontShowBlogDotFillText| makes `\BlogDotFillText' invisible,\\ 
%% |\ShowBlogDotFillText| makes it visible. 
%% Until 2011/10/22, `\textcolor' ('blog.sty') used the 
%% \xmltagcode{font} element that is deprecated. 
%% I still use it here because it seems to suppress the 
%% `hover' \acro{CSS} indication for the link. 
%% (I might offer a choice---TODO)
\newcommand*{\DontShowBlogDotFillText}{%
%     \def\BlogDotFillTextColor{\textcolor{\bodybgcolor}}}
    \def\BlogDotFillTextColor{%
        \TagSurr{font}{color="\bodybgcolor"}}}
\newcommand*{\ShowBlogDotFillText}{%
    \def\BlogDotFillTextColor{\textcolor{red}}}
\DontShowBlogDotFillText
%% As of 2013/01/22, 'texlinks.sty' provides    %% adjusted 2013/01/22
%% `\ctanfileref{<path>}{<file-name>}' that uses an online 
%% \TeX\ archive randomly chosen or determined by the user. 
%% This is preferable for an online version of the presentation. 
%% In `dantev45.htm', this is used for example files.
%% When, on the other hand, internet access during the presentation is 
%% bad, such example files may instead be loaded from the 
%% ``current directory." \ |\usecurrdirctan| \ modifies `\ctanfileref' 
%% for this purpose (i.e., it will ignore <path>):
\newcommand*{\usecurrdirctan}{%
    \renewcommand*{\ctanfileref}[2]{%
        \hnewref{}{##2}{\filenamefmt{##2}}}}
%% (Using a local \acro{TDS} tree would be funny, but I don't 
%%  have good idea for this right now. )
%%
%% |\TryBlogDotCFG| looks for `blogdot.cfg', 
%% \[|\TryBlogDotCFG[<file-name-base>]|\]       %% \[...\] 2011/10/21 
%% looks for `<file-name-base>.cfg' 
%% (for recompiling a certain file):
\newcommand*{\TryBlogDotCFG}[1][blogdot]{%
    \InputIfFileExists{#1.cfg}{%
        \typeout{
            * Using local settings from \string`#1.cfg\string' *}%
    }{}%
}
\TryBlogDotCFG
%%
%% %% rm. \pagebreak 2013/01/04
%% == The End and HISTORY ==
\endinput
%% VERSION HISTORY
v0.1    2011/09/21f.  started
        2011/09/25    spacing/padding off
        2011/09/27    \CLBrk
        2011/09/30    \BlogDotRestart
        used for DANTE meeting
v0.2    2011/10/03    four possibly independent page margin 
                      parameters; \hvspace moves to texblog.fdf
        2011/10/04    renewed \body commented out
        2011/10/07    documentation
        2011/10/08    added some labels
        2011/10/10    v etc. in \ProvidesPackage
        part of morehype RELEASE r0.5 
v0.3    2011/10/11    \HVspace, \BlogDotFillText
        2011/10/12    commands for \BlogDotFillText
        2011/10/13    more doc. on "debugging"; 
                      \ifFillBlogDotTypeArea, \tablerow, messages
        2011/10/14    \maybe@blogdot@frame
        2011/10/15    doc. note: \HVspace useless
        part of morehype RELEASE r0.51 
v0.4    2011/10/21    \usecurrdirctan
        2011/10/22    FillText with <p> instead of </p>, its color 
                      uses <font>; some more reworking of doc.
        part of morehype RELEASE r0.6 
v0.41   2012/11/19    \startscreenpage with \\; doc. \ 
        2012/11/21    updating version infos, doc. \pagebreak
v0.41a  2013/01/04    rm. \pagebreak 
        part of morehype RELEASE r0.81
v0.41b  2013/01/22    adjusted doc. on `texlinks'