How to align the last element on the right when using hfill?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
2
down vote

favorite
1












I am making a wine list from a CSV file (see my first question here: How to import data from excel and format it as text in LaTeX?) and I need to align the prices on the right.



To do this, I used the datatool package to fetch the informations from my spreadsheet, DTLforeach to iterate what I wanted to do and hfill to align my prices on the right. (see code after the picture)



As you can see on the picture, it worked very well for every line but the last one of each (subsub)section, which is slightly misaligned:



enter image description here



Here is my code:



documentclass[12pt]article
usepackage[utf8]inputenc

% Pour modifer les marges
usepackagegeometry
% Marges du document
geometryhmargin=1.5cm,vmargin=1.5cm


% To remove the heading of the table of contents ("Contents")
makeatletter
renewcommandtableofcontents%
@starttoctoc%

makeatother %%% WAS makeatotherx = ERROR %%%

% To make itemized lists
% This package provides user control over the layout of the three basic list environments: enumerate, itemize and description. It supersedes both enumerate and mdwlist (providing well-structured replacements for all their funtionality), and in addition provides functions to compute the layout of labels, and to ‘clone’ the standard environments, to create new environments with counters of their own.
usepackageenumitem

% Datatool package to load external files (csv)
usepackagedatatool

%--------------------------%

titleCarte des Vins
authorB
datetoday

%--------------------------%
setcountersecnumdepth-2
begindocument
maketitle
tableofcontents

%--------------------------%
newpage
sectionBordeaux

% Load CSV database (here bordeaux.csv)
% and give it a label (here BOR)
DTLloaddbBORbordeaux.csv

subsectionRed
%%%%%%% CUT CODE %%%%%%%%%%%%%%%%%%%%%%%%%
newpage

subsubsectionSaint-Julien
%%%%%%%%%%%%%%%
% Iteration for Bordeaux Red Saint-Julien (R03)
DTLforeach*[DTLiseqRegionR03] % Condition
BOR % Database label
Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
% Stuff to do at each iteration:
beginitemize %%% ABSENT IN MY ORIGINAL CODE %%%
item
textbfVintage
textbf Name
textit Classification
hfillCostPrice
enditemize %%% ABSENT IN MY ORIGINAL CODE %%%

%%%%%%%%%%%%%%%

subsubsectionMargaux
%%%%%%%%%%%%%%%
% Iteration for Bordeaux Red Margaux (R04)
%%%%%%%%%%%%%%%%% CUT CODE%%%%%%%
enddocument


How can I align all my prices on the right?



Excerpt of my CSV file:



CODE,Vintage,Name,Classification,Origin,Size,Type,Wine,Region,Stockholding,CostPrice,TOTCostPrice,TOTCostPriceBis
GRUAUD LAROSE,1971,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £15.00 , £30.00 , £30.00
LALANDE BORIE,2011,Château Lalande-Borie,,Saint-Julien,Bottle,Red,Bordeaux,R03,35.0, £19.70 , £689.50 , £689.50
RESERVE LEOV-BARTN,2011,La Réserve de Léoville Barton,,Saint-Julien,Bottle,Red,Bordeaux,R03,12.0, £20.86 , £250.32 , £250.32
CLOS DU MARQUIS,2004,Clos du Marquis,,Saint-Julien,Bottle,Red,Bordeaux,R03,3.0, £35.83 , £107.49 , £107.49
GRUAUD LAROSE,2005,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,16.0, £43.49 , £695.84 , £695.84
DUCRU BEAUCAILLOU,1978,Château Ducru-Beaucaillou,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £56.52 , £113.04 , £113.04
LAGRANGE 3EME SJ,2005,Château Lagrange,3ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,6.0, £58.75 , £352.50 , £352.50
LEOVILLE POYFERRE,2000,Château Léoville Poyferre,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £73.33 , £146.66 , £146.66
GRUARD LAROSE,1986,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,1.0, £100.00 , £100.00 , £100.00









share|improve this question









New contributor




Claire Boitet is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 1




    Unfortunately the code as shown can't be run (a good MWE for LaTeX should start with documentclass and should have a begindocument...enddocument pair, in this case it would also help if you could supply example .csv data, see tex.meta.stackexchange.com/q/228/35864), so I can only guess that you are missing a % somewhere.
    – moewe
    1 hour ago







  • 3




    I did compile your document here... Have you noticed you are getting lots of compilation errors? You really shouldn't ignore these. Your code is doing an item without being wrapped in a list environment (and this is adding a space after the last entry). Try adding beginitemize before the DTLforeach command and an enditemize after it. The output should look right then. Ooh, and you have a typo. You have makeatotherx, with an extra x.
    – Phelype Oleinik
    32 mins ago







  • 2




    I get two kinds of errors: (1) ! Undefined control sequence. l.28 makeatotherx. It should have been makeatother instead. (2) ! LaTeX Error: Lonely item--perhaps a missing list environment.. This is because you have item in your code when there is no itemize or enumerate to make use of it. That causes an error.
    – moewe
    29 mins ago






  • 2




    Yes, but errors must be fixed even if superficially they don't affect the PDF - the absolutely affect the output. TeX has a limited ability to recover from errors, but usually it has to guess what to do and that is rarely exactly what you intended to happen. (1) Replace makeatotherx with makeatother. (2) Either don't use item at all or wrap it into an beginitemize...enditemize.
    – moewe
    23 mins ago






  • 1




    no space shows if you follow @moewe advice to add itemize environment to wrap around the entire contents of subsubsection Saint-Julien
    – jfbu
    15 mins ago














up vote
2
down vote

favorite
1












I am making a wine list from a CSV file (see my first question here: How to import data from excel and format it as text in LaTeX?) and I need to align the prices on the right.



To do this, I used the datatool package to fetch the informations from my spreadsheet, DTLforeach to iterate what I wanted to do and hfill to align my prices on the right. (see code after the picture)



As you can see on the picture, it worked very well for every line but the last one of each (subsub)section, which is slightly misaligned:



