Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I need your help. I'm going to write philological commentary on Cicero's speech in XeLaTeX, but I don't know how to make a combination of text and commentary (look below for examples). Is it possible to do?

Below are two pages from another commentary (Caesaris Commentarii de bello Gallico). You can see the main idea.

Caesaris Commentarii de bello Gallico, page 11

Caesaris Commentarii de bello Gallico, page 12

share|improve this question
I think parallel provides exactly that. –  Henrik Hansen Apr 21 '12 at 10:15
Another idea would be to (mis)use footnotes, perhaps with some redefinitions. There’s a dblfootnote in the yafoot bundle. But you must give us more information, what is possible, what not: Footnote marks allowed? Should the line between text and footnotes be deleted? … And last but not least: Which document class do you use!?. –  Speravir Apr 21 '12 at 17:57
And then there is ednotes, perhaps together with edfnotes. –  Speravir Apr 21 '12 at 19:35
… and ledmac. BTW: “Cicero’s speech” – which one (only curious)? –  Speravir Apr 21 '12 at 20:29
@Speravir: \set...font are defined by fontspec, which is the way to select fonts in Xe/LuaLaTeX. libertineotf is basically just a nice way to set up the Libertine fonts without too much writing. –  Caramdir Apr 26 '12 at 3:03
show 6 more comments

4 Answers

up vote 6 down vote accepted

I'd use ledmac for this.


\usepackage{ledmac,lipsum, ragged2e}% <-- crucial to this example


\usepackage[english, latin]{babel}
\usepackage[hyperfootnotes=false, colorlinks]{hyperref}

% ledmac commands
\let\commentnote=\Afootnote  %% 


%% kill lemmata for commentary: 
% --- if notes are in two-column mode:
  %\hsize .45\hsize % <-- original setting
  \hsize .49\hsize
  % \raggedright % <-- original setting
  % \RaggedRight % <-- from ragged2e package

% --- if in notes are in paragraph form:
% \newcommand{\Aparafootfmt}[3]{% <-- app. font.
%  \ledsetnormalparstuff
%  \scriptsize
%  \notenumfont\printlines#1|\enspace
%  % \lemmafont#1|#2\enskip
%  \notetextfont
%  #3\penalty-10\hskip -0.25em plus 0.2em minus 0.2em\relax
% }%
% \footparagraph{A}
% \let\Afootfmt\Aparafootfmt



[1] \comment{Gallia est omnis divisa in partes tres, quarum unam
  incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae,
  nostra Galli appellantur}{This is the first sentence of Caesar's
  work, but not the last.  It is three lines long, as you can
  see}. \comment{Hi omnes}{This the subject of the sentence, which
  should be obvious and not really require any comment.}
\comment{lingua, institutis, legibus}{These are all in the ablative
  case, which may require some explanation} inter se differunt. Gallos
ab Aquitanis Garumna flumen, a Belgis Matrona et Sequana
dividit. \comment{Horum omnium fortissimi sunt Belgae, propterea quod
  a cultu atque humanitate provinciae longissime absunt,
  \comment{minimeque}{\textbf{Note} that you can `nest' notes in
    ledmac's apparatus. Also: the extra space above this note is due
    to the end of the \texttt{\textbackslash{}lipsum} command} ad eos
  mercatores saepe commeant atque ea quae ad effeminandos animos
  pertinent important, proximique sunt Germanis, qui trans Rhenum
  incolunt, quibuscum continenter bellum gerunt}{Just to fill up some
  space: \lipsum[1]}. Qua de causa Helvetii quoque reliquos Gallos
virtute praecedunt, quod fere cotidianis proeliis cum Germanis
contendunt, cum aut suis finibus eos prohibent aut ipsi in eorum
finibus bellum gerunt. \comment{Eorum una}{Fill up more space:
  \lipsum[2]}, pars, quam Gallos obtinere dictum est, initium capit a
flumine Rhodano, continetur Garumna flumine, Oceano, finibus Belgarum,
attingit etiam ab Sequanis et Helvetiis flumen Rhenum, vergit ad
septentriones. Belgae ab extremis Galliae finibus oriuntur, pertinent
ad inferiorem partem fluminis Rheni, spectant in septentrionem et
orientem solem. Aquitania a Garumna flumine ad Pyrenaeos montes et eam
partem Oceani quae est ad Hispaniam pertinet; spectat inter occasum
solis et septentriones.


[2] Apud Helvetios longe nobilissimus fuit et ditissimus Orgetorix. Is
M. Messala, [et P.] M. Pisone consulibus regni cupiditate inductus
coniurationem nobilitatis fecit et civitati persuasit ut de finibus
suis cum omnibus copiis exirent: perfacile esse, cum virtute omnibus
praestarent, totius Galliae imperio potiri. Id hoc facilius iis
persuasit, quod undique loci natura Helvetii continentur: una ex parte
flumine Rheno latissimo atque altissimo, qui agrum Helvetium a
Germanis dividit; altera ex parte monte Iura altissimo, qui est inter
Sequanos et Helvetios; tertia lacu Lemanno et flumine Rhodano, qui
provinciam nostram ab Helvetiis dividit. His rebus fiebat ut et minus
late vagarentur et minus facile finitimis bellum inferre possent; qua
ex parte homines bellandi cupidi magno dolore adficiebantur. Pro
multitudine autem hominum et pro gloria belli atque fortitudinis
angustos se fines habere arbitrabantur, qui in longitudinem milia
passuum CCXL, in latitudinem CLXXX \comment{patebant}{This text was
  taken from \url{http://www.thelatinlibrary.com/caesar/gall1.shtml}}.


share|improve this answer
I should add that this example kills the lemma in the apparatus, but perhaps you'd rather keep it in. If so, comment out the respective parts of the example. (And note that ledmac offers a way to artificially shorten a long lemma in the apparatus. –  jon Apr 25 '12 at 4:33
With some modification your example works (I have to delete all lipsum parts due to errors). Footnotes' numbers are always zeros, however. And one more question: is there a way to place chapter numbers ([1] Gallia...) to the left/right before the line numbering? If you don't understand, I'll post an example. –  ghostmansd Apr 25 '12 at 8:41
@ghostmansd -- I used \lipsum simply to fill lines: it requires the \usepackage{lipsum} declaration in order for the command to work. ledmac requires two passes in order to sort out the line numbers properly: the first run will only give '0', which you should take as a sign that you need to run (lua|pdf|xe)latex again. For numbering paragraphs, look for the \ledsidenode; e.g.: \newcounter{cnum}\setcounter{cnum}{1}\counterwithout{cnum}{section}\counterwith‌​in{cnum}{chapter}\newcommand\colnum{\phantomsection\ledsidenote{\footnotesize\tex‌​tbf{\arabic{cnum}\stepcounter{cnum}\unskip} –  jon Apr 25 '12 at 15:05
The above will stick a bold number in the margin wherever you use the \colnum command, and it will automatically increment the counter after each declaration. (I'd break that into a more readable version in your .tex file though.) –  jon Apr 25 '12 at 15:08
Why should the lemmata be deleted? One needs to know, where a comment belongs to! –  Speravir Apr 26 '12 at 1:48
show 7 more comments

Here my example derived from ghostmansd’s. Only the first text section is fully shown, the others I’ve shortened (full code under http://pastebin.com/YTKqN25H ).

As I said in comments, that with ledmac more than one apparatus is possible, I defined two of them here: one for the variants, one for own comments. Already at the beginning one can see, that they can be nested and get an optional parameter, which is the lemma, as it is shown in the apparatus. A different formatting for the apparatuses (apparatūs?) is unfortunately to get very difficult,as jon already showed. I made a redefinition for the comments (level B apparatus). The used package ragged2e provides better aligning and hyphenation in (left-/right-)aligned or centered text, cf. for instance Hyphenation in Beamer Presentations or Automatic hyphenation in margin notes.

Also I defined the counters for the chapters and sections, and that they will go as sidenote into the margin.

For interested readers: An English translation of “Pro Murena” can be read here: http://www.perseus.tufts.edu/hopper/text?doc=Cic.+Mur.+1 (click on the blue arrow for the next sections).

% LuaLaTeX or XeLaTeX
\usepackage[innermargin=15mm,outermargin=25mm]{geometry} % Set geometry
% Since you set the second page to "1", the margins will be mixed up by TeX!
% To see the effect I've set different margins.

% Set languages and fonts
\usepackage{polyglossia,xunicode} % Multilanguage support
\usepackage{fontspec} % Include fonts configuration
  libertine={Ligatures=TeX,Numbers=OldStyle},% use TeX ligatures and oldstyle numbers

\setotherlanguage[babelshorthands=true,spelling=old]{german} % just for the example
% You will probably use this:

% Other packages, as far as possible in alphabetical order
\usepackage{etoolbox} % Provides a lot of helpful commands and tools,
                      % needed here for "\ifblank"

\usepackage{fancyhdr} % Include beautiful headers
% Set headers, footers and footnotes
%  \fancyfoot[LE,RO]{\thepage} % Looks after page count; since you set the second page
                              % to "1", the numbers will be set to the inner margin!
  \fancyfoot[LO,RE]{\thepage} % for setting the page number to the outer margin here

\usepackage{indentfirst} % Indent first paragraph after section header, too

\usepackage{ledmac} % For setting critical editions
  \lineation{page} % page-wise line counting
  \linenummargin{outer} % line numbers on outer margin of twoside document,
                        % looks after page count; since you set the second page
                        % to "1", the numbers will be set to the inner margin!
  \sidenotemargin{inner} % for side notes, e.g. caput & sect;
                         % should be the opposite of "\linenummargin"!
% "ledmac" provides by default 5 levels of apparatus, "\Afootnote" ... "\Efootnote"
%  \let\variant\Afootnote % copy meaning of command "\Afootnote" into the new
                         % "\variant", that is the first level of apparatus
% better solution:
%  \let\comment\Bfootnote
% better solution:
% you probably want to use here "\textrussian"
  % comments set only for the first text-section
  \footparagraph{A} % apparatus, level A, as one single paragraph (here "\variant")
% Redefining the appearance of one apparatus level is difficult:
  \makeatletter % switches the meaning (exactly the catcode) of the "@" sign,
                % because we have to use some "@"-containing commands
  \renewcommand*{\twocolfootfmt}[3]{% switch to set comments in two columns below
    \hsize .45\hsize
%    \raggedright
    \RaggedRight % from package "ragged2e"
%    {\select@lemmafont#1|#2}\rbracket\enskip
  \makeatother % switches back to the default catcode in LaTeX code outside of
               % document classes or packages
  \foottwocol{B} %  apparatus, level B, as one single paragraph in two columns (here "\comment")
% You can use ordinary footnotes, but "ledmac" provides by default 5 additional footnote series,
% the counter for the first of them is redefined here, just to how you the effect

% Create further commands
                     \ledsidenote{\Roman{Caput}.\arabic{Sect}}} % "\ledsidenote" from "ledmac"
                    % "\ledsidenote" will be set according to "\sidenotemargin"
% In "Pro Murena" the sections are continuously counted upwards,
% otherwise we would have to do this:
% \newcounter{Caput}\newcounter{Sect}[Caput]
% \newcommand*{\caput}{\refstepcounter{Caput}\stepcounter{Sect}%
%                      \ledsidenote{\Roman{Caput}.\arabic{Sect}}}

% Main document

% Create title page
\title{Marci Tulli Ciceronis\\ Pro Lucio Licinio Murena oratio}
\author{Дмитрий Сергеевич Селютин}
\date{} %%% Suppresses the printout of the date (but adds a bit vertical space)


% Create document
\setcounter{page}{1}% It's better to refrain from this!

\section*{Pro L.~Licinio Murena\footnoteA{\textgerman{\mdseries Quelle
                                für die deutschen Kommentare:

\begingroup % For long text parts this is better to read than the
            % short form "{"; grouping needed for "\autopar"
\beginnumbering % ledmac
\autopar % ledmac
% "\autopar" will break, if you put footnotes (and surely other stuff, too)
% inside extra groups, as you did it

\caput\comment[quod precatus {\dots} sum]{\variant[quae precatus]{Quae
precatus}{\emph{Naugerius}~: quae deprecatus \emph{codd.} (\emph{cf. Quintil.}
ix. 4. 107, \emph{Creticus et initiis optimus}. Quod precatus a dis immortalibus
sum)~: quod precatus \emph{Halm} (2) \emph{cum Quintil.}} \variant{a}{ς1χψ~: ab
ς2BAπ} dis immortalibus sum}{Der präsidierende Magistrat eröffnete die Comitien
mit einem Opfer und Gebet, \emph{precatio}, s. Liv.~39,~15,~1:
\textlatin{\emph{consules in rostra escenderunt, et contione advocata cum
sollemne carmen precationis, quod praefari solent priusquam populum adloquantur
magistratus, peregisset consul, ita coepit}}.}, iudices, more institutoque
maiorum illo die quo \comment{auspicato}{s. Madvigs lat. Sprachl. \S~429.}
comitiis centuriatis L.~Murenam consulem \comment{renuntiavi}{Nachdem der Praeco
das Resultat der Abstimmung der einzelnen Centurien verkündet hatte, erfolgte
die feierliche Renuntiation des Gewählten durch den Magistratus, der die
Wahlhandlung geleitet hatte.}, ut ea res \comment{mihi
\variant{fidei}{\emph{Lambinus}~: fides ςAπ, \emph{om. B}χψ}
magistratuique}{eine alte Formel, wie Ennii fragm. Ann.~111 (ed. Vahl) zeigt:
\textlatin{\emph{Quod mihi meaeque fide \emph{(=~fidei)} et regno vobisque
Quiritis [\dots]}}, und die bei Varro de ling. lat.~VI, \S~86 erhaltene Formel
von den Censoren: \textlatin{\emph{Quod bonum fortunatum felixque salutareque
siet populo Romano Quiritium {\dots} mihique collegaeque fidei magistratuique
meo [\dots]}}. In dieser Formel scheint \emph{fides} im Sinne von
`Gewissenhaftigkeit, Pflichttreue, redliches Wollen' zu stehen.} meo,
\comment{populo plebique}{Mit dieser Verbindung, die nur in Gebeten,
Orakelsprüchen und anderen alten Formeln vorkommt, wird das aus Patriciern und
Plebejern bestehende röm. Gesammtvolk bezeichnet; sie stammt aus einer Zeit, wo
die Patricier allein Vollbürger waren und als solche den \emph{populus}
ausmachten.} Romanae bene atque feliciter eveniret, \variant{eadem}{idem
\emph{Boot}} precor ab isdem dis immortalibus \comment[ob {\dots} obtinendum]{ob
eiusdem hominis consulatum una cum \comment{salute}{`Freisprechung', durch die
sein bürgerliches Wohl bedingt ist.} obtinendum}{`jetzt wo es sich darum handelt
dass' etc.}, \comment{et ut}{schließt sich an \emph{idem} an~= \textlatin{precor
ut ea res feliciter eveniat et ut} etc.} vestrae mentes atque sententiae cum
populi Romani voluntatibus suffragiisque consentiant, eaque res vobis populoque
Romano pacem, tranquillitatem, otium concordiamque adferat. Quod si illa
sollemnis comitiorum precatio consularibus auspiciis consecrata tantam habet in
se vim et religionem quantam rei publicae dignitas postulat, idem ego sum
precatus ut eis quoque hominibus quibus hic consulatus me rogante datus esset ea
res fauste feliciter prospereque eveniret.

\sect Quae cum ita sint, iudices, et cum omnis deorum immortalium potestas aut
\variant{translata}{tralata σπ} sit [\dots]

\caput Et primum M.~Catoni vitam ad certam rationis normam
\variant{derigenti}{ςAπφ~: dirigenti χψω} et diligentissime perpendenti momenta
officiorum omnium de officio meo respondebo. [\dots]

\sect Ac si, ut non nullis in civitatibus fieri solet, [\dots]
\endnumbering % ledmac
\endgroup % for long text parts this is better to read than the
          % short form "}"; grouping needed for "\autopar"
share|improve this answer
add comment

A try.



Sed lectus ...

\ParallelLText{Sed lacinia...} 
\ParallelRText{Comments Comments}
\ParallelLText{Sed lacinia...} 
\ParallelRText{Commentsasd Commentsasd}


The text is written in \ParallelLText and the comments in \ParallelRText. With \ParallelPar a new text/comment pair is started.

share|improve this answer
Column continues on the next page, while it doesn't. –  ghostmansd Apr 21 '12 at 10:37
I don't understand your comment. The column in my solution continues on to the next page if there is text for it. –  Henrik Hansen Apr 21 '12 at 10:43
Apparently the OP wants to split every page in two separate horizontal stripes; the upper one will contain the text in one column mode, and the lower one, the commentaries on two column mode. The text must flow from the upper stripe in one page to the upper stripe in the following page; the flow for commentaries must be analogous. –  Gonzalo Medina Apr 21 '12 at 16:47
add comment

Maybe Nicola Talbot's flowfram package is worth a look. I have to admit I have never used it.

share|improve this answer
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.