[cstex] Footnoterule

Petr Olsak petr at olsak.net
Wed Jan 16 13:21:28 CET 2013


On Fri, 11 Jan 2013, Petr Sojka wrote:

> On Thu, Jan 10, 2013 at 09:30:16PM +0100, Marie Vetrovcova wrote:
>> Super, tohle funguje:)
>>>
>>>> půjde, ale udělat to nebude asi jednoduché. Pochybuji, že najdete
>>>> nějaký balíček, kde to bude uděláno. Nejspíš by to znamenalo nějaký
>>>> zásah do výstupní rutiny LaTeXu, což je složitá záležitost. Obávam
>
> po uvaze, ze jediny rozdeleny (split) plovouci objekt (insert)
> na strance je zbytek poznamky pod carou je implementace i v vystupni
> rutine LaTeXu na par radku (viz dokumentace footmisc).

Těch pár řádků se rovná 956 radku (viz dokumentace footmisc).

> na rozdil od [cs]plainoveho programovani reseni "od korenu" znovu
> je u zadanych reseni v LaTeXu po triceti letech uzivani
> vysoka pravdepodobnost, ze nebude potreba znovunalezat kolo.
> v tom byl Vas instinkt spravny.

Myslím si, že na tomto příkladu si názorně můžeme ukázat rozdíl mezi LaTeXem
a plainem. V dopise (slečny/paní) tazatelky se objevilo slovo LaTeX, proto
jsem se tím dopisem dále nezabýval. Očekával jsem, že to bude vyřešeno
odkazem na správný balíček. A taky že jo. Kdyby ale bylo v dotazu slovo
(cs)plain, začalo by mě to zajímat a nabídnul bych kolegyni například toto
řešení (15 řádků):

\catcode`@=11
\def\@foot{\strut\par\penalty10114 \egroup}
\def\pagecontents{\ifvoid\topins\else\unvbox\topins\fi
   \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255
   \ifvoid\footins\else % footnote info is present
     \vskip\skip\footins
     \footnoterule  \global\let\footnoterule=\relax
     \unvbox\footins
     \ifnum\lastpenalty=10114 \else
        \global\let\footnoterule=\truefootnoterule \fi
   \fi
   \ifr at ggedbottom \kern-\dimen@ \vfil \fi}
\catcode`@=12
\let\truefootnoterule=\footnoterule
\let\footnoterule=\relax

Mohl bych k tomu připojit i krátký komentář, jak to funguje, a tím bychom 
si zopakovali něco z vnitřních algoritmů TeXu. Na rozdíl od toho, LaTeXové 
řešení přistupuje k TeXu jako k černé skříňce, jejíž propojenost s 
LaTeXovými dokumenty je mnohým uživatelům poněkud nejasná. Skříňce, kterou 
je potřeba užívat jako nutné zlo, ale není nutné ji rozumět.

Můžeme dále hypoteticky měřit rychlost reakce vedoucí k řešení. Byl-li by
dotaz k plainu, odpověděl bych možná do druhého dne. V případě LaTeXu se
musel najít někdo, kdo zná ten správný balíček.

Můžete namítnout, že LaTeXové řešení bylo dohledatelné na Googlu. Ano, bylo
ve formě otázka -- odpověď. Od chvíle, až Google zindexuje tento můj email,
bude dohledatelné i plainové řešení. Které řešní ve formě otázka -- odpověď
je na síti dřív, záleží typicky na množství uživatelů a jejich potence se
ptát. Tady musím přiznat, že LaTeXových dotazů je na síti typicky mnohem 
více.

Zdravím

Petr Olšák


More information about the csTeX mailing list