enter image description here



Here is my code:



documentclass[12pt]article
usepackage[utf8]inputenc

% Pour modifer les marges
usepackagegeometry
% Marges du document
geometryhmargin=1.5cm,vmargin=1.5cm


% To remove the heading of the table of contents ("Contents")
makeatletter
renewcommandtableofcontents%
@starttoctoc%

makeatother %%% WAS makeatotherx = ERROR %%%

% To make itemized lists
% This package provides user control over the layout of the three basic list environments: enumerate, itemize and description. It supersedes both enumerate and mdwlist (providing well-structured replacements for all their funtionality), and in addition provides functions to compute the layout of labels, and to ‘clone’ the standard environments, to create new environments with counters of their own.
usepackageenumitem

% Datatool package to load external files (csv)
usepackagedatatool

%--------------------------%

titleCarte des Vins
authorB
datetoday

%--------------------------%
setcountersecnumdepth-2
begindocument
maketitle
tableofcontents

%--------------------------%
newpage
sectionBordeaux

% Load CSV database (here bordeaux.csv)
% and give it a label (here BOR)
DTLloaddbBORbordeaux.csv

subsectionRed
%%%%%%% CUT CODE %%%%%%%%%%%%%%%%%%%%%%%%%
newpage

subsubsectionSaint-Julien
%%%%%%%%%%%%%%%
% Iteration for Bordeaux Red Saint-Julien (R03)
DTLforeach*[DTLiseqRegionR03] % Condition
BOR % Database label
Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
% Stuff to do at each iteration:
beginitemize %%% ABSENT IN MY ORIGINAL CODE %%%
item
textbfVintage
textbf Name
textit Classification
hfillCostPrice
enditemize %%% ABSENT IN MY ORIGINAL CODE %%%

%%%%%%%%%%%%%%%

subsubsectionMargaux
%%%%%%%%%%%%%%%
% Iteration for Bordeaux Red Margaux (R04)
%%%%%%%%%%%%%%%%% CUT CODE%%%%%%%
enddocument


How can I align all my prices on the right?



Excerpt of my CSV file:



CODE,Vintage,Name,Classification,Origin,Size,Type,Wine,Region,Stockholding,CostPrice,TOTCostPrice,TOTCostPriceBis
GRUAUD LAROSE,1971,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £15.00 , £30.00 , £30.00
LALANDE BORIE,2011,Château Lalande-Borie,,Saint-Julien,Bottle,Red,Bordeaux,R03,35.0, £19.70 , £689.50 , £689.50
RESERVE LEOV-BARTN,2011,La Réserve de Léoville Barton,,Saint-Julien,Bottle,Red,Bordeaux,R03,12.0, £20.86 , £250.32 , £250.32
CLOS DU MARQUIS,2004,Clos du Marquis,,Saint-Julien,Bottle,Red,Bordeaux,R03,3.0, £35.83 , £107.49 , £107.49
GRUAUD LAROSE,2005,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,16.0, £43.49 , £695.84 , £695.84
DUCRU BEAUCAILLOU,1978,Château Ducru-Beaucaillou,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £56.52 , £113.04 , £113.04
LAGRANGE 3EME SJ,2005,Château Lagrange,3ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,6.0, £58.75 , £352.50 , £352.50
LEOVILLE POYFERRE,2000,Château Léoville Poyferre,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £73.33 , £146.66 , £146.66
GRUARD LAROSE,1986,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,1.0, £100.00 , £100.00 , £100.00









share|improve this question









New contributor




Claire Boitet is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 1




    Unfortunately the code as shown can't be run (a good MWE for LaTeX should start with documentclass and should have a begindocument...enddocument pair, in this case it would also help if you could supply example .csv data, see tex.meta.stackexchange.com/q/228/35864), so I can only guess that you are missing a % somewhere.
    – moewe
    1 hour ago







  • 3




    I did compile your document here... Have you noticed you are getting lots of compilation errors? You really shouldn't ignore these. Your code is doing an item without being wrapped in a list environment (and this is adding a space after the last entry). Try adding beginitemize before the DTLforeach command and an enditemize after it. The output should look right then. Ooh, and you have a typo. You have makeatotherx, with an extra x.
    – Phelype Oleinik
    32 mins ago







  • 2




    I get two kinds of errors: (1) ! Undefined control sequence. l.28 makeatotherx. It should have been makeatother instead. (2) ! LaTeX Error: Lonely item--perhaps a missing list environment.. This is because you have item in your code when there is no itemize or enumerate to make use of it. That causes an error.
    – moewe
    29 mins ago






  • 2




    Yes, but errors must be fixed even if superficially they don't affect the PDF - the absolutely affect the output. TeX has a limited ability to recover from errors, but usually it has to guess what to do and that is rarely exactly what you intended to happen. (1) Replace makeatotherx with makeatother. (2) Either don't use item at all or wrap it into an beginitemize...enditemize.
    – moewe
    23 mins ago






  • 1




    no space shows if you follow @moewe advice to add itemize environment to wrap around the entire contents of subsubsection Saint-Julien
    – jfbu
    15 mins ago












up vote
2
down vote

favorite
1









up vote
2
down vote

favorite
1






1





I am making a wine list from a CSV file (see my first question here: How to import data from excel and format it as text in LaTeX?) and I need to align the prices on the right.



To do this, I used the datatool package to fetch the informations from my spreadsheet, DTLforeach to iterate what I wanted to do and hfill to align my prices on the right. (see code after the picture)



As you can see on the picture, it worked very well for every line but the last one of each (subsub)section, which is slightly misaligned:



enter image description here



Here is my code:



documentclass[12pt]article
usepackage[utf8]inputenc

% Pour modifer les marges
usepackagegeometry
% Marges du document
geometryhmargin=1.5cm,vmargin=1.5cm


% To remove the heading of the table of contents ("Contents")
makeatletter
renewcommandtableofcontents%
@starttoctoc%

makeatother %%% WAS makeatotherx = ERROR %%%

