Skip to content

Instantly share code, notes, and snippets.

@phi-gamma
Last active December 21, 2015 04:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save phi-gamma/6251227 to your computer and use it in GitHub Desktop.
Save phi-gamma/6251227 to your computer and use it in GitHub Desktop.
demo for text streams (parallel typesetting) in Context MkII
%% first a couple global settings
\setuppapersize [A7]
\enableregime [utf]
\setuptolerance [verytolerant,stretch] %% small page sizes ...
\setupbodyfont [10pt]
\usemodule [ancientgreek]
\setupheader [style=\tfx]
\setuppagenumbering [location=,state=start,alternative=doublesided]
%% now we define a couple wrappers for the streams macros
\usemodule [streams] %% m-streams.tex
%% 1) main environment for parallel typesetting
%% sets up running headers and ensures we begin verso
\def\startparallel {
\page [left]
\setupheadertexts
%% recto
[M. Tulli Ciceronis Timæus]
[pagenumber]
%% verso
[pagenumber]
[\localgreek{Πλάτωνος Τίμαιος}]
\enableoutputstream [default]%
}
%% 2) last pending stream content needs to be flushed on exit
\def\stopparallel {%
\enableoutputstream [default]%
\synchronizeoutputstreams [left,right]%
\flushoutputstreampages [left,right]%
}
%% 3) environment for Greek text on verso pages
\def \startplato {%% put Timaios on verso pages
\startgreek
\enableoutputstream [default]%
\synchronizeoutputstreams [left,right]%
\enableoutputstream [left]%
}
\let \stopplato \stopgreek
%% 4) environment for Latin text on recto pages
\def \startcicero {%% recto
\bgroup
\language [la]%
\enableoutputstream [right]%
}
\let \stopcicero \egroup
%% helper for typesetting pagination info consistently
\define[1]\pagination{\ifhmode\hskip\emwidth\fi{\rm[#1]}\hskip\emwidth}
%% ····································································
%% demonstration
%% ····································································
\starttext
\startparallel
\startplato
\pagination {27δ}
τί τὸ ὂν ἀεί, γένεσιν δὲ οὐκ ἔχον, καὶ τί τὸ γιγνόμενον μὲν
\pagination{28α}
ἀεί, ὂν δὲ οὐδέποτε; τὸ μὲν δὴ νοήσει μετὰ λόγου περιληπτόν, ἀεὶ
κατὰ ταὐτὰ ὄν, τὸ δ᾽ αὖ δόξῃ μετ᾽ αἰσθήσεως ἀλόγου δοξαστόν, γιγνόμενον
καὶ ἀπολλύμενον, ὄντως δὲ οὐδέποτε ὄν.
\stopplato
\startcicero
\pagination {3}
Quid est, quod semper sit neque ullum habeat ortum, et quod gignatur
nec umquam sit?
Quorum alterum intellegentia et ratione conprehenditur, quod unum atque
idem semper est; alterum, quod adfert opinionem sensus rationis
expers, quod totum opinabile est, id gignitur et interit nec umquam
esse uere potest.
\stopcicero
%% here the text will synchronize
\startplato
πᾶν δὲ αὖ τὸ γιγνόμενον ὑπ᾽ αἰτίου τινὸς ἐξ ἀνάγκης γίγνεσθαι: παντὶ
γὰρ ἀδύνατον χωρὶς αἰτίου γένεσιν σχεῖν.
ὅτου μὲν οὖν ἂν ὁ δημιουργὸς πρὸς τὸ κατὰ ταὐτὰ ἔχον βλέπων ἀεί,
τοιούτῳ τινὶ προσχρώμενος παραδείγματι, τὴν ἰδέαν καὶ δύναμιν αὐτοῦ
ἀπεργάζηται, καλὸν ἐξ ἀνάγκης
\pagination {28β}
οὕτως ἀποτελεῖσθαι πᾶν: οὗ δ᾽ ἂν εἰς γεγονός, γεννητῷ
παραδείγματι προσχρώμενος, οὐ καλόν.
\stopplato
\startcicero
Omne autem, quod gignitur, ex aliqua causa gigni necesse est; nullius
enim rei causa remota
\pagination {4}
reperiri origo potest.
Quocirca si is, qui aliquod munus efficere
molitur, eam speciem, quae semper eadem est, intuebitur atque id sibi
proponet exemplar, praeclarum opus efficiat necesse est; sin autem eam,
quae gignitur, numquam illam, quam expetet, pulchritudinem consequetur.
\stopcicero
%% here the text will synchronize again
\startplato
ὁ δὴ πᾶς οὐρανὸς -- ἢ κόσμος ἢ καὶ ἄλλο ὅτι ποτὲ ὀνομαζόμενος μάλιστ᾽ ἂν
δέχοιτο, τοῦθ᾽ ἡμῖν ὠνομάσθω -- σκεπτέον δ᾽ οὖν περὶ αὐτοῦ πρῶτον, ὅπερ
ὑπόκειται περὶ παντὸς ἐν ἀρχῇ δεῖν σκοπεῖν, πότερον ἦν ἀεί, γενέσεως
ἀρχὴν ἔχων οὐδεμίαν, ἢ γέγονεν, ἀπ᾽ ἀρχῆς τινος ἀρξάμενος.
γέγονεν: ὁρατὸς γὰρ ἁπτός τέ ἐστιν καὶ σῶμα ἔχων, πάντα δὲ τὰ τοιαῦτα
αἰσθητά, τὰ
\pagination {28ξ}
δ᾽ αἰσθητά, δόξῃ περιληπτὰ μετ᾽ αἰσθήσεως, γιγνόμενα καὶ γεννητὰ ἐφάνη.
τῷ δ᾽ αὖ γενομένῳ φαμὲν ὑπ᾽ αἰτίου τινὸς ἀνάγκην εἶναι γενέσθαι.
\stopplato
\startcicero
Omne igitur caelum siue mundus, siue quo alio uocabulo gaudet, hoc a
nobis nuncupatus
\pagination {5}
sit?
de quo id primum consideremus, quod principio est in omni
quaestione considerandum, semperne fuerit nullo generatus ortu, an
ortus sit ab aliquo temporis principatu.
Ortus est, quandoquidem cernitur et tangitur et est undique corporatus.
Omnia autem talia sensum mouent, sensusque mouentia quae sunt, eadem in
opinatione considunt; quae ortum habere gignique diximus, nihil autem
gigni posse sine causis.
\stopcicero
\stopparallel
\stoptext
%% first a couple global settings
\setuppapersize [A7]
\setuptolerance [verytolerant,stretch] %% small page sizes ...
\setupbodyfont [10pt]
\setupheader [style=\tfx]
\setuppagenumbering [location=,state=start,alternative=doublesided]
\setupbodyfont [computer-modern-unicode] %% covers Greek as well
\enabletrackers[streams.flushing] %% useful debug output
%% we have to declare the streams we will use
%% 1) main environment for parallel typesetting
%% sets up running headers and ensures we begin verso
\def\startparallel {
\page [left]
\setupheadertexts
%% recto
[M. Tulli Ciceronis Timæus]
[pagenumber]
%% verso
[pagenumber]
[{\language[agr]Πλάτωνος Τίμαιος}]
\startoutputstream [greek]%% the reference for compensation
}
%% 2) last pending stream content needs to be flushed on exit
\def\stopparallel {%
\disableoutputstream
\stopoutputstream
\synchronizestreams [greek, latin]%
\flushoutputstream [greek]%
\page
\flushoutputstream [latin]%
}
%% 3) environment for Greek text on verso pages
\def \startplato {%% put Timaios on verso pages
\bgroup
\language [agr]%
\synchronizestreams [greek, latin]%
\enableoutputstream [greek]%
}
\let \stopplato \egroup
%% 4) environment for Latin text on recto pages
\def \startcicero {%% recto
\bgroup
\language [la]%
\enableoutputstream [latin]%
}
\let \stopcicero \egroup
%% helper for typesetting pagination info consistently
\define[1]\pagination{\ifhmode\hskip\emwidth\fi{\rm[#1]}\hskip\emwidth}
%% ····································································
%% demonstration
%% ····································································
\starttext
\startparallel
\startplato
\pagination {27δ}
τί τὸ ὂν ἀεί, γένεσιν δὲ οὐκ ἔχον, καὶ τί τὸ γιγνόμενον μὲν
\pagination{28α}
ἀεί, ὂν δὲ οὐδέποτε; τὸ μὲν δὴ νοήσει μετὰ λόγου περιληπτόν, ἀεὶ
κατὰ ταὐτὰ ὄν, τὸ δ᾽ αὖ δόξῃ μετ᾽ αἰσθήσεως ἀλόγου δοξαστόν, γιγνόμενον
καὶ ἀπολλύμενον, ὄντως δὲ οὐδέποτε ὄν.
\stopplato
\startcicero
\pagination {3}
Quid est, quod semper sit neque ullum habeat ortum, et quod gignatur
nec umquam sit?
Quorum alterum intellegentia et ratione conprehenditur, quod unum atque
idem semper est; alterum, quod adfert opinionem sensus rationis
expers, quod totum opinabile est, id gignitur et interit nec umquam
esse uere potest.
\stopcicero
%% here the text will synchronize
\startplato
πᾶν δὲ αὖ τὸ γιγνόμενον ὑπ᾽ αἰτίου τινὸς ἐξ ἀνάγκης γίγνεσθαι: παντὶ
γὰρ ἀδύνατον χωρὶς αἰτίου γένεσιν σχεῖν.
ὅτου μὲν οὖν ἂν ὁ δημιουργὸς πρὸς τὸ κατὰ ταὐτὰ ἔχον βλέπων ἀεί,
τοιούτῳ τινὶ προσχρώμενος παραδείγματι, τὴν ἰδέαν καὶ δύναμιν αὐτοῦ
ἀπεργάζηται, καλὸν ἐξ ἀνάγκης
\pagination {28β}
οὕτως ἀποτελεῖσθαι πᾶν: οὗ δ᾽ ἂν εἰς γεγονός, γεννητῷ
παραδείγματι προσχρώμενος, οὐ καλόν.
\stopplato
\startcicero
Omne autem, quod gignitur, ex aliqua causa gigni necesse est; nullius
enim rei causa remota
\pagination {4}
reperiri origo potest.
Quocirca si is, qui aliquod munus efficere
molitur, eam speciem, quae semper eadem est, intuebitur atque id sibi
proponet exemplar, praeclarum opus efficiat necesse est; sin autem eam,
quae gignitur, numquam illam, quam expetet, pulchritudinem consequetur.
\stopcicero
%% here the text will synchronize again
\startplato
ὁ δὴ πᾶς οὐρανὸς -- ἢ κόσμος ἢ καὶ ἄλλο ὅτι ποτὲ ὀνομαζόμενος μάλιστ᾽ ἂν
δέχοιτο, τοῦθ᾽ ἡμῖν ὠνομάσθω -- σκεπτέον δ᾽ οὖν περὶ αὐτοῦ πρῶτον, ὅπερ
ὑπόκειται περὶ παντὸς ἐν ἀρχῇ δεῖν σκοπεῖν, πότερον ἦν ἀεί, γενέσεως
ἀρχὴν ἔχων οὐδεμίαν, ἢ γέγονεν, ἀπ᾽ ἀρχῆς τινος ἀρξάμενος.
γέγονεν: ὁρατὸς γὰρ ἁπτός τέ ἐστιν καὶ σῶμα ἔχων, πάντα δὲ τὰ τοιαῦτα
αἰσθητά, τὰ
\pagination {28ξ}
δ᾽ αἰσθητά, δόξῃ περιληπτὰ μετ᾽ αἰσθήσεως, γιγνόμενα καὶ γεννητὰ ἐφάνη.
τῷ δ᾽ αὖ γενομένῳ φαμὲν ὑπ᾽ αἰτίου τινὸς ἀνάγκην εἶναι γενέσθαι.
\stopplato
\startcicero
Omne igitur caelum siue mundus, siue quo alio uocabulo gaudet, hoc a
nobis nuncupatus
\pagination {5}
sit?
de quo id primum consideremus, quod principio est in omni
quaestione considerandum, semperne fuerit nullo generatus ortu, an
ortus sit ab aliquo temporis principatu.
Ortus est, quandoquidem cernitur et tangitur et est undique corporatus.
Omnia autem talia sensum mouent, sensusque mouentia quae sunt, eadem in
opinatione considunt; quae ortum habere gignique diximus, nihil autem
gigni posse sine causis.
\stopcicero
\stopparallel
\stoptext
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment