Discussion:
[gut] \usepackage[\jobname]{optional}
Pierre Lorenzon
2018-09-29 17:08:38 UTC
Permalink
Bonsoir,

Et utiliser le package environ et la commande \Newenviron au
lieu de \newenvironement.


Le truc c'est qu'alors il y a une macro \BODY qui contient le
texte dans l'environnement en question. Un petit jeux de
variables boléennes par dessus tout ça et on montre on cache on
montre en bleu jaune ou vert toute portion de texte bien
délimitée.

Je peux ainsi avoir une même base de texte pour deux cours de
niveau un peu différent et sélectionner des portions. Bien sûr
le premier usage que j'en ai eu ce sont des exercices où la
correction qui est de toute façon dans le source apparaît ou
n'apparaît pas suivant les nécessités du contexte !


Je conçois que ce que je vous propose est une voie assez
orthogonale à celle que vous avez adoptée puisque, là où la
sélection si j'ai bien compris, s'effectue pour vous hors LaTeX
pour moi elle s'effectue à l'intérieur du source. Et passer
d'une méthode à l'autre représente certainement un travail
assez considérable.



Bien à vous


Pierre


From: Cyril Rouiller <gut-***@rnv.ch>
Subject: [gut] \usepackage[\jobname]{optional}
Date: Sat, 29 Sep 2018 12:50:28 +0200
Bonjour,
Depuis 2004 j'essaye de faire un truc... Et je n'y arrive toujours pas.
Je produis des documents pour l’enseignent, qui doivent être produit
- du maître avec le corrigé et des commentaires marginaux ;
  - prégymnasiales ;
  - normales ;
  - exigences de bases.
