[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