<script>
    if (window.internals)
        internals.settings.setSimpleLineLayoutEnabled(false);
</script>
<style>
    div { line-height:10px; font-size:20px }
</style>
<div>
    L. Sergius Catilina, homo patricii generis, magna vi et animi et
    corporis, sed ingenio malo pravoque, praetorius, qui iam a. u. c. 689
    caedem consulum facere eaque facta rerum potiri constituerat, casu autem
    rem perficere prohibitus erat, ascitis ad consilium rei publicae
    opprimendae hominibus omnis generis perditissiis atque audacissimis, quos
    inopia, cupiditas, scelera stimulabant, consulatum in annum 691 p. u. c.
    petivit, sed cum, quae in animo habebat, perniciosa rei publicae consilia
    parum occultata essent, studiis bonorum omnium M. Tullius Cicero una cum
    C. Antonio consul factus est.  Qua re commotus L. Catilina M. Cicerone
    C. Antonio consulibus cupidius etiam sua consilia recepit, quibus maxime
    Ciceronis consulis diligentia restitit ad quem Catilinae eiusque sociorum
    consilia a Fulvia, muliere nobili, quae rem habebat cum Q. Curio, qui
    particeps fuit conspirationis illius, deferebantur.  Cum autem ista mala
    consilia contra salutem rei publicae a coniuratis inita apertius iam
    agitarentur, senatus consultum factum est, darent operam consules, ne quid
    res publica detrimenti caperet, effectumque est, ut Catilina spe
    consulatus, quem in proximum annum petebat, excideret, designarenturque
    D. Silanus et L. Murena.  Quae cum ita essent, L. Catilina, qui iam ante
    per Italiam ad homines seditiosos, maxime veteres L. Sullae milites,
    concitandos nuntios miserat, ad C. Manlium, qui Faesulas, in urbem
    Etruriae munitam, manum armatorum coegerat, proficisci constituit et
    bellum patriae inferre convocatisque nocte, quae inter VIII et VII Id.
    Novembres erat, sociis in domum M. Porci Laecae consilium, quod ceperat,
    aperuit.  Qua in congregatione nocturna duo equites Romani Ciceronem
    consulem illa ipsa nocte ante lucem, cum sicut salutaturi eius domum
    intrassent, interficiendum receperunt.  M. Cicero vitatis insidiis proximo
    die, qui fuit a. d.  VI Id.  Novembres, dispositis praesidiis senatum in
    templum Iovis Statoris convocavit, quo cum Catilina quasi sui purgandi
    causa venisset, Cicero eam, quae infra legitur, orationem in Catilinam
    vehementissime invehens habuit.
    Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
    furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
    audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
    nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
    habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
    consilia non sentis, constrictam iam horum omnium scientia teneri
    coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
    ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
    ignorare arbitraris?  O tempora, o mores! Senatus haec intellegit.  consul
    videt; hic tamen vivit.  Vivit?  immo vero etiam in senatum venit, fit
    publici consilii particeps, notat et designat oculis ad caedem unum
    quemque nostrum.  Nos autem fortes viri satis facere rei publicae videmur,
    si istius furorem ac tela vitemus.  Ad mortem te, Catilina, duci iussu
    consulis iam pridem oportebat, in te conferri pestem, quam tu in nos
    [omnes iam diu] machinaris.  An vero vir amplissumus, P. Scipio, pontifex
    maximus, Ti.  Gracchum mediocriter labefactantem statum rei publicae
    privatus interfecit; Catilinam orbem terrae caede atque incendiis vastare
    cupientem nos consules perferemus?  Nam illa nimis antiqua praetereo, quod
    C. Servilius Ahala Sp.  Maelium novis rebus studentem manu sua occidit.
    Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes
    acrioribus suppliciis civem perniciosum quam acerbissimum hostem
    coercerent.  Habemus senatus consultum in te, Catilina, vehemens et grave,
    non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos,
    dico aperte, consules desumus.  Decrevit quondam senatus, ut L. Opimius
    consul videret, ne quid res publica detrimenti caperet; nox nulla
    intercessit; interfectus est propter quasdam seditionum suspiciones
    C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis
    M. Fulvius consularis.  Simili senatus consulto C. Mario et L.  Valerio
    consulibus est permissa res publica; num unum diem postea L. Saturninum
    tribunum pl.  et C.  Servilium praetorem mors ac rei publicae poena
    remorata est?  At [vero] nos vicesimum iam diem patimur hebescere aciem
    horum auctoritatis.  Habemus enim huiusce modi senatus consultum, verum
    inclusum in tabulis tamquam in vagina reconditum, quo ex senatus consulto
    confestim te interfectum esse, Catilina, convenit.  Vivis, et vivis non ad
    deponendam, sed ad confirmandam audaciam.  Cupio, patres conscripti, me
    esse clementem, cupio in tantis rei publicae periculis me non dissolutum
    videri, sed iam me ipse inertiae nequitiaeque condemno.  Castra sunt in
    Italia contra populum Romanum in Etruriae faucibus conlocata, crescit in
    dies singulos hostium numerus; eorum autem castrorum imperatorem ducemque
    hostium intra moenia atque adeo in senatu videmus intestinam aliquam
    cotidie perniciem rei publicae molientem.  Si te iam, Catilina,
    comprehendi, si interfici iussero, credo, erit verendum mihi, ne non
    potius hoc omnes boni serius a me quam quisquam crudelius factum esse
    dicat.  Verum ego hoc, quod iam pridem factum esse oportuit, certa de
    causa nondum adducor ut faciam.  Tum denique interficiere, cum iam nemo
    tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non
    iure factum esse fateatur.  Quamdiu quisquam erit, qui te defendere
    audeat, vives, et vives ita, ut [nunc] vivis.  multis meis et firmis
    praesidiis obsessus, ne commovere te contra rem publicam possis.  Multorum
    te etiam oculi et aures non sentientem, sicut adhuc fecerunt,
    speculabuntur atque custodient.
    Etenim quid est, Catilina, quod iam amplius expectes, si neque nox
    tenebris obscurare coeptus nefarios nec privata domus parietibus continere
    voces coniurationis tuae potest, si illustrantur, si erumpunt omnia?  Muta
    iam istam mentem, mihi crede, obliviscere caedis atque incendiorum.
    Teneris undique; luce sunt clariora nobis tua consilia omnia; quae iam
    mecum licet recognoscas.  Meministine me ante diem XII Kalendas Novembris
    dicere in senatu fore in armis certo die, qui dies futurus esset ante diem
    VI Kal.  Novembris, C. Manlium, audaciae satellitem atque administrum
    tuae?  Num me fefellit, Catilina, non modo res tanta, tam atrox tamque
    incredibilis, verum, id quod multo magis est admirandum, dies?  Dixi ego
    idem in senatu caedem te optumatium contulisse in ante diem V Kalendas
    Novembris, tum cum multi principes civitatis Roma non tam sui conservandi
    quam tuorum consiliorum reprimendorum causa profugerunt.  Num infitiari
    potes te illo ipso die meis praesidiis, mea diligentia circumclusum
    commovere te contra rem publicam non potuisse, cum tu discessu ceterorum
    nostra tamen, qui remansissemus, caede te contentum esse dicebas?  Quid?
    cum te Praeneste Kalendis ipsis Novembribus occupaturum nocturno impetu
    esse confideres, sensistin illam coloniam meo iussu meis praesidiis,
    custodiis, vigiliis esse munitam?  Nihil agis, nihil moliris, nihil
    cogitas, quod non ego non modo audiam, sed etiam videam planeque sentiam.
    Recognosce tandem mecum noctem illam superiorem; iam intelleges multo me
    vigilare acrius ad salutem quam te ad perniciem rei publicae.  Dico te
    priore nocte venisse inter falcarios (non agam obscure) in M. Laecae
    domum; convenisse eodem complures eiusdem amentiae scelerisque socios.
    Num negare audes?  quid taces?  Convincam, si negas.  Video enim esse hic
    in senatu quosdam, qui tecum una fuerunt.  O di inmortales! ubinam gentium
    sumus?  in qua urbe vivimus?  quam rem publicam habemus?  Hic, hic sunt in
    nostro numero, patres conscripti, in hoc orbis terrae sanctissimo
    gravissimoque consilio, qui de nostro omnium interitu, qui de huius urbis
    atque adeo de orbis terrarum exitio cogitent! Hos ego video consul et de
    re publica sententiam rogo et, quos ferro trucidari oportebat, eos nondum
    voce volnero! Fuisti igitur apud Laecam illa nocte, Catilina, distribuisti
    partes Italiae, statuisti, quo quemque proficisci placeret, delegisti,
    quos Romae relinqueres, quos tecum educeres, discripsisti urbis partes ad
    incendia, confirmasti te ipsum iam esse exiturum, dixisti paulum tibi esse
    etiam nunc morae, quod ego viverem.  Reperti sunt duo equites Romani, qui
    te ista cura liberarent et sese illa ipsa nocte paulo ante lucem me in meo
    lectulo interfecturos [esse] pollicerentur.  Haec ego omnia vixdum etiam
    coetu vestro dimisso comperi; domum meam maioribus praesidiis munivi atque
    firmavi, exclusi eos, quos tu ad me salutatum mane miseras, cum illi ipsi
    venissent, quos ego iam multis ac summis viris ad me id temporis venturos
    esse praedixeram.
</div>
