duminică, 9 septembrie 2012

LaTeX: miscelaneu

Instalarea pachetelor LaTeX în contextul distribuției MiKTeX

Sînt multe modalităti de a instala un pachet LaTeX în MikTeX. Una din ele este prin intermediul aplicației care vine împreună cu MikTeX - Package Manager (Start/All Programs/MiKTeX/Maintance (Admin)/Package Manager (Admin)).

Tehnoredactare în Unicode (MikTeX)

În primul este nevoie de un mediu de tehnoredactare care poate "înțelege" (deschide) corect fișierele în Unicode. De exemplu Texmaker (din păcate TeXnicCenter 1.0 RC nu este capabil de așa ceva).
  1. Instalați pachetul "ucs".
  2. În antetul fișierului LaTeX adăugați rîndul "\usepackage[utf8x]{inputenc}"
În caz că apare eroarea următoare.

! LaTeX Error: File `uni-global.def' not found.Type X to quit or to proceed,or enter new name. (Default extension: def)Enter file name:! Emergency stop. ...ni-global.def \else\input{uni-global.def}

Descarcati varianta arhiv a pachetul-ui ucs.. Copiați directoriul "data" din acest arhiv în "C:\Program Files\MiKTeX 2.9\tex\latex\ucs".  Actualizați baza de date cu nume de fișiere în MiKTeX cu ajutorul aplicației MiKTeX Options (Start/All Programs/MiKTeX/Maintance (Admin)/Settings (Admin)).

PGF/TikZ și GNUPLOT (Kile)

În linii generale pentru a putea utiliza TikZ împreună cu GNUPLOT este nevoie de următoarele
două condiții:

  1. GNUPLOT să fie instalat pe calculator
  2. TeX-ului trebuie să i se dea permisiunea de a executa programe externe.

Condiția 1 poate fi trecută cu vederea ... pînă cînd ))).
Dacă nu este 2 vă veți confrunta cu mesaje de eroare de tipul

Package pgf Warning: Plot data file `XX.table' not found. on input line YY.

Pentru cazul Linux/Kile (Sistem de operare/Mediu de TeXnoredactare) se procedează după cum urmează. Parcurgeți următorul lanț de itemi de meniu: Settings/Configure Kile.../Tools/Build;
și adăugați în zona "Options:"  opțiunea pentru linia de comandă "-shell-escape".

Instalarea pachetelor LaTeX (Ubuntu)

Cel mai des pachetele LaTeX sînt distribuite sub formă de colecție de fișiere, adică reprezintă un directoriu care conține un anumit număr de fișiere. În acestă colecție obligatori veți găsi două fișiere: unul cu extensia ".dtx", iar altul cu extensia ".ins".   
Eu obișnuesc să instalez pachetele LaTeX în directoriul "~/texmf/tex/latex", iar procedura de instalare poate fi descrisă în linii generale prin următoarea consecutivitate de comenzi.

cp foo/ ~/texmf/tex/latex/
cd ~/texmf/tex/latex/foo/
latex foo.ins
texhash ~/texmf

Pachete LaTeX pentru documente PDF interactive

Nu m-aș fi gîndid că există astfel de pachete dacă nu citeam articolul Interactive PDFs with LaTeX. A fost o surpriză plăcută care demonstrează încă odată cît de multe se poate de făcut folosind LaTeX.

  • attachfile - oferă posibilitatea de incorpora fișiere în documentul PDF, de exemplu imaginile în original sau cod sursă de program etc;
  • movie15 - adăugarea de fișiere video, audio și 3D obiecte în documentul PDF;
  • pdfpages - inserarea fișierelor .pdf în documentul final.

Link-uri utile: tutoriale

Online tutorials on LaTeX (Mi-a plăcut mult materialul privitor la Box-uri: Several Kinds of Boxes)

Traducerea contextelor Definition, Theorem etc. in română

\usepackage[romanian]{babel}
\deftranslation[to=romanian]{Definition}{Definiție}

miercuri, 15 februarie 2012

Java: from finite to infinite

In Mathematics there are properties/relations that holds in finite cases, but stops to work in infinite cases.
In common life one can buy a printer made in China and print 5-10 copies per day and the printer will wok to the end of his/her life, but if he/she wil try to print more than 100 copies every day the printer will broke soon.
Mathematics, ordinary life ...? Let's talk about Java!

Case 1. Reading files.
for(File file : fileList) {
  LineIterator it = FileUtils.lineIterator(file);
  while (it.hasNext()) {
     String line = it.nextLine();
     // do something with line
  }
}

For a small number of files the above code will work like a charm, but for a very large fileList, after some time and in some circumstances (depending on CPU, RAM, version of Java etc) we will get IOException: Too many open files.

Case 2. Executing commands.

for(String command : commandList) {
  Process p = Runtime.getRuntime().exec(command, null);
  p.waitFor();
}

The result will be the same as in Case 1 with the same IOException: Too many open files.

Case 3. Requesting URLs

... coming soon...

Solutions.

The exceptions from Case 1  and Case 2 may be avoided with a simple finally block where we must dispose/close some of the used objects.
Here we have the solution for the Case 1