% To make itemized lists
% This package provides user control over the layout of the three basic list environments: enumerate, itemize and description. It supersedes both enumerate and mdwlist (providing well-structured replacements for all their funtionality), and in addition provides functions to compute the layout of labels, and to ‘clone’ the standard environments, to create new environments with counters of their own.
usepackageenumitem

% Datatool package to load external files (csv)
usepackagedatatool

%--------------------------%

titleCarte des Vins
authorB
datetoday

%--------------------------%
setcountersecnumdepth-2
begindocument
maketitle
tableofcontents

%--------------------------%
newpage
sectionBordeaux

% Load CSV database (here bordeaux.csv)
% and give it a label (here BOR)
DTLloaddbBORbordeaux.csv

subsectionRed
%%%%%%% CUT CODE %%%%%%%%%%%%%%%%%%%%%%%%%
newpage

subsubsectionSaint-Julien
%%%%%%%%%%%%%%%
% Iteration for Bordeaux Red Saint-Julien (R03)
DTLforeach*[DTLiseqRegionR03] % Condition
BOR % Database label
Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
% Stuff to do at each iteration:
beginitemize %%% ABSENT IN MY ORIGINAL CODE %%%
item
textbfVintage
textbf Name
textit Classification
hfillCostPrice
enditemize %%% ABSENT IN MY ORIGINAL CODE %%%

%%%%%%%%%%%%%%%

subsubsectionMargaux
%%%%%%%%%%%%%%%
% Iteration for Bordeaux Red Margaux (R04)
%%%%%%%%%%%%%%%%% CUT CODE%%%%%%%
enddocument


How can I align all my prices on the right?



Excerpt of my CSV file:



CODE,Vintage,Name,Classification,Origin,Size,Type,Wine,Region,Stockholding,CostPrice,TOTCostPrice,TOTCostPriceBis
GRUAUD LAROSE,1971,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £15.00 , £30.00 , £30.00
LALANDE BORIE,2011,Château Lalande-Borie,,Saint-Julien,Bottle,Red,Bordeaux,R03,35.0, £19.70 , £689.50 , £689.50
RESERVE LEOV-BARTN,2011,La Réserve de Léoville Barton,,Saint-Julien,Bottle,Red,Bordeaux,R03,12.0, £20.86 , £250.32 , £250.32
CLOS DU MARQUIS,2004,Clos du Marquis,,Saint-Julien,Bottle,Red,Bordeaux,R03,3.0, £35.83 , £107.49 , £107.49
GRUAUD LAROSE,2005,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,16.0, £43.49 , £695.84 , £695.84
DUCRU BEAUCAILLOU,1978,Château Ducru-Beaucaillou,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £56.52 , £113.04 , £113.04
LAGRANGE 3EME SJ,2005,Château Lagrange,3ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,6.0, £58.75 , £352.50 , £352.50
LEOVILLE POYFERRE,2000,Château Léoville Poyferre,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £73.33 , £146.66 , £146.66
GRUARD LAROSE,1986,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,1.0, £100.00 , £100.00 , £100.00









share|improve this question









New contributor




Claire Boitet is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











I am making a wine list from a CSV file (see my first question here: How to import data from excel and format it as text in LaTeX?) and I need to align the prices on the right.



To do this, I used the datatool package to fetch the informations from my spreadsheet, DTLforeach to iterate what I wanted to do and hfill to align my prices on the right. (see code after the picture)



As you can see on the picture, it worked very well for every line but the last one of each (subsub)section, which is slightly misaligned:



enter image description here



Here is my code:



documentclass[12pt]article
usepackage[utf8]inputenc

% Pour modifer les marges
usepackagegeometry
% Marges du document
geometryhmargin=1.5cm,vmargin=1.5cm


% To remove the heading of the table of contents ("Contents")
makeatletter
renewcommandtableofcontents%
@starttoctoc%

makeatother %%% WAS makeatotherx = ERROR %%%

% To make itemized lists
% This package provides user control over the layout of the three basic list environments: enumerate, itemize and description. It supersedes both enumerate and mdwlist (providing well-structured replacements for all their funtionality), and in addition provides functions to compute the layout of labels, and to ‘clone’ the standard environments, to create new environments with counters of their own.
usepackageenumitem

% Datatool package to load external files (csv)
usepackagedatatool

%--------------------------%

titleCarte des Vins
authorB
datetoday

%--------------------------%
setcountersecnumdepth-2
begindocument
maketitle
tableofcontents

%--------------------------%
newpage
sectionBordeaux

% Load CSV database (here bordeaux.csv)
% and give it a label (here BOR)
DTLloaddbBORbordeaux.csv

subsectionRed
%%%%%%% CUT CODE %%%%%%%%%%%%%%%%%%%%%%%%%
newpage

subsubsectionSaint-Julien
%%%%%%%%%%%%%%%
% Iteration for Bordeaux Red Saint-Julien (R03)
DTLforeach*[DTLiseqRegionR03] % Condition
BOR % Database label
Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
% Stuff to do at each iteration:
beginitemize %%% ABSENT IN MY ORIGINAL CODE %%%
item
textbfVintage
textbf Name
textit Classification
hfillCostPrice
enditemize %%% ABSENT IN MY ORIGINAL CODE %%%

%%%%%%%%%%%%%%%

subsubsectionMargaux
%%%%%%%%%%%%%%%
% Iteration for Bordeaux Red Margaux (R04)
%%%%%%%%%%%%%%%%% CUT CODE%%%%%%%
enddocument


How can I align all my prices on the right?



Excerpt of my CSV file:



