Fórumok
Sziasztok.
Minden fájlnév, mely tex forráskód, azonos struktúrájú.
Ezeket szeretném felhasználni \section*{}-be írva.
Kukáztam egy kódot, melyet nem értek ugyan, de átírtam kissé, és ellátja a feladatát, valami ilyesmit csinál bash-ban megfogalmazva:
ls 2016-07-03.tex | sed 's/.tex//g'
Latex-ben ugyanez:
\documentclass{article}
\usepackage{currfile}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\shortcut}{O{,}m}
{
\ailurus_make:nn {#1} {#2}
}
\cs_new_protected:Npn \ailurus_make:nn #1 #2
{
\seq_set_split:Nnn \l_ailurus_args_seq { #1 } { #2 }
\seq_pop_left:NN \l_ailurus_args_seq \l_ailurus_temp_tl
\textbf { \l_ailurus_temp_tl }
\seq_map_inline:Nn \l_ailurus_args_seq { \textbf { ##1 } }
}
\seq_new:N \l_ailurus_args_seq
\tl_new:N \l_ailurus_temp_tl
\ExplSyntaxOff
\begin{document}
\shortcut[.tex]{2016-12-21.tex}
\shortcut[.tex]{\currfilename}
\end{document}
Szerintetek ennél nincs rövidebb, esetleg érthetőbb megoldás? Vagy lépjen ki a fordító inkább a bashba és csináltassam meg minden szutykomat ott?
---------
Legszebb megoldás persze az lenne, hogy a levágás helyett inkább .tex nélkülire neveznék át minden fájlt, csak akkor az mc-ben meghalnék velük.
Hozzászólások
Szerintem neked csak egy szimpla
\jobname
kell.Szerkesztés: szerintem ilyesmire az xstring jó lehet.
sajnos, ha így hívom be a fájlokat:
input{fejezet1.tex}
akkor ezen fájlokban lévő \jobname nem működik, illetve igen, de nem azt kapom amit akarok, hanem azt a fájlnevet ".tex" nélkül, amelyben az input{fejezet.tex} van leírva, azaz amit fordítok.
Tudom, hogy így működik a
\jobname
, de nem írtad, hogy\input
esetén kell.\currfilebase
ez az, ez az inklúdolt fájlnévnél is működik.