실험 데이터가 있고 함수 f (x; I, d, s)를 여러 번 넣고 싶습니다. 각 피팅은 일련의 매개 변수를 생성합니다. 제가 3 번 장착되어 총 9 개의 매개 변수로 끝났다고 가정 해 봅시다 : I_1, I_2 ... s_3. 나는 각각의 매개 변수 세트가 키의 샘플에 정렬되는 설명적인 헤더가있는 3 * 3 테이블에 값을 표시하고자합니다. Table aligned with keygnuplot : 키와 테이블 정렬
간략하게하기 위해 데이터없이 3 개의 수평선을 표시하고 변수를 실제로 적용하는 것이 아닙니다. I는 유액와 줄거리를 후 처리하고 (및 패키지 siunitx
같은 amsmath
등) 배향 sprintf
및 \tabular
의 조합을 통해 달성된다 :
set key bottom left Left reverse spacing 1.25
set yrange [0:1]
set termopt noenhanced
I_1=608.18
d_1=0.61
s_1=0.005
I_2=607.53
d_2=0.61
s_2=0.005
I_3=611.97
d_3=0.63
s_3=0.004
plot 0.9 lw 3 t sprintf("\\begin{tabular}{ccc} $I_{rel}$ & $\\delta/\\si{\\per\\cm}$ & $s/\\si{\\per\\cm}$ \\\\ \\num{%.2f} & \\num{%.2f} & \\num{%.3f} \\\\ & & \\end{tabular}",I_1,d_1,s_1), \
0.8 lw 3 t sprintf("\\begin{tabular}{ccc} \\parbox{\\widthof{$I_{rel}$}}{~} & \\parbox{\\widthof{$\\delta/\\si{\\per\\cm}$}}{~} & \\parbox{\\widthof{$s/\\si{\\per\\cm}$}}{~} \\\\ \\num{%.2f} & \\num{%.2f} & \\num{%.3f} \\\\ & & \\end{tabular}",I_2,d_2,s_2), \
0.7 lw 3 t sprintf("\\begin{tabular}{ccc} \\parbox{\\widthof{$I_{rel}$}}{~} & \\parbox{\\widthof{$\\delta/\\si{\\per\\cm}$}}{~} & \\parbox{\\widthof{$s/\\si{\\per\\cm}$}}{~} \\\\ \\num{%.2f} & \\num{%.2f} & \\num{%.3f} \\\\ & & \\end{tabular}",I_3,d_3,s_3)
set term epslatex colour rounded
set out "gnuplot-table.tex"
replot
각각 '제목'자체 3 로우 - 포함 \tabular
: 첫 번째 행에는 표 머리글의 길이가있는 빈 공백이 포함되고 두 번째 행에는 실제 숫자가 표시되고 세 번째 행에는 실제 빈칸이 포함됩니다. 전자는 숫자 및 머리글의 적절한 수직 중심 맞춤에 필요하며 후자는 두 번째 행이 키 샘플과 수평으로 정렬되는 데 필요합니다.
비록 내 코드가 작동하지만 매우 복잡하고 사용자 정의 할 수 없습니다. 누구든지 이것을 성취 할 수있는 더 좋은 아이디어가 있습니까?
요점은 헤더와 테이블 항목이 LaTeX에 의해 처리되는 중앙 정렬되어야한다는 것입니다. 지금과 같이 테이블 항목은 "의사 정렬"됩니다. 귀하의 제안에 전혀 정렬이 없을 것입니다. 헤더와 엔트리의 길이가 다를수록 테이블의 정렬이 잘못됩니다! replot 정보 : 아무 이유없이 필자는 플롯 이후에 멈추고 화면에 튀어 나온 (qt-) 줄거리를 확인하고 모든 것이 정상이면 파일 만 작성하는 습관이 있습니다. – Eldrad
알겠습니다. 그럼 당신의 해결책은 잘 됐네요. 내 접근 방식을 따를 수 있지만 필드 크기를 하드 코드로 지정하면 정렬 할 수도 있습니다. –
더 큰 너비 - 헤더 또는 항목을 예측하는 것이 어렵습니다. 내 목표는 가능한 한 하드 코딩을 피하면서 광산보다 (더 많거나 적은 행 또는 열) 확장하기 쉬운 코드를 찾는 것이 었습니다. – Eldrad