CODE,Vintage,Name,Classification,Origin,Size,Type,Wine,Region,Stockholding,CostPrice,TOTCostPrice,TOTCostPriceBis
GRUAUD LAROSE,1971,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £15.00 , £30.00 , £30.00
LALANDE BORIE,2011,Château Lalande-Borie,,Saint-Julien,Bottle,Red,Bordeaux,R03,35.0, £19.70 , £689.50 , £689.50
RESERVE LEOV-BARTN,2011,La Réserve de Léoville Barton,,Saint-Julien,Bottle,Red,Bordeaux,R03,12.0, £20.86 , £250.32 , £250.32
CLOS DU MARQUIS,2004,Clos du Marquis,,Saint-Julien,Bottle,Red,Bordeaux,R03,3.0, £35.83 , £107.49 , £107.49
GRUAUD LAROSE,2005,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,16.0, £43.49 , £695.84 , £695.84
DUCRU BEAUCAILLOU,1978,Château Ducru-Beaucaillou,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £56.52 , £113.04 , £113.04
LAGRANGE 3EME SJ,2005,Château Lagrange,3ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,6.0, £58.75 , £352.50 , £352.50
LEOVILLE POYFERRE,2000,Château Léoville Poyferre,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £73.33 , £146.66 , £146.66
GRUARD LAROSE,1986,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,1.0, £100.00 , £100.00 , £100.00






horizontal-alignment formatting datatool






share|improve this question









New contributor




Claire Boitet is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Claire Boitet is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited 6 mins ago





















New contributor




Claire Boitet is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 1 hour ago









Claire Boitet

588




588




New contributor




Claire Boitet is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Claire Boitet is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Claire Boitet is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







  • 1




    Unfortunately the code as shown can't be run (a good MWE for LaTeX should start with documentclass and should have a begindocument...enddocument pair, in this case it would also help if you could supply example .csv data, see tex.meta.stackexchange.com/q/228/35864), so I can only guess that you are missing a % somewhere.
    – moewe
    1 hour ago







  • 3




    I did compile your document here... Have you noticed you are getting lots of compilation errors? You really shouldn't ignore these. Your code is doing an item without being wrapped in a list environment (and this is adding a space after the last entry). Try adding beginitemize before the DTLforeach command and an enditemize after it. The output should look right then. Ooh, and you have a typo. You have makeatotherx, with an extra x.
    – Phelype Oleinik
    32 mins ago







  • 2




    I get two kinds of errors: (1) ! Undefined control sequence. l.28 makeatotherx. It should have been makeatother instead. (2) ! LaTeX Error: Lonely item--perhaps a missing list environment.. This is because you have item in your code when there is no itemize or enumerate to make use of it. That causes an error.
    – moewe
    29 mins ago






  • 2




    Yes, but errors must be fixed even if superficially they don't affect the PDF - the absolutely affect the output. TeX has a limited ability to recover from errors, but usually it has to guess what to do and that is rarely exactly what you intended to happen. (1) Replace makeatotherx with makeatother. (2) Either don't use item at all or wrap it into an beginitemize...enditemize.
    – moewe
    23 mins ago






  • 1




    no space shows if you follow @moewe advice to add itemize environment to wrap around the entire contents of subsubsection Saint-Julien
    – jfbu
    15 mins ago












  • 1




    Unfortunately the code as shown can't be run (a good MWE for LaTeX should start with documentclass and should have a begindocument...enddocument pair, in this case it would also help if you could supply example .csv data, see tex.meta.stackexchange.com/q/228/35864), so I can only guess that you are missing a % somewhere.
    – moewe
    1 hour ago







  • 3




    I did compile your document here... Have you noticed you are getting lots of compilation errors? You really shouldn't ignore these. Your code is doing an item without being wrapped in a list environment (and this is adding a space after the last entry). Try adding beginitemize before the DTLforeach command and an enditemize after it. The output should look right then. Ooh, and you have a typo. You have makeatotherx, with an extra x.
    – Phelype Oleinik
    32 mins ago







  • 2




    I get two kinds of errors: (1) ! Undefined control sequence. l.28 makeatotherx. It should have been makeatother instead. (2) ! LaTeX Error: Lonely item--perhaps a missing list environment.. This is because you have item in your code when there is no itemize or enumerate to make use of it. That causes an error.
    – moewe
    29 mins ago






  • 2




    Yes, but errors must be fixed even if superficially they don't affect the PDF - the absolutely affect the output. TeX has a limited ability to recover from errors, but usually it has to guess what to do and that is rarely exactly what you intended to happen. (1) Replace makeatotherx with makeatother. (2) Either don't use item at all or wrap it into an beginitemize...enditemize.
    – moewe
    23 mins ago






  • 1




    no space shows if you follow @moewe advice to add itemize environment to wrap around the entire contents of subsubsection Saint-Julien
    – jfbu
    15 mins ago







1




1




Unfortunately the code as shown can't be run (a good MWE for LaTeX should start with documentclass and should have a begindocument...enddocument pair, in this case it would also help if you could supply example .csv data, see tex.meta.stackexchange.com/q/228/35864), so I can only guess that you are missing a % somewhere.
– moewe
1 hour ago





Unfortunately the code as shown can't be run (a good MWE for LaTeX should start with documentclass and should have a begindocument...enddocument pair, in this case it would also help if you could supply example .csv data, see tex.meta.stackexchange.com/q/228/35864), so I can only guess that you are missing a % somewhere.
– moewe
1 hour ago





3




3




I did compile your document here... Have you noticed you are getting lots of compilation errors? You really shouldn't ignore these. Your code is doing an item without being wrapped in a list environment (and this is adding a space after the last entry). Try adding beginitemize before the DTLforeach command and an enditemize after it. The output should look right then. Ooh, and you have a typo. You have makeatotherx, with an extra x.
– Phelype Oleinik
32 mins ago





I did compile your document here... Have you noticed you are getting lots of compilation errors? You really shouldn't ignore these. Your code is doing an item without being wrapped in a list environment (and this is adding a space after the last entry). Try adding beginitemize before the DTLforeach command and an enditemize after it. The output should look right then. Ooh, and you have a typo. You have makeatotherx, with an extra x.
– Phelype Oleinik
32 mins ago





2




2