Ou des documents de lectures "animées". Les élèves reçoivent un
document contenant tout le texte, leur partie est en noir et le reste
en gris.
(https ://rnv.ch/public/AgadaAdaTout.pdf)
Pour ce faire j'utilise \usepackage{optional} et un assemblage des
makefiles.
Comme je produis une vingtaine de ses documents par semaine, j'aimerais,
vraiment, pouvoir mettre en place un système beaucoup plus simple, comme
ce qui est donné en exemple dans la doc de "optionnal" (d'autant plus
que j'ai fini par éliminer tous mes Makefile pour les remplacer par un
- \usepackage[\jobname]{optional}
- des liens symboliques sur le document maître.
Mais ça marche pas
=== begin opta.txt =====================================================
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\def\mytxt{\jobname}
\usepackage[\jobname]{optional}
%\usepackage[opta]{optional}
%\usepackage[optb]{optional}
\begin{document}
jobname & \jobname\\
mytxt & \mytxt \\
choix d'option & \opt{opta}{un}\opt{optb}{deux}\\
\end{tabular}
\end{document}
========================================================================
Et un lien symbolique sur opta.tex nommé optb.tex
- jobname est bien renseigné ;
- mytxt affecté dans l'entête aussi ;
- choix d'option, vide.
Pourquoi il ne m'est pas possible d'utiliser \jobname comme option de
"optional" ? Alors même que sa documentation l'indique ?
- ArchLinux
- Vim (sans plugin LaTeX)
  - extra/texlive-core 2018.48566-1
  - extra/texlive-humanities 2018.48491-1
  - extra/texlive-latexextra 2018.48568-1
https://framagit.org/egide.latex/tests/tree/feature/PackOptional/PackOptional
Une toute bonne fin de semaine à vous.
--
Cyril Rouiller
Compagnon LaTeX débutant depuis 2003
Pierre Lorenzon
2018-09-30 02:19:08 UTC
Permalink
Bonjour,

Et bien je pensais mon idée peut-être un peu farfelue mais
finalement il y a peut-être quelque chose à creuser pour vous.


From: Cyril Rouiller <gut-***@rnv.ch>
Subject: Re: [gut] \usepackage[\jobname]{optional}
Date: Sat, 29 Sep 2018 23:35:24 +0200
Bonjour,
Un grand merci d'avoir pris le temps de me lire et de me répondre.
C'est quand-même le principe de cette liste ! et quand on
crois avoir une idée qui pourrait servir !
Le Sat, 29 Sep 2018 19:08:38 +0200 (CEST)
Post by Pierre Lorenzon
Et utiliser le package environ et la commande \Newenviron au
lieu de \newenvironement.
Je ne connaissais pas du tout ce package.
Post by Pierre Lorenzon
Le truc c'est qu'alors il y a une macro \BODY qui contient le
texte dans l'environnement en question.
J'ai créé beaucoup d’environnement pour des documents un peu spéciaux,
et c'est vrai que "environ" me semble beaucoup plus facile à maîtriser
et permet de faire les choses beaucoup plus simplement. Je vois
quelques usages que je pourrais en faire dans mes documents.
Post by Pierre Lorenzon
Je peux ainsi avoir une même base de texte pour deux cours de
niveau un peu différent et sélectionner des portions. Bien sûr
le premier usage que j'en ai eu ce sont des exercices où la
correction qui est de toute façon dans le source apparaît ou
n'apparaît pas suivant les nécessités du contexte !
Je fais aussi ça, mais j'aimerais justement qu'avec un fichier source
et un (ou plus) fichier liens j'ai la construction de deux fichiers PDF
différents qui portent directement le bon nom avec juste un petit "$
latexmk".
le code source: (exemples fictifs)
- Cours018.tex -> Cours018.pdf
En réalité je ne comprends pas exactement ce que vous appelez
des "fichiers liens". Ce que je dis c'est que Si on a un
source avec mettons du texte qu'on veut montrer à tout le
monde, du texte qui ne sort que dans un output pour prof et
du texte qui ne sort que dans un output étudiant on peut
procéder comme suit :

%%% -- -- -- Profonlys
%%% PLN Fri Oct 10 07:13:34 2014

%%
%% Un environnement profonly Les deux commandes suivantes permettent de
%% montrer ou de cacher le texte enclos entre le
%% \begin{profonly}
%% %% et le
%% \end{profonly}
%%

\newboolean{withprofonly}
\setboolean{withprofonly}{true}
\newcommand{\showprofonlys}{%%
\setboolean{withprofonly}{true}}
\newcommand{\hideprofonlys}{%%
\setboolean{withprofonly}{false}}


\NewEnviron{profonly}[1][]{
\ifthenelse{\boolean{withprofonly}}{
\par\textsl{\BODY}\par\smallskip}{}}{}

%%% -- -- -- End Profonlys

Si on veut fabriquer le document pour le prof à partir du
source il faut faut exécuter la macro \showprofonlys
quelque part.

Personellement je change un peu mon source et c'est
tout. On peut aussi avoir plusieurs sources dans lesquels
ce type de commande est donné une bonne fois pour toute et
qui appellent via \input (noter que \import \subimport etc
est encore plus souple) le contenu réel du texte.

Autre option plus ligne de commande ou make ou latexmk ce
qui revient au même, executer la macro \showprofonlys ou
\hideprofonlys sur la ligne de commande et ajuter ajuster
le nom du fichier de sortie en fonction.

Je maîtrise moins cette dernière méthode parce que j'ai
toujours une espèce de répulsion à empiler les systèmes les
uns sur les autres : le shell sur un langage de scripting
sur latex. Si on peut tout faire en interne ça ""gagne en
élégance"" de mon point de vue ! Est-ce qu'élégance
coïncide avec efficacité ...
- Cours018-pg.tex -> Cours018-pg.pdf
- Cours018-eb.tex -> Cours018-eb.pdf
- Cours018-prof.tex -> Cours018-prof.pdf
Et là, je ne vois pas trop comment "environ" pourrait venir à mon aide.
Je ne suis pas absoluement certain d'avoir tout à fait
compris comment vous organisiez votre code. Ce que je vous ai
exposé ci-dessus éclaire peut-être .... Peut-être pas
.... Dites-moi ... J'ai l'imperession que dans l'absolu,
environ pourrait vous être utile mais si c'est au prix d'une
réorganisation complète de vos sources ça fait peut-être un
peu cher !


Cordialement

Pierre
Dans le cas des fichiers de lecture j'ai souvent plus de dix fichiers
PDF en sortie.
Post by Pierre Lorenzon
là où la sélection si j'ai bien compris, s'effectue pour vous hors
LaTeX pour moi elle s'effectue à l'intérieur du source.
J'aimerais justement que la sélection ne soit plus qu'interne à LaTeX,
avec le système \usepackage[\jobname]{optional} LaTeX se base sur le
nom du sourve. Pour l'instant je travaille avec des bouts de script
bash sur mes plus vieux dossiers, ou sur des Makfile pour les plus
récents, ou alors en compilant, changeant le nom de l'option dans
l'appel du packet et en renommant le fichier PDF.
Bref, tous ça n'est pas cool.
Post by Pierre Lorenzon
Et passer
d'une méthode à l'autre représente certainement un travail
assez considérable.
$ locate -iA /CO/ .tex | wc -l
$ 2418
Tous ne sont pas des documents maîtres, mais ce n'est là que mon
dossier pour l'école.
Ce ne sont que les fichiers courants, mes archives sont compressées et
les *.tex n'apparaissent pas.
Si je dois les reprendre à mesure je suis mal (^_^)
Une bonne semaine à vous.
--
Cyril Rouiller
Compagnon LaTeX débutant depuis 2003
Loading...