\nome do trabalho em Gummi

\nome do trabalho em Gummi

O comando \jobnamegeralmente imprime o nome do arquivo sem o caminho e a extensão, portanto, dentro de um arquivo chamado foo.texserá impresso apenas foo. Com pdflatex foo.testou compilando do LaTeXila certamente obtive esse resultado. Mas deGomao que eu obtenho é.foo.tex

Alguém sabe por que o Gummi compila de maneira diferente e como consegui o \jobnamecomportamento usual no Gummi?

Editar: Com base nas respostas úteis de @JosephWright e @Herbert, pergunto-me se é possível fazer a correção \jobname no Gummi apenas se a fonte tiver a extensão .swp ou .tex persistir em \jobname.

Ou seja, eu gostaria de uma solução como:

\makeatletter
\let\JobName\jobname
\ifthenelse{\equal{\detokenize{foo}}{\jobname}}
{}
{
\def\@JobName.#1.#2\@nil{#1}
\def\jobname{\expandafter\@JobName\JobName\@nil}
}
\makeatother

Esta condicional funciona para verificar se o nome do trabalho é foo ou não, mas quero uma solução geral, independente do nome do arquivo (não limitado à string foo).

Responder1

Dando uma olhada no 'Build Log' que recebo com um foo.texarquivo de teste, parece que Gummi realmente compila .foo.tex.swp, que está oculto no Unix devido ao início .e que tem extensão .swpnot .tex. Portanto, o TeX está mostrando as informações corretas. Por exemplo, com arquivo de demonstração

\documentclass{article}
\begin{document}
Hello world
\end{document}

salvo quando foo.texrecebo log

This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012)
 \write18 enabled.
entering extended mode
(/home/joseph/Desktop/.foo.tex.swp
LaTeX2e <2011/06/27>
Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, ge
rman-x-2012-05-30, ngerman-x-2012-05-30, afrikaans, ancientgreek, ibycus, arabi
c, armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danis
h, dutch, ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnis
h, french, friulan, galician, german, ngerman, swissgerman, monogreek, greek, h
ungarian, icelandic, assamese, bengali, gujarati, hindi, kannada, malayalam, ma
rathi, oriya, panjabi, tamil, telugu, indonesian, interlingua, irish, italian, 
kurmanji, latin, latvian, lithuanian, mongolian, mongolianlmc, bokmal, nynorsk,
 polish, portuguese, romanian, romansh, russian, sanskrit, serbian, serbianc, s
lovak, slovenian, spanish, swedish, turkish, turkmen, ukrainian, uppersorbian, 
welsh, loaded.
(/usr/local/texlive/2012/texmf-dist/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/local/texlive/2012/texmf-dist/tex/latex/base/size10.clo))
(/tmp/.foo.tex.aux) [1{/usr/local/texlive/2012/texmf-var/fonts/map/pdftex/updma
p/pdftex.map}] (/tmp/.foo.tex.aux) )</usr/local/texlive/2012/texmf-dist/fonts/t
ype1/public/amsfonts/cm/cmr10.pfb>
Output written on /tmp/.foo.tex.pdf (1 page, 11541 bytes).
SyncTeX written on /tmp/.foo.tex.synctex.gz.
Transcript written on /tmp/.foo.tex.log.

Receio não ter uma solução (além de 'usar um editor diferente'), pois não parece haver uma configuração do Gummi para alterar esse comportamento.


A pergunta editada pede uma abordagem 'flexível' baseada no código de Herbert. Com a restrição de que isso assume um caso simples (o nome do arquivo contém apenas um .para separar a extensão, exceto se começar .onde Gummi está em uso):

\makeatletter
\begingroup
  \def\@jobname#1.#2\q@nil{%
    \ifx\relax#1\relax
      \expandafter\expandafter\expandafter\@@jobname
    \else
      \expandafter\@@@jobname
    \fi
      \jobname\q@nil
  }
  \def\@@jobname.#1.#2\q@nil{#1}
  \def\@@@jobname#1\q@nil{#1}
  \xdef\jobname{\expandafter\@jobname\jobname.\q@nil}
\endgroup
\makeatother

Responder2

usar no preâmbulo:

\makeatletter
\let\JobName\jobname
\def\@JobName.#1.#2\@nil{#1}
\def\jobname{\expandafter\@JobName\JobName\@nil}
\makeatother

então \jobnamefunciona normalmente. O acima é útil apenas para executar um arquivo com extensão gummi.

informação relacionada