I get two kinds of errors: (1) ! Undefined control sequence. l.28 makeatotherx. It should have been makeatother instead. (2) ! LaTeX Error: Lonely item--perhaps a missing list environment.. This is because you have item in your code when there is no itemize or enumerate to make use of it. That causes an error.
– moewe
29 mins ago




I get two kinds of errors: (1) ! Undefined control sequence. l.28 makeatotherx. It should have been makeatother instead. (2) ! LaTeX Error: Lonely item--perhaps a missing list environment.. This is because you have item in your code when there is no itemize or enumerate to make use of it. That causes an error.
– moewe
29 mins ago




2




2




Yes, but errors must be fixed even if superficially they don't affect the PDF - the absolutely affect the output. TeX has a limited ability to recover from errors, but usually it has to guess what to do and that is rarely exactly what you intended to happen. (1) Replace makeatotherx with makeatother. (2) Either don't use item at all or wrap it into an beginitemize...enditemize.
– moewe
23 mins ago




Yes, but errors must be fixed even if superficially they don't affect the PDF - the absolutely affect the output. TeX has a limited ability to recover from errors, but usually it has to guess what to do and that is rarely exactly what you intended to happen. (1) Replace makeatotherx with makeatother. (2) Either don't use item at all or wrap it into an beginitemize...enditemize.
– moewe
23 mins ago




1




1




no space shows if you follow @moewe advice to add itemize environment to wrap around the entire contents of subsubsection Saint-Julien
– jfbu
15 mins ago




no space shows if you follow @moewe advice to add itemize environment to wrap around the entire contents of subsubsection Saint-Julien
– jfbu
15 mins ago










2 Answers
2






active

oldest

votes

















up vote
3
down vote



accepted










There are two obvious problems with your code. You get errors about both of them.



Firstly you mistyped



makeatother


as makeatotherx which causes LaTeX to complain




! Undefined control sequence.
l.22 makeatotherx



Secondly your loop code in DTLforeach calls item but there is no surrounding list environment that would know how to deal with it.



Since you want to use item to get a new line, I suggest a plain trivlist in this case.



%RequirePackagefilecontents
beginfilecontents*bordeaux.csv
CODE,Vintage,Name,Classification,Origin,Size,Type,Wine,Region,Stockholding,CostPrice,TOTCostPrice,TOTCostPriceBis
GRUAUD LAROSE,1971,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £15.00 , £30.00 , £30.00
LALANDE BORIE,2011,Château Lalande-Borie,,Saint-Julien,Bottle,Red,Bordeaux,R03,35.0, £19.70 , £689.50 , £689.50
RESERVE LEOV-BARTN,2011,La Réserve de Léoville Barton,,Saint-Julien,Bottle,Red,Bordeaux,R03,12.0, £20.86 , £250.32 , £250.32
CLOS DU MARQUIS,2004,Clos du Marquis,,Saint-Julien,Bottle,Red,Bordeaux,R03,3.0, £35.83 , £107.49 , £107.49
GRUAUD LAROSE,2005,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,16.0, £43.49 , £695.84 , £695.84
DUCRU BEAUCAILLOU,1978,Château Ducru-Beaucaillou,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £56.52 , £113.04 , £113.04
LAGRANGE 3EME SJ,2005,Château Lagrange,3ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,6.0, £58.75 , £352.50 , £352.50
LEOVILLE POYFERRE,2000,Château Léoville Poyferre,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £73.33 , £146.66 , £146.66
GRUARD LAROSE,1986,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,1.0, £100.00 , £100.00 , £100.00
endfilecontents*
documentclass[12pt]article
usepackage[utf8]inputenc

makeatletter
renewcommandtableofcontents%
@starttoctoc%

makeatother

usepackageenumitem
usepackagedatatool

begindocument
sectionBordeaux
DTLloaddbBORbordeaux.csv
subsectionRed
subsubsectionSaint-Julien

begintrivlist
DTLforeach*[DTLiseqRegionR03] % Condition
BOR % Database label
Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
% Stuff to do at each iteration:
item
textbfVintage
textbf Name
textit Classification
hfillCostPrice

endtrivlist

enddocument


Possibly a table (tabular) would be a better fit.






