2014-10-22 11 views
1

Win7 64b에서 R2014b를 사용하면 그림을 .eps로 인쇄하면 Unix 줄 끝 (LF 또는 \ n)이 생성됩니다. 예상 했습니까? 버그입니까?win에서 eps로 인쇄하면 Unix 줄 끝이 생성됩니다 (버그?)

또한 Matlab 버전에 따라 다릅니 까? 그것이 나에게 중요한 이유

% Plot and export to .eps 
plot(1:10) 
print(gcf,'test','-depsc') 
fid = fopen('test.eps'); 

% Check if Unix LF only 
line = fgets(fid); 
if all(line(end-1:end) == sprintf('\r\n')) 
    disp('CRLF') 
elseif line(end) == sprintf('\n') 
    disp('LF only!') 
end 

% Clean up 
fclose(fid); 
delete('test.eps') 

편집

:

당신과 함께 테스트 할 수 있습니다? 저는 수치를 .eps로 내보내고 epstopdf를 통해 Miktex 2.9 배포판으로 컴파일하고 있습니다. 그러나 나는 빈 그림을 얻었고 문제는 여기에 설명되어있다. https://tex.stackexchange.com/questions/208179/epstopdf-error-undefined-in-uagelevel

나는 왜 내가 전에이 문제가 없었는지 궁금했다. 그것은 루이의 대답에서, 그것이 .EPS

+0

결과를 게시 할 수있는 R2014a 또는 R2013b/a를 가진 사람은 누구입니까? – Oleg

답변

1

우선 라인 엔딩 같은 새 릴리스와 유닉스 도입 된 것 같다 다음 EPS format specification (here에서 얻은 큰 파일)에 따라 :

  • 페이지 26 :

    캐리지 리턴 (CR) 및 줄 바꾸기 (LF)는 줄 바꿈 문자라고도합니다. 캐리지 리턴 뒤에 바로 피드가 오는 조합은 하나의 개행으로 처리됩니다.

  • 페이지 74

    포스트 스크립트 언어 스캐너와의 readline 연산자 세 외부 단독 라인 종료 (EOL) 형태 -CR 단독 LF 및 CR- 인식 LF 쌍 - 을 동일하게 취급하여 아래 설명 된대로 번역하십시오.

그래서 두 형태 실제로을 사용할 수있다.


테스트가 잘못되었다고 생각합니다. 에 따라 textscan으로 줄을 구분합니다. 그러나 그것은 '\r\n'을 제외하지 않습니다 (너는 '\n'에 따라 줄을 나누고 '\r'은 각 줄의 마지막 문자로 남을 것입니다).

난 당신이 이런 식으로 테스트 제안 : 내 Windows 시스템에서

fid = fopen('test.eps'); 
s = fread(fid); %// read whole file as a vector of ASCII codes 
LF = find(a==10); %// find locations of LF 
CR = find(a==13); %// find locations of CR 
if all(ismember(LF-1,CR)) %// test if every LF is preceded by a CR 
    disp('Every LF is preceded by a CR') 
end 

을 (매트랩 2010b는, 윈도우 비스타 32 비트) 그렇게 되는 Windows, 참으로 모든 LF는 CR 앞에는 밝혀 같은 라인 끝은으로 사용됩니다.

+0

게시하기 전에 테스트를 조금 변경했습니다. :). 또한 74 페이지의 주석은 26 페이지와 동일합니까? 중요한 점을 상세히 설명하기 위해 원본 게시물을 편집 할 것입니다. – Oleg

+1

죄송합니다. 수정되었습니다! 나는 네 편집을 봤어.제가 말할 수있는 것은 Matlab 버전이 CR-LF를 생성한다는 것입니다. 행운을 빕니다! –

+0

아마도 관련이 없지만'ps2pdf -dEPSCrop test5-reference.eps test5-reference.pdf'를 시도해 보셨습니까? –