for(File file : fileList) {
  LineIterator it = FileUtils.lineIterator(file, "UTF-8");
  try {
    while (it.hasNext()) {
      String line = it.nextLine();
      // do something with line
    }
  } finally {
    it.close();
  }
}
And in Remember to Close Your Streams When Using Java's Runtime.getRuntime().exec() we have the solution for the Case 2.
for(String command : commandList) {
  Process p = null;
  try {
    p = Runtime.getRuntime().exec(command, null);
    p.waitFor();
  } finally {
    if(p != null) {
      IOUtils.closeQuietly(p.getOutputStream());
      IOUtils.closeQuietly(p.getErrorStream());
      IOUtils.closeQuietly(p.getInputStream());
  }
}

marți, 14 februarie 2012

LaTeX și blogger.com (sau curriculum blogger)

În căutarea unei soluții simple pentru afișarea fomulelor în articole am trecut prin mai multe insuccese, de exemplu http://watchmath.com/vlog/?p=438.
Pînă cînd nu am dat de acest articol MathJax in Blogger (II)
Extraordinar!

$\sqrt{x^2} = |x|$

\[\int_a^b f(x)dx = F(b)-F(a)\]

\[\frac{1}{1-\frac{1}{1-\frac{1}{1-\frac{1}{...}}}}\]

sâmbătă, 10 decembrie 2011

TYPO3: realurl

realurl & danp_realurlconfigurator  or easy configuration of RealUrl

  1. Install the extension: Realurl Configurator (danp_realurlconfigurator).
  2. If the installation was successful, the ADMIN TOOLS will have a new module: Realurlconf. Click it!
  3. In the top-right list select: Base-Configuration.
  4. Click on the bold link Try to create from 2).
  5. Click on the bold link Copy default content (attention overrides) from 2).
  6. Go to Extension Manager module from ADMIN TOOLS.
  7. Find the extension RealURL: speaking paths for TYPO3 (realurl) and click on it.
  8. In the Configuration section alter these:
    1. Path to configuration file: change from 'typo3conf/realurlconf.php' to 'typo3conf/realurlconf.php'.
    2. Enable automatic configuration: uncheck.  

realurl &multi-lingual content

Suppose that Realurl Configurator extension is already installed.
Suppose that we have to additional languages: Russian with id 1 and English with id 2.
  1. Go to the Realurlconf module from ADMIN TOOLS.
  2. In the top-right list select: Edit RealUrl-Config.
  3. In the nice online editor change these:
    1. In the preVars array find the array which starts with
      array(
      'GETvar' => 'L',
      change the valueMap array to
      'valueMap' => array(
      'ru'=>'1',
      'en'=>'2',
      )
  4. Click Save button.

realurl misc

To avoid problematic situations in the future you can add to the pagePath array this
'rootpage_id' => 1,
Where the id 1must be changed to the id of the root page of the site (where the main template is located).

Sometimes RealUrl appends to the url the tail '.html'. To disable this feature add (or change it if already exists) to the fileName array this
'defaultToHTMLsuffixOnPrev'=>0,



    sâmbătă, 30 iulie 2011

    TYPO3: cps_tcatree

    Tree view does not display any nodes except the root node (Version 0.2.2).

    Thirst of all at least one of these fields must be present
    $GLOBALS['TCA'][$this->fieldConfig['foreign_table']]['ctrl']['default_sortby']
    $GLOBALS['TCA'][$this->fieldConfig['foreign_table']]['ctrl']['sortby']
    
    Secondly the the table field which contains of name/title the records must be named title.

    duminică, 29 mai 2011

    TYPO3: Miscellaneous

    Copyright notice with current year

    H1, H2 si Typo3

    Nu știu cît este de adevărat, dar cei care se ocupă de optimizarea pentru motoarele de căutare a paginilor web consideră că tag-urile H1 și H2 sînt foarte importante pentru Google și în plus tag-ul H1 trebuie apară doar o singură dată în pagina web, el fiind rezervat pentru titlul paginii.
    Implicit în TYPO3 cîmpurile Header ale elementelor de conținut sînt încapsulate în tag-ul H1, respectiv dacă avem mai multe elemente de conținut pe pagină avem mai multe tag-uri H1.
    Următoarea linie de TypoScript (plasată în secțiunea constants) face ca titlurile elementelor de conținut să fie plasate în tag-uri de tip H2.

    content.defaultHeaderType = 2
    

    TYPO3: tt_news & realurl

    LIST & SINGLE on the same page

    Add News content element to the page you want to mix the LIST and SINGLE view mode. You can change plugin configuration how you want except the What to display setting (found on General Settings tab); from the What to display list, select Defined by TypoScript.

    On the same page create an extension template with the following setup

    # clear the code field
    plugin.tt_news.code >
    plugin.tt_news.code = LIST
    # prevent indexing of the LIST view
    config.index_enable = 0
    
    [globalVar = GP:tx_ttnews|tt_news > 0]
    plugin.tt_news.code = SINGLE
    # enable indexing of the SINGLE view
    config.index_enable = 1
    [global]
    

    News Category + News ID in the URL

    It is possible to change the URL for news to look like those from BBC News without extra PHP coding. It is enought to change the configuration of the RealURL.

    'article' => array(
      array => (
        'GETvar' => 'tx_ttnews[tt_news]',
        'lookUpTable' => array(
          'table' => 'tt_news, tt_news_cat, tt_news_cat_mm',
          'id_field' => 'uid_local',
          'alias_field' => 'CONCAT(tt_news_cat.title," ",uid_local)',
          'addWhereClause' => ' AND NOT tt_news.deleted AND tt_news.uid = uid_local AND tt_news_cat.uid = uid_foreign',
          'useUniqueCache' => 1,
          'useUniqueCache_conf' => array(
            'strtolower' => 1,
            'spaceCharacter' => '-',
          ),
        ),
      ),
    ),