share|improve this answer



























    up vote
    1
    down vote













    Apart from the problem in the code, the root issue is that CostPrice always has an ending space, as one can see by using textttmeaningCostPrice+++.



    enter image description here



    This may come from the fact that your csv data has spaces before the commas, but I suppose datatool knows how to remove such trailing space (it is harder in TeX to remove a trailing space than a leading one by the way).



    Anyway if you use



    beginitemize
    %%%%%%%%%%%%%%%
    % Iteration for Bordeaux Red Saint-Julien (R03)
    DTLforeach*[DTLiseqRegionR03] % Condition
    BOR % Database label
    Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
    % Stuff to do at each iteration:
    item
    textbfVintage
    textbf Name
    textit Classification
    hfillCostPrice

    %%%%%%%%%%%%%%%
    enditemize


    There is no problem



    enter image description here



    The extra space doesnt show then. (it is suppressed by item paragraph)



    Remark: in fact even with your buggy code you could have avoided the sapce this way:



    %%%%%%%%%%%%%%%
    % Iteration for Bordeaux Red Saint-Julien (R03)
    DTLforeach*[DTLiseqRegionR03] % Condition
    BOR % Database label
    Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
    % Stuff to do at each iteration:
    item
    textbfVintage
    textbf Name
    textit Classification
    hfillCostPrice
    %<----- suppress space from line end
    %%%%%%%%%%%%%%%


    Because then there is only ONE not TWO space tokens at the end of paragraph. Of course much better is to wrap in itemize else item is illegal.






    share|improve this answer




















      Your Answer







      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "85"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      convertImagesToLinks: false,
      noModals: false,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );






      Claire Boitet is a new contributor. Be nice, and check out our Code of Conduct.









       

      draft saved


      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f451982%2fhow-to-align-the-last-element-on-the-right-when-using-hfill%23new-answer', 'question_page');

      );

      Post as a guest






























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      3
      down vote



      accepted










      There are two obvious problems with your code. You get errors about both of them.



      Firstly you mistyped



      makeatother


      as makeatotherx which causes LaTeX to complain




      ! Undefined control sequence.
      l.22 makeatotherx



      Secondly your loop code in DTLforeach calls item but there is no surrounding list environment that would know how to deal with it.



      Since you want to use item to get a new line, I suggest a plain trivlist in this case.



      %RequirePackagefilecontents
      beginfilecontents*bordeaux.csv
      CODE,Vintage,Name,Classification,Origin,Size,Type,Wine,Region,Stockholding,CostPrice,TOTCostPrice,TOTCostPriceBis
      GRUAUD LAROSE,1971,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £15.00 , £30.00 , £30.00
      LALANDE BORIE,2011,Château Lalande-Borie,,Saint-Julien,Bottle,Red,Bordeaux,R03,35.0, £19.70 , £689.50 , £689.50
      RESERVE LEOV-BARTN,2011,La Réserve de Léoville Barton,,Saint-Julien,Bottle,Red,Bordeaux,R03,12.0, £20.86 , £250.32 , £250.32
      CLOS DU MARQUIS,2004,Clos du Marquis,,Saint-Julien,Bottle,Red,Bordeaux,R03,3.0, £35.83 , £107.49 , £107.49
      GRUAUD LAROSE,2005,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,16.0, £43.49 , £695.84 , £695.84
      DUCRU BEAUCAILLOU,1978,Château Ducru-Beaucaillou,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £56.52 , £113.04 , £113.04
      LAGRANGE 3EME SJ,2005,Château Lagrange,3ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,6.0, £58.75 , £352.50 , £352.50
      LEOVILLE POYFERRE,2000,Château Léoville Poyferre,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £73.33 , £146.66 , £146.66
      GRUARD LAROSE,1986,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,1.0, £100.00 , £100.00 , £100.00
      endfilecontents*
      documentclass[12pt]article
      usepackage[utf8]inputenc

      makeatletter
      renewcommandtableofcontents%
      @starttoctoc%

      makeatother

      usepackageenumitem
      usepackagedatatool

      begindocument
      sectionBordeaux
      DTLloaddbBORbordeaux.csv
      subsectionRed
      subsubsectionSaint-Julien

      begintrivlist
      DTLforeach*[DTLiseqRegionR03] % Condition
      BOR % Database label
      Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
      % Stuff to do at each iteration:
      item
      textbfVintage
      textbf Name
      textit Classification
      hfillCostPrice

      endtrivlist

      enddocument


      Possibly a table (tabular) would be a better fit.






      share|improve this answer
























        up vote
        3
        down vote



        accepted










        There are two obvious problems with your code. You get errors about both of them.



        Firstly you mistyped



        makeatother


        as makeatotherx which causes LaTeX to complain




        ! Undefined control sequence.
        l.22 makeatotherx



        Secondly your loop code in DTLforeach calls item but there is no surrounding list environment that would know how to deal with it.



        Since you want to use item to get a new line, I suggest a plain trivlist in this case.



        %RequirePackagefilecontents
        beginfilecontents*bordeaux.csv
        CODE,Vintage,Name,Classification,Origin,Size,Type,Wine,Region,Stockholding,CostPrice,TOTCostPrice,TOTCostPriceBis
        GRUAUD LAROSE,1971,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £15.00 , £30.00 , £30.00
        LALANDE BORIE,2011,Château Lalande-Borie,,Saint-Julien,Bottle,Red,Bordeaux,R03,35.0, £19.70 , £689.50 , £689.50
        RESERVE LEOV-BARTN,2011,La Réserve de Léoville Barton,,Saint-Julien,Bottle,Red,Bordeaux,R03,12.0, £20.86 , £250.32 , £250.32
        CLOS DU MARQUIS,2004,Clos du Marquis,,Saint-Julien,Bottle,Red,Bordeaux,R03,3.0, £35.83 , £107.49 , £107.49
        GRUAUD LAROSE,2005,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,16.0, £43.49 , £695.84 , £695.84
        DUCRU BEAUCAILLOU,1978,Château Ducru-Beaucaillou,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £56.52 , £113.04 , £113.04
        LAGRANGE 3EME SJ,2005,Château Lagrange,3ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,6.0, £58.75 , £352.50 , £352.50
        LEOVILLE POYFERRE,2000,Château Léoville Poyferre,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £73.33 , £146.66 , £146.66
        GRUARD LAROSE,1986,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,1.0, £100.00 , £100.00 , £100.00
        endfilecontents*
        documentclass[12pt]article
        usepackage[utf8]inputenc

        makeatletter
        renewcommandtableofcontents%
        @starttoctoc%

        makeatother

        usepackageenumitem
        usepackagedatatool

        begindocument
        sectionBordeaux
        DTLloaddbBORbordeaux.csv
        subsectionRed
        subsubsectionSaint-Julien

        begintrivlist
        DTLforeach*[DTLiseqRegionR03] % Condition
        BOR % Database label
        Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
        % Stuff to do at each iteration:
        item
        textbfVintage
        textbf Name
        textit Classification
        hfillCostPrice

        endtrivlist

        enddocument


        Possibly a table (tabular) would be a better fit.






        share|improve this answer






















          up vote
          3
          down vote



          accepted







          up vote
          3
          down vote



          accepted






          There are two obvious problems with your code. You get errors about both of them.



          Firstly you mistyped



          makeatother


          as makeatotherx which causes LaTeX to complain




          ! Undefined control sequence.
          l.22 makeatotherx



          Secondly your loop code in DTLforeach calls item but there is no surrounding list environment that would know how to deal with it.



          Since you want to use item to get a new line, I suggest a plain trivlist in this case.



          %RequirePackagefilecontents
          beginfilecontents*bordeaux.csv
          CODE,Vintage,Name,Classification,Origin,Size,Type,Wine,Region,Stockholding,CostPrice,TOTCostPrice,TOTCostPriceBis
          GRUAUD LAROSE,1971,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £15.00 , £30.00 , £30.00
          LALANDE BORIE,2011,Château Lalande-Borie,,Saint-Julien,Bottle,Red,Bordeaux,R03,35.0, £19.70 , £689.50 , £689.50
          RESERVE LEOV-BARTN,2011,La Réserve de Léoville Barton,,Saint-Julien,Bottle,Red,Bordeaux,R03,12.0, £20.86 , £250.32 , £250.32
          CLOS DU MARQUIS,2004,Clos du Marquis,,Saint-Julien,Bottle,Red,Bordeaux,R03,3.0, £35.83 , £107.49 , £107.49
          GRUAUD LAROSE,2005,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,16.0, £43.49 , £695.84 , £695.84
          DUCRU BEAUCAILLOU,1978,Château Ducru-Beaucaillou,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £56.52 , £113.04 , £113.04
          LAGRANGE 3EME SJ,2005,Château Lagrange,3ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,6.0, £58.75 , £352.50 , £352.50
          LEOVILLE POYFERRE,2000,Château Léoville Poyferre,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £73.33 , £146.66 , £146.66
          GRUARD LAROSE,1986,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,1.0, £100.00 , £100.00 , £100.00
          endfilecontents*
          documentclass[12pt]article
          usepackage[utf8]inputenc

          makeatletter
          renewcommandtableofcontents%
          @starttoctoc%

          makeatother

          usepackageenumitem
          usepackagedatatool

          begindocument
          sectionBordeaux
          DTLloaddbBORbordeaux.csv
          subsectionRed
          subsubsectionSaint-Julien

          begintrivlist
          DTLforeach*[DTLiseqRegionR03] % Condition
          BOR % Database label
          Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
          % Stuff to do at each iteration:
          item
          textbfVintage
          textbf Name
          textit Classification
          hfillCostPrice

          endtrivlist

          enddocument


          Possibly a table (tabular) would be a better fit.






          share|improve this answer












          There are two obvious problems with your code. You get errors about both of them.



          Firstly you mistyped



          makeatother


          as makeatotherx which causes LaTeX to complain




          ! Undefined control sequence.
          l.22 makeatotherx



          Secondly your loop code in DTLforeach calls item but there is no surrounding list environment that would know how to deal with it.



          Since you want to use item to get a new line, I suggest a plain trivlist in this case.



          %RequirePackagefilecontents
          beginfilecontents*bordeaux.csv
          CODE,Vintage,Name,Classification,Origin,Size,Type,Wine,Region,Stockholding,CostPrice,TOTCostPrice,TOTCostPriceBis
          GRUAUD LAROSE,1971,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £15.00 , £30.00 , £30.00
          LALANDE BORIE,2011,Château Lalande-Borie,,Saint-Julien,Bottle,Red,Bordeaux,R03,35.0, £19.70 , £689.50 , £689.50
          RESERVE LEOV-BARTN,2011,La Réserve de Léoville Barton,,Saint-Julien,Bottle,Red,Bordeaux,R03,12.0, £20.86 , £250.32 , £250.32
          CLOS DU MARQUIS,2004,Clos du Marquis,,Saint-Julien,Bottle,Red,Bordeaux,R03,3.0, £35.83 , £107.49 , £107.49
          GRUAUD LAROSE,2005,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,16.0, £43.49 , £695.84 , £695.84
          DUCRU BEAUCAILLOU,1978,Château Ducru-Beaucaillou,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £56.52 , £113.04 , £113.04
          LAGRANGE 3EME SJ,2005,Château Lagrange,3ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,6.0, £58.75 , £352.50 , £352.50
          LEOVILLE POYFERRE,2000,Château Léoville Poyferre,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,2.0, £73.33 , £146.66 , £146.66
          GRUARD LAROSE,1986,Château Gruaud-Larose,2ème Grand Cru Classé ,Saint-Julien,Bottle,Red,Bordeaux,R03,1.0, £100.00 , £100.00 , £100.00
          endfilecontents*
          documentclass[12pt]article
          usepackage[utf8]inputenc

          makeatletter
          renewcommandtableofcontents%
          @starttoctoc%

          makeatother

          usepackageenumitem
          usepackagedatatool

          begindocument
          sectionBordeaux
          DTLloaddbBORbordeaux.csv
          subsectionRed
          subsubsectionSaint-Julien

          begintrivlist
          DTLforeach*[DTLiseqRegionR03] % Condition
          BOR % Database label
          Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
          % Stuff to do at each iteration:
          item
          textbfVintage
          textbf Name
          textit Classification
          hfillCostPrice

          endtrivlist

          enddocument


          Possibly a table (tabular) would be a better fit.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 14 mins ago









          moewe

          76.2k797289




          76.2k797289




















              up vote
              1
              down vote













              Apart from the problem in the code, the root issue is that CostPrice always has an ending space, as one can see by using textttmeaningCostPrice+++.



              enter image description here



              This may come from the fact that your csv data has spaces before the commas, but I suppose datatool knows how to remove such trailing space (it is harder in TeX to remove a trailing space than a leading one by the way).



              Anyway if you use



              beginitemize
              %%%%%%%%%%%%%%%
              % Iteration for Bordeaux Red Saint-Julien (R03)
              DTLforeach*[DTLiseqRegionR03] % Condition
              BOR % Database label
              Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
              % Stuff to do at each iteration:
              item
              textbfVintage
              textbf Name
              textit Classification
              hfillCostPrice

              %%%%%%%%%%%%%%%
              enditemize


              There is no problem



              enter image description here



              The extra space doesnt show then. (it is suppressed by item paragraph)



              Remark: in fact even with your buggy code you could have avoided the sapce this way:



              %%%%%%%%%%%%%%%
              % Iteration for Bordeaux Red Saint-Julien (R03)
              DTLforeach*[DTLiseqRegionR03] % Condition
              BOR % Database label
              Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
              % Stuff to do at each iteration:
              item
              textbfVintage
              textbf Name
              textit Classification
              hfillCostPrice
              %<----- suppress space from line end
              %%%%%%%%%%%%%%%


              Because then there is only ONE not TWO space tokens at the end of paragraph. Of course much better is to wrap in itemize else item is illegal.






              share|improve this answer
























                up vote
                1
                down vote













                Apart from the problem in the code, the root issue is that CostPrice always has an ending space, as one can see by using textttmeaningCostPrice+++.



                enter image description here



                This may come from the fact that your csv data has spaces before the commas, but I suppose datatool knows how to remove such trailing space (it is harder in TeX to remove a trailing space than a leading one by the way).



                Anyway if you use



                beginitemize
                %%%%%%%%%%%%%%%
                % Iteration for Bordeaux Red Saint-Julien (R03)
                DTLforeach*[DTLiseqRegionR03] % Condition
                BOR % Database label
                Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
                % Stuff to do at each iteration:
                item
                textbfVintage
                textbf Name
                textit Classification
                hfillCostPrice

                %%%%%%%%%%%%%%%
                enditemize


                There is no problem



                enter image description here



                The extra space doesnt show then. (it is suppressed by item paragraph)



                Remark: in fact even with your buggy code you could have avoided the sapce this way:



                %%%%%%%%%%%%%%%
                % Iteration for Bordeaux Red Saint-Julien (R03)
                DTLforeach*[DTLiseqRegionR03] % Condition
                BOR % Database label
                Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
                % Stuff to do at each iteration:
                item
                textbfVintage
                textbf Name
                textit Classification
                hfillCostPrice
                %<----- suppress space from line end
                %%%%%%%%%%%%%%%


                Because then there is only ONE not TWO space tokens at the end of paragraph. Of course much better is to wrap in itemize else item is illegal.






                share|improve this answer






















                  up vote
                  1
                  down vote










                  up vote
                  1
                  down vote









                  Apart from the problem in the code, the root issue is that CostPrice always has an ending space, as one can see by using textttmeaningCostPrice+++.



                  enter image description here



                  This may come from the fact that your csv data has spaces before the commas, but I suppose datatool knows how to remove such trailing space (it is harder in TeX to remove a trailing space than a leading one by the way).



                  Anyway if you use



                  beginitemize
                  %%%%%%%%%%%%%%%
                  % Iteration for Bordeaux Red Saint-Julien (R03)
                  DTLforeach*[DTLiseqRegionR03] % Condition
                  BOR % Database label
                  Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
                  % Stuff to do at each iteration:
                  item
                  textbfVintage
                  textbf Name
                  textit Classification
                  hfillCostPrice

                  %%%%%%%%%%%%%%%
                  enditemize


                  There is no problem



                  enter image description here



                  The extra space doesnt show then. (it is suppressed by item paragraph)



                  Remark: in fact even with your buggy code you could have avoided the sapce this way:



                  %%%%%%%%%%%%%%%
                  % Iteration for Bordeaux Red Saint-Julien (R03)
                  DTLforeach*[DTLiseqRegionR03] % Condition
                  BOR % Database label
                  Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
                  % Stuff to do at each iteration:
                  item
                  textbfVintage
                  textbf Name
                  textit Classification
                  hfillCostPrice
                  %<----- suppress space from line end
                  %%%%%%%%%%%%%%%


                  Because then there is only ONE not TWO space tokens at the end of paragraph. Of course much better is to wrap in itemize else item is illegal.






                  share|improve this answer












                  Apart from the problem in the code, the root issue is that CostPrice always has an ending space, as one can see by using textttmeaningCostPrice+++.



                  enter image description here



                  This may come from the fact that your csv data has spaces before the commas, but I suppose datatool knows how to remove such trailing space (it is harder in TeX to remove a trailing space than a leading one by the way).



                  Anyway if you use



                  beginitemize
                  %%%%%%%%%%%%%%%
                  % Iteration for Bordeaux Red Saint-Julien (R03)
                  DTLforeach*[DTLiseqRegionR03] % Condition
                  BOR % Database label
                  Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
                  % Stuff to do at each iteration:
                  item
                  textbfVintage
                  textbf Name
                  textit Classification
                  hfillCostPrice

                  %%%%%%%%%%%%%%%
                  enditemize


                  There is no problem



                  enter image description here



                  The extra space doesnt show then. (it is suppressed by item paragraph)



                  Remark: in fact even with your buggy code you could have avoided the sapce this way:



                  %%%%%%%%%%%%%%%
                  % Iteration for Bordeaux Red Saint-Julien (R03)
                  DTLforeach*[DTLiseqRegionR03] % Condition
                  BOR % Database label
                  Vintage=Vintage,Name=Name,Classification=Classification,Type=Type,Origin=Origin,Region=Region,CostPrice=CostPrice % Assignment
                  % Stuff to do at each iteration:
                  item
                  textbfVintage
                  textbf Name
                  textit Classification
                  hfillCostPrice
                  %<----- suppress space from line end
                  %%%%%%%%%%%%%%%


                  Because then there is only ONE not TWO space tokens at the end of paragraph. Of course much better is to wrap in itemize else item is illegal.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 10 mins ago









                  jfbu

                  42.1k63135




                  42.1k63135




















                      Claire Boitet is a new contributor. Be nice, and check out our Code of Conduct.









                       

                      draft saved


                      draft discarded


















                      Claire Boitet is a new contributor. Be nice, and check out our Code of Conduct.












                      Claire Boitet is a new contributor. Be nice, and check out our Code of Conduct.











                      Claire Boitet is a new contributor. Be nice, and check out our Code of Conduct.













                       


                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f451982%2fhow-to-align-the-last-element-on-the-right-when-using-hfill%23new-answer', 'question_page');

                      );

                      Post as a guest













































































                      Comments

                      Popular posts from this blog

                      Long meetings (6-7 hours a day): Being “babysat” by supervisor

                      Is the Concept of Multiple Fantasy Races Scientifically Flawed? [closed]

                      Confectionery