New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 11577 for NEMO/trunk/doc/latex/global/indexes.tex – NEMO

Ignore:
Timestamp:
2019-09-19T19:01:38+02:00 (5 years ago)
Author:
nicolasmartin
Message:

New LaTeX commands \nam and \np to mention namelist content
(Partial commit to serve as a backup before other large edits)
In order to benefit of the syntax highlighting and to have a simpler syntax for
citing namelist block (\nam) and parameter (\np) with an optional variable assignment (\forcode{...}),
at this time the only viable solution I found is to require a double marker for
what it looks like the same item:

  1. Marker with the real name: 'tra_adv' block or 'ln_flx' parameter
  2. Marker with underscore character escaping: 'tra\_adv' block or 'ln\_flx' parameter

Despite many searches and attempts, I did not find a workaround to edit on-the-fly one or
the other marker.
In fact, the problem is on one side that the LaTeX index interprets '_' as a switch for lowering like
in math mode while on the other hand the backslash is considered for Pygments as a typo in Fortran
(red box).

For instance, \nam and \np have as of now the aforementioned 2 mandatory arguments in
the previous order (between braces) + an optional argument for \np when the parameter is defined
(between brackets at the first position):

  • \nam: LaTeX code in the \nam{tra_adv}{tra\_adv} -> PDF ' in the &namtra_adv (namelist X.X) ' with syntax highlighting, the hyperlink and the index entry
  • \np: LaTeX code \np[=.true.]{ln_flx}{ln\_flx} -> PDF ln_flux=.true. with syntax highlighting for the whole string and the entry in the 'parameters' index
File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/doc/latex/global/indexes.tex

    r11572 r11577  
    11 
    22\usepackage{imakeidx} 
     3 
     4%% Naming customization 
     5\renewcommand{\listingname}{namelist} 
     6\renewcommand{\listlistingname}{List of Namelists} 
    37 
    48%% Index entries (italic font for files, preformat for code) 
     
    812\newcommand{\key}[1]{  \index[keys]{#1@\texttt{\textbf{key\_#1}}} \texttt{\textbf{key\_#1}}} 
    913\newcommand{\mdl}[1]{  \index[modules]{#1@\textit{#1.F90}}        \textit{#1.F90}          } 
    10 \newcommand{\nam}[1]{  \index[blocks]{#1@\texttt{\&nam#1}}        \forcode{&nam#1}         } 
    11 \newcommand{\np}[1]{   \index[parameters]{#1@\texttt{#1}}         \texttt{#1}              } 
    12 \newcommand{\npnew}[2][]{\index[parameters]{#2@\texttt{#2}}       \forcode{#2#1}           } 
     14\newcommand{\nam}[2]{  \index[blocks]{\texttt{\&nam#2}}   \forcode{&nam#1} (\autoref{lst:nam#1})         } 
     15\newcommand{\np}[3][]{\index[parameters]{\texttt{#3}}       \forcode{#2#1}           } 
     16%\newcommand{\nam}[1]{  \index[blocks]{\texttt{\&nam#1}}           \forcode{&nam#1}         } 
     17%\newcommand{\np}[1]{   \index[parameters]{\texttt{#1}}            \forcode{#1}              } 
    1318\newcommand{\rou}[1]{  \index[subroutines]{#1@\texttt{#1}}        \texttt{#1}              } 
     19 
    1420 
    1521\indexsetup{toclevel=section, othercode=\small} 
Note: See TracChangeset for help on using the changeset viewer.